Andrej Karpathy 是斯坦福大学计算机视觉博士、前特斯拉 AI 总监,这篇文章是他完成博士学业后的亲历复盘。文章并不试图劝人读博或劝退,而是以难得的坦诚,将这段经历的真实面貌和盘托出——既有自由探索、深度成长、稀缺身份带来的吸引力,也毫不回避那些孤独的周六实验室、被迫放弃数月心血的至暗时刻,以及与同龄人对比时挥之不去的自我怀疑。

文章的务实之处在于,它将抽象的"读博值不值"落地为一系列可自我审视的具体维度,并就申请策略给出直接建议——推荐信的重量远超 GPA,导师的选择比学校品牌更为关键。这些洞见对处于决策节点的人而言,具有相当的参考价值。

如果你正徘徊于读博与就业之间,或已身在博士项目却感到迷茫,这篇文章或许能帮你厘清自己究竟在追求什么,以及该如何更清醒地走完这段路。


本指南仿照我早年所写的文章《如何在课业上取得好成绩》——那是我在本科阶段积累的一些技巧与心得。那篇指南收到了不少好评,同样怀着这份初心,如今博士阶段已告一段落,我想整理一份类似的回顾性文章,希望能对一些人有所帮助。与本科生指南不同,这篇要难写得多,因为每个人的博士经历差异极大,走法各有不同。因此,许多观点可能颇具争议,相当一部分内容也会偏向我所熟悉的领域(计算机科学 / 机器学习 / 计算机视觉研究)。但免责声明太无聊了,直接开始吧!

前期考量

首先,你是否应该攻读博士?我很幸运,从小就知道自己真的想读博。只可惜这并非出于什么深思熟虑的考量:第一,我非常喜欢学校和学习,想尽可能多地汲取知识;第二,我特别想成为游戏《半条命》里的 Gordon Freeman(他拥有麻省理工学院理论物理学博士学位)。我太爱那款游戏了。但如果你在做人生抉择时更为理性呢?你该不该读博?Quora 上有一个很棒的讨论帖,在下面这份考量清单里,我会借鉴并转述 Justin、Ben 及其他人的一些观点。我假设你所考虑的另一个选项是加入一家中大型公司(这可能是最常见的情况)。问问自己,以下这些特质是否对你有吸引力:

自由。 博士学习将在你希望探索和钻研的课题上给予你极大的自由度。你是自己的主人。当然,你会有一位导师施加一些约束,但总体而言,你拥有的自由远比在其他地方多。

成果归属。 你的研究成果属于你个人。你的成就冠有你的名字。相比之下,在大公司里"泯然众人"要常见得多,常见的感受是成为"机器上的一颗螺丝钉"。

稀缺性。 能进入顶尖博士项目的人寥寥无几。你将跻身数百名杰出人士之列,而非成为某家公司数万名(?)员工中的一员。

地位。 无论该不该如此,攻读并最终获得博士学位,在文化上都备受推崇,被公认为一项了不起的成就。你还能成为博士——这很酷。

个人自由。 作为博士生,你是自己的主人。今天想睡懒觉?当然可以。想翘一天去度假?完全没问题。唯一重要的是最终产出,没有人会强迫你朝九晚五地打卡。当然,有些导师在这方面或宽或严,有些公司亦然,但这是一个切实成立的一阶判断。

最大化未来选择。 加入博士项目不会关闭任何门路,也不会排除未来的就业或生活方式选项。你可以走一条路(读博 → 去任何地方),却难以走另一条路(先去别处 → 再读博 → 进学术界/研究领域;统计上可能性更小)。此外(尽管这可能主要适用于应用机器学习领域),作为博士毕业生乃至博士肄业者,你的求职竞争力严格来说更强,许多公司可能愿意给你更有趣的职位或更高的起薪。更普遍地说,为未来的自己最大化选择空间是一个值得遵循的好经验法则。

最大化方差。 你还年轻,实在没必要着急。博士毕业后,你可以在某家公司度过接下来约50年的职业生涯。让自己的经历拥有更多的方差吧。

个人成长。 博士是一段密集的快速成长体验(你会学到大量知识),也是深度自我发现的历程(你将成为掌控自身心理的高手)。博士项目(尤其是好的博士项目)还汇聚着高密度的极聪明的人,他们将成为你终生的挚友。

专业精深。 博士可能是你一生中唯一真正深入钻研某一课题、成为该领域世界公认顶尖专家的机会。你在探索人类这一物种的知识边界,不受琐碎干扰或约束的拖累。这本身有一种美感——若你对此不以为然,或许就说明博士并不适合你。

注意事项。 我也想就一些潜在的弊端和失败模式略作说明。博士是一种非常特殊的经历,值得郑重提示。你将不可避免地发现自己需要非常刻苦(尤其是在论文截止日期之前)。你需要能够承受这种煎熬,拥有足够的心理韧性和意志力来应对压力。有时你会忘记今天是星期几,靠休息区小厨房里的剩饭剩菜果腹。你会在某个阳光明媚的周六,疲惫而孤独地坐在实验室里,刷着朋友们在异国他乡尽情游玩的Facebook照片——那些旅行靠的是比你高出五到十倍的薪水。你不得不放弃三个月的心血,同时还要设法维持心理健康。你将挣扎于这样的认知:数月的心血只换来一篇寥寥几次引用的论文,而朋友们却在做令人振奋的创业、登上TechCrunch,或将产品推送给数百万用户。你将经历身份认同危机,质疑自己的人生抉择,困惑地想知道自己究竟在用人生最好的几年做什么。因此,你应该相当确信自己能在无结构化的环境中,为科学的探索与发现而蓬勃成长。如果你不确定,默认应该稍微倾向否定。理想情况下,在决定正式投身博士之前,你应该先以本科生身份通过暑期科研项目体验一下研究的滋味。事实上,科研经历在博士招生过程中之所以备受青睐,主要原因并非在于研究本身,而在于有过这类经历的学生更可能清楚自己将面对什么。

我需要明确说明,本文并非要说服任何人攻读博士,我只是尝试列举了一些常见的考量因素。本文的大部分内容聚焦于一旦决定攻读博士,如何驾驭这段经历的技巧(我们很快将在下文看到)。

最后,顺带一提,我听说有人认为只有想走学术道路才应该读博。结合以上所有内容,我认为博士具有强烈的内在价值——它本身就是目的,而不仅仅是通往某个终点(例如学术职位)的手段。

申请博士项目:推荐信,推荐信,推荐信。 很好,你已决定放手一搏。那么如何进入一个好的博士项目?就一阶近似而言,答案相当简单——迄今为止最重要的因素是强有力的推荐信。最理想的情况是,某位知名教授为你写一封措辞大致如下的推荐信:“某某是我共事过的学生中排名前五的。她主动积极,能提出自己的想法并付诸实践。“最差的推荐信则大致是:“某某选过我的课,表现不错。“若在暑期科研项目中有科研发表成果傍身,是非常有力的加分项,但只要推荐信足够强,这并非绝对必要。特别要注意的是:成绩其实无足轻重,但一般也不希望太低。这在我本科时并不显而易见,我花了大量精力去争取好成绩。这些时间本应尽可能多地、尽可能早地用于科研(或至少是个人项目),如果可能的话,在多位导师指导下进行(你将需要3封以上的推荐信!)。最后还有一点:冒然骚扰你的潜在导师并没有太大帮助——他们通常忙得不可开交,若你在会议上或通过电子邮件过于积极地试图给他们留下某种印象,反而可能会惹恼他们。

选择学校。 一旦被几个博士项目录取,你该如何选择学校?很简单,去斯坦福!开个玩笑。说正经的,你理想中的学校应当:1)是顶尖学校(不是因为简历好看,而是因为正反馈效应——顶尖学校吸引其他顶尖人才,其中许多人你将有机会认识并共事);2)有几位你希望合作的潜在导师。我真的是指"几位”——这非常重要,当你的第一选择因各种原因(许多情况下是你无法掌控的因素,例如你梦想中的教授离职、转岗或突然消失)而无法实现时,可以为你提供缓冲;3)地理环境优良。我认为新生往往没有充分认识到这一点:你将在学校附近度过5年以上的宝贵年华。相信我,这是一段很长的时间,你的生活远不止于研究。

导师

图片来源:PhD Comics


学生与导师的关系。导师是对你博士求学经历影响极深的关键人物。理解这段关系的本质至关重要:师生关系是一种共生关系;你有自己的目标,想从博士阶段有所收获,而导师同样有自己的目标、约束,也在经营自己的职业生涯。因此,了解导师的激励结构大有裨益:终身教职(tenure)的流程如何运作、他们如何被评估、如何获取资助、如何资助你、身处怎样的系所政治环境、如何赢得奖项、学术界的整体运作方式,以及他们如何获得同行的认可与尊重。仅凭这一点,你便能规避或化解师生摩擦中的大部分问题,并做出更合理的规划。我也不想让这段关系听起来过于像商业交易。师生关系往往最终会发展成长久的情谊,其基础远不止于职业发展。

终身教职前后的区别。每位导师各有不同,因此了解变化的维度及其对博士经历的影响很有帮助。有一条经验法则(但请记住例外情况很多):留意潜在导师是否已获得终身教职,十分重要。尚未获得终身教职的年轻教师通常更常在场(他们正在努力争取终身教职),对你应当研究的方向往往有更明确的主张,会和你一起推导数学、提出具体想法,甚至审阅(或参与)你的代码。这是一种更为亲力亲为、可能也更为紧张的体验,因为导师需要强劲的发表记录来获得终身教职,这驱使他们同样督促你全力以赴。相比之下,资深教师往往拥有更大的实验室,并承担许多科研以外的职责(如委员会工作、讲座、出行),因此他们只能在研究方向和学生指导两方面都保持较高的抽象层次。夸张地说,差别就在于"你那个方程少了第二项"与"你或许应该多读读这个领域的文献,和某某人谈谈,再考虑如何展示自己的工作"之间。在后一种情况下,具体细节层面的建议仍可来自实验室里的高年级博士生或博士后(postdocs)。

变化的维度。还有许多其他维度值得关注。有些导师随和热情,有些则更倾向于保持纯粹的职业关系。有些导师会在工作细节上施加很大影响,有些则放手得多。有些导师专注于特定模型及其在各类任务中的应用,有些则聚焦于任务本身,对具体建模方法较为超然。在管理风格上,有些导师每周(甚至每天!)与你多次会面,有些则几个月都难得一见。有些导师立刻回复邮件,有些则一周都不回(甚至永远不回,哈哈)。有些导师会对你的工作时间提出要求(比如你最好加班或周末来),有些则不会。有些导师慷慨地为学生配备设备,有些则认为笔记本电脑或旧电脑基本够用。有些导师即便你没有论文被收录,也会资助你参加会议,有些则不会。有些导师有创业精神或偏重应用,有些则更倾向于理论研究。有些导师允许你进行暑期实习,有些则视实习为分心之事。

寻找导师。那么,如何挑选导师?第一步当然是与其当面交谈。师生关系有时被比作婚姻,你需要确认双方契合。当然,首先要确认能与对方顺畅交流、个人上相处融洽,但同样重要的是,了解他们在上述各维度的"教授空间"中处于何种位置,尤其是你们在感兴趣的问题上是否存在智识上的共鸣。这一点有时与管理风格同等重要。

收集参考意见。你还应当收集关于潜在导师的评价信息。一个好策略是与其学生交流。若想获得真实信息,不宜在过于正式的场合进行,而应选择轻松的环境和氛围(如聚会)。在许多情况下,学生被笼统询问时仍可能回避对导师的负面评价,但若问及具体问题,他们通常会如实回答,例如"你们多久见一次面?“或"导师的参与程度如何?"。另一个策略是查看其往届学生的去向(通常可在网站的校友栏目找到),这在统计意义上也能预示你自己未来的出路。

给导师留下好印象。师生匹配的过程有时被比作婚姻——你在选择他们,他们也在选择你。从导师的角度来看,理想的学生应当有兴趣、有热情,不需要过多手把手的引导,并且主动积极——一周后回来时,不仅完成了导师的建议,还有所超越,以出人意料的方式加以改进。

兼顾整个实验室。另一个重要的认识是:你或许每周只见导师一次,但实验室里的其他学生你每天都要见,他们将成为你最亲密的朋友。大多数情况下,你最终还会与高年级博士生或博士后合作,他们所扮演的角色与导师十分相似。博士后尤其是准教授,正处于培训阶段,他们很可能乐于与你合作,因为他们正试图积累可在求职时展示的指导经验。因此,你要确保整个团队中有你能相处融洽、心存尊重、并能在科研项目上紧密合作的人。

研究课题

人类知识一小部分的 t-SNE 可视化(来自 paperscape)。每个圆圈代表一篇 arxiv 论文,大小表示引用数量。

假设你已进入博士项目,也找到了导师。接下来研究什么?

外循环的修炼。 首先要认清这段经历的本质。博士求学既有趣又令人沮丧,因为你始终在元问题层面上运作。你不只是在解决问题——那不过是简单的内循环(inner loop)。你的大部分时间都花在外循环(outer loop)上,思考哪些问题值得解决、哪些问题时机已经成熟。你不断想象自己解决各种假想问题,追问这会把你带向何处、能解锁什么可能,以及是否真有人在乎。如果你和我一样,这有时会让你有些抓狂,因为你花了大量时间做某些事,却连它们是否值得做、是否存在解法都说不准。

培养品味。 在选择问题时,你会听到学者谈论一种神秘的"品味(taste)“感。这是真实存在的东西。当你向导师提出一个潜在问题时,你要么会看到他们面色扭曲、眼神游离、心不在焉,要么会感受到他们眼中的兴奋,正在思索那片尚待探索的沃土。就在那一瞬间,许多事情同时发生:对问题重要性、难度、吸引力、历史背景的评估(或许还包括与其在研课题的契合度)。换句话说,你的导师很可能是外循环的高手,对问题拥有高度发展的品味。在博士阶段,你将有机会自己习得这种感觉。

说到我自己,我入读博士时品味可以说相当糟糕。从博士早期的笔记中可以看出这一点。那时令我兴奋的许多问题,回头来看,要么构想拙劣,要么无从解决,要么根本无关紧要。我想自己通过实践与师徒传承,在最后阶段磨砺出了这种感觉。

现在让我试着将一些关于品味构成要素、以及什么使问题值得研究的想法逐一道来。

肥沃的土壤。 首先要认识到,在博士阶段你将深入钻研某一领域,你的论文极有可能环环相扣,共同构成一系列研究成果(即你的学位论文)。因此,在选择问题时,你应当始终提前想好几步。无法预测事情将如何发展,但你往往能感受到后续研究还有多少空间。

契合导师的兴趣与专长。 你应当在导师感兴趣的领域内开展研究。有些导师或许允许你研究略显边缘的课题,但这样你便无法充分利用他们的知识,也会降低他们帮助你推进项目或宣传你工作成果的意愿。举个例子(这也呼应了我之前关于了解导师工作的观点):每位导师都有一套常用的"默认演讲"幻灯片来介绍自己的研究,如果你的工作能为这套幻灯片增添新的、令人兴奋的前沿内容,你会发现导师对你的研究投入更多、更愿意帮忙,参与度也更高。此外,他们的演讲也会推广和宣传你的工作。


志存高远:难度的次线性增长规律。 人类心理中存在一个奇怪的漏洞:一个重要程度或影响力高出10倍的问题,在直觉上会让人觉得难上10倍(或成功的可能性低10倍)。这其实是一种谬误——依我之见,一个重要程度高出10倍的问题,最多也只难2至3倍。事实上,在某些情况下,难度高出10倍的问题反而可能更容易实现。何以如此?因为以10倍的目标去思考,会迫使你跳出固有框架,直面某种方法的根本局限,从第一性原理出发,彻底改变策略,勇于创新。如果你立志将某事提升10%并为此努力,通常都能做到;但若你的目标是提升100%,成功的可能性同样相当大——只是实现的方式会截然不同。

野心须配以进攻路线。 此时同样重要的是指出:有很多重要问题并不适合作为好的研究项目。我推荐阅读理查德·汉明的《你和你的研究》,其中对这一点有更深入的阐发:

如果你不研究重要问题,就不太可能做出重要工作。这再明显不过了。伟大的科学家都认真思考过本领域中的若干重要问题,并时刻留意如何寻找进攻之法。需要提醒你的是,“重要问题"这个说法必须措辞谨慎。从某种意义上说,我在贝尔实验室期间,物理学中的三大卓越问题从未有人涉足。我所说的"重要”,是指那种必然斩获诺贝尔奖、你能说出多少奖金就有多少奖金的问题。我们不研究(1)时间旅行、(2)瞬间传送、(3)反重力。它们之所以不是重要问题,是因为我们没有进攻之法。使一个问题重要的,不是其后果,而是你拥有合理的进攻路线。这才是问题重要的关键所在。

成为"做了X的那个人”。 说到底,博士阶段的目标不仅是在某一领域积累深厚的专业知识,更要在其上留下自己的印记——引领它,塑造它。理想状态是,博士毕业时你已占据某个重要领域的一席之地,最好还是那种简洁易述的方向。你希望别人说"她就是做了X的那个人”。只要你能填上那个空,便算成功。

有价值的技能。 要认识到,在博士阶段你将成为所选领域的专家(顺带一提:[5年]×[260个工作日]×[每天8小时]=10,400小时;如果你相信格拉德威尔的理论,那么读博恰好就是成为专家所需的时间)。试想5年后的自己已成为这一领域的世界级专家(那10,000小时会确保这一点,无论你的学术成果影响几何)。这些技能令你心动吗?对你未来的事业是否具有潜在价值?

反面案例。 也有一些问题或类型的论文,你理想情况下应当避开。例如,你有时会听到学者谈起*“渐进式工作”(incremental work)(这是学术界可能出现的最糟糕的定语)。渐进式工作,就是那种通过增加复杂度来改进已有成果、在某个基准测试上多得2%的论文。这类论文的有趣之处在于,它们被录用的概率相当高(审稿人找不到致命缺陷;它们有时也被称为“蟑螂论文”*(cockroach papers)),所以如果你接连有这类论文被录用,会感觉自己非常高产——但事实上,这些论文不会获得高引用,你也不会对该领域产生多大影响。同样,寻找项目时,理想情况下也不应产生类似"有个明显的下一步没人做,让我来做"或"这应该能轻松做成一张海报"这样的想法。

案例研究:我的博士论文。 为使以上讨论更加具体,我想以自己的博士经历为例。首先,一个有趣的事实:我的整篇论文都建立在博士最后1.5年完成的工作之上。也就是说,我花了相当长的时间在元问题空间中摸索,才找到一个让自己真正兴奋的问题(另外约2年时间,我大多在三维相关课题(如Kinect Fusion、三维网格、点云特征)和视频相关课题上漫无目的地游荡)。后来在第三年的某个周六凌晨两点,我偶然路过Richard Socher的办公室,顺便进去聊了聊。我们谈起了有趣的问题,我意识到他在图像与语言方面的一些工作其实触及了某些非常有趣的东西(当然,图像与语言交叉领域的历史远比Richard的工作更为悠久)。我当时并不能预见后续会有多少论文涌现,但从启发式判断来看,这个方向大有可为:土壤极为肥沃(存在大量未解决的问题,将语言描述与图像对接存在大量有趣的可能性);我认为这个方向非常酷且重要;易于向外人解释;似乎正处于可行性的边界(深度学习刚刚开始奏效);数据集刚好开始出现(Flickr8K刚刚发布);与Fei-Fei的研究兴趣高度契合;而且即便我没有成功,至少也能在优化有趣深度网络上积累大量实践经验,可以迁移应用到其他地方。当一切在脑海中一一咬合到位的瞬间,我有一种强烈的感受——条条对勾如海啸般涌来。第二天我向Fei-Fei(我的导师)提出想深入这一方向,让我如释重负的是,她热情地表示赞同,鼓励了我,此后也在这一空间内持续引导我的方向(例如,Fei-Fei坚持要我做图像到句子的生成,而我当时大体上满足于做排序任务)。我对此后的发展感到满意。总之,我在外循环中徘徊了2年,寻找一个值得深入的方向。一旦在几条启发性判断的指引下想清楚了那是什么,我便全力投入。

保持独立判断。 我还想指出:你的导师绝非万能。我亲历或听闻过许多案例,事后回顾,导师的判断被证明是错误的。如果你在博士阶段有这种感觉,应当有勇气在必要时不听从导师的意见。学术界总体上推崇独立思考,但你的具体导师的反应因情况而异。我知道有多个案例赌对了,也亲身经历过没有赌对的情况。例如,在我读博第一年,我与吴恩达给我的某些建议强烈意见相左。我最终研究了一个他不太感兴趣的问题,结果出人意料——他是对的,而我浪费了几个月。有得有失 :)

跳出学术游戏。 最后,我想请你不要仅仅把博士阶段视为一篇接一篇论文的堆砌。你不是一台写论文的机器。你是研究共同体的一员,目标是推动领域向前发展。论文是实现这一目标的常见方式,但我鼓励你放眼更广,超越固有的学术游戏规则。独立思考,从第一性原理出发。做别人没有做但应该做的事。跳出摆在你面前的那条跑道。在整个博士阶段,我自己也在尝试践行这些。这个博客就是一例——它让我得以传递那些通常不会出现在论文中的内容。ImageNet人类参考实验是另一例——我强烈感到,让该领域了解人类在ILSVRC上的大致准确率至关重要,于是专门抽出几周时间进行了评估。学术搜索工具(如arxiv-sanity)也是一例——文献检索的低效让我持续感到沮丧,于是我发布并维护了这个网站,希望对他人有所帮助。两度讲授CS231n也是一例——我投入的精力远超一个本应专注科研的博士生所应付出的合理范围,但我认为,如果人们无法高效地学习和入门这一主题,该领域的发展将会受阻。我在博士阶段的许多努力,很可能是以标准学术指标为代价换来的(如h指数,或在顶级会议发表论文的数量),但我仍然去做,如果重来我也会做同样的选择,而今我也在鼓励他人如此。不过也要泼一点冷水,稍稍冲淡这套理念:根据我与朋友和同事的多次讨论,我知道这个观点颇具争议,许多人并不赞同。

撰写论文

撰写好的论文是学者的一项基本生存技能(有点像穴居人的生火之术)。尤其重要的是,要认识到论文是一种特定的东西:它有特定的外观、特定的行文方式,以及其他学者所期待的特定结构、语言和统计规范。回看我博士早期的一些论文草稿,通常是一种痛苦的体验,因为那些东西实在糟糕。这里有很多东西需要学习。


审阅论文。 如果你想学习如何写出更好的论文,一个看似合理的策略是阅读大量优秀论文,尝试从中提炼规律。但实践证明这并非最佳策略——这就好比只用正样本来训练一个二分类器。你真正需要的,是同时接触大量糟糕的论文,而审阅论文正是获得这种接触的途径之一。大多数优质会议的录用率约为25%,因此你审阅的大多数论文都会是差的,这将帮助你建立起强大的"分类器”。你会读到一篇差论文,发现它多么晦涩难懂,变量定义不清,引言空泛而抽象,或者一上来就钻进细节,从而学会在自己的论文中规避同样的陷阱。另一种相关的宝贵经历是参加(或自己组织)期刊讨论会——你会看到有经验的研究者如何批评论文,从而对自己的论文将被他人如何审视形成一种感知。

把握整体格式塔。 有一次审稿会上,Fei-Fei(我的导师)给我留下了深刻印象。我花了好几个小时审阅了一叠四篇论文,她拿起来,每篇翻了大约10秒,就说其中一篇好,另外三篇差。而我的判断确实是接受那一篇、拒绝另外三篇,但她几秒钟就做完了我花了好几个小时才得出的判断。Fei-Fei依靠的是论文的格式塔(gestalt)——一种强大的启发式直觉。随着你成为更资深的研究者,你的论文会呈现出一种典型的外观:约1页的引言;约1页的相关工作,引用密度适中——不稀疏也不拥挤;一张设计精良的引导图(pull figure,在第1或第2页)和系统图(system figure,在第3页),明显不是用MS Paint画出来的;技术部分有若干数学符号,结果表格数字密集、部分加粗,外加一个额外的小巧分析实验,论文恰好8页(即页数上限),一行不少。你必须学会赋予自己的论文同样的格式塔,因为许多研究者会将其作为评判你工作的认知捷径。

明确核心贡献。 在开始动笔之前,明确你的论文对该领域所作的唯一核心贡献至关重要。我要特别强调"唯一"这个词。论文不是你做过的一堆实验的随意汇总。论文兜售的是此前并不显而易见、也不曾存在的某一件事。你需要论证这件事的重要性,论证它此前从未被做过,然后通过受控实验为其价值提供支撑。整篇论文都以外科手术般的精准度围绕这一核心贡献展开,不掺杂任何多余的填充,不试图在旁边塞入其他任何内容。举一个具体的例子:我在早期的一篇视频分类论文中犯了一个错误,试图塞入两项贡献:1) 一套视频卷积网络(convnets)的架构布局方案,以及一个与之无关的 2) 多分辨率架构(带来了小幅性能提升)。我加入它的理由有二:一是觉得也许有人会感兴趣并在此基础上进一步研究,二是我以为论文中的贡献是可叠加的——两项贡献胜过一项。不幸的是,这个想法是错的,大错特错。第二项贡献微不足道、存疑,它稀释了论文,令人分心,没有人在乎。我在 CVPR 2014 论文中犯了类似的错误,那篇论文同时呈现了两个独立的模型:一个排序模型和一个生成模型。事后来看,有若干充分的理由支持我应该分开投两篇论文;它们合为一篇,更多是历史原因,而非理性决策。

论文结构。 一旦确定了核心贡献,撰写论文就有一套默认的写作模式可循。顶层结构默认为:引言、相关工作、模型、实验、结论。写引言时,我发现先在 latex 注释里写下一条连贯的顶层叙事脉络,再在下面填充具体文字,会很有帮助。我喜欢围绕一个明确的核心观点来组织每一段——在首句直接点明,然后在段落其余部分加以支撑。这种结构便于读者快速浏览全文。一个较好的思路流程大致如下:1) X(若 X 不显而易见则加以定义)是一个重要问题;2) 核心挑战是这两点;3) 已有工作用 Y 来应对这些挑战,但问题在于 Z;4) 在本文中我们采用 W(?);5) 这具有以下吸引人的特性,我们的实验也表明了这一点和那一点。这一结构可以适度调整,但这些核心要点必须清晰呈现。再次注意,论文是围绕你的具体贡献以外科手术般的精准度组织的——例如,你列举挑战时,应当恰好列出你后文会逐一应对的那些挑战,而不是东拉西扯与你工作无关的内容(在结论部分可以稍作推测性延伸)。保持合理的结构贯穿全文始终至关重要,不只是在引言部分。例如,在解释模型时,每个小节都应:1) 清晰说明本节做了什么;2) 说明核心挑战是什么;3) 说明基线方案是什么,或前人做了什么;4) 给出动机并解释你的做法;5) 详细描述之。

打破结构。 当然,你也完全可以(而且受到鼓励!)在一定程度上玩转这些套路,为论文增添些许风味。例如,可以看看 Razavian et al. 2014 年的这篇有趣论文,它将引言写成了一场师生对话,妙趣横生,我很喜欢。再举一例,Alyosha Efros 的许多论文文风活泼,是撰写有趣论文的绝佳案例研究——仅举其中一例:他与 Antonio Torralba 合写的《对数据集偏差的无偏审视》。另一种我见过的有效做法是加入 FAQ 部分,可放在附录中。

常见错误:流水账式罗列。 一个非常常见的错误要避免,那就是"流水账式罗列”(laundry list),大致形式如下:“这是问题所在。好,为了解决这个问题,我们首先做 X,然后做 Y,再做 Z,接着做 W,最终得到如下结果。“你应当竭力避免这种结构。每一个论点都应有充分的理由、动机和解释。你为什么要做 X 或 Y?有哪些替代方案?别人是怎么做的?你可以说某种做法是业界惯例(如有可能请添加引用)。你的论文不是一份报告,不是对你所做工作的逐条列举,也不是把你的时序笔记和实验记录翻译成 latex。它是对一个问题、你的方法及其背景的高度提炼、极度聚焦的讨论,应当教给同行某些东西,因此你必须为自己的每一步提供理由,而不仅仅是描述你做了什么。

用词。 随着时间推移,你会积累一套写论文时好词与忌词的词汇库。具体以机器学习或计算机视觉论文为例:你在论文中绝不用"study"或"investigate"这类枯燥、被动的糟糕词汇;而应使用"develop”,甚至更好地用"propose”。你呈现的不是"system”,更不是——令人不寒而栗的——“pipeline”;而是开发了一个"model"。你学习的不是"features",而是"representations"。还有,天哪,你绝对不能用"combine"、“modify"或"expand”。这些都是渐进式、粗陋的词汇,必然会让你的论文遭到拒稿 :)。

提前两周设置内部截止日期。 并非很多实验室都这样做,但幸运的是,Fei-Fei 非常坚持在正式截止日期前两周设置一个内部截止日期,届时你必须提交至少5页的草稿,包含所有最终实验(即使数字未必是最终版本),并经历一套与外部审稿完全相同的内部审查流程(包括填写相同的审稿表格等)。我发现这一做法极为有用,因为强迫自己铺开完整的论文框架,几乎总能暴露出若干关键实验——那些让论文流程通顺、论点连贯一致且令人信服所必须补充的实验。

关于这一话题,Jennifer Widom 的《技术论文写作建议》也是一份极佳的参考资料。

编写代码

当然,执行你的想法会占据你大量时间,这通常涉及大量编程。我不会在这一点上过多赘述,因为它并非学术界所独有,但我想提几点。


公开你的代码。有一个颇为令人惊讶的事实:你完全可以只发表论文而不公开代码。你也会感受到种种不公开代码的动机:这可能需要大量工作(研究代码往往像意大利面条般杂乱,因为你迭代速度极快,需要大量清理);想到别人可能评判你那充其量还过得去的编程能力,会令你心生畏惧;维护代码并(永无止境地)回答他人的问题令人头疼;你也可能担心别人会发现让你的结论站不住脚的 bug。然而,正是出于上述部分原因,你反而应该下定决心公开代码:出于对被公开羞辱的恐惧,你会被迫养成更好的编程习惯(这反而会帮你省时间!);它会迫使你学习更好的工程实践;它会迫使你对代码更加严谨(例如编写单元测试,大幅降低出现 bug 的概率);它会让其他人更有可能跟进你的工作(从而带来更多论文引用);当然,作为为后人留存的精确记录,它对所有人都更有价值。当你公开代码时,我建议充分利用 docker containers;这能减少人们因无法安装所有依赖(及其精确版本)而发邮件向你诉苦的麻烦。

为未来的自己着想。务必为自己做好完整的代码注释与文档。我可以保证,几个月后你再回头看自己的代码库时(比如为了论文 camera-ready 版本补做几个实验),会感到完全迷失其中。我养成了在所有仓库中创建详尽 readme.txt 文件的习惯(供个人使用),作为留给未来自己的笔记,记录代码如何运作、如何运行等内容。

做报告

好了,你发表了一篇论文,还入选了口头报告!现在你要向大批听众做几分钟的演讲——应该怎么呈现?

报告的目标。首先,有一个常见的误解:认为报告的目标是向听众讲述你在论文中做了什么。这是不对的,它至多只能是第二或第三层级的设计标准。报告的目标是:1) 让听众对你所研究的问题真正感到兴奋(他们必须认可问题的价值,否则不会关心你的解决方案!);2) 教给听众一些东西(理想情况下,同时让他们体会到你的洞见与解法;不要怕花时间介绍他人的相关工作);3) 让人入胜(否则他们就会开始刷 Facebook)。理想情况下,报告结束时,听众脑中浮现的应该是这些想法的某种混合:“哇,我做的方向是不是选错了”、“我得去读这篇论文”,以及"这个人对整个领域有着令人印象深刻的理解"。

几点建议: 有几个特质能让报告更出色。比如,要:多用图片。人们喜欢图片。视频和动画则应更节制地使用,因为它们会分散注意力。要:让报告具有可操作性——讲述听众在听完后能够付诸实践的内容。要:如有可能,进行现场演示,这能让你的报告更令人难忘。要:构建一条更宏观的思想脉络,将你的工作置于其中。要:将其发展成一个故事(人们喜欢故事)。要:引用、引用、再引用——大量引用!在幻灯片上向同事致谢只需占用极少的空间。这令他们高兴,也总能给你加分,因为它表明你对自己的贡献保持谦逊,并意识到这一工作建立在大量前人成果与并行工作之上。你甚至可以引用同一会议上发表的相关工作,并简短地为其做一番宣传。要:练习报告!先独自练习,之后再对实验室成员或朋友讲。这几乎总能揭示你的叙事结构与流程中颇具启发性的缺陷。

不要:大段文字。不要在幻灯片上堆砌文字。要点列表应极少甚至没有——演讲者有时试图用这些作为提醒自己该说什么的拐杖,但幻灯片不是为你准备的,而是为听众准备的。这些内容应该放在你的演讲注记里。说到幻灯片内容拥挤的问题,也要尽量避免使用复杂图表——听众的信息处理带宽是有限的,而我可以保证,在你眼中再熟悉不过、“简单"的图表,在第一次看到它的人眼里绝非如此简单或易于解读。

注意:结果表格。不要放满满当当的结果表格来证明你的方法更优越。你都发出论文了,结果肯定过得去。我始终觉得这些部分既无聊又多余,除非那些数字展示了某些有趣的东西(而不仅仅是你的方法更好),或者当然是有一个让你引以为傲的巨大差距。如果你确实要放结果或图表,请用过渡动画逐步呈现,不要一口气全放出来然后在同一张幻灯片上耗费3分钟。

陷阱:无聊与困惑之间的窄带。要设计出让听众大多数人都能学到东西的报告,实际上相当困难。作为听众,一种常见的失败情形是:前半段痛苦地煎熬,后半段完全看不懂,最终什么也没学到。这种情况往往出现在这样的报告中:前半段是非常宽泛(过于宽泛)的概述,后半段是技术性的(过于技术性)内容。试着识别你的报告是否有陷入这种模式的危险。

陷阱:时间不够。许多演讲者在开篇介绍部分(往往略显无聊)耗费过多时间,然后慌乱地快速掠过最后几张包含最有趣结果、分析或演示的幻灯片。不要成为这样的人。

陷阱:公式化的报告。我可能是个特例,但我始终偏爱那些打破常规的非公式化报告。比如,我对那张"提纲幻灯片"深恶痛绝。它让报告变得极其无聊,就好比在说:“这部电影讲的是一枚权力之戒。第一章,我们将看到一个霍比特人获得这枚戒指。第二章,我们将看到他前往魔多。第三章,他将把戒指投入末日火山并将其摧毁。现在开始第一章”——拜托!我会在更长的报告中使用提纲幻灯片,以便听众走神时(超过30分钟的报告,他们难免会走神几次)能重新找到方向,但应当节制使用。

观察与学习。归根结底,提升报告水平(写论文亦然)的最佳方式,是有意识地关注优秀(以及不那么优秀)的演讲者都在做什么,并在脑海中建立一个二分类器。不要只是享受报告;要分析它们,拆解它们,从中学习。此外,要密切关注听众及其反应。有时演讲者会放出一张布满数字的复杂表格,你会发现半数听众立刻低头拿出手机,打开 Facebook。在内心建立一个分类器,识别那些导致这种情况发生的事件,并在自己的报告中加以规避。

参加会议

关于会议:

去参会。 参加会议非常重要,尤其是你所在领域的1-2个顶级会议。如果你的导师资金不足、不愿支付你的差旅费(比如你没有论文在会上发表),你应该愿意自掏腰包(通常交通、住宿、注册费和餐饮合计约2000美元)。这很重要,因为你想成为学术共同体的一员,有机会结识更多该领域的人,并交流关于研究课题的种种八卦。科学或许给人一种形象:几个天才独狼在孤独中工作,但事实是,研究在本质上是一项高度社会化的事业——你站在许多人的肩膀上,与他人并行攻克问题,而你写论文的受众也正是这些人。此外,遗憾的是,每个领域都有一些知识无法被序列化进论文,而是散布在社群的共同理解之中;诸如下一步该研究哪些重要课题、哪些论文最值得关注、论文背后的内幕、它们的历史沿革、哪些方法真正有效(不只是在纸面上,在实践中也是)等等。融入这个社群、直接接入群体心智——先从中汲取,再期望有朝一日影响它——是极有价值(也很有趣!)的事情。

报告:按演讲者选择。我摸索出的一个会议技巧是:在选择听哪些报告时,看演讲者往往比看主题更有效。有些人的报告做得比别人好(这是一种技能,你会逐渐发现这样的人),在我的经验中,即便主题与你的研究领域并不完全相关,去听他们演讲往往也是值得的。

真正的精彩在走廊。创新的速度(尤其是在机器学习领域)如今远超会议的节奏,因此你在会议上看到的大多数相关论文实际上早已不是新鲜事。因此,会议首要是一项社交活动。与其去听某场报告,我更鼓励你把走廊视为日程表上看不见的主要活动之一。漫步于海报展示区,发掘一些你可能错过的有趣论文和想法,也很有价值。

据说博士生涯分为三个阶段。第一阶段,你翻开相关论文的参考文献列表,发现其中大多数都没读过。第二阶段,你认识其中所有的论文。第三阶段,你与所有这些论文的第一作者都喝过酒。

结语


我已经找不到原话了,但我记得 YC 的 Sam Altman 说过,创业没有捷径,也没有什么取巧之道。你不能指望靠耍手段或虚张声势在长跑中胜出。我认为同样的道理也适用于学术界。归根结底,你的目标是做出好的研究、推动领域向前发展——如果你只想在各种代理指标上动手脚,长远来看是不会成功的。这一点尤为如此,因为学术界其实出乎意料地小,彼此高度连通。所以,任何你试图用来虚填学术履历的旁门左道(比如大量自引、把同一个想法小改后反复发表、被拒的论文一字不改地一遍遍投、方便地省去某些基准对比,等等),迟早都会找上门来,让你无所遁形。

所以,说到底其实很简单:做好工作,好好表达,自然会有人注意到,好事也自然会随之而来。享受这段旅程吧!

编者注:HN 讨论链接


术语表

原文中文
Alyosha Efros原文保留(计算机视觉学者)
Andrew Ng吴恩达(AI领域知名学者)
Antonio Torralba原文保留(计算机视觉学者)
BenBen(Quora 讨论帖作者之一,保留原文)
camera-readycamera-ready(论文终稿版本,保留原文)
cockroach papers蟑螂论文
convnets卷积网络
Fei-FeiFei-Fei(即李飞飞,作者博士导师,保留原文昵称写法)
gestalt格式塔(整体观感;论文给人的整体印象与格局感)
Gladwell格拉德威尔(Malcolm Gladwell,《异类》作者)
Gordon FreemanGordon Freeman(《半条命》游戏角色,保留原文)
h-indexh指数
hivemind群体心智
incremental work渐进式工作
inner loop内循环
Jennifer Widom原文保留(斯坦福数据库学者)
JustinJustin(Quora 讨论帖作者之一,保留原文)
laundry list流水账式罗列
oral口头报告(会议中的口头报告,区别于海报展示)
outer loop外循环
outline slide提纲幻灯片
paperscapepaperscape(论文可视化网站,保留原文)
postdocs博士后
poster session海报展示环节
pull figure引导图(论文首页或次页的核心展示性配图)
Razavian et al.原文保留
Richard Hamming理查德·汉明(计算机科学家,以汉明码闻名)
Richard SocherRichard Socher(AI研究者,保留原文)
Sam AltmanSam Altman(Y Combinator 总裁,保留原文)
system figure系统图(展示整体架构的配图)
taste品味(研究选题的直觉与鉴赏力)
tenure终身教职
YCYC(Y Combinator 创业孵化器,保留原文缩写)

此文章由 AI 翻译