读博杂记:关于科研方向感的一些粗浅思考

0. 前言

从去年末决定换研究方向到现在已经半年多了,这半年多的时间科研体验并不是很好,感觉自己是一只很小的帆船在茫茫大海里随风飘荡没有方向。究其根本,还是个人的科研基础太差了,这里的科研基础并不是指代码能力有多强,或者读论文有多快,而是对科研一些更高层的认知,有点类似于英语的语感和电子竞技的操作意识。今天开了一个小组会,听了一位博士师兄的汇报,结合近半年来的个人经历,颇有感触和收获,故决定对这段时间的”挣扎“进行一个总结和自省。这篇文章可能有些意识流,仅供各位前辈在繁忙的科研工作之余消遣阅读。如有错误,敬请指正。

1. 略微痛苦的大半年

我本科期间专攻算法竞赛,科研经历基本为0,又是直博没有经历硕士的阶段。所以到目前为止,我接触科研可能也就一年半的时间,并且整个过程中大部分时间都是在“强化学习”(依靠不一定准确的各种reward自我探索,容易陷入局部最优、效率低)。虽然侥幸中了一篇CVPR(个人对这篇工作并不满意),但也走了很多弯路,吃了许多苦头。其实在最开始,我的科研体验还是很好的,学长给了一个方向,我去看相关论文,想出Idea并实现,前后也就几个月的时间,刚好赶上MM投稿,于是乎发出了第一篇ccf-a的论文。虽然没中,但主要是写作的问题,转投CVPR后被接受(详细过程可以翻看我的CVPR系列文章)。似乎科研并不难?此时的我相当膨胀,尾巴几乎翘到了天上,急匆匆寻找下一篇工作的线索(为后面的苦头埋下伏笔)。但是由于之前的方向太过小众,无法支撑起五年的研究,于是想着换方向。一开始选择了Agent相关的研究,一是结合了最火的大模型,二是能和各种有意思的任务结合比较有趣,三是还处于蓝海阶段可以研究的东西多。于是便开始了一系列的调研,期间也尝试过了很多子方向的东西,下面是当时梳理出来的一些Agent相关的东西,可能并不准确,就看个乐呵吧。

image-20240703220727292

image-20240703220813126

在摸索Agent的这个阶段,找到了一个比较有趣的概念 visual programming(2023 CVPR best paper),简单来说就是利用LLM自主生成可执行的代码,调用各种工具和视觉模型来解决visual-related task,比如Visual Question Answering,Visual Grounding。然后就对其中一篇代表性的工作ViperGPT进行了Error Analysis,并在组会上进行了分享。师兄觉得分析的挺好,觉得可以从分析的角度切入做一篇工作(Target ECCV)。其实当时我的感觉是这些分析的结果还是很粗浅的,完全达不到在此基础上做出一篇工作的水平。但是,在一篇新工作的诱惑以及师兄的肯定下,我也没去细想,开始一股脑的推进这个工作的进度。后面就各种原因从target ECCV延期成 target NIPS 再变成target TPAMI。这几天和导师讨论后,得出的结论就是这篇工作一开始的立意就很低,目前做出来的成果也不是很有意义,如果要做到TPAMI的程度整个工作都要重塑,时间成本太高。最后导师给了死命令投一个中文学报快速收尾这个工作(虽然有点不甘心,但好像也有种如释重负的感觉?),然后投入更有意义的方向。其实在做这篇工作的过程中我也一直不看好这个工作,但因为沉没成本,加上师兄工作初期的信心满满,我就强迫自己继续做下去。所以每天都是在自我矛盾和自我怀疑中推进工作,非常痛苦。现在想想,就应该早点丢弃!

2. 组会后的自省

之所以讲述上面这些经历,一方面是想排解一下近半年来的苦闷,更多的是想说明:1. 科研切记浮躁和急功近利,论文求精不求多。2. 一篇工作的前期要反复探讨这项工作的意义,敢于及时止损。3. 要培养更高的科研意识和敏锐度,保证工作的系统性。其中第三项是最重要也是最难的,并且要实现这一目标,并没有一个很明确的goal,只能靠平时的积累逐渐养成。这次组会,听完师兄的回报,我对第三点的重要性有了更加Specific的感受。

我现在所在的小组前身是做few-shot的,老组长今年毕业,加上few-shot的设定过于narrow,在大模型的背景下不被看好,年初整个小组都转向了Agent方向(我也是这时候萌生换方向的想法的)。最开始我们尝试过一些虚拟的Agent,比如我的Visual Programming和组里其他同学做的手机Agent。但后来认为,Agent还是要和物理世界结合才足够有意义,符合AIGC的愿景,于是我们决定主攻Embodied AI,也获得了导师的支持。前后调研差不多小半年,今天组会上,组长定了一个核心框架和研究路线。听了组长的规划, 心中暗暗感叹:”妙哉!“ 。以下观点主要来自师兄组会报告,整理并加入了一些个人理解:

首先,我们组的科研总目标是:

  • 成体系:围绕一个general的研究锚点,螺旋式向下挖掘,避免研究一盘散沙,跟着别人屁股后面跑。
  • 要做方向正确的工作: survey过程常态化,每天抓住新出的重要论文,保持对方向感的嗅觉和对前沿领域的理解。
  • 解决关键问题、立意高远:做Problem-driven的工作,research problem需要足够general,或者Specific但非常important
  • 精确仔细:论文从头到尾要precise,无论是问题定义、claim、方法设计、实验范围和内容,都准确完善且边界清晰

其中第一点我认为对于一个长期的科研工作者是最为重要的,也是导师常说的做研究要逐步构建一颗知识树,然后在树上寻找缺陷,并想方设法解决它。而要想让工作成体系,形成知识树,就需要时刻提醒自己注意剩下三点,并且这三点我个人认为也是一个串行的关系:只有大方向找对了,才能保证找到的问题在根本上站住脚,只有问题足够关键,precise的表述才会更有意义,不然只能沦为花拳绣脚。

对于我们组,组长给出的体系是研究如何将一个预训练的大模型迁移到某个目标任务上。无论是CV、NLP还是目前最火的大模型和Embodied AI等,最主流的范式都是在一个超大的数据集里训练一个超大的基础模型,然后提出各种方法迁移到某个具体任务。例如Fine-Tuning,LLM的Prompt engineering,MLLM的composing models思想等,其本质都是将一些没有指定具体任务训练出来的模型迁移到指定的任务。这些预训练模型中通常具有各种各样的Knowledge,而我们要做的就是提供 target environment / data / description 作为Task Knowledge,借助Task Knowledge通过一些手段,从预训练模型中提取与Task相关的Task-Specific Pre-trained Knowledge,来得到Task solver,如下图所示。

image-20240704154000153

这一构想成功将我们组里各个组员之前的研究方向整合在了一起,同时也能顺滑的从few-shot过渡过来(few-shot本质就是利用少量的数据实现迁移)。同时,在这一个研究框架下,再结合Embodied AI的背景,自然可以想到很多可以研究的方向:

  • 如何提供更好的 target environment / data / description ?机器人数据稀缺,如何更好模拟物理环境,生成更逼真的数据?什么样的数据形式?
  • 选取什么样的方式实现 Pre-trained Knowledge的提取?强化学习?模仿学习?效率怎么样?如何保证在特定任务上具有足够的泛化性?

这些问题其实已经有很多人在研究了,但如果我们心中没有一个框架,只是一篇一篇地过这些论文,可能也就是当小说一样看过去了,很难串联不同的工作,也很难想到一些本质的问题,由此可见理论指导的重要性。虽然目前我还在苦苦寻找我在Embodied AI的研究方向,但在大框架的constrain下,应该一定程度可以避免两眼一抹黑的瞎看,希望在不久的未来可以被我找到!

3. 日后科研,牢记准则

  • 研究成体系,方向要正确,问题要关键,工作要精准
  • Be critical and slow down!
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇