科研弯路
Nov 26, 2016读了两年的研究生,感觉有收获也有走弯路的时候。作为研三老司机,发现很多师弟师妹似乎在走类似的弯路。走了弯路,绕了一圈,该总结总结了,以免以后继续脑抽,或者给后来者一点点警醒。虽然很多道理其实很好懂,高中初中生说起人生大道理都一套一套的。但是要真的在日常中注意用到你懂的道理,方法,还是需要踩点雷,走走弯路的。走了弯路不要紧,没有成果也不要紧,好好总结总结,下次努力做好。
1. 弯路是啥
前期调研不充分:老板给个想法,学生直接读了两篇文章,动手就做。我看到的情况是,学生边做边学。着本来是好事,但是当老板自己也在探索的时候,学生边做边学很可能整个工作漏洞百出。最后结果不好,和预期不符,回头找原因的时候,把之前的漏洞填起来,填的很累。填到最后,发现这个想法似乎又不是很扎实的工作了。匆忙跑的各种实验,也和各个相关工作不可比。自己回过头来再读其他文章,发现其实很多坑都是别人发现了,提醒过的,甚至解决过的。
前期调研太充分:这个也许不算是弯路,但是我观察到的情况是,很多其实还蛮厉害的人,懂很多东西。但是做起来似乎有点缩手缩脚,觉得自己的工作比较水,或者是思路被束缚了。还有个问题就是太花时间了,读了不少文章,是酣畅淋漓啊,但是几天下来发现自己的工作没有进展,产生点挫败感。或者调研得太开心,觉得别人都是牛人,自己水平太渣。
实验陷入细节:理想状态是根据motivation设计实验啊,结果跑着跑着和预期不符,那得找原因啊,然后设计了一堆实验去找原因。又兜了一圈。还可能是因为解决各种实验细节,结果把做实验的motivation给忘了。
与老板沟通:实验不理想,代码改不出,怀疑自己的时刻到了,然后就害怕见到导师了。或者不认同导师的做法,但是自己也没有更好的办法,也不想和导师沟通。又或者是怕被导师鄙视,做了缩头乌龟。
2. 怎么走相对直的路
这个就是整理一下我看到的东西吧,表示入门菜鸟级别的我还没有太多保证不误人子弟的经验。
首先,各个问答网站有很多人聊过,还有各个学术牛人的各种经验,我入学的时候也是搜罗了一圈的how-to系列。来,想要的拿去:
[博士应该采取什么策略读文献](https://www.zhihu.com/question/37781628)
[我阅读科研文献的一些做法](http://www.andrewsun.net/panta_rhei/archives/5982)
[winsty: 我的PhD总结](http://www.52cs.org/?p=632)
[Opportunistic Paper Reading](http://pgbovine.net/opportunistic-paper-reading.htm)
[Advice list from Jason Eisner](http://www.cs.jhu.edu/~jason/advice/)
[The Ph.D. Grind](http://pgbovine.net/PhD-memoir.htm)
大概很多人都写过各种经验教训之类的总结,所以我的建议是。。最好一开始有个先去调研调研别人踩过哪些雷的意识,然后再开始埋头苦干。
3. 说说我的经历让大家乐一乐?
最大的弯路:之前并没有想好要做科研。我是实用至上,想着科研达到一般水平就行了,一定要好好把找工作的事情落实。那在科研上就random walk吧。后来想要出去读博了,研一都快过去了,还要准备TOEFL和GRE,科研上时间分配就比较少。结果就是没有成果,申请很慌。所以刚入学的研究生最好能想清楚一些,想找工作的好好刷题,提高提高动手能力。想继续科研的路就好好科研。合理安排自己的时间是很重要的事啊(废话)。
前期调研不充分:这个分两种,一种是,给了个具体的任务之后,没调研清楚,你是不是能做的来,要怎么做。另一种是,没调研清楚导师想让你做什么。
- 第一种就是读了两篇文章就动手型儿。各种自己拍脑袋想方法,甚至自己从头到尾搭了个架子。或者找了个也不知道是什么会议什么年代什么作者的论文就做了baseline。(现在想回到过去抽自己)自己拍脑袋的问题是,做的过程中会有各种各样的雷,如果你没调研清楚,你会在别人跌过跟头的地方继续跌跟斗,然后花了很大力气才搞明白怎么回事儿。但是后来再读文章的时候发现,原来这个问题别人也遇到了,人家还解决了。这个过程可以说是能成长很多,但是也确实浪费了很多时间。血泪啊,当我看到人家文章中说到我纠结了很久的问题时,那心情很酸爽。最好是多读一些比较权威的综述性,再读比较新的高引用的文章。比较安全的做法还是不要做太大的题目(牛人除外),最好是从现在的state-of-the-art出发,解决当前的问题。
- 第二种就是走着走着,老板会问你:这是我们当时想解决的问题么?一脸懵逼地发现两个人不在一个频道上了。这个可能还是学生积累不够,对老师的意思只理解了部分,然后自己一稍加演绎,再加上实验上的偷懒(这个代码好难改,我搞点其他的吧)就歪了。
调研太充分
- 读了一堆文章之后发现,原来大家已经走了这么远了,已经解决了这么多问题了,解决得好优美。或者悲剧地发现,这个数据集好像做不上去了啊!这个任务好像被开发的差不多了啊!好像没我什么事儿了啊!!还发现了一堆灌水的文章。这个时候呢,可能比较好的做法是保持良好心态啊,想想问题的其他解决办法,想想当前方法的缺陷,想想从其他角度来处理这个问题。之类的事情。反正就是调节好心态,不要真觉得这个任务到头了,要是真到头了,就说服老板吧。。这似乎是技术活儿。。
- 还有一种情景,太充分的调研,或者追热点,会压力比较大。就好比现在的NMT,end-to-end框架一出来,大家其实思路都差不多,都能看到这个框架下哪些东西是需要改进的,可能出文章的。然后读到各种改进,各种模型,感觉大家出文章的速度好快。一味读文章,耽误进度啊,然后冷不丁在arxiv刷出一篇文章和自己的想法如出一辙。
实验陷入细节:想法不work,导致自己很颓丧。首先,想法不work是很正常的好么!!我的心态一开始很不好,实验效果不好就纠结,狂躁。那段时间咬指甲啊,抓头发啊,有点抓狂。这个心态很不好。甚至不该是经过四年cs教育的学生该有的心态。因为对于我们来说,计算机是很听话的东西,出问题了之后,追本溯源,总能找到问题所在。而急功近利的想让自己的idea有效的心态,是不适合科研的。有次和一个教授交流,他说:be comfortable with failure. 想想科研不就是各种想法,然后验证想法么?出现不work的想法太正常了啊。
和老板的沟通:按下不表。