学生科研:容易出现想的太多的情况,首先要了解自己能获得多少数据,数据质量如何,应该聚焦部分,做其中能够出彩,有独特性的点。
阅读和理解之间的不匹配。通过科研论文的角度去思考阅读和理解之间的关系,是整个人类智能中非常重要的部分。下面,我想分享自己对做科研方面的一些体会,特别是怎样读 paper 和写 paper、怎么样更好地做科研。
我认为好的研究员有几个特质,首先要 open-minded——这个世界只有想不出来的东西,没有做不出来的东西,要有批判性思考的能力;其次是要努力工作;还有要不断更新自己的知识面,要读很多最新的东西,然后思考、交流,这样才能慢慢把自己学到的东西用起来。
今天主要想跟大家分享我在读科研论文方面的一些心得。读文章有几个阶段,最简单的是所谓的“消极阅读”(passive reading),即大概知道文章讲了什么;然后是“积极阅读”( active reading),主动思考这些知识有什么用;然后是“批判性阅读”(critical reading),思考这篇文章是否言之成理理;最后是“创造性阅读”(creative reading),搞清楚文章对接下来的工作有什么帮助。
科研人员要掌握三个非常重要的技能:阅读、写作和展示。人类社会发展到现在离不开获取知识和利用知识。
真实的阅读往往超越了传统的“传输-压缩”框架,它更多的是一个反复的理解过程。在这个过程中,读者不断地揣测作者的意图,并将之解构成能够理解的片段,随后这些片段被构建到读者脑中的认知模型里。所以,阅读等同于理解,不同层次的阅读对应不同层次的理解——深度阅读导致深度理解,浅显的阅读对应的必然是浅显的理解。不同需求应该对应不同的阅读层次,你可能需要快速浏览,可能需要仔细阅读,如果你的导师需要你复现论文中的细节,那么你就需要非常深入地研读。
首先是要有“速读”的能力,快速知道一篇文章讲了什么。其次是要“精读”。精读有两个方面:批判性阅读和创造性阅读。首先要对论文进行否定、质疑,仔细挑毛病;其次,对论文有了足够的了解之后,如果发现论文中提到的想法非常优秀,那么要创造性地思考你能用这篇论文做什么。第三个步骤,我称之为“研读”,比如说自己尝试将文章中的算法实现一遍。
除了阅读的方式,读者还要理解所读的论文是怎样写出来的。一篇好的论文在逻辑上是层层递进的,不仅能够传达信息也能够激励读者。所以作者在写的时候也是有结构化的逻辑性思考程度的。总体上作者会思考:这篇论文的真实任务是什么、研究发现是什么;论文的贡献是什么等等。
相应地,读者在读论文的时候也应该要有逻辑,首先要清楚论文中的表达是否是我想要学习到的;其次,我能从论文中学到多少,能不能找到新的方向与新的课题初稿;最后,这篇论文的背景是什么——是什么样的背景让这篇论文变得重要和有趣。
无论是计算机视觉领域的文章还是泛计算机类的文章,一般来讲,都可以归为以下几类:提出问题型论文、解决问题型论文、阐述和调查型论文、总结型论文。
快速阅读:如何读标题、摘要和引言
接下来我向大家介绍一些读论文的经验。首先是快速阅读。计算机视觉领域的著名学者 Don Geman 曾经说,一篇文章可以分为标题、摘要、引言、论文主体四个部分,每一部分都需要花同样的时间进行撰写。这个说法虽然夸张但是不无道理,因为大多数读者实际上最关注的就是文章开始的两页纸。对读者而言,看完前两页就知道这篇文章是不是值得去读;对 reviewer 而言,看完开头就知道能不能拒绝这篇文章。
如何读论文的引言?举个例子,我最近在读《拥有伦理学:企业逻辑、硅谷与伦理学的制度化》(Owning Ethics:Corporate Logics, Silicon Valley, and the Institutionalization of Ethics),在引言部分,我问了 Kajiya 提出的那几个问题。首先这篇论文讲的是高科技公司在道德方面做了什么;其次,解决的问题是现在的实践(拥有道德)做法;文章的迷人之处在于最近的丑闻和技术后冲(techlash);这篇文章的最新之处是对 17 位科技公司的“道德拥有者”进行了采访;最后,论文的神奇之处是得出了结论:道德所有者在令人担忧的动态中运营公司。
接下来,我将介绍如何读摘要。计算机学科论文中的摘要一般有固定格式,读起来非常枯燥。所以,要读摘要的时候,将其分解并加上一些有趣的亮点,可能有利于阅读。中国学生的英语一般都不太好,虽然到了研究生阶段,思维方式可能还停留在中文思维到英文思维转换的阶段。对此,一个很好的建议是尝试把摘要翻译成中文,在这个过程当中,你会发现自己有一些细节没有领会到位,第一遍读的时候不见得读懂了。
回到标题,如何读论文的标题?标题一般只有一句话。从整篇论文的排版的角度来看,在一页半的引言、四分之一页的摘要以及八页的双栏正文面前,只有一句话的标题显得不太“重要”。但是标题是总结、抽象的概括。我曾有一个重要发现:高质量的文章通常标题用两个词就能概括,并以 ing 结尾,例如 Plenoptic sampling、Lazy Snapping、Poisson matting。所以对于读者来说在读这些抽象的词或句子的时候,只有花费较多的时间才能读懂论文作者的意图。
仔细阅读:从批判性阅读到创造性阅读
下面我将介绍仔细阅读的一些技巧。
以批判性阅读开始,带着质疑的心态问问题。如果作者论文中声称解决了一个问题,那么你就要在心里问自己:论文是否正确、真正地解决了问题?作者论文中所用方法是否有局限性?如果所读的论文没有解决问题,那么我能解决么?我能采用比论文中更简单的方法解决么?所以,一旦进入仔细阅读的状态,要在读论文之前对自己说:这篇论文可能有问题,我要找出来。这就是批判性阅读。
批判性阅读可能非常难,也可能占用你很多的时间,早期知识储备不够时,读论文的过程中很容易卡壳。常见的建议是找熟悉这方面工作的人帮忙,让他们解释你遇到的难点。但你要意识到找人帮忙也可能遇到困难,一方面,你要找谁帮忙?另一方面,如何能让他们愉快的接受你几分钟、十几分钟、甚至接近一个小时的咨询?他们不一定有那么多时间。所以我一直鼓励大家在研究生阶段一定要跟身边导师、师兄师姐、厉害的同学们搞好关系。等到你自己成为师兄师姐后,也要积极回应学弟学妹们的提问。
掌握了批判性阅读的技巧后,如何达到创造性阅读的层次呢?这时候你要问自己:在我所读的论文中,有哪些好的idea?(一般文章中只有一个idea,好的文章中可能有两个idea,最了不起的文章可以有2.5个idea。)搞清楚作者的idea以后你要思考,作者有哪些点还没有想到?可以怎么改进?如果我现在做这项研究,我能做的新事情是什么?
如果说批判性阅读是“negative thinking”,那么创造性阅读就是“positive thinking”。创造性的阅读需要把你所读的论文和其他相关的论文建立联系,从而产生一些新的想法,这些想法可以支撑你进行三个月到五个月的研究。如果读到了非常好的文章,不妨写一篇半页到一页左右的review。最好做一个口头展示,这样你会发现,只有把东西写下来或者说出来才能真正深刻理解。
我一直觉得理解了一个东西以后,最重要的是能够自问自答,这张图片是一个总结(图片不见啦?),图片的上半部分是比较客观的问题,包括论文的核心观点是什么?主要的局限性是什么?代码和数据是不是可得的?论文的贡献是否有意义?论文中的实验是否足够好?图片的下半部分是比较主观的问题,包括我错过了什么相关论文么?这对我的工作有何帮助么?这是一篇值得关注的论文么?这个研究领域的领头人是谁呢?哪些公司、研究院、实验室值得关注?其他的人对这篇论文有何看法呢?如果有机会见到作者,我应该问作者什么问题?当你在阅读论文的时候如果能回答出上面列出的问题,我相信你会对你所读论文有非常深刻的理解。
带着10个问题去阅读和思考
1. 这篇文章究竟讲了什么问题?比方说你设计一个算法,它的 input 和 output 是什么?
2. 这个问题的性质是什么?是一个新的问题吗?如果是一个新问题,它的重要性何在?如果不完全是一个新问题,那为什么它“仍然重要”?
3. 这篇文章致力于证明什么假设?接受过深度科研训练的人都知道所有研究其实都是从科学假设开始的。从 12 年开始,计算机视觉领域的很多研究员认为这是一门实证科学(experimental science),即需要提出假说并通过实验去验证。
4. 有哪些与这篇文章相关的研究?这一领域有哪些关键人物?
5. 这篇文章提出的问题解决方案中,核心贡献是什么?
6. 实验是如何设计的?计算机视觉研究中,实验设计的重要性不言而喻。但在写 paper 的过程中,实验的表现不是最重要的,关键是如何通过实验去支撑每个假说。
7. 实验是在什么样的数据集基础上运行的?科学研究结果应当是可以量化、可以复现的,读文章的人是否能接触到文中所用的数据集?
8. 实验结果能否有力地支持假设?如果一篇文章提出的假设并没有被实验或者理论完美支撑的话,多半不是一篇好的文章。
9. 这篇文章的贡献是什么?回答了前面 8 个问题之后,第9个问题的答案也呼之欲出了。你应当试着用自己的语言总结出来。
10. 下一步可以做什么?这是非常关键的一个问题,也决定了你今后能否在科研领域获得成功。在这篇文章的基础上,我们接下来能做什么?应该做什么?在科学研究的初期,导师会给你方向上的指导,但作为一名独立的研究员,你应该独立地回答这个问题。