博士应该怎样读——从我自身的经验谈起宫辰(chen.gong@njust.edu.cn)南京理工大学计算机科学与工程学院 关于如何读博士,如何成为一名优秀的博士,网上类似的帖子或文章有很多,它们都十分有道理,给了我很多的帮助和启发。因此,在我告别博士阶段的学习时,也非常希望能够从自身的角度,将我的一些经验和观点分享给大家,这也算是对我博士阶段学习的一个总结,如有不对之处还望大家多多指正。由于我的专业是模式识别、机器学习,因此我将主要结合本领域、本专业谈谈自己的心得和体会。 1.博士的培养目的是什么? 关于这个问题,很多同学的回答可能是“掌握更多的专业知识”“发表若干高水平的论文”“博士毕业后找到好的工作”等等。其实这些回答都有道理,但都不深刻。实际上,读博士的根本目的在于培养独立做研究的能力。只要你的能力得到了提升,那么获取新知识、发表高水平论文及找个好工作都是轻而易举可以得到的副产品。这种能力包括很多方面,比如如果快速进入一个新领域、如何检索所需文献、如何将自己的idea转化为数学模型、如何合理地实施实验、如何将自己的工作写成高质量的paper发表、如何通过presentation成功地sell自己的工作等等。只有具备了这些能力,才能够称得上是一个合格的博士毕业生,才能在毕业后独立地开展新的、自己感兴趣的科学研究,才能够成为一名基本成熟的researcher。据我所知,目前很多国内高校都把博士的毕业条件量化为一些指标,比如要发表多少篇某某级别的文章等等。这么做无可厚非,但是作为学生一定不能被这样的指标误导,认为读博士的最终目的就是完成几篇论文。实际上,只要自己发现问题、解决问题的能力得到了提高,完成这些指标其实并不是什么难事儿。 2.如何确定研究方向? 最近听到了一句话——“选择大于努力”,其实这句话还是有一定道理的。一个好的研究方向能够让你在博士阶段事半功倍;反之,一个不太合适的研究方向会让你事倍功半。那么什么是“好”的研究方向?在我看来,好的方向应当满足两个条件:一是新颖有价值,二是适合自己。第一条不用我多解释,新的坑往往金矿很多,更容易做出好的成果。但第二条往往被很多低年级PhD所忽视,他们往往容易“跟风”,即不管自己是否喜欢和擅长,什么热门就做什么。结果做了一段时间后发现这根本不是自己的菜,不得不更换研究方向,从而浪费了大量的宝贵时间。 那么问题又来了,怎么样才能知道一个课题是否新颖?如何判别自己的特长所在呢?对于第一个问题,首先应该请教自己的导师或师兄师姐,因为他们在领域内往往已摸爬滚打了很多年,能够高屋建瓴地提供很多宝贵的指导和建议。其次,自己也可以浏览顶级会议(如ICML、NIPS、CVPR、ICCV、KDD、ICDM、IJCAI、AAAI等)近三年的accepted papers list,找到看上去有趣或有新意的标题,并下载全文仔细研读。再次可以看一下大牛们的publication list,看看他们组最近在做什么topic。对于第二个问题,即如何判断自己的特长所在,应当静下心来问问自己:是更喜欢理论还是更喜欢做应用?是更喜欢编程还是更喜欢数学推导?是更喜欢建模还是更喜欢求解一个现有模型?如果想偏理论,那么可以多考虑机器学习;如果喜欢做应用,那么计算机视觉、图像处理、数据挖掘都是不错的选择。如果自身编程能力很强,可以考虑做深度学习或是其它的一些large‐scale的问题;如果自己更擅长数学推导,那么传统的统计学习是不错的选择。再进一步,如果自己在矩阵分析数学课中曾取得高分,那么可以做矩阵分解、稀疏表达、降维、聚类、哈希等偏矩阵的方向;如果感觉概率更得心应手,那么可以做非参贝叶斯、概率图模型等“概率味”更浓的课题。再比如,如果自己在数学建模竞赛多扮演建立模型的角色,那么可以把重心放在设计新颖的算法模型上,如果自己更擅长模型求解,那么可以去尝试做优化。当然我还见过一些同学是“数学狂热分子”,喜欢各种证明,那么不妨挑战一下learning theory。当然以上只是泛泛而谈,每个人还需要根据自身情况由粗到细地决定自己的研究方向。 多说一句,一旦确定好了课题,博士阶段的所有工作都要紧紧focus到这个课题上来,切不可“打一枪换一个地方”,哪里好出文章就去做哪个。只有这样,最后的博士论文才是一个系统、有深度的工作,而不是各种算法构成的“水果拼盘”。 3.如何寻找idea? 怎么想到可以写文章的idea可能是刚入博士的同学最头疼的一个问题。这里依我个人经验提出几点建议:①建议多使用数学工具尝试偏理论的研究。这是因为数学的模型或推导是千变万化的,因此有可能找到更多的创新点。另外,一个底层的数学模型建立好后,往往可以有多个应用,因此工作的可扩展性非常强,有利于快速使自己的研究形成体系。相比之下,如果你只专注于某一特定的偏工程问题,可能就会经常遇到“吃了上顿没下顿”的情况。②除了上述的使用一种数学工具解决多个问题的策略,也可以采用使用多个数学工具解决某一特定问题的方案。因为CV本身就是比较偏工程的学科,因此为了让自己的工作更加focused,可以对某一个topic尝试使用多种模型进行解决。比如做tracking,你可以使用boosting、sparse representation、SVM‐based、deep learning等多个模型来做。③多使用“迁移学习”达到触类旁通。这里的“迁移学习”和机器学习领域杨强教授提出的transfer learning是同一个意思,即有些A领域的已有知识和方法完全可以用在B领域。比如,谱聚类方法、基于图的半监督学习、流形降维的方法往往是互通的,即三者中的一个算法往往可以用到另外两个学习框架里去,这是因为它们的核心都是graph embedding。另外,multi‐view、multi‐label、multi‐task、ensemble learning、transfer learning、domain adaptation的方法往往互通,以为它们的核心都是挖掘不同components间的relationship。再比如,与稀疏表达有关的各种范数(nuclear norm、l2,1 norm、l1 norm等)更是被使用在了方方面面。 再次需要说明的是,以上的几点建议可以解决刚入博士的同学的“燃眉之急”,帮助他们快速入门或起步,但这样做paper的impact往往有限。读博士还是要努力做有impact的研究,而这样的研究是需要时间和知识的积累的。 4.如何撰写学术论文? 如何撰写高质量、能够被顶刊或顶会接收的论文其实本身就是一个很大的问题(有时间我争取再写一篇文章专门介绍如何写paper),因此这里我只挑一些误区或者是大家容易忽略的地方简单说一下。①只投顶刊或顶会,尤其是对于mature PhD。这是因为只有发表在这些地方你的工作才有可能被更多的人关注。另外说句很功利的话,当你评优、申请教职、申请课题、参评各类人才计划时你会发现非顶级文章会被人家直接当作不存在,人家只会看你有几个top。②树立“写作是十分重要”的意识。我经常看到很多同学有非常漂亮的idea,但是最终的文章都被“贱卖”到了非常一般的地方。反之,我也看过有的文章方法一般,但是因为写得好,最终发表在了CVPR、ICCV、Trans等top上。由此可见写作对于整个工作的重要性。③写文章一定要做到清晰明了。很多同学认为自己把文章写得越“悬乎”,越让审稿人和读者看不懂越好,这样越能体现自己文章的高深。这种想法是大错特错的,因为写文章的目的就是在于spread knowledge,让别人了解你的工作。如果你让审稿人脑子里到处都是“这是什么意思?”“他想说什么?”这种问题,那你的文章就只有被杀的命运了。④introduction部分的motivation非常重要,一定要观点正确、简明扼要、一针见血。一般而言,顶会的审稿人看了你的abstract、motivation和文章的几张图及实验结果,你文章的生杀命运就已经被确定了,整个过程最多10分钟,剩下的时间就是找理由收或拒你的paper。所以,在motivation中一定要写清楚你的方法到底解决了什么问题?总体采用的思路是什么?为什么你的方法会work?⑤conclusion不是abstract或introduction的简单重复或改写,而是对全文的升华。当读者读完你的全文后,你需要在更高的level总结你的工作,得出更凝练、更interesting、更inspiring的结论,一定要传递给读者新的知识或启发。⑥好文章一定是千锤百炼出来的,文章一定要反反复复改很多遍,每一个claim,每一个用词都要非常小心、仔细斟酌。投顶会时如果一点点小的地方没有做到位就可能全盘皆输,所以一定要花充足的时间在文章的书写和修改上。⑦如果你投某期刊,请cite这个期刊近3年的文章3‐5篇。如果你投某会议,请cite该会议前两年同topic的文章以及有可能handling你paper的AC和reviewer的文章。⑧投期刊时在文章没有被accept之前,请不要加作者bio和acknowledgement。⑨无论投期刊或会议,强烈建议使用latex,而不要使用word。⑩在rebuttal或书写Summary of Changes时一定要礼貌,并且简洁明了地正面回答审稿人的所有问题,切不可闪烁其词。 5.如何安排自己的博士生活? 如果你想成为一名成功的博士,那么读博阶段其实是非常苦逼的,因为你得非常用功。我的两位导师都跟我说过同样的话——“我不怕基础稍差的学生,就讨厌不努力的学生”。因此读博阶段一定要花大量的时间在科研上。你需要阅读大量的文献,你需要长时间地面对数学公式和计算机程序,你需要不断地trial and error,你需要努力在top上发表文章。你几乎没有娱乐时间,没有休息日,即使在年三十你也必须赶deadline。你没有很多的时间陪伴亲人,你没有时间和好友出游,连找男/女朋友可能有时也成了一种奢望。你没有时间打扮自己、你没有时间过分关注自己的穿着,甚至有时你会没有吃饭、睡觉的时间,熬夜工作更是家常便饭。我的导师陶大程教授在初到悉尼工作的几年里忙得甚至连悉尼歌剧院都没去过,虽然歌剧院到我们学校也就大概15‐20分钟车程。对于这些,我想说也许在别人眼里你是个“屌丝”,是个“另类”,但是只要你醉心学术、乐在其中,其实这些在你看来根本就不苦,甚至是十分自然、理所应当的事情。你要想比别人优秀,自然就得付出比别人多的努力,这很reasonable!当然,我还是提倡博士生每周能有一定的时间进行体育锻炼,因为“身体是革命的本钱”嘛! 除了要十分地抓紧时间外,你还要多听talk,多参加顶级国际会议,多和导师、同学讨论,多参加各种学术交流,因为这些往往能给你很多启发,成为你灵感的源泉,也有利于你掌握更多的行内动态,并逐渐build你的academic social network。 以上仅仅是我个人对如何读博士,尤其是机器学习、计算机视觉领域博士的一些看法,当然不一定适用于每个人。希望我的一点经验能够帮更多的junior PhD更快地找到做research的感觉,最后祝大家都能拥有一段成功、有意义的博士经历! 作者简介: 宫辰于2010年获华东理工大学工学学士学位,并于2016年取得上海交通大学及悉尼科技大学双博士学位,导师分别为杨杰教授和陶大程教授。其研究方向为机器学习及基于学习的计算机视觉问题。读博期间,以一作身份共有10篇论文发表在TNNLS、TIP、TCYB、CVPR、AAAI等顶级期刊或会议上,并有3项发明专利获得授权。目前任南京理工大学“青年拔尖人才选聘计划”教授。