Linguista

如何做研究 「麻省理工学院人工智能实验室」

麻省理工学院人工智能实验室

AI 工作论文 3161988 年 10 月


麻省理工学院人工智能实验室如何做研究

MIT AI 实验室在读、毕业及名誉研究生共同编写 David Chapman 编辑 1988 年 9 月 第 1.3 版

文章链接:麻省理工学院人工智能实验室如何做研究


摘 要

本文的主旨在于想说明如何做研究。我们给出一些启发式方法,可能有助于获得做研究所必须的技能(阅读,写作,编程)和理解并享受研究过程本身所需的技能(方法论,选择课题和导师,心理调整)。

版权归作者所有 © 1987,1988

AI 实验室的工作论文只在内部流通,它们可能包含了一些很粗浅或很琐碎的信息,不适合正式出版。同时这些论文也不能在文献中被当作参考资料引用。


目 录

  1. 引言
  2. 阅读
  3. 入围
  4. 博览
  5. 笔记
  6. 写作
  7. 演讲
  8. 编程
  9. 导师
  10. 论文
  11. 方法学
  12. 心理
  13. 尾注

1. 引言

本文论述什么?我们至今还没有发现能确保研究成功的秘诀。这篇文章收集了许多非正式的行之有效的建议,它们可能会对你有帮助。

本文为谁而作?这篇论文是为MIT 的AI 实验室研究生新生而作的。但它可能对其他学院做AI 研究的人也有用,甚至其他领域的人也会发现其中有价值的东西。

怎样阅读本文?如果一口气将它读完,你会觉得它太长了。所以最好采用浏览的方式。大多数人会发现先看一下大概,然后再回过头来查阅一下与你当前的研究问题有关的部分是一种非常好的方法。

本文在内容上大致分为两部分。前面几节讨论在做研究时所需的一些具体的技能:如阅读、写作、编程等等。接下来讨论研究的过程:研究过程是怎样的,如何来做研究,怎样选择导师和课题,如何调整好心理来处理研究过程中碰到的问题。大多数读者发现从长远来看后面的章节比前面的更有用、更吸引人。

本文还有待进一步完善,我们欢迎您的贡献和评论。有些章节很不完整(括号中的注解和楷体字标明了部分主要的不完整性)。我们感谢你的贡献,请将你的想法和评论发送至 Zvona@ai.ai.mit.edu

2. 阅读

许多研究人员有一多半的时间都花在阅读上。与从自己的工作中学习相比,从别人的工作中学习要更快一些。这一节讨论怎样阅读 AI 相关的资料。第四节说明怎样阅读其他方面的资料。

开始阅读的时间就是现在。一旦你开始认真准备自己的学位论文,你将不会有太多的时间,并且你的阅读将更加集中在一些与课题有关的资料上。在最初的两年里,你通常做一些课堂上的作业,并开始加快接触 AI 方面的知识。在这段时间,阅读教科书和杂志期刊上的文章已经足够了。(以后你会阅读一些论文草稿,见第三节)

为了在 AI 领域打下坚实的基础,你必须要阅读的资料数量是多得惊人的,但因为 AI还是一个很小的领域,所以你能够花一两年的时间来阅读已经出版的大部分重要论文。找出哪些资料是值得阅读的是有一些技巧的。有些参考文献是非常有用的,比如 AI 研究生课程的教学大纲就很有用。其他大学——特别是斯坦福大学——的 AI 资格考试的阅读清单也是非常有价值的,它可以开阔你的视野。如果你对其中某个领域感兴趣,你可以求助于这个领域高年级的同学,向他打听这个领域里有哪些重要的论文,并且问问他是否愿意将这些论文借给你复印一下。最近发表了大量的 AI 子领域编辑得很出色的论文集,特别是由 Morgan-Kauffman 出版的。

AI 实验室有三个内部出版物系列,按其正式程度递增为:工作论文,备忘录和技术报告。你可以在八层活动室的书架上找到它们。翻翻过去几年里出版的论文,剔除那些看起来不太有趣的。你会发现这些论文除了很重要外,对你了解你们实验室其他人正在做的事情也是非常有意义的。

我们有大量与 AI 有关的期刊,要阅读全部这些可能要花费你毕生的时间。值得庆幸的是其中只有少数是值得一看的。有关系统构造为中心的主要期刊是《人工智能》(Artificial Intelligence),也称为《人工智能期刊》或是《AIJ》(Journal of Artificial Intelligence)。AI 领域中大多数真正重要的论文最终会出现在《AIJ》这本期刊中,所以大约每年翻一下以前几期期刊是很有必要的,当然这本期刊中有些文章确实也很乏味。《计算智能》(Computational Intelligence)是《AIJ》新的竞争者,值得一读。《认知科学》(Cognitive Science)也出版大量重要的 AI 相关论文。《机器学习》(Machine Learning)是机器学习的主要来源。《IEEE PAMI》可能是目前已出版的最好的一本视觉期刊,每期会发表两三篇很有意思的文章。《国际计算视觉期刊》(The International Journal of Computer Vision,IJCV)是一本新出版的迄今为止很引人注意的期刊。《机器人学研究》(Robotics Research)中的论文大多是关于动力学方面的,有时候也会发表一些里程碑式的人工智能机器人方面的论文。IEEE 的《机器人学与自动化》(Robotics and Automation)偶尔也会出版几篇不错的文章。

每年都值得去一趟计算机科学阅览室(MIT 的阅览室是在科技广场的一层),看一下去年其他大学的一些有价值的AI 方面的技术报告,并阅读其中感兴趣的文章。

阅读论文是一种需要练习的技能。你不可能去读完你所看到的所有论文的全文。阅读一篇论文可分为三个步骤。首先看看论文中是否有令你感兴趣的部分。AI 论文有摘要,它会告诉你论文的内容。但是有时候也不一定,所以你得随便翻翻,把论文的各处都读一下,明白作者实际上做了什么。论文的目录,结论和引言部分也是可以发现文章是否吸引人的好地方。如果所有这些方法都失败了,你可能就得在整篇论文中找了。

当你确定了论文论述的内容和论文的贡献是什么之后,你可以决定是否要进行第二个阶段阅读,即找出论文中有好东西的那部分。大多数论文可以由 15 页改写成1 页,你需要找出那有用的一页。这通常会隐藏在一些看起来不太可能的地方。作者在文中认为有意义的东西你可能不感兴趣,反之亦然。最后,如果你觉得这篇论文确实值得一读,就可以从头阅读整篇论文。

一定要带着问题来阅读论文。“我怎么使用这篇论文?”“它真的像作者所说的那样?”“如果..会如何?”。了解论文陈述的结论和读懂一篇论文是不同的。我们在理解论文时会考虑:论文的写作动机是什么?作者的选择(很多都是隐含的)是什么?论文中的假设和形式化是否现实?论文建议了哪些指导性内容?能够洞察到的问题有哪些?作者的研究计划中持续出现的难题有什么特征?论文主旨是什么等等。

把阅读和编程结合起来是一个很好的方法。如果你对某个方面感兴趣并且阅读了一些这方面的论文,试着去编一些论文中描述的小程序,这将有助于你对它有更具体的了解。

不幸的是,大多数 AI 实验室都相对独立且近亲繁殖,人们一般只阅读和引用各自院校的研究成果。其他学院的人们有着不同的思考问题方式,即使你认为他们所做的研究是有些错误的,试着去阅读、重视、并引用他们的成果也是很值得的。

经常会有人递给你一本书或者一篇文章,认为你应该读一下,因为(1)它是现有最有价值的好东西,并且(2)对你正在进行的研究也正好适用。但通常当你真正读它的时候,你将会发现它并没有像所说的那样出色,并且适用性也成了问题。这可能会让人觉得迷惑。“是我出了问题还是我没有留意到一些有价值的东西?”事实上大多数的情况是:当你的朋友阅读一本相关的书或者文章的时候,他脑海中固有的想法或多或少地会使他觉得某些东西会有助于你的课题研究。

3. 入围

最初的一两年后,你会对将要从事的那个子领域有一定的想法。这时或者更早的时候,你需要加入到非公开论文传递网(Secret Paper Passing Network)中。这个非正式的组织涉及了 AI 研究领域的所有部分。前瞻性的工作最终将形成公开发表的论文,但那是在那些睿智的人们已经了解了至少一年之后的事情了。这就意味着那些睿智的人将要领先一年的时间开始研究新的想法。睿智的人怎样发现一个新的想法呢?他们可能是在一次会议中听到,但是更可能是从非公开论文传递网中得到的。下面是一个例子。Jo Cool 发现了一个好的想法。她拼凑出一些不太成熟的方法,在做了一定的研究后完成了论文的草稿。她想知道她的想法是否有价值,于是她将论文分发给十来个朋友,请他们提意见。她的朋友觉得这想法不错,同时也会告诉Jo Cool 其中有哪些错误,并将这篇文章再分发给他们的朋友。他们的朋友又会继续分发送给自己的朋友...。Jo 花费好几个月时间来修改这篇文章,并将它投到 AAAI 会议。六个月以后,它第一次被发表成铅字,但这是只有 5 页的压缩版本(这是 AAAI 会议录所允许的)。最后 Jo 开始整理程序,在 AAAI 版及反馈意见的基础上完成了更长的修订版本,并将它投到 《AIJ》 。《AIJ》 在论文的评审、修订和发表的延迟大约会有两年的周期,所以当 Jo 的想法最终在期刊上发表已经是三年后的事了——这已经远远落在睿智的人首次发现这个想法以后了。所以睿智的人很少有从公开发表的期刊文章中学到与他们领域相关的内容,因为这些文章出现得太晚了。

你也可以成为一个睿智的人。下面的方法会给你一些启示,帮你踏入AI 圈子:

4. 博览

我们的AI 研究人员通常对AI 以外的知识一无所知,却依旧进行研究。但是你会逐渐发现想要做好研究必须通晓许多相关领域的知识。计算可行性本身并不能充分给出智能的约束条件。而其它相关领域的知识,比如从心理学中获取的实验数据,却能够提供其它形式的约束条件。更重要的是,其它领域的知识能提供给你新的工具和新的方法来思考和观察智能所涉及的内容。我们之所以需要学习其他领域知识,也是因为 AI 并没有衡量自身研究价值的标准,其目前的标准也是从其他领域借鉴过来的。数学的进展体现在一系列新的定理,工程学关注一个物体能否可靠地运行,心理学要求试验的可重复性,哲学追求极为严谨的思辨,等等。所有这些标准有时在 AI 研究中也非常适用,如果你能够精通这些标准,对于评价他人的工作成果和深化及维护自己的研究成果也是颇有价值的。

在MIT 通过六年左右时间的努力学习是能够顺利取得博士学位的,与此同时你还能在一两个非 AI 领域打下扎实的基础,通过广泛阅读其他领域的书籍,至少能理解其中的某些部分。下列方法有助于了解你所知甚少的领域:

下面提及的学科都是和AI 相关的,同时也是我们很有必要了解的。

这样看来每门学科都有许多知识应当掌握,事实如此。通常有一个误区,就是认为对于任意X,“仅当对X 有更多认识,问题就会更加容易求解。”事实上总会有更多更大量学不完的相关知识。但最终你还是要坐下来解决问题。

5. 笔记

多数科学家都保持着做研究笔记的习惯。你也应当坚持做笔记。可能从五年级开始你就一直被告知要养成这种习惯,确实也应该养成这个习惯。不同的方法适用于不同的人,自己试试。可以作在线记录,也可以记录在活页本或便签上。最好在实验室和家中各备一个。

每当有个想法时就把它记在笔记本上。只有你才会去翻阅笔记,所以可以随意地写写东西。记录一些思路、当前的问题和可能的解决方法。总结你读到的有趣的东西,供今后参考。

周期性的回顾自己的笔记。有些研究者每月进行一次总结以方便参考。

笔记的内容通常会成为你论文的主线。这样的研究进展起来比较轻松。反之,你可能会发现论文写作的框架——标题,摘要,小标题,段落片断——也是组织内容的有效方法,即使你还没有打算将它扩展为一篇真正的论文。(你随时可以改变主意)

你会发现 Vera Johnson-Steiner 的《思维笔记》(Notebooks of the Mind)一书非常有用,尽管表面看来书中大量篇幅并未谈及笔记,但是书中描述了一些如何从思维碎片中提炼出创造性观点的方法。

6. 写作

写作的原因有许多:

值得做的事情一定要做好。

明确你要阐述的观点。这往往是最难的事,也是写作中最重要的因素。如果你写起来比较吃力而且不知如何去修改,那可能是你还不清楚自己真正要阐述的观点。一旦明确自己的观点,直截了当地阐述出来。

如果你把论文写作放到在所有研究完成之后再开始,所获就会甚少。从课题的研究开始,就养成这样的习惯:做笔记记录下你参与的工作和在几个月内的收获。学会从记录研究内容的笔记开始写作。用两天的时间去写一篇草稿,若需要花费更长时间,那你可能是一个完美主义者。这些草稿并不是用来评判你的优劣,而是用来和朋友一起分享的。记得在封面上注明“草稿——请勿引用”的字样。把论文拷贝几份,分发给感兴趣的人(当然包括你的导师!)。这种做法在小范围中进行,只需要少量投入,但对你写正式文章(评论、理清思路、写作实践等)都很有好处。如果你的研究进展顺利,通常这些非正式论文以后均能作为正式论文——从AI 实验室的工作论文到杂志上的文章——的主线。

如果成为非公开论文传递网的会员,便有作者邀请你批阅他们的初稿。论文上的批注是颇有价值的。你可以和他人互相批阅对方的论文。你评阅别人的论文越多,当你自己写论文时,别人也会给你更多的评阅意见,这就是礼尚往来。再者,学会批阅他人的论文会有助于你的写作。

写出有意义的批注也是一门艺术。

注释的种类繁多。有针对文字表达的注释,也有针对论文内容的注释。针对文字表达的注释范围也很广。校对笔误、标点符号错误、拼写错误、漏字等等。学习使用标准的编辑符号。你还可以去纠正语法、措词错误,修改冗余和模糊的语句。通常同一语法错误会在论文中出现多次,比如用逗号连接两个语句,在注释中需要清楚地指出这类错误。其次,在论文结构组织上的不足也需要批注出来:譬如,从短语到句子到段落到章节不同范围内的观点无序组织、冗余、不相关的内容、缺失的论证等等。

对内容的注释很难归纳出一些特征来。你可以建议作者扩充论点,提出一些值得思考的方面,标注出明显的错误,指明论文中潜在的问题,还可以其赞扬表达得当。“由于 Y的原因,你应该读一下X”不失为一条中肯的注释。

在请求别人对论文评注时,你首先想弄清楚哪种评论更有用。对于论文草稿,作者大多期望得到针对内容和论文组织方面的注释;对于终稿,则渴望得到表达方面的注释。在请求别人给予批注前,确信你已经检查了整篇论文没有拼写错误,这是最基本的礼貌。

没有必要采纳所有的建议,但是应当认真去对待。作者总是舍不得删掉论文的某些部分,但这往往会对论文有所改进。经常你会发觉自己排斥某个建议,这是因为虽然它指出了论文中真正的问题所在,但所提的解决方案并不吸引人。再寻找一个更好的方法。

发表你的论文是很重要的事情。这比看起来要容易些。AI 出版物评阅人期望的是那些(a)具有某些新观点,同时(b)在某些方面不是支离破碎的论文。如果你浏览一下诸如IJCAI 的会议论文集,你会发现其水准之低令人吃惊。这种现象正因评阅过程固有的随意性而恶化。因此,发表论文的一个诀窍就是一种不断地尝试。这里还有一些其他建议:

和研究中其他工作一样,论文写作的时间通常要比你预期的更长。预计用来投稿发表的论文花费的时间尤其长。论文完成后即可给刊物投稿。几个月后就会收到对论文的评阅意见,你必须对论文进行修改。再有一段时间后会收到校样以便作最后的校对。如果你发表不同形式的论文,类似于短篇的会议论文和长篇的期刊论文,这些可能要经历几个来回。结局是在很长一段时间里,你以为已经完成了论文并且整个题目已经令你极其厌烦后,你却始终在修改同一篇文章。这给我们启示:不要因为某个领域容易发表论文而去做一些需要大量热情投入的研究工作,你无法想象将会遇到什么样的困难。

7. 演讲

演讲是另一种和你的同行们交流的方式,并且我们刚才关于写作所讨论的大部分内容同样适合于演讲。那种站在讲台上演讲并且不至于使听众昏昏欲睡的能力,对获得承认、尊敬、以及最终的求职都是至关重要的。演讲的能力并不是天生的——你可能在刚开始研究生生涯的时候是一个糟糕的演讲者,但是只要通过不断的实践,给人们去做实际的演讲,最终你将会成为一名引人注目的、才华横溢的演讲者。

下面介绍一些学习和练习演讲才能的方法:

一些需要在准备演讲和演讲时牢记的关键事情:

8. 编程

虽然不是所有AI 论文都需要编码,也有一些 AI 领域非常有成就的人从来没有写过重要的代码,但是作为一个刚接触 AI 的人你必须要会编码。这不仅仅是因为大部分 AI 工作涉及编码的工作,更因为学习编程可以给你直觉了解哪些是否是可计算的——这是 AI 对认知科学所贡献的最重要的约束条件。

在MIT,特别是所有 AI 的程序都是用Common Lisp 语言编写的。如果你不懂 Lisp,那就应该学习它。然而学习一门语言并不等于学习编程,并且 AI 的编程包含很多与其他系统编程或者应用编程十分不同的技巧。首先你可以读 Abelson 和 Sussman 编写的《计算机程序的结构和诠释》(Structure and Interpretation of Computer Programs),并作些练习。这本书并不是专为 AI 编成写的,但是里面阐述了一些相同的技术。然后可以去读 Winston and Horn 的《LISP》第三版,那里面有很多很优雅的 AI 程序。最后,学习编程的最好办法就是实际编程,而不单单是读程序。

许多Lisp 编程的文化类似于学徒制度。有些人在一起编程时互相配合的很好,这个和人的个性有很大的关系。最好能有机会直接和经验丰富的程序员一起工作。或看看能否得到他们对你的代码的批评意见。读他人的代码也是非常有用的。向你的师兄师姐要一些他们的源代码来看。他们可能会有一些抱怨,诉说他们的编程风格有多么可怕,或者他们的程序根本无法运行之类的,但最后还是会把程序交给你。然后仔细阅读这些程序。这是一个很费时的工作,阅读并理解他人的代码可能和你自己去写代码会花费同样多的时间。所以应该计划在第一个或第二个学期里花费几个星期的时间去做这件事。通过做这些你可以学习到大量漂亮的技巧,这些技巧往往是你想象不到的并且在任何书上都没有讲述过的。当你在读大量的无法理解并且没有任何注释的杂乱无章的代码时,也就懂得了自己编码的时候该怎样去做。

所有在软件工程课程里面告诉你的那些令人头痛的事情同样会发生在 AI 的编程里。为代码写注释。使用适当的数据抽取,除非有什么特别的理由。分离图像和其他代码,使大多数代码都是Common Lisp 语言,从而具有很好的可移植性。等等。

在你研究生头两年里面,你应该自己编写一组标准的AI 模块,比如:

无论从哪个开始都可以。你可以用几天时间编写一些功能简洁的程序。扩展一个现有的实际版本同样是很好的方法。只有当你真正去写一些代码的时候你才能真正的理解它们,能洞察到这些代码是否有用、效率问题到底是指什么,等等。

与其他程序员不同的是,AI 程序员几乎很少直接拷贝别人的代码(视觉代码例外)。一部分原因是 AI 程序几乎没有真实运行过。(很多著名的 AI 程序也只是运行在作者论文里两三个例子上,虽然现在比以前要求更严谨些。)另一个原因是 AI 程序往往被匆匆地拼在一起而没有充分考虑通用性。刚开始用 Foobar “标准的”规则解释器觉得很好,如果程序不具备你需要的功能或者程序功能太多导致效率低下,它会告诉你问题出在哪里。你可以去修改这个程序,但请记住理解别人的程序代码是十分耗时的。很多时候你还不如自己重写。这也是上一段中提到的半数以上的编程项目实际开发过程,并最终变成应手的工具。在你掌握了方法和工具之后,你可以用一个下午的时间来设计并实现一个(比如)客户TMS 算法。(然而你会发现在之后的6 周时间里,你会反复调试这些代码,事实往往就是这样。)有些时候构建一个标准包的工作本身就可以用来写一篇论文。

就像论文一样,程序也会出现过分的打磨。编写完美代码、最大程度地实现抽象、编写宏或者库函数、与操作系统内核交换信息等等,这使许多人偏离了自己的论文和领域。(但另一方面,或许这是你以后真正需要作为谋生的手段。)

9. 导师

MIT 的导师有两种:教学导师和论文导师(academic advisors and thesis advisors)。

教学导师的职责说来也简单。每一个研究生都会被指派一名教员作为其教学导师,通常在他/她的研究领域,当然也会根据导师当前的工作量进行适当调整。教学导师的职责是代表院系:告诉你学院的要求都有哪些、当你不能满足要求的时候督促你、并确认你的选课表。如果一切顺利的话,一年中你只需要在注册那天与你的教学导师见两次面就可以了。另一方面,如果你遇到了麻烦,导师可能会作为你的保护人,或代表你向系里反映或者给你提供一些帮助。

论文导师是指导你进行研究的人。对于论文导师的选择是你作为研究生需要做出的最重要的一个决定,这比你选择论文题目还要重要。AI 的学习很大程度上是类似于学徒制。许多关于该领域的技术方面和研究过程的非正式的知识都是不公开发表的。

许多研究 AI 的教师都是行为非常古怪的人。研究生也是如此。导师和被指导者的关系是因人而异的,你的个人怪癖最好能和你导师的相吻合,这样你们能更好的合作。不同的导师有不同的风格。下面是一些需要加以考虑的因素。

以上各方面会因学校的不同而有所不同。MIT 通常能给学生提供比其他学校更多的自由。寻找一位合适的论文导师是你作为研究生的第一年要做的最重要的事。你应该在第一年底或者最迟在第二年初找到一位论文导师。这里给出一些启发方法:

AI 是很特殊的一个学科:大部分有价值的工作是由研究生来完成的,而不是那些有博士头衔的人,他们通常忙于去做管理了。这就造成一些后果。其一是教师的名望及随后的终身职位在很大程度上依赖于学生的成功。这意味着教授非常积极地去寻找好学生来为其工作,并为学生提供有用的研究指导和支持。其次是由于学生论文方向很大程度上是受导师制约的,整体上该领域的研究方向和发展在很大程度上依赖于研究生所挑选的导师。

在你选择好导师并决定了你希望从他/她那里得到什么之后,还要让导师也知道这一点。你的导师可能会把“我愿意和你一起工作”误认为是“请给我一个范围更明确的项目做”,或者“我有想要做的东西,我希望我做好的时候你能认可”,或者其他什么。不要让糟糕的交流方式使你陷入这样的处境,当接近你想要的论文方向时却和它擦肩而过、或者白花力气在一个你根本不关心的题目上而浪费一年的时间。

不要完全依靠你导师的忠告、学识、意见和关系网。建立自己的关系网络。你可以找不同的人来提供给你不同的东西,无论他们是否是你正式上的导师。找到不同的人来定期的评论你的工作是很重要的,因为很容易导致自己(以及你的导师)认为已经取得了成就,而事实并非如此,因此需要外界的评价。关系网络可以包括自己实验室或者其他实验室的研究生和教师。

在与其他的学生、教授、甚至最成问题的就是和你导师的接触中,你可能会遇到种族歧视、性别歧视、同性恋者、或者其他的骚扰。如果真遇上了,要寻求帮助。MIT 的ODSA出版了一本名为《停止骚扰》(STOP Harassment)的小册子,包括一些忠告和相关资源。《计算机科学妇女报告》(Computer Science Women's Report)中也包括相关的指导,这可以在LCS 的文档室里找到。

有些学生在实验室里只受到论文导师名义上的指导。这对那些喜欢独立自己动手的人也许很适合。这样的好处是你只需要按照自己的想法去做,而不必考虑导师的想法。但走这条路可能并不是一个很好的主意,除非你已经至少完成了一项在导师指导下的工作,你确信在没有导师指导下你能工作,并且已有了一个牢固的支持关系网。

10. 论文

你的论文将会占用你研究生生涯的大多数时间。大量的时间将会投入到研究工作甚至选择论文题目上,而不是论文的写作上。

硕士论文的目的是为博士论文做准备。博士的研究如果没有事先的准备是很难开展的。硕士论文的基本需要可以从字面上来理解为掌握(Mastery):你已经完全理解你所在的子领域最新进展,并且你有能力运用自如。而不需要你能对最新进展有所贡献或者发表你的硕士论文。我们实验室的论文则比较厉害,事实上许多硕士论文都对研究领域有所贡献,而且可能有一半都已公开发表了。这并不一定是一件好事。我们许多人在硕士论文中做了超负荷的工作,MIT 硕士论文比博士论文水平还高不是什么好事。这与硕士研究生的培养意图相抵触。另外,想要对领域做出一点贡献至少需要两年的时间,这会让学生生涯变得太过漫长。可能你现在还不着急,但是当你在实验室混了7 年之后,你就会迫不及待地想逃出去。从入学到完成硕士论文的平均时间为两年半。可是现在计算机系极力鼓励学生能提前毕业。如果一个硕士所选的题过于庞大,那么可以把它分开来,一部分作硕士,一部分做博士。

要想了解硕士论文的研究是什么样的,可以阅读一些最近的论文。记住那些最容易得到的是已经公开发表或形成技术报告的论文,这意味着它们对某个领域已经有所贡献换一句话说,也就是他们的工作已经超出了硕士论文的要求。同样尝试阅读那些已通过答辩但并公开发表的论文。所有这些论文都能在MIT 图书馆中找到。

博士论文必须对领域前沿有所贡献。博士论文的研究需要达到能发表的程度。MIT 的学风依然,因此几年来许多博士论文都在某个领域做出了权威性的工作。一篇MIT 的博士论文开辟一个新的领域、或者陈述一个新问题并解决它已经是司空见惯的了。然而这些都不是必需的。

通常,需要两三年时间去完成博士论文。许多人花一两年时间来完成硕士论文并寻找一个博士课题。这段时间最好还可以做些别的什么事情,比如做一个助教或者进入一个非AI 领域或者组织一个摇滚乐队。真正博士论文的写作通常需要大概一年的时间,需要再三强调的是即使你彻底的厌恶它,也还要持续一年的时间。

选择一个题目是论文工作中最困难也是最重要的。

一旦你确定了论文题目,即使它还有点模糊,你必须能够回答这个问题:你论文的论点是什么?你想要展示什么?你能够用一个句子、一个段落、和五分钟的时间来回答。如果你不知道你想要得到什么,别人也不会认真对待,更糟的是你将会落入无休止的选题中。

在研究进程中你应该能够清楚地解释你的理论和实现的每一部分是如何为目标服务的。

一旦你选定了一个题目,应确保你和导师对论文题目和最终结果的构成都有明确的理解。如果你和他对此有不同的期待并且没有意识到这一点,那么你会败得很惨。你可能要阐明一个清晰的目标测试,像你的理论和程序的一套测试用例。无论如何你要有所准备,即便你的导师并不在意。自觉更改测试以适应环境变化。

先尝试一个论文题目的简化版本。针对例子做些工作。在进行理论抽象之前,彻底地探索一些具体的实例。

在做论文期间,有很多种方式可以浪费你大量的时间。避免这样的一些活动(除非确实与论文相关的):语言设计、用户界面和图形制作、创造新的形式化方法,代码的过渡优化、创建工具,官僚作风。任何与你论文无关的工作都应该降到最少。

有一个众所周知的现象叫“论文回避”,比如你突然发现对在一个陈腐的操作系统中修补深藏的漏洞非常着迷并认为这很重要。这是一种从论文工作游离出来的半意识状态。你应该意识到你正在做什么。(从作者的角度看,本文就是论文回避的一个例子)。

11. 方法学

[这一部分比较薄弱,请补充]

研究方法学定义了研究活动是什么,如何展开研究,如何衡量研究进展,以及什么是成功。AI 研究的方法学很杂乱。不同的方法学形成不同的学派并因此相争不下。

方法是工具而已。驾驭工具,而不要受制于工具。不要落入那些自吹自擂的标语的陷阱里:“AI 研究需要稳固的基础”、“哲学家是吹出来的,AI 是干出来的”、“在询问如何计算之前你必须知道要算些什么。”要在人工智能领域获得成功,你必须擅长技术方法并抱着怀疑的态度。例如,你应该能够证明定理,你还应该怀疑这些定理到底证明了什么。

AI 的许多优秀结果都权衡了几种方法学。例如,你必须在可能与实际问题毫无相关的一大堆理论和大量毫无条理的特解的实现之间选择一条最佳路线。你常常会面临各种研究决策,在“优雅”和“零乱”之间划出界线。你是否应该将问题作适当的形式化(这样你会能证明这个问题非常棘手),或者你是否应该直接处理原始形式表达的问题,虽然定义不明确但却更接近实际?前者(如果可行的话)会获得一个清晰而确定的结果,这个结果可能会繁琐不已也可能没有触及问题本质;后者的风险则是把问题变成了一堆理不清的小问题。任何人在做任何工作时应该有明智的权衡,在符合整体关系的前提下,对于某些子问题作适当的形式化处理。

有些工作类似于自然科学。你观察一下人们是怎么学习算术的,大脑是怎样工作的,袋鼠是怎么跳跃的,然后尝试找出并形成一个可被检验的理论。有些工作类似于工程设计:你尝试去建立一个更好的问题求解器或者算法模型。有些工作类似于数学:建立形式化体系、尝试去理解它们的性质、琢磨并证明有关的结论。有些工作是实例驱动的,试图解释特定的现象。最好是结合上述甚至更多的方法。

方法学是具有社会性的。看看别人如何解决类似的问题,并和人们交谈他们是怎样处理特殊案例的。

12. 心理

做研究工作是非常艰苦的。很容易为它耗尽心血。攻读 AI 博士的学生中只有令人尴尬的一小部分能完成论文的研究工作。在 MIT 几乎所有没有完成研究的学生都自动弃学了。有些人离开是因为他们能够在工业界挣到更多的钱,也有纯粹个人原因的,大多数则是因为他们在论文研究方面的挫折而离去的。这一节试图解释这一切是怎么发生的并且给出一些有益的启示。凡事预则立:你需要了解做研究时遇到的不幸、恼怒、沮丧和成功都是研究过程中的必要组成部分,并且和其他研究人员分享这些感受。

所有研究工作都有风险。如果你的项目不可能失败,那只能说是开发而非研究。最困难的是怎样去对待项目的失败。很容易将你的项目失败解释成是你的失败,但是事实上,这证明你有解决难题的勇气。

在这里领域里有少部分人看上去好像一直很成功的,一年又一年的发表论文,事实上他们遇到的失败也和别人一样。你会发现他们常常同时进行几个项目,但是只有一部分成功。那些成功的项目往往经过了无数的失败、尝试过许多错误方法,最终才取得成功。

在你的研究生涯中,你将会经历许多失败。但是每一次都代表你在某个项目上作了许多工作。你将会发现许多你有过的想法、思考的方式、甚至你写过的代码,在若干年后你会发现正好可以解决另一个完全不同的问题。这样的效果只有当你积累了许多失败后才会显现,所以应该相信总结初期失败的经验教训将来一定会有用。

研究工作需要花费比看起来更多更长的时间。一般的规律是任何给定的任务都将会花费你期望的三倍时间(有些人还会加上一句:“...即使已经考虑了这个规则.”)

成功的关键是把你的研究作为你日常生活的一部分。许多突破性的想法往往发生在你洗澡的时候或者坐地铁的时候或者在哈佛广场购物的时候。如果你时时刻刻都在思考研究,灵感就会纷至沓来。AI 的成功人士通常并不是十分的聪明,但却持久耐劳。同样很重要的事情是学会“品味”,能够区分表面上诱人的想法和真正重要的观点。

你会发现研究的进展变化无常。有时候进展很快,可以在一个星期内完成以往需要三个月才能完成的工作。这是令人兴奋的,使得人们愿意从事这个领域的研究。而另外的时候,你会被困住并且感到很长一段时间你什么也做不了。这很难应付。你可能会觉得你再也做不出任何有意义的事情了,或者刚开始时,你不具备作为一个研究者的素质。这些感觉当然都是错的,如果你是MIT 录取的学生,你已经具备必要的素质了。你需要坚持,并保持高度宽容对待缓慢的进展。

你可以设定中短期目标,比如每周或者每月,从而你能够完成许多工作。有两个方法可以帮你提高达到目标的可能性,一是把它记到笔记本上,一是告诉别人。你可以和你的朋友做一个履行你周计划的约定,并打个赌看谁先达到目标。或者告诉你的导师。

有时你会被彻底困住。像写作中的困难一样,有许多原因造成的,但没有单一的解决办法。

许多人发现他们的个人生活和他们的研究能力是相互影响的。对某些人来说,当生活的其他方面陷入困境时,工作恰好是一个避难所。其他人则发现,当他们的生活因为某些原因陷入混乱时也会无法安心工作。当你发现自己陷入困境而不能自拔时,去看一看心理医生会有所帮助。一份非正式的调查显示,我们实验室大概半数的学生在其研究生生涯中都看过心理医生。

做 AI 比大多数其它类型的工作更困难的一个原因就是没有一个公认的标准来评价工作进展或者评估你的工作成就。在数学领域,如果你证明了一个定理,那么你就做了相应的工作;如果是一个别人证明不了的定理,那么你就做了一件了不起的事情。AI 借鉴了相关学科的标准也有一些自己的标准;不同的研究人员、领域和学校对评价标准也有不同的侧重。MIT 比其他大多数学校更注重实现的质量,但即使在这个实验室却也有很大的差别。这样的一个后果是你总是不能让所有人满意。另一个后果是你可能常常不能确定自己是否已经有所进展,这会让你觉得有点不安全。经常出现会对自己工作的评估从“有史以来伟大的事情”跌到“空洞、多余和没有条理的稀疏平常事”。这是正常现象。采用别人的反馈意见不断地调整自己的工作。

有些事情能够帮助处理研究过程中的不安全感。获得认可会有所帮助:毕业论文通过答辩、发表论文,等等。也许更重要的是尽可能多地与人们交流你的想法并听取反馈意见。其一,他们可能会献上一些好主意;其二,有些人可能会欣赏你的论文,这让会让你感到欣慰。既然评价进展的标准是如此微妙,那么如果你不经常和其他研究者进行交流就很容易走进死胡同。尤其是在你觉得不太愿意和别人谈论你的工作且进展不顺利时更是如此。此时,最需要的就是得到反馈和支持。

要清楚地了解你已经取得了进步并不太容易。“如果我能做到,那么它一定是微不足道的了。我的想法是显而易见的”。但当你回头看时会发现,对你而言可能是显而易见的,但对他人却不然。把你的研究工作讲给外行听会有助于你意识到现在看来微不足道的东西其实是多么不易。把想法写下来。

最近针对科学界诺贝尔奖获得者的自我怀疑作了一次问卷调查:这些成就显著的科学家是否一直清楚自己在做震惊世界的研究工作?50 多人的一致回答是他们也经常怀疑自己工作的价值或正确性,也曾经历过自认为工作无关紧要、平淡无奇或者是错误的这一时期。任何科学进展中的一个常见的重要组成部分是经常地进行批判性的评估,而对工作价值评价的不确定性也是不可避免的一部分。

有些研究人员发现他们在与同事合作时比在独自工作时更有成效。尽管许多 AI 的工作都可以由个人来做,但是许多人还是喜欢在一起工作,构造系统、合作撰写论文。我们实验室就有合作的学位论文的例子。缺点是要和合作者分配并竞争论文的贡献。和实验室以外的人合作,比如暑假兼职时,这些问题就少些。

来到MIT 的AI 实验室的许多人一直都是原来所在大学中最聪明的人,在这里却遇到了一大堆更聪明的人。这会给一二年级学生的自尊带来沉重的打击。但是被这些聪明人包围也有好处:请人友好地批驳你所有不怎么样的想法,以免陷于被公开嘲弄的境地。为了对自己有更现实的认识,你应该回到这个并非只有聪明人组成的现实世界来。到外边找一个咨询工作非常有利于保持心态平衡。首先,有人为你的专家意见支付酬金,说明你确实有两下子。第二,你会发现他们确实需要你的帮助,在圆满完成工作时会给你带来满足感。

反之,每个加入实验室的同学都是从400 多申请者中挑选出来的。这使我们许多人相当骄傲。他们会认为我就是那个将要彻底解决这个 AI 问题的人。这并没有错,要想在这个混乱的领域取得任何进展需要充分的想象力。潜在的缺点就是你会发现问题比预计的要难得多,研究所花费的时间也比你期待的要更长,而且你还无法独自完成。这会导致某些人严重的自信危机。你必须面对这个现实,你所能做的就是为某个子领域添砖加瓦,你的学位论文也不是去建造高楼大厦的。这可能需要彻底的重新评估自我,这一过程往往是痛苦的并且有时会持续一年多的时间。虽然如此,这也是非常值得做的,不自视过高能让你以一种游戏的精神去做研究。

人们能够忍受研究带来的痛苦至少有两方面理由。一则是动力,渴望解决问题的激情。你做研究是因为离开了它你无法活。很多伟大的研究成果都是这样出来的。虽然你有可能被疲惫不堪所击倒。二则研究是一种乐趣。虽然大多数的时间是痛苦的,但是如果题目适合你,你能够像做游戏一样解决它,并且享受这个过程。这两个方面并不矛盾,但在如何对待工作的态度上必须要有很好的平衡。

在了解了做研究的感觉后,每当碰到困惑时,阅读一些生动的科学家自传会给你灵感和安慰。比如:Gregory Bateson 的《给年轻科学家的忠告》(Advice to a Young Scientist),Freeman Dyson 的《搅动宇宙》(Disturbing the Universe),Richard Feynmann 的《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 和Ramin Zabih。感谢所有给我们智慧的人,特别是我们的导师,这些智慧将通过本文(恰好完成了我们的课题)继续传承下去。

有些观点则来自 John Backus 的“论成为一个研究者”(On Being a Researcher)和Alan Bundy,Ben du Boulay,Jim Howe 和 Gordon Plotkin 共同撰写的“如何在人工智能领域攻读博士学位”(How to Get a PhD in AI)。