这位博士的五年总结,或许能解答你许多问题2016-03-03科研圈撰文田渊栋(卡耐基梅隆大学机器人系博士、Facebook人工智能组研究员)(一)这五年最重要的,是渐渐知道了怎么去做一件比较大的事情。说得很大,其实就一点,心要静下来。首先,心静下来才能钻进某个领域里认真做事。现在的社交媒体太多了,各类新闻也太多,每天忙于应付这些广泛却又浅薄的信号,或是忙着去评点别人,是没有办法做成一件事情的。就比如一个人要去旅游,按图索骥地走一圈著名的景点,并不会给自己新的体悟,最多只增些与人的谈资而已。真要体会大自然的美丽,那是一定要涉足别人达不到的地方,要有目标有耐心有毅力,做长久的打算。其次,有毅力有决心不一定能成事,方法也是不可少的。做研究的每个环节都需要方法:如何做基本调查,如何下手,如何分析问题,如何坚持自己的观点,如何给任务定优先级,如何处理细节和局部的关系,如何将直观一点一点地转化成严格的数学语言并且验证。在任何一个地方卡住,都会让自己的研究停步不前。面对这么多要求,要同时都准备好再开始研究是不可能的,只有先定目标,然后一步一步摸索。在摸索的开始,会做很多无用功,调查没有头绪,题目不知道如何选,没有经验就不起效率,没有效率就容易心浮气燥,心浮气燥就会轻言放弃,完全否定已有的成就。只有把自己强按在位置上一点一点地对以往的教训做分析总结,才能打破这个恶性循环,渐渐地积累起经验来,看见以前看不见的方向。要达到这一点,心静是很重要的。再次,研究是会碰到很多困难,老板不给力,数据不给力,公式推不出来,电脑坏了,等等。在博士阶段可以有一千个理由把问题归咎于别人,不过我觉得最好的态度是“不抱怨,不解释”,把自己力所能及的事情做好,把自己的错误搬回家,好好分析,才能有所进步。理想和信念是一定要有的,不然如何在孤独的长跑中奋勇向前?但调子不能放得太高,因为没有实现的理想,对他人而言,一文不值。要做到这些,同样需要静下心来,克服困难的过程中,没人喝彩。举一个我自己的例子。自己的博士论文其最后一部分的理论可算是历经艰辛,2010年借着第一篇ORAL的劲头试过第一次,却根本不知如何下手,花了四五个月完全失败,最后临近论文截止时不得不让老板换题;2011年的时候在MSR实习时又试过一次,因为陷入了诸如“一定要有个目标函数,求目标函数的最优解”的常规思路而再次失败,虽然已经有一点结果,但是总体上路子是走偏的,也没能就这个理论发文章,最后只好做成一篇应用,以给实习一个交代。直到2013年的年初,在投出博士阶段最后一篇ICCV之后,才发现自0己想做的这个理论和自己之前已经做过的研究的极大关联,终于突破了之前思维的瓶颈,才有了现在令人满意的理论。回想过往的思维过程,最早是经常在自设的思维困局中转圈,然后是在推公式、想直观和堆hack中左右摇摆,最后才发现理论和现实的黄金结合点,找到和现实吻合又干脆利落的假设,推出意料之外却情理之中的定理。一旦进入了这个阶段,反应就会一次比一次快,建模速度也一次比一次迅捷,出的文章也会越来越好。从这个意义上来说,这五年的PhD并没有浪费,这样的训练让我有自信去学习任何新东西,合理规划自己的时间,来面对任何一个自己想要做的,具有挑战性的项目。另外,分享一下主要的技巧:第一,要喜欢自己的研究题目。做研究有内心动力(motivation)是非常重要的。研究的本义,是在一个宽松的环境下,由研究者自由探索去寻找未知世界的答案。再牛的导师,尽管有模糊的直觉,如果不参与研究的每个细节,是不能预知精确答案的。精确答案只能由学生来获得,导师直觉的错误只能由学生来推翻,如果学生没有内心动力,那导师只能看见他能看见的,就不需要学生了,研究也就失败了。因此,研究的成败,归根结底是靠研究者永不停息的探索着的内心。如果自觉是个安于现状,听人号令,懒得动脑的人,那博士不是那么适合的;如果家里或是同学的压力大过内心的渴望,那么读博可能是地狱的开始;如果只是为了获取某领域更多的知识,那可能在博士后期承担巨大的论文压力,不如读个硕士方便。如果自己确实喜欢探索,喜欢解难题,但是导师的方向自己不喜欢怎么办?我的答案是,多发挥主观能动性,找一个喜欢的小点慢慢扩大。我刚去cmu的时候,因为口语和交流能力不怎么好,选导师的过程并不顺利,第一选落空,后来听师兄的建议选了现在的导师,可他做的方向和我想做的一点关系也没有,怎么办?解决方案是先找一个两边都能接受的题目,把它做好,我当时是选了图像因为水面的波动而扭曲的题目,既切合导师的物理背景,又突破了他在每个像素上单独求解问题的思路,更像是主流的计算机视觉。等到出了第一篇文章(ICCV09)之后,再慢慢地切入自己想要做的方向,自2010年末开始,出了一系列ORAL,渐渐把握了主动权。在自己喜欢的方向上,导师是永远比不过自己的进度的,因此乘着环境宽松时未雨绸缪相当重要,追着导师走,而不是让导师追着走。若是没有内心动力,等到三年级后老板看情况不对,开始缩小研究领域催论文,自己就会陷入“啊啊,我真的不喜欢这个却被逼不得不做”的状态,那就很难挽回,再怨天尤人也没有用了。第二,牢记本校校训,Myheartisinthework。做研究需要每天都花时间想,沉浸入要解决的问题。这并不是说做研究是24x7全天候,其它什么都不用干,一直干到永久性脑损伤为止,而是需要培养思考的习惯,高思考的效率。为达到这一步,一开始需要大量的投入来找到适合自己的正确方案。可能会很不习惯,想到晚上睡不着,做事吃饭都没心思,生活琐事全都不管,俗话说是“入魔了”。像我经常有做梦做到自己要思考的问题,或者每天一早还没完全醒来,就想着某个问题要怎么解,结果真醒来一看发现全想错了-_-。在这个阶段,挫折感会特别强烈,会有放弃的念头。但是只要坚持下去,大脑会适应,会成习惯,效率会高,会知道一个问题中有哪些地方是关键,会知道思考到什么地步是可以停手的存盘点。然后你就有了一具不论何时何地都能进行后台运行的思考机器,能够积累上每天的边角时间,每时每刻在升进步。正如一句话所说,不疯魔,怎成活。当然开车或者做其它重要的事情时请不要思考,出事的话,本文概不负责。第三,有思路(idea)就写下来。有一句话说得好(出处忘记了),光思考不纪录,人脑是有限自动机;既思考又记录,人脑就是图灵机。其原因在于,一支笔一张纸增强了人脑的记忆力,让思考的空间及范围变大了,能看出本来没看出的联系,能发现本来发现不了的细节。有时候看似很平凡的思路,写着写着就变成了非平凡的阶段性结果,以为是很有前途的想法,一写就发现问题所在。而若只是思考,花几个小时都在原地转圈,头还晕得不行。另外,写下来本身就是一种“我已经完成了什么”的标志,对士气是很鼓舞的,也有利于下一次从中断点恢复思考。第四,多看看别人的工作,但别看太多,抓住主线就好。近年来每年发表的论文数有上升的趋势,文章越来越多,每篇都细细看就是在浪费时间了,事倍功半。我目前认为的最好办法,莫过于在看完几篇本领域最重要的文章后认真总结,猜出大部分人的路数还有各自方法的优缺点,然后在面对新文章时采用跳跃式读法,边看边猜,猜对有奖。这样不仅快,而且能把握大局忽略细节,自己想新思路的时候也能自然而然地避开大部分人的招式,攻击其命门,从而保证自己工作的创新性。这似乎不符合学术严谨性的定义,不过……人生就这么点长,看着办吧。(二)回到刚才的话题,自己刚入cmu的时候,因为种种原因没有选到理想的导师,不知如何是好,就向师兄征询意见。师兄劝我说:“其实这些都不重要,重要的是你可以从他那里学到什么,我认为他人不错,另外演讲和写作技能非常好。”事实证明师兄说的话是对的。选导师,他做什么研究并不是最重要的,比这更重要的,是人品及交流和表达能力。我导师人品相当不错,对学生既严格又负责,也不拖毕业的时间。我从他那里学到最多的,其一是演讲,其二是写作。先来谈谈写作。以我五年的经验来看,其实中国人写作的最大瓶颈并不是英语能力,而是组织。论文的英语水平充其量是高中水准,多看几篇就大致可以掌握词汇和句型,更何况很多论文都不是以英语为第一母语的研究者们写的,照样拿最优论文奖,照样在学术圈产生极大影响力。但在组织上,我们的论文确实问题多多。我就犯过很多错误。其一是挤牙膏,通过堆砌句子来达成长度要求,这个可能和我们从小要求文章有字数下限有关,结果就造成文章空洞,许多句子许多段落翻来覆去同一个意思,让人倒胃口。其二是把文章写成技术报告,先做啥,再做啥,最后做啥,实验结果是啥,没了。至于为什么这样做,原因是什么,是什么激发了这样的思考,这样的方法对什么样的数据会有效,有什么局限,全都不知道。(潜台词是:是老板让我这样做的,我只想毕业,有问题别来找我……)论文是要引人深思的,要给人启发的,要让人受教的,要让读者读完后,觉得这篇文章公正地评价了前人的工作,明白这篇文章的创新意义所在,并且同意作者的出发点,认为这是一个很有前途的方向才行。本质上来说,产生这两个问题的原因是懒得思考。论点挖不深,导致觉得没啥好写只好挤牙膏;方法想不透,于是便罗列若干步骤草草了事。其实只要稍微想下,就能补上很多东西。举个例子,写目标函数是什么,如何用梯度下降优化,数学上就两个公式,但是段落里可以说明如何选初始点,初始点在这个具体应用中的意义何在,如何取步长,为何这样选,收敛速度通常多快,哪里可以加速,哪里可以并行化再加GPU,等等,这样内容就丰富多了。又比如,一个算法的若干步骤,本来是毫无意义的流程图,但在介绍它之前做些解释,阐明设计的一些基本原则,然后在解释每步时充分使用这些原则,那读来就会觉得容易接受得多。克服了这两点,做到开局有理有据,正文言之有物,实验让人信服,那这篇文章基本上可以中稿了。接下来,就可以进入高级模式了。首先,立意要高远。一篇文章规矩着写,说“我们加了新特征,因为新特征针对数据集的某些特性建模,实验效果更好”,虽然基本可被录用,但一般不会出彩;如果说“我们建立了新的框架,统一了以前的诸多方法,在这个框架下,算法能自动分析数据加入新特征,实验效果更好”,那这篇就有戏。为什么呢?工业界看重效果,因为效果和经济利益直接挂钩;而学术界是想要为一个领域找一个简洁明了的理论,是要仰望星空,问天几何的——因此每一篇好文章,都必须建造出自己的一套世界出来,给出自己的世界观和方法论,在这个宏大的图景下,给前人的工作标好地位,给自己的工作定下基调,然后拿着这张画好的地图,去解决实际问题。而所谓的博士研究和博士论文,则是在一套统一自洽的世界观下,含有两至三篇或者更多的文章,以证明这套世界观的合理性。这听起来像是忽悠的游戏。因为像计算机视觉这种实用的领域,哪有那么多理论可挖。是的,在一定程度上确实如此。但是建筑世界观本身,会促使研究者对已有的工作进行排列,得到新的启发,看到新的联系,因此仍然是对研究本身有益的。有些表面上的联系可能被证明是偶然,但有些则会揭示本质,促进人们深化认识,为将来的突破性进展作准备。另一方面,功利地来说,有一个宏大的世界观有利于一位博士生发大量文章,早点毕业:-)其次,故事要流畅。我老板说过,一篇好的文章,就如同带着读者在一个花园里行走,路面平坦舒适,左边有山,右边有水,引人入胜,读者漫步欣赏美景,走过亭台楼阁,一点不费劲,一下子就逛完所有还意犹未尽。迄今为止,我对这种抽象的诗一般的表达还不能完全理解,但是既然他声称读完了所有哈利波特的同人小说,而我只不过写过一部二十五万字的小长篇,我想我还是宁愿相信他比较好-_-。在大的方面来说,一篇文章从开篇开始,就要让人有所期待,各种背景知识交代自然,详略得当,指出前人工作各有缺陷,然后自身的贡献娓娓道来,最后各种证据证明自己所言得当;或是先摆出正反证据,引人思索,指出前人各种问题,再列出自己方案,教人拍案叫绝。细节上,全篇重要的论点要适当重复,每次出现都要和上下文语境相符,无聊冗长的段落适当精简,但必要的实验步骤需要交代;每一段都要有总起有概括,像是花园的指路牌,让读者不至于晕头转向;不设弯路,反复推敲逻辑关系,能用一层逻辑说清的绝不用两层,能用简单故事说明