games003课程笔记03-技术方法的设计方法

games003 科研基本素养 “lec.3 技术方案的设计方法” 笔记

1. 什么是方法设计

选定课题后,需要设计一种新颖的pipeline(技术流程)来打到SOTA Performance。

一个理想的方法,需要并重work程度和技术创新程度。(一定要注重技术创新,切不能雕花)

五个程度的技术创新(前三种创新命中率更高)

  1. 一个崭新的范式(新的学习模型,新的表示)
  2. 基于已有的pipeline提出非常新颖的模块(从其他领域借鉴过来)
  3. 将几个已有的模块组合成新的pipeline (与2.相比,这个更倾向于简单的拼接)
  4. 在已有pipeline中加入经过简单改进的模块
  5. 在已有pipeline中加入现有的模块

2.如何设计方法

分析原因

遵从第一性原理(找到本质原因,对症下药),分析为什么当前的SOTA效果不够好

如何找到技术原因
65292540207f522da4b2ca4d56ac225
如何分析SOTA不work的原因
c37ac841c18615e07ea96837f14850c
如何发现表层原因:二分查找法

先确认能够work的数据或者算法,然后将其与不work的数据或算法进行比较,查看他们之间的差异。

7f1d2e4e45825685f4b27601bcc8f4d
如何发现根本技术原因

通常有两个技术原因:

  • 修改的代码有bug
  • xx算法应用在xx数据中确实存在问题
7362192094dd7c76f1a028d5c700216
如何调试代码(《调试九法 软硬件错误的排查之道》)
  1. 彻底理解算法/代码(调试的基础)
  2. 确定能够持续重现bug的输入和设置
  3. 基于二分查找法缩小bug的范围
  4. 逐行调试(x_x)
如何与他人讨论实验结果
f2f0e3e13d602ee98c076f02d9554fc
分析实验结果的典型问题列表
代码调试检查表
e983abd02b870fd6cef1ab49d3657de
算法调试检查表 -> 观察failure cases中是否存在特定的pattern -> 使用3D可视化工具进行调试(Viser、Wis3D等)
3c711c50aa1bacdab8651172253dc43 88395293f3260428966c858f50537f3

设计方法

根据分析的原因,设计一种能打到SOTA的方法(创新地组合已有的技术,从另一个领域移植过来b( ̄▽ ̄)d)

如何设计方法
  1. 列出原因

    列出本质技术原因:为什么原有的SOTA方法不work

  2. 列出技术

    列出所有与技术原因相关的、有可能解决该问题的技术

  3. 选择新技术

    选择近年来的新技术、需要是未被well-explored、有想象空间的技术

  4. 设计方法

    每天仔细思考,如何基于这些技术构造pipeline

  5. 讨论

    与周围的人进行广泛的讨论,获得insights,迭代优化pipelines

  6. 不断积累并等待灵感爆发

    等待灵感爆发的时刻,脑海中涌现出一个有效且有意思的pipeline

判断合理性

判断提出的技术方法是否合理(多与他人沟通获得反馈 + 阅读论文获得相关技术的分析)

改进方法

通过读论文、讨论和做实验改进技术方法

如何通过实验改进方法
3da86b50f01bd23fcd41126396a1844

games003课程笔记03-技术方法的设计方法
http://example.com/2024/10/22/games003_03/
作者
Poivre
发布于
2024年10月22日
许可协议