点击上方,选择星标或置顶,每天给你送干货!
阅读大概需要17分钟
跟随小博主,每天进步一丢丢
作者:中国人民大学教师赵鑫
主页:http://aibox.ruc.edu.cn/
之前写了一篇文章《计算机系本科生开展科研学习的九问九答》,主要是关注本科生。这一篇继续谈一下研究生的早期科研之路。因为大家的背景不同、经历不同,所以我也只是从个人角度来说一下,内容仅供大家参考。
研究生阶段是连接本科和社会的关键节点。很多同学进入研究生阶段往往经历了保研或者考研的洗礼。能够进入心仪的学校甚至实验室学习,已经是一个重要的收获。本科阶段侧重基础学习,保研或者考研对于应试能力有着较高的要求;研究生阶段则更为关注实战能力和解决问题的能力。
研究生阶段与本科生的整体学习方式和训练方式不太一样。不总会有教科书教你如何科研入门,不总会有资料直接将idea传达给你。很多同学做的转型实际上不好。经历了保研和考研,很多同学可能惯性认为本科的学习方式仍然适用于自己,毕竟这些原有的学习方式帮助大家走到了这个阶段。然而原有的学习方式不是最优的方式,需要进行调整和摸索。
确定了研究生阶段已经确定无疑后(例如考研填报完成或者考研复试通过),要及时开始下一段的规划。越早上路的人还是会有优势的。过去的“辉煌经历”(例如GPA达到年级第一名、获得过ACM金奖等)应该早点“丢”进箱子里了,新一程的奋斗又要开始了。不要躺在舒适区,每天沾沾自喜,实际上你会发现之前同水平的同学可能早已在科研上领先你很多了。千万不要固化自己的学习方式,要勇于做改变,勇于接受新的挑战。第一步就是在心理上做好准备,尝试新的学习方式,也要接受忽然不能得心应手的落差。
很多同学用了很多功夫,但是做不好科研,除了天赋外,一个很重要的原因就是不专业。科研是一个系统化的学习过程,可能包括阅读英文原版书籍、学习基础理论(机器学习)、使用标准规范编写代码、使用科学写作方法攥写论文等等。每一个环节不应当对标某本教科书某篇论文,而是要对标学术界的标准。这样所有环节都下来,才能真正达到一流。
我强烈建议初学者一定要真正地学习一两门顶尖学者开设的视频课程,从教材、讲义以及课后作业都认真完成一遍。通过阅读相关经典论文,可以最接近学术界的科研语言;而独立做作业会让大家有足够的思维训练和动手训练。另外一个好处是,无人监督的情况下,自己是否能够完成一个学习过程,我觉得学公开课程实际上是很好的一个检测手段。
专业的论文从写作、理论以及代码等多个维度都是专业的;相反不专业可以体现在糟糕的排版、英文术语不规范、代码复用性很差。说到这里,我强烈建议研究生一旦发表论文后,能够创建一个project web page,让你的所有东西可以复现,接受学术同行的考量。当然,这个要求很高,能做到的人不多。很多学生,包括很多狂发论文的研究生,有一个心态,一个工作被发表了,这个工作就结束了。那么原来的代码为了赶论文写的差一些就差一些吧,论文里的图片区分度不高就不高吧。学术成果是研究人员的名片,一份“邋遢”的工作会是一段抹不去的黑历史。既然做了,就要专业,也要持续维护这种专业。
很多研究生有的时候会经常立flag,譬如,今年无论如何都发出来一篇A类论文。我想说的是好的工作人人渴望,但是工作不是靠期望得来的,当然不可否认信念和信心的重要性。大部分研究生都需要循序渐进的科研,需要将各种基础打好后,才能出一个较为满意的工作。一般来说,这个过程可能花费1-3年。就和游戏机里过关一样。例如,塞尔达第一场刚出来的林克是无法搞定游戏后期的妖怪的(不排除有一些游戏达人能够完成)。别着急,从基础做起。
很多研究生经常将无法发表论文归为自己能力不够、导师指导不好、运气太差等因素,但是我想说,科研这东西,只要按照专业的方式持之以恒学习,或多或少都会有些结果的(例如论文)。
如果暂时没有发表论文的同学也不要着急。为什么呢,因为很有可能是真没有达到这个水平。可以对标一个理想状态“熟读论文百篇、白纸推公式、vim写代码”,你是否达到了呢?当你很轻易地实现这个理想状态,能不能发论文只是时间的问题(但是好工作未必一定能出来,论文和好工作是两回事)。
“高筑墙、广积粮”。所有好的工作最终都归结为持续的付出与积累,不要随便喊口号、立flag。只有把一件事情做得专业、打好基础,才能有所成绩。
想想马斯克发射火箭和人造卫星,这可不是一句口号外加鸡血能搞定的。日复一日,年复一年。总之,为什么有的人那么厉害,因为他比你更加拼命而又坚强。我看到很多同学因为一两次论文的被拒,就认为自己不适合科研的想法。我很理解这种心态,但是同时也想说,有志者事竟成。鸡汤有的时候讲起来真的特别虚伪,但是有的时候又特别应景。有大付出者,才有大回报。
首先想说,热点这东西不总是好事。如果所有人只关注热点,那么科技创新可能就会受到影响。想想三剑客们在主题模型(topic model)“横行十年”的背景下,安心去做神经网络,其定力、判断真是非同一般。
但是,对于初学科研的人,我不建议盲目追踪冷门课题。因为,我们的基础不够做足够的探索。相反,热点问题的讨论和基础很多,可以很好地切入并且空间很大。同样地,即使一个老的课题,里面可能也有一些新兴的热点,也是值得初学者高度关注的。
能够早期预见以及锁定一些热点,这是一种很强的科研嗅觉。想想BERT刚刚出来的那一个月,如果我们能马上吃透这个模型,并且将其应用在之前一个很难被提升的任务上,我想这样的一个工作可能也会是不错的一个研究工作(对于初学者)。虽然我不是特别鼓励这种套模型的研究,但是还是觉得对于初学者这真的已经很厉害了:能在第一时间预判热点、能在短期阶段学会并且掌握该模型、能够很好地迁移该工作或者该想法在自己的任务上。
不过现实是,我看到的是,追踪热点的同学往往都不是新手;相反都是一些前期功力深厚的研究组或者研究生。说起来,这有点像投资专家,你观察他选择一支股票的过程,经常会不服气吐槽他好像没啥技术,但是他就是对于商机把握的好,着实买到了潜力股(注:我个人确实没有任何投资经验,如果举错了例子,还望包容)。
模仿是人类成长的重要手段。从婴儿阶段学习语言表达到进入一个领域学习新的技术,都需要找到一些可参照可学习的目标。当你还不清楚什么是正确的、什么是重要的科研时,那么请模仿吧。
有些同学会说,我也没有国际大师作为导师啊,我也没有什么好心的师兄师姐啊。有些同学总会抱怨导师对自己关注不够,没有亲自告诉自己做啥题目。我想说模仿是一种能力,就和预见热点一样。在线课程、大佬儿的论文、极客的代码等等,只要你抱着学习心态,就有大把可供模仿学习的途径。
有的同学说我不会写论文,写的乱糟糟的。我想问一下是否认真读过几篇论文的写作,从标点到用词是否真的揣摩过作者的意图、是否用英英词典查过每个词的具体意思以及用法、是否定期摘抄一些好的句子。总结起来一句话,模仿做的不够。
模仿不是抄袭。打过游戏的同学,我想可能对这句话有着深入的体会。我想看过一些专业游戏玩家的一些高级操作后,你以后也会在一些类似的场景下受到启发。同理,在奥数比赛里,很多同学都会总结一些常见的规律结题法,比如连线证明三角形相似。总之,模仿要深入骨髓、模仿要活灵活现、模仿要适当创新。
但是模仿必须专业。比如写作。要找到写作达到国际水准的论文,然后逐词逐句分析。很多A类会议论文的写作可能未必达标,千万别随便拿到一篇论文就开始模仿,以免照错学错。看看别人是为什么要做一个工作、如何论述一个工作的意义、如何介绍模型、如何进行公式推导等等。总而言之,模仿能够做到位,第一个工作不会做的太差。
研究生没有特殊情况,不要总是更改题目。正常来说,一个研究生只有2-3年时间做科研学习,中间再换2、3个题目,那么产生的再次学习代价会很高。
有的同学可能要问,我这个题目我已经做了很久了,就是不出成果、就是效果不好,怎么办啊。首先,判断一下研究领域是否是处于国际学术的热点。比较简单的方法是,找到对应的顶级会议,看看每年发表的相关论文(包含大的关键字)是否有5-10篇,甚至更多。这是在检查当前问题是否还有可研究的空间。其次,判断所提出的idea在所使用的数据是否合适。研究人员要不断培养对于数据的敏感性,以便减少对于方法的试错时间。很多idea或者思路,看一下具体的数据其实就可以判断是否会work。如果说,一直无法说清楚自己的数据有怎样的特点,反倒指望黑箱模型去提升效果,这种途径失败的概率是很高的。而且很多想法也是从数据而来。当然,这和看着test data去调参数是完全不同的。注意,idea不是去跟着bad case去走的,idea要普适、要适应于多个数据集合。
如果上述这两点没问题,相信我,这是你自己的问题。很多同学刚开始接触科研,经常抱怨自己的效果总是不好。实际上,这是缺少数据的敏感性以及实践能力(比如调参等)缺乏造成的,甚至很多时候还是代码写错了。
那么这个时候该怎么办?不要换题目,至少从相关工作、模型设计、代码设计以及错误分析多条途径不断检查、修正和改进。多读多想多尝试,持续推动对于这一问题的理解。攻克困难需要持续发力,使自己处于不断在进步的状态。大家一起爬山,有的人路好走一些,有的人难走一些。但是一座山过不去,盲目换到另一座山,结果就是很大概率也爬不上去。
很多学生会问我如何能做好科研呢?我想借用一句话,那就是“实干兴邦”。在科研上,真的,想太多捷径、立太多flag、说太多牢骚,都是没有太多意义的。
我有的时候经常被问到“读论文有什么方法吗”、“写作有什么方法吗”、“有什么办法可以想到好的模型”。我想肯定是有一些技巧的,但是很多时候不愿意回答这种问题。相反我会反问,你精读过50篇论文吗?你完整写过一篇论文吗?你试过了五种以上的模型吗?没有的话,那么先去踏实地做。马步还没有扎好的话,可以先不用想太多的技巧。同样的技巧,如果配以经验,会得到不一样的感悟。
所以初学者,别想太多,安心推进。今天你是否读了新的论文、写了新的代码、有了新的想法等。科研很多时候很枯燥。科研工作者需要日复一日的重复固定流程来强化自身能力,读论文、写代码、想idea、跑数据等等。科研没有轻松和捷径,去做就好了。
我给初学者的建议是,坚持读完若干经典书籍、坚持复现若干经典模型的代码、坚持每天不断阅读新的论文、坚持写作、坚持跑不同的实验、坚持去做错误分析。。。这就是秘籍。
到任何时候,别小看时间的力量。研究生3年能够坚持上述的过程(每年有300天以上),我相信毕业时,你会发现一个“强大的自己”,强大到你曾经不敢相信自己能够做到。相反,也可能让你“泯然众人矣”。科研前期是一场自律与放松的博弈。然而入门后,你会发现阅读论文其实也是在放松、也是在享受。我回顾自己认识做科研较好的同学,往往都是执行力很强的同学,我想这一点也必须在这里再强调一下。
有了行动后,我觉得再聊聊“说”和“写”。表达与交流是很重要的。“酒香也怕巷子深”。即使再好的工作,不被别人接受,不为他人所知,可能也失去应有的价值。我感觉国内学者其实有的时候很谦虚。相反,老外实际上是注重宣传的。一旦有了一个新工作,经常会说“proud of”、“important progress”。当我们有了新工作后,也要适度进行宣传。
首先,把论文写清楚。最近几年,顶会论文的数量不断增多,而其中有的时候会遇到一些不知所云的论文。在这种情况下,论文读得懂全靠猜的准。科研工作者有义务让自己的工作表述是清楚的。我一直觉得论文写得清楚不清楚,和通用的英语写作关系不是特别大。英语技巧只会是让论文读起来感觉美不美。之前智源做过一次英文写作的讲座,我也参与给了一个报告。关于此部分,我想大家也可以在网上搜到很多谈科学写作的文章,这里不再这里赘述。但是我还是想强调一下,用词和逻辑。不要随便用一些当前领域文章没有出现的名词,不要想当然地用一些自以为正确的单词。其次,就是逻辑。论文不是堆砌内容,而是要循序渐进引导读者阅读。
其次,做好交流报告。现在越来越多的报告交流会,这都是很好的和其他学者交流的机会。讲报告最忌讳就是自我沉醉。讲报告是为了让听众有收益,在作报告之前,要反复问自己,听的人能听懂吗、听的人能有收获吗?这样,让自己置身自己的工作之外,才能讲好自己的工作。一般来说,20分钟主要的报告,要讲清楚动机、模型以及实验结论,不要陷入细节讲个没完。刚开始作报告的同学有个误区,就是希望把自己工作的所有细节都告诉给听众。实际上,听众的重点和关注通常在固定时间内都是极为有限的,重要内容传递过去已经很不容易了。
科研中心态是非常关键的。能做好科研的人,一定要相信自己能够做好。如果没有这种内在的力量,而要靠其他人的鼓励来维持心态,可能确实很难做好科研了。
很多时候,我们做的课题,和做投资是一样的,因为你并不能看到整个全景。起步的时候只是一个idea,加上自己的经验,但是你必须提前决策做还是不做。中间整个过程会遇到各种各样的困难,包括想不出来模型、实验效果不好等等。面对科研,不是所有的同学都是幸运到顺风顺水。很多大牛学者,可能都是科研入门的迟到者。要坚信自己可以做好科研,它有各种不顺利都是正常的。相反,太容易被困难吓怕了,早早结束自己的科研经历,也是一次对于自我能力的否定。
如果有幸进入一个强组,从一方面是一个很好的机会,从另一方面又是会有很强的peer pressure。甚至,可能整个研究所内部、国内相关研究领域内部一些明星学者都会传达一定的压力。有适当的竞争心理,我觉得是很好的事情。特别是研究生同学,如果身边能找到一个和自己实力相仿,甚至比自己厉害一些的同学作为参考,能够起到互相交流、互相促进的作用。
但是要控制这种心态的蔓延,不要盲目攀比论文的多少。要保持一颗平和的心态,不能看到别人在某一个任务上发了很多论文,自己就盲目更换题目追随。还是要有一个核心的研究目标,不断地做好规划,不断地持续推进。不要因为他人的进步而对自己产生过大的负面压力,而影响了自己的判断能力和执行能力。
如果说让我用一句总结“快乐科研”的秘诀,我想要说就是将科研融于生活。
将科研融于生活的好处是不会觉得“太辛苦”。有同学马上会反问,啥,这还不痛苦吗,这不是疯了吗?实际上,当人形成了一定的习惯后,略微加上一些正反馈,就可以很适应不断重复惯性行为。相反,隔几天做一次,才会觉得痛苦。就拿健身来说,一般坚持过1年以上天天锻炼的人,之后断的可能性很小。但是每周去2次左右的人,很容易放弃健身。偶尔一次健身,要不觉得很兴奋,要不觉得很难受。平和、自然其实是最好的状态。将科研融于生活,你慢慢适应它了,你对他的心态就会逐渐平和了。有一天,你发现你好像每天科研就像吃饭睡觉一样,那么即使连续工作多个小时,也并不会觉得太辛苦,因为那是生活的一部分。因为你心态平和了、自然了,你甚至没觉得你在吃苦。
要做好一件事,你就每天都想每天都做。所谓念念不忘,必有回响。我不太认同那句话“work hard, play hard”,把工作和放松完全割裂开。作为一个科研工作者,你的灵感要发生在每一次有意义的情景思考中。还清楚地记得,我自己第一个长文(EMNLP 2010的论文)模型就是在公交车上想出来的。时至今日,我都能清楚记得那一刻的兴奋。有的时候,我特别羡慕现在的学生:这样年轻的你们,而我又是曾经这样年轻过。在研究生阶段,大家操心的事情很少,可以一心一意做科研。
作为结尾,还是再次强调这篇文章仅是个人观点,谈的也是我们普通人的科研入门。在当前复杂的国际形势面前,我们科研工作者要有所担当,至少要有这股决心,要把科研做好,至少把手头的研究工作做好。一名优秀的研究生,至少应该有两年为科研奋不顾身的一段经历。那会是一段美好的回忆,甘之如饴。