受疫情影响,一切人群聚集的活动都被取消或推迟了。我们的毕业典礼原应该像以往一样,让人兴奋、迷惘、庄严而又不舍,但这次却悄无声息。这突如其来的疫情,一直顽强蔓延至今,近期仍有大面积反弹风险。受此影响,我的母校始终未让毕业生一起返校,也没有举行毕业典礼,没有任何形式的活动。我们只能草草收拾东西,退宿,踏入工作岗位,甚至不能和班上的同学好好道个别,更别提合拍毕业证了。我对此一直很遗憾,总想以某种形式总结下研究生阶段的经历,纪念一下。在科研方面,我一直想总结一下,本着知识分享的精神,给大家分享一下我的研究生期间的科研经历与经验,发挥我的余热(因为我跨行做了别的),希望对大家有所帮助,也是给自己的一个交代。今天是端午节,先祝大家端午安康,我今天终于得空,好好总结反思一下了,以下就是正文。
这次我要分享的是研究生如何做科研--从入门到放弃。我将要分享的经验全部来自于我的个人实践,从我做基于深度学习的医学图像配准项目中总结得到的,包括从入门的选题定题、文献调研、查找资料、编程调试、论文撰写等各个方面。我分享的目的呢,首先是总结一下我的研究生经历学到的东西,消化沉淀成为自己的;再者就是希望能帮助到后来者更快的入门,少走些弯路,多为国家科研大业做贡献吧。以下我将按照科研的流程进展,从各个部分展开我的总结分享。
正文
1,定题,背景调查,文献调研
2,确定方案,准备材料
3,寻找开源项目
4,创新
5,编程实现,调试
6,写论文
总结
开源计划
开始科研的第一步就是选题定题,这个步骤实际上在读研开始前选导师的过程中,已经大体上划定了范围,或者导师已经想好了你读研要做的课题方向。更灵活一点的,就是导师临时安排你做新的项目,但大体上都与你的导师的研究方向或者承担的课题项目有关。一般情况下,导师让你自由定题的可能性不太大,但不排除这种可能。我的情况是保研的时候确定方向是做基于深度学习的医学图像处理,研一下学期才确定是做配准,而在此之前我对配准了解的不多也不深,虽然本科毕设也是配准。
我刚开始着手做配准的时候,基础很差,一脸懵逼,无从下手。遇到这种情况呢,给大家推荐一个我导师教我的方法,叫文献调研。顾名思义,就是调研一下课题相关的文献,写一篇文献综述。在调研的过程中,解决几个问题:你的课题具体是什么,需要做哪些工作,以前的方法有哪些,最新的科研进展是啥,未来的发展方向是啥,具有什么样的意义,等等。在这个过程中,你可能需要调研很多文献,至少20篇,包括比较早的经典论文,和最新的前沿研究论文,这样才可以对该领域有个大致的了解,对以上的几个问题有个初步的答案。
还以我自身的经历为例,我刚开始接触课题的时候,导师安排我调研一下配准最新的文献,写一篇综述给他,也就是我在博客中发的这一篇文章。我当时下载了三十篇左右论文,有很老的,也有最新发表的,有综述类的,还有研究类的。总之就是跟课题相关的都会看一下,有些精读,有些泛读。前后看了有一个月左右,才对配准项目有个大致的了解,知道配准的大致轮廓与理论概念。
说到文献调研,我再简单介绍一下怎么查文献。最简单的方法当然是百度学术,谷歌学术。专业一点的就是学校图书馆网站检索论文,知网啥的,另外还有去相关期刊网站找,如ieee xplore啥的,开源预印本论文网站arxiv.org等。当然,还有一些非正规的网站,如sci-hub之类的。很多方法,最大的方法就是找方法,搜一下查文献的方法。我本人最常用的两个方法是:一,登录校园网或者校园,使用学校图书馆的论文检索接口,搜索需要的论文。这是因为一般学校都会买一些常用的论文数据库,可以免费下载;二,在arxiv.org网站上搜索共享的论文预印本,免费、方便、论文新。
做了文献调研,对课题的背景有了一定了解,就可以开始设计项目方案了。一般,导师给你布置任务,年轻的导师还在科研一线,会比较清楚最新研究进展,会给你指明用什么方法、技术做当前的课题,而年纪大点的导师一般都不太清楚最新技术了,只会给你布置任务、督促你完成,对你实际的项目细节不大过问。针对前一种情况,你可以跟着导师指引的方向开始研究;而后者,则需要你自己选定方案了,当然这不能绝对,灵活应对吧。我是后者,自己摸索方法,定期给导师汇报进展。
设计课题方案,就是根据你课题需要,结合最新的技术进展,设计适合你的可行性方案。我这里想说的一点是你要注意可行性,只有可行的方案,才有意义,不然只是空中楼阁,可望不可即。在设计方案的时候,就要确定该方案能否实现,是否缺少什么材料,是否有基础?而不是项目做了一半,发现该方案不可行,缺少东西,难以实现。具体来说,要实现一个项目,你最起码需要两个方面的材料,数据和代码。巧妇难为无米之炊,没有数据,想法再好,也没法实现,发不了论文。代码就是你的基础,而不是你要造轮子,这样太耗费时间,如果有现成代码,而你只需要修改,创造自己的部分就好,那能节约一大部分时间。我的经验是,刚开始接触一个项目太难,你需要站在巨人的肩膀上,先学习、模仿,然后是改造、创造自己的内容。
下面分享一下我的情况。我导师刚开始给我安排的课题是二维-三维的多模态配准,但是经调研分析发现,项目不可行,没有数据,也没有DRR(三维图像投影成二维的)代码,所以转向做单模态配准。在探索研究方案的时候,我也一路试错,花费了相当长的时间,而究其原因是我最开始没有坚持自己的判断,而是跟着导师安排的方向走了。看过我那篇综述文章的同学可能知道,我综述的结论是使用无监督学习做配准是未来的趋势,而导师比较相信监督学习的模型。所以我在监督学习上试验了很久,结果都是过拟合,这与Ground Truth数据有关,数据质量差,难以学到鲁棒的模型。问题一直难以解决,最后才放弃监督学习方法,转向使用无监督学习,才得到今天的结果。
人工智能时代,归根结底拼的是数据与技术。数据是根本,没有数据,就没法实现与验证你的想法。在做课题的时候,特别是做深度学习,数据的质量决定了你的结果上限。在实际项目中,如果你有别人没有的数据,你就占有了先机,你可以做别人没有做过而且做不了的事情,所以很好发文章,这样的例子有很多,我的一个师兄和医院合作,医院提供数据,师兄搭模型跑实验,以共同一作的身份发了好多文章,找的工作也很好。如果你没有数据,想发文章,就只能拼技术,使用开源的数据集,自己的方法结果比别人好,才可以发不错的文章。
无论做什么,从零到一都是最难的。如果要做一个课题,在毫无基础的情况下,很难顺利完成课题。目前大火的开源就是基于这样的情况,项目开源方便科研人员快速复现、对比、改进,而不是像以前一样代码与资料只在小范围内缓慢传递。因此,我给各位的建议就是,在开始做课题,实现想法之前,先在GitHub上搜索一下对口的开源项目,也可以在读论文的时候着重开源了代码的项目,结合论文一起看,懂理论,也知道实现细节,更容易上手。站在巨人的肩膀上,看得更远。
关于配准的项目,GitHub上有很多仓库,我认为做得最好的、最全面的、维护的好的就是MIT的voxelmorph项目。我自己也是参考他们的工作,进行了改进创新,做了一点工作,完成了硕士研究生的学习,有兴趣的可以查看一下我的配准仓库。另外,给各位小白或者做配准的同学推荐一个仓库,是我们配准群里合作制作的一个收集配准相关内容的仓库awesome-image-registration,包括数据集、论文、工具、课程等等。最后,GitHub上的开源仓库是一个包库,强力推荐各位小白多浏览、多检索自己需要的内容,很可能有意外之喜。
关于创新,我的心得是根据需要创新,而不是为了创新而创新。刚开始读研的时候,看了不少论文,在学校导师的催促下,我形成了一个倾向,在不接触实际项目的情况下,一心想着怎么创新,而没有真实的项目环境做支撑,这就像空中楼阁一样,不切实际。苦思冥想一番之后,还是一无所获。而企业的导师则倾向于实用,不求很新颖,但求实用、效果好。在他的影响下,我带着实际项目研究过程中遇到的问题,寻找解决方法之余,做改进与创新。在深入科研一线的情况下,会遇到各种问题,寻找解决方案本身就是创新。
关于编程实现与调试,我想分享两条,一是想实现一个功能最快的方法是先找找有没有现成的资源,而不是最先想着怎么去实现它。当然,简单的功能不在此类,对于复杂的功能,如果自己着手实现,可能会花费相当长的时间,而实际上或许已经有现成的实现可以调用。总之还是前面的“拿来主义”,能用现成的就用现成的,把精力放在创新的自己的内容上面。当然,这样做也是基于开源的优势,python有很多开源库,基本上你需要的功能都已经有人实现并开源了。第二条是关于调试的,实现一个功能,难免会有很多bug或错误,这时候就需要调试验证,把中间结果打印或者可视化出来。这一点尤其在调试一个大型项目工程的时候适用,将项目拆分成多步,逐步进行验证,保证每一步无误,联调就没问题了。因此第二条就是调试过程中将中间结果保存可视化出来,方便查找问题与分析。
写论文方面,我的心得是模仿。在学习一项技能的时候,最有效的方法就是模仿会这项技能的人或物。如果没有接受过系统的科技论文写作训练,很难写出来符合要求的规范论文,而我的经验就是理清要投稿的会议或者期刊的要求,参考优秀的相关论文,模仿它的结构、语法、格式等,改编填上自己的内容。模仿你的课题领域的经典论文,模仿图表的格式与说明,模仿遣词造句的方式,模仿文章编排范式,等等。当然,在选择模仿对象的时候,最好排除咱们中国人发的英文论文,虽然你可能读着很顺,但那很可能是中式英语,而不是地道的美式英语;非英语母语国家的人发的论文也同理排除。按照这种方法,我一个刚开始很怕写不好英语论文的研究生,写出来的论文竟然还获得了在美国当过教授的导师的夸奖与肯定,要知道我导师是很少夸奖学生的。
洋洋洒洒写了这么多东西,实际上以上都只是我个人的一点点经验,或者说观点而已,不一定客观准确,仅供参考,希望对你有所启发。如果有不对的地方,还请批评指正。本着分享精神,我总算把研究生期间获得的主要的经验心得总结出来了,现在共享给大家,就是想对后来者或者要入门的小白给予一点点帮助。最后,希望大家科研顺利,学业顺利,前途无量。我本人呢,现在也已入职岗位了,转行做了自然图像处理任务,这篇文章就算是我的告别吧!未来还要继续加油!
我将本文的内容录成了视频,投稿到了B站,欢迎大家查看我的视频,并关注我,如果对你有帮助,别忘了给我来个一键三连哦~
最后,我的配准项目的开源计划更新完成了,既有博客讲解重要内容,又有视频讲解配准项目,以及项目代码的GitHub仓库,具体请看该链接,希望对大家有所助益,主要内容复制如下:
发表的论文
我投稿的两篇会议论文也都发表出来了,有兴趣的可以点击链接,下载观看,第一篇是利用基于无监督学习的非刚性配准模型在胸部X光图像上的应用,第二篇是该模型在胸部CT图像配准任务的应用创新实践,文章链接罗列如下。