作为入行数年的专业科研从业者,你每周看几篇论文?
这是一个知乎上的问题。作为卡耐基梅隆大学机器人系的毕业生、Facebook人工智能研究室(FAIR)的研究人员,田渊栋给出了下面这个回答。
盲目追求论文数量无意义,知道怎么读更重要。
背景:人工智能,强化学习
追求数目没有意义。读文章一般两个目的:
1. 看大家在做什么,找方向。
这时候一般读读Abstract和Introduction,对领域有初步了解,知道它主要关于什么,搞清一些概念的含义和联系。这时候不懂没关系,多看几篇文章就懂了。一般聪明的人这一步可以做得很快。
2. 搞清细节
找一个自己感兴趣的方向精读,把里面的课题思路和推理细节搞明白,并且还要顺藤摸瓜找到其它大量的相关文献继续读下去。标准是在脑里能有对这个领域有清楚的脉络,能做到独立完成大部分推导和证明。
一个靠谱的检查方法是给同组的人或者导师做个讲座,看他们能听懂不。很多时候自己以为懂了,其实和别人一说马上就露出马脚。同时讨论也可以激发新思路,说不定就能找到下一篇文章的出发点。这一步往往会花费一个科研人员大量时间,也是业余和职业科研的关键区别所在。
总之分配给每篇文章的时间天差地别。烂文几秒钟就可以放弃,而经典文章还需要每过一阵子回头再去看一看想一想。至于如何评判文章质量,那就得要靠长年科研积累出来的品味了。
接下来的两个阶段就不是光看论文可以看出来的。
3. 写代码实现别人的工作,并且改进
每篇文章都会有意或者无意抬高自己贬低别人,都存在一些有意或者无意隐藏的细节,这些不亲手做是看不到的。所以得要动手花时间去实现别人的方法,想方设法达到别人的效果,然后反过来再看看文章。
时间长了马上就会学到故意隐藏的蛛丝马迹,理解别人留白的道理。光看文章的话,这类经验的积累要慢很多。一般说的“纸上谈兵”就是指这一步没做。
我在15年1月刚去Facebook AI Research的时候,在深度学习上还没有实际操作经验。交给我的第一件事情是复现VGG在ImageNet上的性能,那时还没有BatchNorm,跑5个有2个能开始收敛的就不错了,最后花了几周搞定了。整个过程让我学到不少经验。
4. 总结经验,融会贯通,找到并且遵循自己的方法论
重复3很多次之后,可能会觉得自己比较有经验了。别人问起的时候也能侃侃而谈,但说的往往是一些分散且孤立的经验。并且你会发现自己很容易遗忘这些经验,这个并不是因为记忆力不好,而是因为思路不系统。
这个就需要反复思考反复提炼,从而形成自己的方法论。有了方法论之后,心里就有大方向而不会随便乱试乱撞,效率就会高很多,并且能在一个科研方向上挖很深坚持很久,而不是哪个课题热做哪个。在指导别人的时候也可以做到有的放矢。
在这个基础上再看文献,往往就会读懂很多一开始读不懂的东西。比如说为什么作者要强调A而否认B,那是因为他相信A后面的哲学和方法论。
如果你发现自己提炼不了,或者本来知识就是凌乱的,那么要么就是(1)境界未到,要么就是(2)领域还没有成熟,目前的知识点只是零碎的拼凑。(1)要靠自己练,(2)则预示着大机遇,一个研究者牛不牛就看他是不是可以在别人都放弃的地方找到新的规律。
一般完成1是新闻及科普的水平,2到3是博士生低年级至高年级的水平,精通3到初入4是博后的水平,精通4则是研究员和教授的水准。
另外,从1到4并没有特别固定的顺序,可能你在某个领域是4,另一个领域还只是1或2的程度;或者你在4中获得的经验能反过来帮助1和2(这个很常见);或者一上来就可以跳过2做3,然后等3有了结果之后再去补2,等等。当然,一步跳到4那是民科的水平。