本文翻译自 A Survival Guide to a PhD,原载于 Hacker News。
这篇文章是我多年前写的「如何在课程中取得好成绩」的延续版。当时那篇文章收到了不错的反馈,现在我的博士生涯即将结束,我想用同样的精神整理一份回顾文档,希望对后来者有所帮助。与本科指南不同,这篇要难写得多——因为博士经历因人而异,差异巨大。因此,很多观点可能存在争议,相当一部分内容也仅限于我熟悉的领域(计算机科学/机器学习/计算机视觉研究)。但免责声明太无聊了,让我们直接开始吧!
是否应该读博?
首先,你应该读博吗?我很幸运,从小就知道自己想要博士学位。不幸的是,这并非经过深思熟虑:第一,我真的很喜欢学校和学习,想尽可能多学;第二,我想成为《半条命》游戏里的 Gordon Freeman(他在 MIT 获得了理论物理学博士学位)。我太爱那个游戏了。
但如果你在做人生决定时更加理性呢?你应该读博吗?有一个很好的 Quora 讨论串,下面的总结我借用了其中一些观点。我假设你考虑的另一选择是加入中型或大型公司(这可能是最常见的情况)。问问自己以下特质是否吸引你:
自由。 博士会让你在选择研究方向和学习内容上拥有大量自由。你是自己的主人。当然,你会有导师施加一些约束,但总体上你会比其他地方拥有更多自由。
所有权。 你产出的研究成果属于你个人。你的成就上有你的名字。相比之下,在大公司里「融入」要普遍得多。一种常见的感觉是成为「轮子里的齿轮」。
稀缺性。 能进入顶尖博士项目的人寥寥无几。你将与几百位杰出人士为伍,而不是几万名加入某家公司的人。
地位。 不管是否应该如此,攻读并获得博士学位在文化上是受人尊敬的,被认为是一项令人印象深刻的成就。你还成为了「博士」——这很酷。
个人自由。 作为博士生,你是自己的老板。今天想睡懒觉?没问题。想休息一天去度假?没问题。重要的是最终产出,没人会强迫你朝九晚五打卡。当然,有些导师可能对此更或更不灵活,有些公司也可能如此,但这是一阶近似。
最大化未来选择。 加入博士项目不会关闭任何门,也不会消除未来的就业/生活方式选择。你可以走 PhD -> 任何地方这条路,但反过来不行(任何地方 -> PhD -> 学术界/研究;统计上可能性更低)。此外(虽然这可能特定于应用机器学习领域),作为博士毕业生甚至博士生辍学者,你的就业竞争力更强,很多公司可能愿意给你更有趣的职位或更高的起薪。更广泛地说,为未来的自己最大化选择是一个很好的启发式原则。
最大化方差。 你还年轻,真的不必着急。博士毕业后,你可以用接下来的约 50 年在某家公司工作。选择更多样化的经历吧。
个人成长。 博士是一段快速成长的强烈经历(你学到了很多)和自我发现之旅(你将成为管理自己心理的大师)。博士项目(尤其是能进入好项目的)还提供了高密度的极其聪明的人,他们会成为你一生的挚友。
专业深度。 博士可能是你人生中唯一的机会,真正深入钻研一个主题,成为世界上某个领域的公认顶尖专家。你在探索人类知识的边界,没有次要干扰或负担的束缚。这其中有某种美丽——如果你不同意,这可能表明博士不适合你。
免责声明。 我想补充一些潜在的缺点和失败模式。博士是一种非常特殊的经历,值得加上一个大的免责声明。你不可避免地会非常努力地工作(尤其是在论文截止日期前)。你需要能够承受痛苦,有足够的心理耐力和决心来应对压力。有时你会忘记今天是星期几,靠微型厨房的剩饭剩菜为生。你会在一个阳光明媚的周六,疲惫而孤独地坐在实验室里,刷着 Facebook 上朋友们在异国旅行的照片——这些旅行由他们高出 5-10 倍的薪水支付。你将不得不扔掉三个月的工作成果,同时还要保持心理健康。你会纠结于意识到自己花了几个月在一篇只有几个引用的论文上,而你的朋友们在做令人兴奋的创业,有 TechCrunch 报道,或者把产品推向数百万用户。你会经历身份危机,质疑自己的人生决定,想知道自己在用人生中最好的几年做什么。因此,你应该相当确定自己能在非结构化的环境中追求科学研究和发现中茁壮成长。如果你不确定,默认应该倾向于否定。理想情况下,你应该在本科阶段通过暑期研究项目尝一尝研究的滋味,然后再决定是否承诺。事实上,博士招聘过程中研究经历之所以如此被看重,主要原因不是研究本身,而是学生更有可能知道自己将要面对什么。
我想明确说明,这篇文章不是要说服任何人读博,我只是尝试列举了一些常见的考量因素。这篇文章的大部分内容专注于一些技巧/窍门,帮助你在这段经历中航行(如果决定走这条路的话)。
最后,作为一个随想,我听说有人说只有想进学术界才应该读博。鉴于以上所有,我认为博士有很强的内在价值——它本身就是目的,不仅仅是达到某个目的(如学术工作)的手段。
如何进入博士项目:推荐信、推荐信、推荐信
很好,你决定要读了。那怎么进入好的博士项目?一阶近似很简单——最重要的组成部分是强有力的推荐信。理想情况是一位知名教授为你写的信:「某某是我合作过的前五名学生之一。她主动,有自己的想法,并能让想法落地。」最差的信是:「某某上了我的课。她表现不错。」暑期研究项目的研究论文是一个很强的加分项,但如果你有强推荐信,也不是绝对必需的。特别要注意:成绩相当无关紧要,但通常不想太低。我本科时没意识到这一点,花了很多精力拿好成绩。这些时间本应该用于研究(或者至少是个人项目),越多越早越好,如果可能的话,在多人的指导下(你需要 3+ 封推荐信!)。最后一点,突然给你的潜在导师发邮件没什么帮助。他们通常是极其忙碌的人,如果你在会议上或邮件中过于激进地试图给他们留下印象,可能会让他们恼火。
选择学校
一旦你被一些博士项目录取,怎么选学校?很简单,去斯坦福!开个玩笑。更认真地说,你理想的学校应该:1)是一所顶尖学校(不是因为简历好看,而是因为反馈循环;顶尖学校吸引其他顶尖人才,其中很多人你将有机会认识并合作);2)有几个你想合作的潜在导师。我真的是说「几个」——这非常重要,为你提供了一个安全垫,如果与你的首选导师因为各种原因——很多时候是你无法控制的因素,比如你梦想的教授离开、搬家或突然消失——没成的话;3)地理位置环境好。我认为新录取的学生不太重视这一点:你将在学校校园附近度过 5+ 年的美好年华。相信我,这是很长的时间,你的生活不仅仅是研究。
导师
学生-导师关系。 导师是一个极其重要的人,会对你的博士经历产生很大影响。理解这种关系的本质很重要:导师-学生关系是共生关系;你有自己的目标,想从博士中获得一些东西,但他们也有自己的目标、约束,在建立自己的事业。因此,理解你导师的激励结构非常有帮助:终身教职过程如何运作、他们如何被评估、如何获得资助、如何资助你、他们可能卷入的系里政治、他们如何获奖、学术界一般如何运作,以及他们具体如何获得同事的认可和尊重。仅这一点就能帮助你避免或缓解大部分学生-导师摩擦点,让你能够适当规划。我也不想让这种关系听起来太像商业交易。导师-学生关系,在大多数情况下,最终会发展成持久的关系,建立在比职业晋升更多的东西之上。
终身教职前 vs 终身教职后。 每个导师都不同,所以理解变化的维度及其对你博士经历的影响很有帮助。一个经验法则(记住有很多例外),跟踪潜在导师是终身教职前还是终身教职后很重要。年轻教师通常会更在场(他们正在努力获得终身教职),通常会更低层,对你应该做什么有更强的意见,他们会和你一起做数学、提出具体的想法,甚至查看(或贡献)你的代码。这是一种更加亲力亲为、可能更紧张的经历,因为导师需要强有力的发表记录来获得终身教职,他们有动力推动你同样努力工作。相比之下,更资深的教师可能有更大的实验室,往往有研究之外的许多其他承诺(如委员会、演讲、旅行),这意味着他们只能在研究领域的更高抽象层次上以及对学生的指导层面上停留。夸张地说,区别在于「你那个方程少了第二项」和「你可能想在这个领域多读一些,和这个人或那个人谈谈,用这种方式或那种方式推销你的工作」。在后一种情况下,低层次建议可能来自实验室的资深博士生或博士后。
变化的维度。 还有很多其他维度需要了解。有些导师温和,有些更喜欢保持非常专业的关系。有些会试图对你工作的细节施加很大影响,有些则更加放手。有些专注于特定模型及其在各种任务上的应用,而有些专注于任务,对任何特定的建模方法更加无所谓。在管理属性方面,有些会每周(甚至每天!)多次见你,有些你可能几个月都见不到。有些导师立刻回复邮件,有些一周都不回(或者永远不回,哈哈)。有些导师对你的工作时间表有要求(比如你最好工作很长时间或周末),有些不会。有些导师慷慨地为学生提供设备,有些认为笔记本电脑或旧电脑大体上就可以了。有些导师会资助你去参加会议,即使你没有论文,有些不会。有些导师具有创业精神或偏向应用,有些更倾向于理论工作。有些会让你做暑期实习,有些会认为实习只是分心。
寻找导师。 那么怎么选择导师?第一站当然是亲自和他们交谈。学生-导师关系有时被称为婚姻,你应该确保有良好的契合度。当然,首先你要确保能和他们交流,个人相处融洽,但同样重要的是了解他们在「教授空间」中占据的位置,尤其是你们在感兴趣的问题上是否存在智力共鸣。这可能与管理风格一样重要。
收集参考信息。 你还应该收集潜在导师的参考信息。一个好的策略是和他们的学生交谈。如果你想获得真实信息,不应该以非常正式的方式或场合进行,而应该在轻松的环境或氛围中(比如派对)。在很多情况下,如果以一般方式询问,学生可能仍然避免说导师的坏话,但当你问具体问题时,他们通常会如实回答,例如「你们多久见一次面?」或「他们多亲力亲为?」。另一个策略是看他们以前的学生最终去向(你通常可以在网站的校友部分找到),这当然也在统计上告知你自己最终的结果。
给导师留下印象。 导师-学生匹配过程有时被比作婚姻——你选他们,但他们也选你。从他们的角度来看,理想的学生是有兴趣和热情的人,不需要太多手把手教,主动——一周后出现时,不仅做了导师建议的,而且超越了它;以意想不到的方式改进了它。
考虑整个实验室。 另一个重要的一点是,你可能一周见导师一次,但你每天都会在实验室见到他们的大部分学生,他们会成为你最亲密的朋友。在大多数情况下,你最终还会与一些资深博士生或博士后合作,他们会扮演非常类似于你导师的角色。特别是博士后,是正在接受培训的教授,他们可能渴望与你合作,因为他们正在获得指导经验,可以在学术工作搜索中展示。因此,你要确保整个群体有你能够相处的人,你尊重的人,以及你可以与之密切合作研究项目的人。
研究选题
所以你已经进入博士项目并找到了导师。现在你要做什么研究?
外循环练习。 首先注意这段经历的本质。博士同时是一段有趣和令人沮丧的经历,因为你不断在元问题层面上运作。你不仅仅是解决问题——那只是简单的内循环。你把大部分时间花在外循环上,弄清楚哪些问题值得解决,哪些问题已经成熟可以解决。你不断想象自己解决假设性问题,问自己这会把你带到哪里,能解锁什么,或者有没有人在乎。如果你像我一样,这有时会让你有点发疯,因为你花了很长时间工作,但你甚至不确定它们是否是正确的事情,或者解决方案是否存在。
培养品味。 在选择问题时,你会听到学者们谈论一种神秘的「品味」感。这是一个真实的东西。当你向导师提出一个潜在问题时,你要么会看到他们的脸扭曲、眼睛翻白、注意力漂移,要么会感觉到他们眼中的兴奋,思考着待探索的未知领域。在那几秒钟内发生了很多事情:对问题重要性、难度、性感程度、历史背景的评估(可能还有它是否适合他们的活跃资助)。换句话说,你的导师很可能是外循环的大师,对问题有高度发达的品味感。在博士期间,你自己也会获得这种感觉。
特别是,我认为我来读博时品味很糟糕。我可以在早期博士年份的笔记中看到这一点。当时我兴奋的很多问题,回过头看都是构思不当、难以解决或无关紧要的。我想我通过实践和学徒制在结束时 refine 了这个感觉。
让我现在尝试序列化一些关于这种品味感包含什么的想法,以及什么使一个问题值得研究。
肥沃的土地。 首先,认识到在博士期间你将深入一个领域,你的论文很可能相互链接,创造出一批工作(这成为你的论文)。因此,在选择问题时,你应该总是提前想几步。不可能预测事情会如何发展,但你通常可以感觉到还有多少额外工作的空间。
符合导师的兴趣和优势。 你会想在导师感兴趣的领域运作。有些导师可能允许你在稍微边缘的领域工作,但你没有充分利用他们的知识,你让他们不太可能想帮助你推进项目或推广你的工作。例如(这涉及到我之前关于理解你导师工作的观点),每个导师都有一个他们在研究中一直给的「默认演讲」幻灯片,如果你的工作可以给这个幻灯片添加新的令人兴奋的前沿工作,你会发现他们更加投入、有帮助和参与你的研究。此外,他们的演讲会推广和宣传你的工作。
要有野心:难度的亚线性扩展。 人们心理中有一个奇怪的 bug:一个 10 倍更重要或更有影响力的问题直觉上感觉 10 倍更难(或 10 倍更不可能)实现。这是一个谬误——根据我的经验,一个 10 倍更重要的问题最多只难 2-3 倍。事实上,在某些情况下,一个 10 倍更难的问题可能更容易实现。怎么会?因为想 10 倍迫使你跳出框框,面对方法的真正局限,从第一性原理思考,完全改变策略,创新。如果你渴望改进 10% 并努力工作,你会做到。但如果你渴望改进 100%,你仍然很可能做到,但你会用非常不同的方式做到。
有野心但要有攻击路径。 在这一点上,同样重要的是指出有很多重要的问题不会成为很好的项目。我推荐阅读 Richard Hamming 的《You and Your Research》,其中详细阐述了这一点:
如果你不做一个重要的问题,你不太可能做重要的工作。这很明显。伟大的科学家仔细思考了他们领域的许多重要问题,他们时刻关注着如何攻克它们。让我警告你,「重要问题」必须仔细表述。物理学中的三个杰出问题,在某种意义上,我在 Bell Labs 时从未被研究过。所谓重要,我指保证诺贝尔奖和任何你想提到的金额。我们没有研究 (1) 时间旅行,(2) 传送,和 (3) 反重力。它们不是重要问题,因为我们没有攻击路径。不是后果使问题重要,而是你有合理的攻击路径。这就是什么使问题重要。
那个做 X 的人。 最终,博士的目标不仅是发展一个领域的深度专业知识,还要在领域上留下你的印记。引导它,塑造它。理想的场景是,在博士结束时,你拥有某个重要领域的某个部分,最好是那个容易且快速描述的。你希望人们说「她是那个做 X 的人」。如果你能在那里填一个空白,你就会成功。
有价值的技能。 认识到在博士期间,你将成为你选择领域的专家(作为一个有趣的旁注,注意 [5 年]x[260 工作日]x[每天 8 小时] 是 10,400 小时;如果你相信 Gladwell,那么博士恰好是成为专家所需的时间)。所以想象 5 年后的你是这个领域的世界专家(无论你工作的学术影响如何,10,000 小时都会确保这一点)。这些技能对你未来的努力是否令人兴奋或有潜在价值?
负面例子。 还有一些问题或论文类型,你理想情况下应该避免。例如,你有时会听到学者们谈论「增量工作」(这是学术界最糟糕的形容词)。增量工作是一篇通过使某物更复杂来增强现有事物的论文,在某些基准上获得 2% 的额外提升。有趣的是,这些论文有相当高的几率被接受(审稿人无法指出任何杀死它们的东西;它们有时也被称为「蟑螂论文」),所以如果你有一串这样的论文被接受,你可能会觉得自己非常高效,但实际上这些论文不会被高度引用,你也不会对领域产生很大影响。同样,寻找项目时不应该包括「空气中有这个下一个逻辑步骤还没人做,让我来做」或「这应该是一个简单的海报」这样的想法。
案例研究:我的论文。 为了让一些讨论更具体,我想用我自己的博士是如何展开的作为例子。首先,有趣的事实:我的整个论文是基于我在博士最后 1.5 年做的工作。也就是说,我花了很长时间在元问题空间里折腾,找到一个我觉得非常兴奋去研究的问题(另外约 2 年我主要在 3D 东西(如 Kinect Fusion、3D 网格、点云特征)和视频东西上徘徊)。然后在我第三年的某一天,我在凌晨 2 点随机停在 Richard Socher 的办公室。我们聊了一些有趣的问题,我意识到他在图像和语言方面的一些工作实际上触及了一些非常有趣的东西(当然,图像和语言交叉领域的领域可以追溯到比 Richard 更久远)。我不能完全看到接下来会有什么论文,但启发式地看非常有希望:它非常肥沃(很多未解决的问题,很多将描述与图像联系起来的有趣可能性),我觉得它非常酷和重要,很容易解释,似乎处于可能的边界(深度学习刚刚开始工作),数据集刚刚开始变得可用(Flickr8K 刚刚出来),它很适合 Fei-Fei 的兴趣,即使我不成功,我至少会得到很多优化有趣的深度网络的练习,我可以在其他地方重新应用。我有一种强烈的海啸般的感觉,一切在我脑海中到位。第二天我向 Fei-Fei(我的导师)推介这是一个值得深入研究的领域,令她如释重负地热情批准,鼓励我,并后来在这个空间内引导我(例如,Fei-Fei 坚持让我做图像到句子生成,而我大多满足于排序)。我很高兴事情从那时起如何发展。简而言之,我在外循环周围徘徊了 2 年,寻找可以深入的东西。一旦基于几个启发式方法对我明确那是什么,我就投入了。
阻力。 我还想提到,你的导师绝不是无懈可击的。我目击和听说过很多案例,回顾起来,导师做出了错误的判断。如果你在博士期间有这种感觉,你应该有勇气有时忽略你的导师。学术界通常庆祝独立思考,但你具体导师的反应可能因情况而异。我知道多个情况下赌注非常成功,我也亲身经历过不太成功的情况。例如,我强烈不同意 Andrew Ng 在我第一年给我的一些建议。我最终研究了一个他不太兴奋的问题,惊喜的是,他非常正确,我浪费了几个月。有赢有输 :)
不要玩这个游戏。 最后,我想挑战你把博士看作不仅仅是一系列论文。你不是论文写手。你是研究社区的一员,你的目标是推进领域发展。论文是一种常见的方式,但我鼓励你超越既定的学术游戏。独立思考,从第一性原理出发。做其他人不做但应该做的事情。走出摆在你面前的跑步机。我在博士期间尝试做一些这样的事情。这个博客就是一个例子——它让我传达通常不会进入论文的东西。ImageNet 人类参考实验是一个例子——我强烈认为领域需要知道人类在 ILSVRC 上的大致准确率,所以我花了几周时间评估它。学术搜索工具(如 arxiv-sanity)是一个例子——我对在文献中找论文的低效感到持续沮丧,我发布并维护这个网站,希望它能对其他人有用。两次教授 CS231n 是一个例子——我投入了比对应该做研究的博士生理性建议更多得多的精力,但我觉得如果人们不能有效地学习这个主题并进入领域,领域就会被拖后。我的很多博士努力可能以标准学术指标(如 h-index 或顶级会议发表论文数量)为代价,但我还是做了,我会再次以同样的方式做,我在这里鼓励其他人也这样做。加一点盐冲淡一下意识形态,根据我和朋友同事的几次过去讨论,我知道这个观点是有争议的,很多人会不同意。
写论文
写好论文是学者的基本生存技能(有点像原始人生火)。特别重要的是要意识到论文是一种特定的东西:它们看起来像某种方式,流动像某种方式,有某种结构、语言和统计,其他学者期望的。对我来说,翻看我早期博士论文草稿是一种非常痛苦的练习,因为它们相当糟糕。这里有很多要学的。
审论文。 如果你试图学会写更好的论文,看很多好论文并尝试提取模式可能看起来是一个合理的策略。事实证明这不是最好的策略;这类似于只接收二元分类问题的正例。你真正想要的是也接触大量糟糕的论文,获得这种接触的一个方法是审稿。大多数好的会议接受率约为 25%,所以你审的绝大多数论文都是糟糕的,这将允许你建立一个强大的二元分类器。你会读一篇糟糕的论文,意识到它有多不清晰,或者它没有定义变量,它的介绍有多模糊和抽象,或者它太快进入细节,你会学会在自己的论文中避免同样的陷阱。另一个相关的宝贵经验是参加(或组建)期刊俱乐部——你会看到资深研究人员批评论文,获得你自己的论文将如何被他人分析的印象。
把 gestalt 做对。 我记得在一次审稿期间对 Fei-Fei(我的导师)印象深刻。我有一叠 4 篇论文,我在过去几个小时里审阅了,她拿起来,每篇翻阅 10 秒,说其中一篇好,其他三篇不好。确实,我接受一篇,拒绝其他三篇,但花了几个小时的事情她花了几秒钟。Fei-Fei 依赖论文的 gestalt 作为一个强大的启发式方法。你的论文,当你成为更资深的研究人员时,呈现出一种特征性的外观。约 1 页的介绍。约 1 页的相关工作部分,有良好的引用密度——不太稀疏也不太拥挤。一个精心设计的 pull figure(在第 1 或 2 页)和系统图(在第 3 页),不是用 MS Paint 做的。一个带有数学符号的技术部分,结果表格有很多数字,其中一些加粗,一个额外的有趣分析实验,论文正好 8 页(页数限制),一行也不少。你必须学会给你的论文赋予同样的 gestalt,因为许多研究人员在评判你的工作时依赖它作为认知捷径。
确定核心贡献。 在你开始写任何东西之前,重要的是确定你的论文对领域的单一核心贡献。我特别想强调「单一」这个词。一篇论文不是你运行的一些实验的随机集合,然后报告。论文销售的是一个以前不明显或不存在的东西。你必须论证这个东西是重要的,以前没有做过,然后在对照实验中实验性地支持其优点。整篇论文围绕这个核心贡献精确地组织。特别地,它没有任何额外的废话,它不会试图在旁边塞进任何其他东西。作为一个具体的例子,我在一篇早期的视频分类论文中犯了一个错误,我试图塞进两个贡献:1)视频卷积网络的一组架构布局和一个无关的 2)多分辨率架构,它给出了小幅改进。我加上它是因为我想也许有人会觉得它有趣并跟进,其次我认为论文中的贡献是可加的:两个贡献比一个好。不幸的是,这是错误和非常错误的。第二个贡献是次要的/可疑的,它稀释了论文,它分散注意力,没人在乎。我在 CVPR 2014 论文中又犯了类似的错误,它展示了两个独立的模型:一个排序模型和一个生成模型。几个事后看来很好的论点可以说明我应该提交两篇独立的论文;它是一篇的原因更多是历史性的而非理性的。
结构。 一旦你确定了核心贡献,就有一个关于它的论文写作的默认配方。上层结构默认是介绍、相关工作、模型、实验、结论。当我写介绍时,我发现先在 latex 注释中写下一个连贯的顶层叙述,然后在下面填充文本很有帮助。我喜欢把每个段落组织在第一句话陈述的单一具体点周围,然后在段落的其余部分支持。这种结构使读者容易浏览论文。一个好的思想流则是:1)X(+ 如果不明显则定义 X)是一个重要问题;2)核心挑战是这个和那个;3)之前关于 X 的工作用 Y 解决了这些,但问题是 Z;4)在这项工作中我们做 W(?);5)这有以下吸引人的属性,我们的实验展示了这个和那个。你可以稍微玩弄这个结构,但这些核心点应该清楚地表达。再次注意,论文围绕你的确切贡献精确地组织。例如,当你列出挑战时,你想列出的正是你后来要解决的事情;你不会围绕与你所做的无关的事情徘徊(你可以在结论中多推测一点)。在整个论文中保持合理的结构很重要,不仅仅是在介绍中。例如,当你解释模型时,每个部分应该:1)清楚地解释该部分正在做什么,2)解释核心挑战是什么,3)解释基线方法是什么或其他人以前做过什么,4)激发并解释你做什么,5)描述它。
打破结构。 你也应该感到自由(并被鼓励!)在某种程度上玩弄这些公式,给你的论文加一些调味料。例如,看看 Razavian 等人 2014 年这篇有趣的论文,它将介绍结构化为学生和教授之间的对话。它很聪明,我喜欢。作为另一个例子,Alyosha Efros 的很多论文都有俏皮的语调,是写有趣论文的很好案例研究。作为许多例子中的一个,看看他和 Antonio Torralba 写的这篇论文:Unbiased look at dataset bias。另一个我看到效果很好的可能性是包含 FAQ 部分,可能在附录中。
常见错误:流水账。 一个非常常见的需要避免的错误是「流水账」,看起来像这样:「这是问题。好了,为了解决这个问题,首先我们做 X,然后我们做 Y,然后我们做 Z,现在我们做 W,这是我们要得到的。」你应该非常努力地避免这种结构。每一点都应该被论证、激发、解释。为什么你做 X 或 Y?有什么替代方案?其他人做了什么?说这是常见的就可以了(如果可能添加引用)。你的论文不是报告,不是你所做的枚举,也不是你的按时间顺序的笔记和实验翻译成 latex。它是关于一个问题、你的方法及其背景的高度加工和非常集中的讨论。它应该教你的同事一些东西,你必须论证你的步骤,而不仅仅是描述你做了什么。
语言。 随着时间的推移,你会发展出写论文时使用的好词和坏词的词汇表。具体说到机器学习或计算机视觉论文,在你的论文中你从不「研究」或「调查」(这是无聊、被动、坏的词);相反,你「开发」或更好的是你「提出」。你不展示一个「系统」或——战栗——一个「管道」;相反,你开发一个「模型」。你不学习「特征」,你学习「表征」。天哪,你从不「组合」、「修改」或「扩展」。这些是增量的、粗俗的术语,肯定会让你的论文被拒:)。
内部截止日期提前 2 周。 没有多少实验室这样做,但幸运的是 Fei-Fei 对在截止日期前 2 周的内部截止日期相当坚持,你必须提交至少 5 页的草稿,包含所有最终实验(即使不是最终数字),经过与外部审稿完全相同的内部审稿过程(填写相同的审稿表等)。我发现这种做法非常有用,因为强迫自己布局完整的论文几乎总是揭示出你必须运行的一些关键实验,论文才能流畅,其论证流程才能连贯、一致和有说服力。
关于这个话题的另一个好资源是 Jennifer Widom 的《Tips for Writing Technical Papers》。
写代码
你很多时间当然会被你的想法的执行所占用,这可能涉及大量编码。我不会过多讨论这个问题,因为它不是学术界独有的,但我想提几点。
发布你的代码。 这是一个有点令人惊讶的事实,但你可以发表论文而不发布代码。你也会感到很多不发布代码的激励:这可能是很多工作(研究代码可能看起来像意大利面,因为你迭代非常快,你必须清理很多),想到别人可能会根据你最多体面的编码能力评判你可能令人生畏,维护代码和回答其他人关于它的问题(永远)是痛苦的,你可能还担心别人可能发现使你的结果无效的 bug。然而,正是因为其中一些原因,你应该承诺发布你的代码:它将迫使你因为害怕公开羞辱而采用更好的编码习惯(这最终会节省你的时间!),它将迫使你学习更好的工程实践,它将迫使你对代码更加彻底(例如写单元测试使 bug 可能性大大降低),它将使其他人更有可能跟进你的工作(从而导致你的论文被更多引用),当然它作为确切做了什么的记录对每个人都有用。当你发布代码时,我建议利用 docker 容器;这将减少人们安装所有依赖(及其精确版本)时给你发邮件的头疼。
想想未来的你。 确保为你自己好好记录所有代码。我保证你几个月后会回到你的代码库(例如为论文的 camera ready 版本做一些更多的实验),你会感到完全迷失其中。我养成了在所有我的仓库中创建非常详尽的 readme.txt 文件(供我个人使用)的习惯,作为给未来自己的笔记,关于代码如何工作,如何运行它等。
做演讲
所以,你发表了一篇论文,而且是口头报告!现在你可以在一大群人面前做几分钟的演讲——它应该是什么样的?
演讲的目标。 首先,有一个常见的误解,认为演讲的目标是告诉你的听众你在论文中做了什么。这是不正确的,应该只是第二或第三阶设计标准。你演讲的目标是:1)让听众对你研究的问题真正兴奋(他们必须欣赏它,否则他们不会关心你的解决方案!);2)教听众一些东西(理想情况下同时给他们一些你的洞察/解决方案的品味;不要害怕花时间在他人的相关工作上);3)娱乐(否则他们会开始查看 Facebook)。理想情况下,演讲结束时,你的听众在想「哇,我在错误的领域工作」、「我必须读这篇论文」和「这个人对整个领域有令人印象深刻的理解」的某种混合。
一些要做的事。 有几个属性使演讲更好。例如,要:大量图片。人们喜欢图片。视频和动画应该更谨慎使用,因为它们会分散注意力。要:让演讲可操作——谈论某人听完你的演讲后可以做的事情。要:如果可能做一个现场演示,它可以让你的演讲更令人难忘。要:发展你的工作所属的更广泛的智力弧线。要:把它发展成一个故事(人们喜欢故事)。要:引用、引用、大量引用!给同事致谢几乎不占幻灯片空间。这让他们高兴,总是对你有利,因为这表明你对自己的贡献谦虚,意识到它建立在大量以前发生和同时发生的事情之上。你甚至可以引用同一会议发表的相关工作并简要宣传。要:练习演讲!首先独自练习,然后给你的实验室/朋友。这几乎总是揭示你叙述和流程中非常有见地的缺陷。
不要:文字文字文字。 不要在幻灯片上堆砌文字。应该很少或没有要点——演讲者有时试图用这些作为拐杖来提醒自己应该谈论什么,但幻灯片不是给你的,是给观众的。这些应该在你的演讲者笔记中。关于拥挤幻灯片,也尽可能避免复杂的图表——你的听众有固定的位带宽,我保证你自己非常熟悉和「简单」的图表对第一次看到的人来说并不那么简单或可解释。
小心:结果表格。 不要包含密集的结果表格显示你的方法效果更好。你发表了论文,我确信你的结果是体面的。我总是觉得这些部分无聊且不必要,除非数字显示一些有趣的东西(除了你的方法更好),或者当然除非有一个你非常自豪的大差距。如果你包含结果或图表,用过渡慢慢建立它们,不要一次全部发布,在一页幻灯片上花 3 分钟。
陷阱:无聊/困惑之间的窄带。 设计让相当一部分听众学到东西的演讲实际上相当棘手。一个常见的失败案例(作为听众)是看到演讲,前半部分让我痛苦地无聊,后半部分完全困惑,到最后什么也没学到。这可能发生在有非常一般(太一般)的概述,随后是技术性(太技术性)的第二部分的演讲中。尝试识别你的演讲何时有这种属性的危险。
陷阱:时间不够用。 很多演讲者在早期的介绍部分(通常可能有些无聊)花太多时间,然后疯狂地匆匆浏览最后几页包含最有趣的结果、分析或演示的幻灯片。不要成为那个人。
陷阱:公式化的演讲。 我可能是一个特例,但我总是喜欢挑战惯例的非公式化演讲。例如,我厌恶大纲幻灯片。它让演讲如此无聊,就像说:「这部电影是关于权力之戒的。在第一章我们将看到一个霍比特人获得戒指。在第二章我们将看到他前往魔多。在第三章他将把戒指投入末日火山并销毁它。我将从第一章开始」——拜托!对于更长的演讲,我用大纲幻灯片让听众保持锚定,如果他们走神(在 30 分钟以上,他们不可避免地会几次),但应该谨慎使用。
观察和学习。 最终,成为更好的演讲者(就像写论文一样)的最好方法是有意识地努力关注伟大的(和不太伟大的)演讲者做什么,并在你的脑海中建立一个二元分类器。不要只是享受演讲;分析它们,拆解它们,从中学习。此外,密切关注听众和他们的反应。有时演讲者会放一个有很多数字的复杂表格,你会注意到一半的听众立刻看手机打开 Facebook。建立一个内部分类器,识别导致这种情况发生的事件,在你的演讲中避免它们。
参加会议
关于会议:
去。 去参加会议非常重要,尤其是你领域 1-2 个顶级会议。如果你的导师缺乏资金,不想支付你的差旅费(例如如果你没有论文),你应该愿意自己支付(通常约 2000 美元用于旅行、住宿、注册和食物)。这很重要,因为你想成为学术社区的一部分,有机会认识该领域的更多人,聊聊研究话题。科学可能有这种几个杰出的独狼在孤立中工作的形象,但事实是研究主要是一个高度社会化的努力——你站在许多人的肩膀上,你与其他人并行研究问题,正是这些人你也在给他们写论文。此外,遗憾的是,每个领域都有没有序列化到论文但分布在社区共享理解中的知识;比如下一个重要的话题是什么,哪些论文最有趣,论文的内部消息,它们是如何历史发展的,什么方法有效(不仅在纸上,实际上)等等。成为社区的一部分并获得对群体思维的直接访问是非常有价值的(和有趣的!)——首先从中学习,然后希望影响它。
演讲:按演讲者选择。 我开发的一个会议技巧是,如果你选择参加哪些演讲,看演讲者而不是主题可能更好。有些人比其他人更擅长演讲(这是一种技能,你会在时间里发现这些人),根据我的经验,我发现看他们演讲往往是有回报的,即使是在一个与你研究领域不确切相关的话题上。
真正的行动在走廊里。 创新的速度(尤其是在机器学习中)现在以比会议快得多的时间尺度运作,所以你在会议上看到的大多数相关论文实际上是旧闻。因此,会议主要是一个社交活动。与其参加演讲,我鼓励你把走廊视为日程表上没有的主要活动之一。浏览海报会议,发现一些你可能错过的有趣论文和想法也是有价值的。
据说博士有三个阶段。第一阶段你看相关论文的参考文献部分,你还没读过大部分论文。第二阶段你认出所有论文。第三阶段你和所有论文的第一作者都喝过啤酒。
结语
我找不到那个引用了,但我听到 YC 的 Sam Altman 说,在创建创业公司方面没有捷径或作弊。你不能期望从长远来看通过某种方式玩弄系统或装假来获胜。我认为这同样适用于学术界。最终你试图做好的研究,推进领域发展,如果你试图玩弄任何代理指标,你从长远来看不会成功。尤其如此是因为学术界实际上出奇地小,高度互联,所以你试图做的任何不光彩的事情来填充你的学术简历(例如大量自引、用小的混音多次发表同一个想法、不做任何更改一遍又一遍地重新提交同一篇被拒的论文、方便地试图省略一些基线等)最终会追上你,你不会成功。
所以归根结底,这很简单。做好工作,正确传达,人们会注意到,好事就会发生。祝你旅途愉快!
关键要点总结
- 读博的核心价值:自由、所有权、专业深度、个人成长——不仅仅是为了进学术界
- 申请关键是推荐信:3 封强推比成绩重要得多,尽早做研究积累
- 选择学校三要素:顶尖学校 + 多个潜在导师 + 好的生活环境
- 导师是关键关系:理解他们的激励结构,这是共生关系,持续几十年
- 研究选题要有「品味」:避免增量工作,选肥沃的土地,10 倍野心可能比 10% 改进更容易
- 论文写作是生存技能:审稿学习、抓住 gestalt、单一核心贡献、避免流水账
- 开源你的代码:倒逼自己写更好的代码,增加影响力
- 演讲的目标是教和娱乐:不是复述论文内容
- 会议的真正价值在走廊:成为社区的一部分,获取隐性知识
- 不要玩游戏:做好的研究,从第一性原理思考,独立判断