读完此文,颇觉收益匪浅,虽不能有幸身在有如此良好culture的实验室,但文中所提及的诸多习惯以及研究方法,却也是通过个人努力可以完成。转载此文于此,希望对各位正在读PhD以及将要读PhD的同学能有所帮助吧。
此文的英文原文可以从以下链接找到:
http://www.cs.umass.edu/~emery/misc/how-to.pdf
中文翻译来源于互联网,本人按照英文原文重新做了排版并做了一定校对。
**************************************************************
作者:人工智能实验室全体研究生
编辑:David Chapman
版本:1.3
时间:1988年9月
译者:柳泉波 北京师范大学信息学院2000级博士生
摘要
本文旨在解释如何做研究。我们提供的这些建议,希望对于读者在掌握一定的研究技巧(阅读、写作和程序设计)以及理解并享受研究过程本身(方法、课题、选导师和情绪管理)方面能够有所启发。
Copyright 1987, 1988 作者版权所有
人工智能实验室的Working Papers用于内部交流,包含的信息由于过于初步或者过于详细而无法发表。不像正式论文那样,会列出所有的参考文献。
目录
1. 简介
2. AI领域文献阅读
3. 构建你的学术关系网
4. 到其他领域进行学习
5. 科研笔记
6. 写作
7. 演讲
8. 程序设计
9. 导师
10. 毕业论文
11. 研究方法论
12. 情感因素
1. 简介
本文是什么? 并没有什么神丹妙药可以保证在研究中取得成功,本文只是列举了一些可能会有所帮助的非正式意见。
为谁而写?本文档主要是为MIT人工智能实验室新入学的研究生而写,但对于其他机构的人工智能研究者也很有价值。即使不是人工智能领域的研究者,也可以从中发现对自己有价值的部分。
如何有效利用本文? 要精读完本文,太长了一些,最好是采用浏览的方式。很多人觉得下面的方法很有效:先快速通读一遍,然后选取其中与自己当前研究项目有关的部分仔细研究。
本文被粗略地分为两部分。第一部分涉及研究者所需具备的各种技能:阅读、写作、程序设计等等。第二部分讨论研究过程本身:研究究竟是怎么回事、如何做研究、如何选题和选导师、如何考虑研究中的情感因素。很多读者反映,从长远看,第二部分比第一部分更有价值,也更让人感兴趣。
全文的大体结构如下:
2. AI领域文献阅读
很多研究人员都花超过一半的时间阅读文献。比起自己一个人埋头苦干,从别人的工作中你可以更快地学到很多东西。本节主要论述的是AI领域的阅读,其他相关主题的阅读方法将在第4小节进行论述。
阅读文献,始于今日。一旦你开始(毕业)论文写作,就没有多少时间了,那时的阅读主要集中于论文主题相关的文献。在研究生的头两年,大部分的时间要用于做课程作业和打基础。此时,阅读课本和出版的期刊文章就可以了。(以后,你读的也许大部分就是论文草稿,参看第3小节)。
在本领域打下坚实的基础所需要的阅读量,是令人望而却步的。但由于AI仍旧算得上是一个小研究领域,因而你在几年的时间内通读本领域已出版的海量论文中最本质的那部分仍旧是行得通的。我们要首先找出那些最本质的论文。这个时候一些参考书目也许会有用:例如研究生课程表。其他学校研究生录取程序的建议阅读列表(尤其是斯坦福大学的)也十分有用,这些都可以开拓你的眼界。如果你对AI的某个子领域感兴趣,向该领域的高年级研究生请教本领域最重要的十篇论文是什么,如果可以,借过来复印。最近,出现了很多精心编辑的有关某个子领域的论文集,尤其是 Morgan-Kauffman出版的。
在AI实验室有三种内部出版物系列:Working Papers,Memos和Technical Reports,正式的程度依次递减(译者注:原文是The AI lab has three internal publication series, the Working Papers, Memos, and Technical Reports, in increasing order of formality,也许有误译,但从前后文看的话是Working Papers > Memos > Technical Reports),它们在八层休息室的书架上可以找到。过去浏览一下最近几年的出版物,并将那些非常感兴趣的复制下来。这么做不仅是由于其中很多都是意义重大的论文,更是因为这些论文对于了解实验室成员目前的工作进展也是很重要。
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica}有关AI的期刊有很多,幸运的是,只有一部分是值得看的。最核心的期刊是Artificial Intelligence,也有写作"the Journal of Artificial Intelligence "或者"AIJ"的。AI领域真正具备价值的论文最终都会投往AIJ,因此值得浏览每一年每一期的AIJ;但是该期刊也有很多论文让人心烦。Computational Intelligence是另外一本值得一看的期刊。Cognitive Science也出版很多意义重大的AI论文。Machine Learning是机器学习领域最重要的资源。IEEE PAMI(Pattern Analysis and Machine Intelligence)是最好的有关视觉的期刊,每期都有两三篇有价值的论文。International Journal of Computer Vision(IJCV)是最新创办的,到目前为止还是有价值的。Robotics Research的文章主要是关于动力学的,有时候也有划时代的智能机器人论文。IEEE Robotics and Automation偶尔有好文章。
每年都应该去所在学校的计算机科学图书馆(在MIT的Tech Square的一层),翻阅其他院校出版的AI技术报告,并选出自己感兴趣的仔细加以阅读。
阅读论文是需要练习的技能。不可能完整地阅读所有的论文。阅读论文可分为三个阶段:第一阶段是看论文中是否有感兴趣的东西。AI论文含有摘要,其中可能有内容的介绍,但是也有可能没有或者总结得不好,因此需要你跳读,这看一点那看一点,了解作者究竟做了些什么。内容目录(the table of contents)、结论部分(conclusion)和简介(introduction)是三个重点。如果这些方法都不行,就只好顺序快速浏览了。一旦搞清楚了论文的大概和创新点,就可以决定是否需要进行第二阶段了。在第二阶段,要找出论文真正具有内容的部分。很多15页的论文可以重写为一页左右的篇幅;因此需要你寻找那些真正激动人心的地方,这经常隐藏于某个地方。论文作者从其工作中所发现的感兴趣的地方,未必是你感兴趣的,反之亦然。最后,如果觉得该论文确实有价值,返回去通篇精读。
读论文时要牢记一个问题,“我应该如何利用该论文?”“真的像作者宣称的那样么?”“如果……会发生什么?”。理解论文得到了什么结论并不等同于理解了该论文。理解论文,就要了解论文的目的,作者所作的选择(很多都是隐含的),假设和形式化是否可行,论文指出了怎样的方向,论文所涉及领域都有哪些问题,作者的研究中持续出现的难点模式是什么,论文所表达的策略观点是什么,诸如此类。
将阅读与程序设计联系在一起是很有帮助的。如果你对某个领域感兴趣,在阅读了一些论文后,试试实现论文中所描述的程序的“玩具”版本。这无疑会加深理解。 可悲的是,很多AI实验室天生就是孤僻的,里面的成员主要阅读和引用自己学校实验室的工作。要知道,其他的机构具有不同的思考问题的方式,值得去阅读,严肃对待,并引用它们的工作,即使你认为自己明晓他们的错误所在。
经常会有人递给你一本书或者一篇论文并告诉你应该读读,因为其中有很闪光的地方且/或可以应用到你的研究工作中。但等你阅读完了,你发现没什么特别闪光的地方,仅仅是勉强可用而已。于是,困惑就来了,“我哪不对啊?我漏掉什么了吗?”。实际上,这是因为你的朋友在阅读书或论文时,在头脑中早已形成的一些想法的催化下,看出了其中对你的研究课题有价值的地方。
3. 构建你的学术关系网
在一两年的时间里,你会对自己准备从事的子领域已经有了一些想法。此时——或者再早一点——加入私人paper传阅网络(Secret Paper Passing Network)是很重要的。这个非正式的组织才是AI领域真正在做什么的反映。通常而言,一些牛人可以在一些比较前沿的工作最终会变成正式的论文发表之前一年就了解到这方面的工作。
那么牛人们是如何知道这些新思路的?也许是听自于某次会议,但是最有可能的是来自于私人paper传阅网络。下面是该网络工作的大致情况。Jo Cool有了一个好想法。她将尚不完整的实现与其他一些工作融合在一起,写了一份草稿论文。她想知道这个想法究竟怎么样,因此她将论文的拷贝发送给十位朋友并请他们进行评论。朋友们觉得这个想法很棒,同时也指出了其中的错误之处,然后这些朋友又把论文拷贝给他们各自的一些朋友,如此继续。几个月后,Jo对之进行了大量修订,并送交给AAAI。六个月后,该论文以五页的篇幅正式发表(这是AAAI会议录允许的篇幅)。最后Jo开始整理相关的程序,并写了一个更长的论文(基于在AAAI发表论文得到的反馈)。然后送交给AI期刊。AI期刊要花大约两年的时间,对论文评审,包括作者对论文修改所花费的时间,以及相应的出版延迟。因此,理想情况下,Jo的思想最终发表在期刊上需要大约三年时间。所以牛人很少能从本领域出版的期刊文章中学到什么东西,来得太迟了。
你,也可以成为这样一个牛人。下面是建立学术关系网的一些诀窍:
4. 到其他领域进行学习
曾经,你可以在对AI领域之外的事情一无所知情况下仍做好你的研究,并且似乎有些人现在也仍然这么认为。但是时代在变,现在对于优秀的研究者,我们往往要求其对几个相关的领域都有深入的了解了解。这是由于计算本身并不能告诉我们智能是什么,但是其他的领域,例如心理学的实验数据却可以。更重要的是,其他的研究领域给了你思考的新工具和看待智能的新方法。学习其他领域的另外一个原因是AI本身并没有评价研究价值的标准,全是借自于其他领域。数学将定理作为进展;工程学会问某个对象是否工作可靠;心理学要求可重复的试验;哲学有严格的思辨;等等。所有这些标准有时都在AI中起作用,熟悉这些标准有助于你评价他人的工作,深入自己的工作以及保护自己的工作。经过六年左右的课程方可获得MIT的PhD,你可以在一到两个非AI领域里打下坚实的基础,在更多的领域内具有阅读水平,并且必须对大部分内容具有一定程度的理解。下面是如何学习自己所知甚少领域的一些方法:
下面是一些需要了解的与AI有关的科目:
看起来要学习太多的东西,是不是?确实如此。要小心一个陷阱:认为对于所有的东西,“只有我对这个东西了解的更多,这个问题才会变得容易”。要知道,与之相关需要进一步了解的东西是永远没完的,但最终你还是要坐下来,解决问题的。
5. 科研笔记
很多科学家都有做科研笔记的习惯,你也应该这样。可能你曾被告知从五年级开始,对于每一门科学课都应该记笔记,确实如此。不同的记笔记方式适用于不同的人,可以做在线笔记,记在笔记本或者便笺簿上。可能需要在实验室有一个,家里还有一个。
在笔记本上记录下自己的想法。只有你自己才会去读它,因此可以记得比较随意。记录下自己的思索,当前工作中遇到的问题,可能的解决方案。对将来可能用到的参考文献作小结。
定期翻阅你自己的笔记本。有些人会做月度总结,方便将来的引用。
笔记中记录中的东西经常可以作为一篇论文的骨干。这会使生活变得轻松些。相反,你会发现写粗略的论文——标题,摘要,分标题,以及正文的片段——是一种记录自己当前工作的有效方式,即使你并不准备把它变成一篇真正的论文。(过一段时间你或许会改变想法)。
你或许会发现Vera Johnson-Steiner的书《Notebooks of the Mind》很有用,该书并不是描写如何做笔记的文献,它描述了随着思想片断的积累,创新思想是如何出现的。
6. 写作
写作的理由有很多:
任何事情,要做就要做到最好:
如果你等做完所有的工作后才开始写作,会失去很多。一旦开始了某个科研项目,养成下述的习惯会对你很有帮助:每几个月一次,写一篇关于当前工作进展和学习所得的非正式论文。可以从你的研究笔记中的记载开始,花两天的时间来写这篇的非正式论文——如果你花的时间更长,说明你是一个完美主义者。因为这样的论文不是为了发表,而只是为了将论文与你的朋友分享。记得在封面上写上“DRAFT—NOT FOR CITATION”。将论文复制数十份,送给那些感兴趣的人(一定要包括你的导师!)。这样做与写正式论文一样可以给你带来好处(评论,理清思路,写作练习等等),并且这样做并不需要花费那么多的时间精力。通常情况下,如果你的研究进展顺利,这些非正式论文以后就可以作为更正式论文的骨干内容,也就是从AI实验室的Working Paper成为一篇期刊文章。
一旦你成为私人paper传阅网(Secret Paper Passing Network)的成员,会有很多人给你寄论文拷贝要求评论。获得他人对自己的论文的评论是很有价值的。而你评论的论文越多,你获得支持就越多,也会收到更多人对你论文的评论。此外,学习评价别人的论文也有助你的提高你的写作技巧。
事实上,为论文写有价值的评论也是一门艺术:
评论有很多种。有对表达的评论,有对内容的评论。对表达的评论也可以很不同,可以是校对打字稿,标点,拼写错误,字词丢失等。应该学一些标准的编辑符号。你还可以校正语法,修辞,以及混乱不清楚的段落。通常人们会持续地犯同一语法错误,因此需要花时间明确地指出。另外还有对组织结构的评论:不同程度(子句,句子,段落,小节乃至一章)的次序混乱,冗余,无关的内容,以及丢失论点。
对内容进行的评论往往更难表述清楚。你可以建议作者扩展自己的想法,考虑某个问题、错误、潜在的问题,或者表达赞美等。在这种情况下“你应该先读一下文献A因为理由B”是一种有效的评论。
当被要求对论文作评论时,你首先想弄清楚哪种评论更有用。对于早期的论文草稿,需要你主要对内容和论文的组织结构作评论;对于最终的草稿,需要你主要评论表达的细节。注意,作为一种礼貌,在要求别人评论之前,应首先用拼写检查器对自己的论文进行检查。
你无须接受所有的意见,但是必须都认真对待。将论文的部分内容裁掉是挺令人痛心的,但往往也提高了论文的水平。你经常会发现某个意见确实指出了问题,但是解决方法你觉得不可接受,那么就去寻找第三条道路。
要多发表论文,这其实比想象中的容易。基本上,AI出版物评审者评审论文的标准是:(a)有新意;(b)在某些方面,符合标准。看看IJCAI的会议录,你会发现论文录取的标准相当低。这种情况由于评审过程本身固有的随机性而变得更糟糕了。所以一个发表论文的诀窍之一就是不停地试。以下还有几条可行的建议:
就像其它的科研活动一样,论文写作所花的时间总是比期望的要高。论文的发表在耗费时间这个问题上则更严重。当你完成了一篇论文,投出去,等待发表。数月后,论文以及评论被返回来。你不得不对论文进行修改。然后又是几个月,才返回对你的修改的确认。如果你同时发表了该论文的不同形式,如有一篇短的投会议,一篇长的投期刊,这样的过程将反复数个回合。结果有可能是当你已经厌倦了,研究主题也已经令人生厌后数年,你仍然在修改那篇论文。这启示我们:不要去做那些你压根儿就不感兴趣的研究,因为在出版过程中你要经常再去碰它:这样给你带来的痛苦会远远超出你原先预期的。
7. 演讲
与同行交流的另外一种方式就是演讲,上面提到的有关论文写作的问题,同样适用于演讲。站在听众面前从容演讲而不会使听众恹恹欲睡的能力,对于你成功地获得别人的承认、尊敬乃至最终的求职都是很关键的。演讲的能力不是天生的——你也许在开始你研究生生涯的时候是一个糟糕的演讲者,但只要你不断地练习、练习、练习,通过在众人面前演讲的方式,你最终会变成这方面的高手。
以下是一些学习和练习讲演的方法:
8. 程序设计
并不是所有的AI论文都包含代码,而且本领域的很多重量级人物从来没有写过一个重要的程序。但是为了初步的近似AI工作原理,你必须会程序设计。不仅仅是很多AI研究工作需要编写代码,而且学会程序设计能让你拥有一种直觉来判断什么样的方法在计算上是可行的,这也是AI对认知科学贡献的主要来源。
在MIT,严格上说上所有的AI程序设计都使用Common Lisp。如果还不知道,赶快学吧。当然,学习一门语言并不能等同于学习程序设计;AI程序设计包含的一些技术与那些在系统程序设计或者应用程序设计中用到的大不相同。开始学的时候,可以先看看Abelson和Sussman的《Structure and Interpretation of Computer Programs》,并做一些练习。这本书与AI程序设计本质上并不相干,但是包含了一些相同的技术。然后读Winston和Horn写的Lisp书第三版,书里有很多优雅的AI程序。最后,进行实际的程序设计,而不是阅读,才是最好的学习程序的方法。
学习Lisp程序设计有很多传统。有些人习惯一起写代码,这取决于个性。还有的人寻找机会直接向有经验的程序员学习,或者请他对你的代码进行评价。阅读别人的代码也是很有效的方法。如果可以向高年级同学要他们的源代码。他们可能会有些抱怨,说自己的编程风格差极了,程序实际上并不能工作云云。不管怎么样,最后你获得了源代码。然后你要仔细地通篇阅读,这很费时间。通常阅读并完全理解别人代码所花的时间与你自己编程完成的时间是一样多的,因此要计划好在你的头一个或者头两个学期用数周的时间去阅读别人的代码。你将从中学到很多以前不曾想到在课本中也没有的技巧。如果你读到了大段大段不可理解没有注释的程序,你就会明白不应该写怎样的代码了。
在软件工程课里学习到的那些知识在AI程序设计中依然有用。要给代码加注释。使用正确的数据抽象。将图和你的代码隔离开,由于你使用的语言基本上是Common Lisp,因此可移植性很好。诸如此类,还有很多。
经过头几年的学习后,应该写一些自己的标准AI模块,如:
任何你感兴趣的东西都可以尝试用程序实现。你可以抓住问题的实质,在几天之内完成一个功能版本。修改已有的程序是另外一种有效的方法,前提是你已经写过这样的东西,并且确实了解其工作原理,优缺点以及效率等问题。
不象其他通常的程序员,AI程序员之间很少相互借阅代码(演示代码例外)。这部分由于AI程序很少有真正起作用的。(很多著名的AI程序只在作者论文所提到的那三个例子上起作用,虽然最近这种情况已经有所改善)。另外一个原因是AI程序通常是匆忙凑成,并没有考虑一般化的问题。使用Foobar的“标准”规则解释器,开始时很有效,不久就会发现缺少一些你需要的功能,或者不够有效率。虽然可以对代码进行修改满足自己的需要,但记住理解别人的代码是很耗时的,有时候还不如自己写一个。有时候构建一个标准包的工作本身就可以成为一篇论文。
像论文一样,程序也有可能过于追求完美了。不停重写代码以求完美,最大化的抽象所有的东西,编写宏和库,与操作系统内核打交道,这都使得很多人偏离了自己的论文,偏离了自己的领域。(从另外一方面,或许这正是你需要将来谋生的手段)。
9. 导师
在MIT,有两种类型的导师,教学导师和论文导师。
教学导师的工作比较简单。每一位研究生都被分配了系里的一位老师作为教学导师。教学导师的作用是作为系方代表,告诉你对你的正式要求是什么,如果你的进度慢了敦促你,批准你的课程计划等。如果一切顺利的话,你每年只需要见教学导师两次,在注册日那天。从另一方面讲,如果你遇到了困难,教学导师替你向系里反映或者提供指导。
论文导师是监督你研究的人。选择论文导师是你读研期间最重要的选择,比选题都重要得多。从更广的意义上讲,AI是通过师傅带徒弟的方式学习的。有很多领域的技术方面或者研究过程方面的非正式知识,只能从导师那里学到,在任何教科书上都找不到。
很多AI教员都是行为古怪的人,毕业生也如此。因此导师与研究生的关系是因人而异的,你的个人特点必须与导师的配合得很好,这样你们才能合作成功。
不同的导师具有不同的风格。以下是一些需要考虑的因素:
上述这些因素,不同学校的情况很不相同。与大部分学校相比,MIT提供了多得多的自由。
找论文导师是你研究生一年级最主要的任务。研一结束时,或者研二学年开始阶段,你必须有一个论文导师。下面是一些诀窍:
作为一门学科,AI不同寻常的一点就是是很多有用的工作是由研究生完成的,而不是那些已经取得博士学位的人,他们往往忙着做项目管理。这带来几个后果:一是某个教师的声望以及是否会最终获得终身聘用,在很大程度上取决于学生的工作。在这种情况下,教授往往有很强烈的动机吸引最优秀的学生为自己工作,并给与有效的指导和足够的支持。另外一个后果是,由于大部分学生的论文方向是由导师形成的,因此整个领域的方向和发展很大程度上取决于导师选择什么样的研究生。
当确定了导师并清楚了自己对导师的要求后,要确保让导师知道。你应该对你导师说"我想与你共事"、"请给我建议一个相对比较小领域的项目"或者"我已经找到我想做的东西了,我想当我完成我的工作的时候你可以为我签字"。不要由于交流不好,浪费时间于自己并不想做的项目上。
不要完全依赖你的导师,要建立自己的网络。找一些能定期评审你的工作的人是很重要的,因为研究时很容易误入歧途(你的导师也经常会),也许你认为你自己的工作正在进展但事实上没有,而这就需要经常以一个旁观者的角度来审视你自己的研究。这个网络中的人可以包括自己实验室或者外单位的研究生和老师。
在与其他学生、老师甚至自己的导师的关系中,很可能会碰到种族主义者,性别歧视,同性恋或者其他令人尴尬的事情。如果你不幸碰到了,去寻求帮助。MIT的ODSA出版了一本叫做“STOP Harrassment”的小册子,里面有很多建议。《Computer Science Women's Report》,可在LCS文档室找到,也与之相关。
实验室中有些同学只是名义上由导师指导。这对于那些独立性很强的人来说很好。这样做有一个好处就是你只需要处理你自己的神经质,而非同时处理你导师的。但有时这并不是个好主意,除非你业已完成了至少一个受指导的项目并且你能确定自己拥有了可靠的支持网络,从而有能力脱离导师独自行动
10. 毕业论文
做毕业论文将占据研究生生活的大部分时间。这些时间主要会花在做研究,包括选题上,这些比实际的写作耗时更多。
硕士论文的目的是为做博士论文练兵。博士水平的研究如果没有准备好的话,是很难进行的。硕士论文最本质的要求是展示自己的掌握程度:你已经完全理解了本领域最新进展,并具备相应的操作水平。并不需要你对本领域的最新知识有所拓展,也不要求发表你的论文。然而我们实验室的论文总是比较大气的,因此很多硕士论文实际上都对本领域的发展作出了显著的贡献,大约有一半都出版了。这并不一定是好事情。很多人精力都集中于硕士的工作,所以MIT有这样的名声:硕士论文的质量往往比博士论文高。这有悖于硕士工作本来是为博士研究作准备的原有目的。另外一个因素是所做研究要对领域有所贡献,至少需要两年,这使得研究生学习时间之长令人难以忍受。现在或许你感受不到匆忙,但当你已经在实验室呆了七年后,你肯定迫不及待地想逃出去。硕士从入学到毕业平均时间是两年半,但是,计算机系强烈鼓励学生提前毕业。如果某个硕士生的题目过于庞大,可将之分解,一部分来做硕士论文,另一部分给博士生作博士论文。
想要了解硕士论文研究是什么样的,读几本最新的硕士论文。记住比较好的论文是那些出版的或者成为技术报告的,因为这标志着该论文被认为是扩展了领域的最新知识——换句话说,他们的论文远远超出了硕士论文的水平。还要读一些通过的但是没有出版的论文,所有通过的论文都可以在MIT图书馆中找到。博士论文必须对最新知识有所拓展,博士论文的研究必须具备可出版的质量。MIT的泱泱气质又表现出来了,很多博士论文在几年内都是某个子领域的权威工作。对于MIT的博士论文来说,开创一个新领域,或者提出并解决一个新问题,并不是什么了不起的事情。虽然,这并不是必需的。
一般来说,需要两到三年的时间来做博士论文。很多人花一到两年的时间跟硕士生活说再见,以及选题。这段时间可以去尝试一些别的事情,例如做助教或者在某个非AI领域打下坚实的基础或者组织个乐队。博士论文的实际写作时间大约是一年,而且一个确定的经验就是这篇论文会再拖上差不多一年直到你对它反胃为止(译者注:也许是修改时间往往也需要一年)
而选题是论文工作中最重要最困难的部分:
选好论文题目后,即使它有点空泛,你也必须能够回答下列问题:论文的论点是什么?你想说明什么?你必须有一句,一段,五分钟的答案。如果你不知道自己在干什么,别人也不会严肃对待你的选题,更糟糕的是,你会陷在选题——再选题的圈子里而不能自拔。
开始作论文研究后,一定要能够用简单的语言解释每一部分的理论和实现是如何为目标服务的。
记住,一旦选好了题目,你必须与导师就论文完成的标准达成清晰的一致。如果你和他对论文具有不同的期望,最后你肯定死得很惨。必须定义好“完成测试”的标准,像一系列的能够证明你的理论和程序的例子。这是必须做的,即是你的导师并不这么要求。如果环境发生了根本的变化,测试也要随之改变。
首先尝试论文问题的简化版本。用实例检验。在形成理论抽象之前,要完整的探究具有代表性的例子。
做论文的过程中,有很多浪费时间的方式。要避免下列活动(除非确实跟论文相关):语言表达的设计;用户接口或者图形接口上过分讲究;发明新的形式化方法;过分优化代码;创建工具;官僚作风。任何与你的论文不是很相关的工作要尽量减少。一种众所周知的现象“论文逃避”,就是你突然发现改正某个操作系统的BUG是非常吸引人也很重要的工作。此时你总是自觉不自觉的偏离了论文的工作。要记住自己应该做些什么。(本文对于部分作者来说就属于论文逃避现象)。
11. 研究方法论
[本部分内容比较少,待补充]
研究方法论定义了什么是科研活动,如何开展研究,如何衡量研究的进展,以及什么叫做成功。AI的研究方法学是个大杂烩。不同的方法论定义了不同的研究学派。
方法论是工具。使用它们,不要让它们来使用你。不要把自己陷于口号之中:“AI研究需要牢靠的基础”,“哲学家只会高谈阔论,人工智能则需要拼搏”,“在问为什么之前,先搞清楚计算的是什么”。实际上,要在人工智能领域取得成功,你必须擅长各种技术方法,还必须具备怀疑的态度。例如,你必须能够证明定理,同时你还必须思考该定理是否说明了什么。
很多优秀的AI工作都是巧妙地在几种方法论中取得平衡。例如,你必须选择一条在太多理论(可能与任何实际问题都无关)和繁琐的实现(把实际的解决方法表达得语无伦次)之间的最佳路线。你经常会面临区分“干净”和“肮脏”的研究决策。你应该花时间将问题在某种程度上形式化吗?还是保持问题的原始状态,此时虽然结构不良但更接近实际?采用前一种方法(如果可行的话)会得到清晰确定的结果,但这一过程往往是繁琐的,或者至少不会直接解决问题。后者则有陷入各种处理的漩涡之中的危险。任何工作,任何人,必须作出明智的平衡。
有些工作像科学。你观察人们是怎样学习算术的,大脑是如何工作的,袋鼠是如何跳的,然后搞清楚原理,形成可检验的理论。有些工作像工程:努力创建一个更好的问题解决器或者算法。有些工作像数学:跟形式化打交道,要理解属性,给出证明。有些工作是实例驱动的,目标是解释特定的现象。最好的工作是以上几种的结合。
方法论具有社会性,看看别人是如何攻克类似难题的,向别人请教他们是如何处理某种特殊情况的。
12. 情感因素
研究是艰苦的工作,很容易对之失去兴趣。一个令人尴尬的事实是在本实验室读博的学生只有很少比例最后获得学位。有些人离开是因为可以在产业界赚到更多的钱,或者由于个人的原因;最主要的原因则是由于论文。本节的目标是解释这种情况发生的原因,并给出一些有益的建议。
所有的研究都包含风险。如果你的项目不容许失败,那是开发,不是研究。面对项目失败时是多么艰难啊,很容易将你负责的项目失败解释为你自己的失败。虽然,这实际上也证明了你有勇气向困难挑战。
在人工智能领域很少有人总是一直成功。实际上,失败是经常的。你会发现他们经常是同时做几个项目,只有一些是成功的。最终成功的项目也许反复失败过多次。经历过很多由于方法错误的失败之后,才取得最终的成功。
在你以后的工作生涯中,会经历很多失败。但是每一个失败的项目都代表了你的工作,很多思想,思考方式,甚至编写的代码,在若干年后你发现可用于另外一个完全不同的项目。这种效果只有在你积累了相当程度的失败之后才会显现出来。因此要有最初的失败以后将会起作用的信念。
研究所花费的实际时间往往比计划的要多得多。一个有用的小技巧是给每个子任务分配三倍于预期的时间(有些人加了一句:“……,即使考虑了这条技巧(所花费的时间也会比这更多)”)。
成功的关键在于使得研究成为你日常生活的一部分。很多突破和灵感都发生在你散步时。如果无时无刻地都潜意识的思考研究,就会发现思如泉涌。成功的AI研究者,坚持的作用一般大于天资。“尝试”也是很重要的,也就是区分浅薄的和重要的思路的能力。
你会发现自己成功的比例是很随机的。有时候,一个星期就做完了以前需要三个月才能完成的工作。这是令人欣喜的,使得你更愿意在本领域工作下去。其他一些时候,你完全陷在那里,感觉什么也做不了。这种情况很难处理。你会觉得自己永远不会做出任何有价值的东西了,或者觉得自己不再具备研究者的素质了。这些感觉几乎肯定是错误的。如果你是MIT录取的学生,你就是绝对合格的。你需要的是暂停一下,对糟糕的结果保持高度的容忍。
通过定期设置中短期的目标,例如每周的或者每月的,你有很多工作要做。增加达到这些目标的可能性有两种方法,你可以把目标记在笔记本中或者把你的目标告诉另外一个人。你可以与某个朋友商定交换每周的目标并且比赛看谁最终实现了自己的目标。或者告诉你的导师。
有时你会完全陷在那里,类似于写作过程的思路阻塞,这有很多可能的原因,却并无一定的解决方法。
很多人发现个人生活和做研究的能力是会相互影响的。对于有些人来说,当生活中的其他事情都很糟糕时工作可以是避难所。而有些人发现,如果自己的生活陷入混乱时就无法正常工作了。如果你觉得自己突然卡住了,去看看心理医生。一份非正式的调查表明,我们实验室大约有一半的学生在读研期间看过一次心理医生
一个使得人工智能比其他学科都难的因素是在这个领域中没有被确定的标准来衡量你的工作。在数学中,如果你证明了某个定理,你就确实做了某些事情;如果该定理别人都证不出来,那么你的工作是令人兴奋的。人工智能从相关的学科中借来了一些标准,还有自己的一些标准。不同的实践者,子领域和学校会强调不同的标准。MIT比其他的学校更强调实现的质量,但是实验室内部也存在很大的不同。这样的一个后果就是你不可能令所有的人都满意。另外一个后果就是你无法确定自己是否取得了进展,这会让你觉得很不安全。你会经常发现你对你工作的评价会突然从“我所见过最伟大的”到“空虚,多余,不明所以”...这些都是很正常的现象,坚持从别人那里获得反馈并让你的心态回归正轨。
有几种方法有助于克服研究过程中的不安全感。被承认的感觉:包括毕业论文的接受,发表论文等。更重要的是,与尽可能多的人交流你的思路,并听取反馈。首先,他们能贡献有用的思路;其次,肯定有一些人会喜欢你的工作,这会使得你感觉不错。由于评价进展的标准是如此不确定,你很容易进入盲目的深渊,如果你不与其他的研究者充分的交流的话。特别当你感觉不太好时,应该就你的工作进行交流。此时,获得反馈和支持是非常重要的。
你常常会看不到自己的贡献。你也许总是想:“如果我能做,肯定是微不足道的。我的所有思想都太明显了”。实际上,当你回头看时,这些虽然对你是很明显的,对别人并不一定是明显的。将你的工作解释给陌生人听,你会发现现在对你来说是平淡无奇的东西原来那么难!经常记得把你的工作写下来。
一项对诺贝尔获奖者实施的有关怀疑自己问题(在你研究的过程中,你一直觉得自己是在做震惊世界的工作吗?)的调查表明:获奖者们回答他们经常怀疑自己工作的价值和正确性,都经历过觉得自己的工作是无关的,太明显了或者是错误的时期。任何科学过程的常见和重要的部分就是经常严格的评价,很多时候不能确定工作的价值也是科学过程不可避免的一部分。
有些研究者发现与别人协作比单打独斗工作效果更好。虽然人工智能研究经常是相当个人主义的,但是也有一部分人一起工作,创建系统,联合发表论文。我们实验室至少已经有一个联合做毕业论文的先例。缺点是很难与协作者区分对论文的贡献。与实验室之外的人合作,例如暑期工作时,问题就会少一些。
很多来到MIT AI实验室的学生都是以前所在学校最厉害的人。来到这里之后,会发现很多更聪明的人。这对于很多一年级左右学生的自尊形成了打击。但周围都是聪明人也有一个好处:在你把自己不怎么样的(但自己又没有觉察到)想法发表之前就被其他人给温和地反驳了。更现实的讲,现实世界中可没有这么多聪明人。因此到外面找一份顾问的工作有利于保持心理平衡。首先,有人会为你的才能付费,这说明你确实有些东西。其次,你发现他们确实太需要你的帮助了,工作良好带来了满足感。
从另一方面说,实验室的每一个学生都是从四百多个申请者挑选出来的,因此我们很多学生都很自大。很容易认为只有我才能解决这个问题。这并没什么错,而且有助于推进领域的发展。潜在的问题是你会发现所有的问题都比你想象的要复杂得多,研究花的时间比原先计划的多得多,完全依靠自己还做不了。这些都使得我们中的很多人陷入了严重的自信危机。你必须面对一个事实:你所做的只能对某个子领域的一小部分有所贡献,你的论文也不可能解决一个重大的问题。这需要激烈的自我重新评价,充满了痛苦,有时候需要一年左右的时间才能完成。但这一切都是值得的,不自视过高有助于以让你轻松地作研究(taking yourself less seriouslyallows you to approach research in a spirit of play)。
至少有两个情感上的因素人们能够忍受研究的痛苦。一个是动力,一种解决问题的激情。你做该研究是因为离开它就没法活了,很多伟大的工作都是这样做出来的。虽然这样也有油尽灯枯的可能。另外一个原因是好的研究是充满乐趣的。在大部分时间里,研究是令人痛苦的,但是如果问题恰好适合你,你可以玩一样的解决它,享受整个过程。当然二者并非不可兼容的,但需要有一个权衡。
要想了解研究是怎么样的,遭到怀疑的时候应该如何安慰自己,读一些当代人的自传会有些作用。Gregory Bateson的《Advice to a Young Scientist》, Freeman Dyson的《Disturbing the Universe》, Richard Feynmann的《Surely You Are Joking, Mr. Feynmann!》, George Hardy的《A Mathematician's Apology》, 和Jim Watson的《The Double Helix》都是不错的选择。
当你完成了一个项目——例如论文——一两个月后,你可能会觉得这一切是那么不值。这种后冲效果是由于长时间被压抑在该问题上,而且完成之后回头看的话,往往会觉得本可以做得更好所致的。这种情况很正常,没什么需要担心的。等再过了一两年,回头看看,你会觉得:嘿,真棒!多棒的工作!
后记
本文包含的思想,文本以及评论来自于Phil Agre, Jonathan Amsterdam, Jeff Anton, Alan Bawden, Danny Bobrow, Kaaren Bock, Jennifer Brooks, Rod Brooks, David Chapman, Jim Davis, Bruce Donald, Ken Forbus, Eric Grimson, Ken Haase, Dan Huttenlocher, Leslie Kaelbling, Mike Lowry, Patrick Sobalvarro, Jeff Shrager, Daniel Weise, and Ramin Zabih。我们要感谢那些对本文作出贡献的人(对我们的论文作出贡献的人,顺便一并致谢),特别是我们的导师。
上面所列举的一些思想来自于John Backus的《On Being a Researcher》和Alan Bundy, Ben du Boulay, Jim Howe和Gordon Plotkin的《How to Get a PhD in AI》。