本文是我多年之前刚开始进入科研时总结的科研流程,不涉及具体知识或技术。我重点介绍深度学习科研特有的,当然其中有一些是所有专业的科研都会涉及的。对不知道我读博究竟是在做什么的朋友,可以读一下此文来了解。
注:这篇文章的时间非常久远,那个时候我还是个科研小白,很多东西都不懂,写得也比较稚嫩,希望大家多多包涵!
所有学科的学术科研都离不开论文。本文以论文为主要对象,按照发论文的时间流程来总结:
- 小节 1介绍论文发表在哪儿,这是首先得了解的;
- 小节 2介绍找论文的方法,自己的科研问题都是通过阅读别人的论文产生的;
- 小节 3介绍实际的科研流程,在深度学习领域就是提出算法并做实验。这些将作为自己论文的主体部分;
- 小节 4介绍在完成一个工作后,如何写论文。这里会介绍深度学习领域论文常见的格式与内容;
- 小节 5介绍如何发论文,涉及论文投稿和审稿的常识,以及后续事项如参加会议等。
1 论文发表在哪儿
论文是科研人员总结科研成果、与他人交流的主要载体,也是衡量学术成就的重要指标。论文和报纸、杂志里面的文章性质一样,都是投稿到一个出版物中,由审稿人(一般是领域内的专家)审核,审核通过后在出版物中出版。
有的出版物在圈里是公认的、口碑好、论文质量高,有的则不被人所知,论文也比较水。投稿到前者难,代表科研水平高;后者容易,水平也低。所以每个专业的圈子都有公认的出版物含金量标准,论文发表的出版物含金量就是衡量作者科研水平的一个指标。
每个专业的论文发表都有自己的特点。深度学习的论文主要发表在各种会议上,其次是期刊。
1.1 会议与期刊
会议(conference)是指学术会议,顾名思义就是研究者讨论学术成果的会议,是在某个地方集中开好几天的那种。这种大型会议可不是组里平时的讨论班,随便交流一下想法思路的,而是需要有会议认可的学术成果才能参加,即在开会之前的某个时间向其提交论文,通过后才有参加资格,组织者也会把通过的论文整理出版出来。所以,会议可以看成一种出版物。
期刊(journal)就是专门刊载某个领域学术文章的杂志,和普通的杂志道理是一样的,不多解释。
会议和期刊的区别:
- 期刊对论文的字数、工作的完善程度要求更高(投了会议的论文可以继续完善再去投期刊);
- 期刊的审稿慢,从投稿到出版的周期长;
- 期刊论文数量少,会议论文数量巨大,每个会议每年一般会有上千篇论文;
- 期刊不需要开会;
- 深度学习论文喜欢投会议(这是历史原因慢慢形成的环境。因为深度学习这行变化太迅速,而会议发表比较快);
深度学习的领域有很多,会议、期刊也有太多太多。衡量“好坏”的标准有:
- CCF(中国计算机学会)推荐的国际学术会议与期刊目录(请看人工智能、数据挖掘等相关的部分)把会议和期刊分为 A、B、C 三个等级,A 代表含金量高,C 代表含金量低。不在此名单里的可能是含金量更低的会议,也可能是新开的没来得及被收录的、或小众的会议。国内顶尖高校的计算机专业院系认可这个评价体系,并将其作为研究生毕业或老师评职称的参考标准;
- 被哪个数据库(指存放论文的数据库)收录也是一种评价标准,它平行于 CCF 的评价体系,是理工科科研通用的标准。常见数据库有 SCI(科学引文索引)、EI(工程索引)、核心期刊等,SCI 代表着最好、最权威(注意只收录期刊论文),EI 次之(期刊和会议都有收录),核心期刊是国内大学或院所指定的,只收录中文期刊。由于这个标准下很多都不收录会议论文,所以计算机专业一般不按照这个标准来,但也有方向比较杂的院系将其作为参考标准(例如我在的数学学院)。这些数据库内部也有细分等级:
以上评价中含金量最高的一批会议或期刊通常被称为顶会、顶刊。深度学习赫赫有名的顶会有 CVPR、NeurIPS、AAAI、IJCAI、ICML、ICLR、ICCV、ECCV、ACL、EMNLP 等,顶刊有 IEEE TPAMI、JMLR 等。此外,深度学习领域的中文期刊或会议比较水,比较受认可的期刊就计算机学报、软件学报、自动化学报这几个,大部分人也不会考虑中文论文,这一点可能与文科专业不太一样。
有的会议有自己细分的评价标准,以下是几个例子:
- 分 workshop 和非 workshop:workshop 意思是小型的分享会(工作坊),因此发论文在会议 workshop 分会的难度比正式会议小很多,含金量也低;
- 分 oral、spotlights、posters:含金量依次降低,分别对应开会时的口头报告、小的口头报告、海报演示(见小节 5),自然可见其重要程度。
中国知网、万方数据等虽然是论文数据库,但它们更像搜索引擎,而不能像 SCI、EI、核心期刊一样当做评价指标。
1.2 预印本
深度学习这一行在正式发表论文前,通常习惯把论文草稿先上传到网上的预印本平台。这样的目的是:
- 分享给大家阅读并提出修改建议;
- 自己提出的想法先占坑,防止晚一步被别人抢发论文(预印本发出来之后);
深度学习领域都是使用 ArXiv 这个预印本平台。
2 找论文:寻找科研问题
在科研中,获取知识的来源一般都是最新发表的论文。深度学习的大部分会议和期刊都是年度的,包含了一年来各路研究者的最新成果,通常在会议或期刊名后面加上年份,如 CVPR 2021。
人工智能、深度学习这一行讲求分享精神,免费、开源的东西比其他学科要多。据我了解,很多其他专业的论文都要从学校买下的数据库里找,而人工智能的论文在网上一般都可以检索到。以下是网上找论文的方法:
- 找某一篇特定的论文或包含某关键词的论文:去 Google Scholar 或 Google(不建议使用百度)上搜题目或关键词。它们能把世界上几乎所有的论文搜出来(包括预印本 ArXiv 上的),并且给出其引用量、信息、下载链接(如果不付费的话)。中文论文去中国知网、万方数据等国内网站搜更好。如上所述,因为深度学习领域更看会议,所以 SCI、EI 的数据库 Web of Science、Engineering Village 一般是不用的;
- 如果只是想涉猎最新的论文,可以关注感兴趣的会议出版的论文集和期刊的网站,每年都有固定的时间发布论文集(proceedings,记住这个单词),可以 Google 搜索 “会议名 + 年份 + paper list 或 proceedings” 找到论文集网站。当然,论文是很多的,不可能一个一个地找,所以论文集网站一般也支持筛选、检索。以下列一些有名的网站,它们可以搜到具体会议的论文:
- Open Review:收录了大量会议的开放评审(关于开放评审,请见)的论文,包括完整的 ICLR 会议论文,以及很多如 NeurIPS 等会议的论文;
- CVF open access:由计算机视觉基金会(CVF)资助的数据库,收录计算机视觉领域的三个会议 CVPR、ICCV、WACV 的论文;
- PMLR:Proceedings of Machine Learning Research,主要收录 ICML、AISTATS、COLT 等会议的论文;
- 很多会议、期刊会在自己的官方网站中公布论文集(注意不是 accepted paper list,而是 proceeding):NeurIPS、AAAI、ICML、JMLR、IEEE TPAMI;还有的会委托其他出版社出版:ECML PKDD、KSEM;
- 想随意地探索深度学习最新的进展,可以浏览一些第三方的博客、公众号或社区,会有最新的论文列表推荐,如 Paper With Code、CSDN、微信公众号 PaperWeekly 等;
- 对一个问题或领域深入研究,入门的话建议找综述论文,一般可以检索 “领域 + survey” 找到;也可以关注一些更具体的博客;
- 对于具体的工作,应以一篇论文为锚点,找其引用的文章(如用了谁的方法、“相关工作” 部分)来看。
3 准备论文:提出算法与实验
深度学习的研究问题大部分是完成某个 AI 的任务,科研就是为该任务提出模型或算法,并写代码,做实验验证。深度学习的任务如图像分类、机器翻译、目标检测等,有太多太多,这里不详细讨论。
对每种任务,可能会有前人提出他们的模型或算法,发表了论文并获得认可;而我们的目标是提出自己的,在效果上超过他们,如果比别人的好,就可以发论文了。如果超过了该任务上最好的模型或算法(称为 SOTA,state of the art 的缩写),那发出来的论文水平也就相当高了。
为了证明自己的效果更好,深度学习领域都是在数据集(dataset)上,用自己和别人的模型或算法做代码实验(此时被比较的别人的模型称为 baseline),比较、验证结果。结果会用定量的评价指标(metrics)来量化。为了公平,每种任务都有大家公认的数据集,大家的实验也都在这些数据集上做。(这里为完全不懂计算机的朋友额外解释一下,这里的模型或算法并不是一个摸得到的物体,而是我们敲到电脑里的代码对应的程序,做的实验都是敲敲键盘在电脑上完成的,而没有像生物、化学那样真正的实验室。数据集可以理解为实验对象如小白鼠,输入到程序中,实验结果就是输出的评价指标。)
深度学习由于常常使用大型数据集,所以实验周期也不会太短。真正深度学习科研的程序不是几秒、几分钟就出结果的,往往需要几天、几周,甚至几个月。这里就涉及到算力的问题,做代码实验使用的是计算机的计算性能,算力就是指一个研究组计算机设备(常称为计算资源)的计算性能。有的组经费充足,算力强大,实验周期短,就可以加快科研进度,更快地发论文;有的组计算资源少,做实验就慢。深度学习主要使用显卡(GPU)这个计算机部件,因此大家讨论的也是谁的显卡资源强。
在这个阶段,除了看别人的论文内容外,网上很多还有代码资源可以利用:
- 深度学习领域的研究者通常会把代码完整地发布到网上(开源),一般是 GitHub ,世界上最大的代码托管与分享网站;
- 一些网站将深度学习各任务的数据集、benchmark 及相应的代码分类汇总起来,典型的是 Paper With Code。
当然,深度学习的研究不全是在某个任务上提出模型或算法,在数据集上刷指标。也有一些是提出新的理论、分析已有的方法等,这些就不在这里讨论了。
4 写论文:论文的格式与内容
上一章看到了深度学习科研的流程,非常固定,所以深度学习的论文,用我们老师的话说,和八股文差不多,意思是遵循固定的写作格式,比较死板,所以写起来、读起来都是有章法的。下面就按顺序讨论这种论文的格式与内容。
开头和结尾是非主体部分,和其他领域基本一样:
- 题目:深度学习比较卷,论文题目经常花里胡哨。常见的现象是,标题中取一些字母拼凑出一个单词缩写作为名字,以吸引读者的注意;
- 作者:按照贡献程度分为第一作者、第二作者、第三作者等,允许出现共同一作(共一现在比较泛滥,共一也有顺序,共一第二常常被视为第二作者)。比较特殊的是通讯作者,一般是作者的导师或指导论文的专家,作为负责人。通讯作者可以是第一作者(一般不能是第二作者等),也可以没有;
- 摘要;
- 引言;
- 相关工作;
- 最后一章结论;
- 参考文献:有很多参考文献,但并不是所有都和文章有重要的关联。引言等部分中的参考文献一般关联不大,重点是方法部分、相关工作中的,才是直接继承的工作。
主体部分有深度学习自己的特色:
- 问题定义:给出深度学习任务的数学定义,目的是讲清楚问题,并为下文统一数学记号。对于一些大家都知道的任务,这一部分常常省略;
- 模型与算法部分:给出作者提出具体的模型或算法的描述,通常会画示意图,有时候会在里面做一些简单的数学证明。可以合在一章,也有的拆成很多章;
- 实验部分:
- 一开始介绍实验设置,包括使用的数据集、baseline、训练细节(计算资源、超参数等);(注:上文说过 baseline 就是被比较的别人已有的模型或算法,用来证明自己的有效果,类似于其他理工科实验的对照组)
- 然后是主要结果的呈现与分析。结果通常呈现在一张表中,一维是各种模型,另一维是各种评价指标。通常会把每个指标效果最好的数加粗;该节正文中会写一些对该结果的分析;之后可能还会有一些次要的实验,呈现主要结果之外的有意义的发现;
- 消融实验(ablation study)。对于模型中有多个独立的机制或模块的,主要结果并不能说明每个机制或模块都是有效的。例如:有一个模块是很有效的,但另一个模块没有用甚至拖后腿,但合起来有效,这样会误导人以为两个模块都有效果,所以需要单独验证每个模块的效果,就是消融实验(也和对照试验原理相似);
- 超参数实验(hyperparameter study)。深度学习模型通常有很多超参数(如学习率、正则化系数等),这些超参数的设置会影响结果。为了说明结果不是偶然的,通常会做一些超参数实验,说明在不同的超参数设置下,结果都是比较稳定的;或者探究某个超参数对结果的影响;
- 附录和补充材料:包含正文里放不开的、次要的长图、长段证明、长结果等等。
由于这种固定的格式,看深度学习论文一般不需要从头一字不落看到尾,最好是找到对自己工作有帮助的重点,挑着看。关于看论文、速读论文的心得就不在这里聊了。
5 发论文:投稿、审稿、开会
我们在发论文时并不只有某一个会议、期刊。很多会议、期刊的领域都有重叠,所以可以选择的有很多。这些年度的会议、期刊散布在一年的各个时间,一般人的做法是盯着这些时间节点来合理规划自己的科研工作节奏,在恰当的时间投稿恰当的会议、期刊。有很多网站会定期整理和更新最新的会议、期刊时间节点,很方便,这里列几个:CCF推荐会议截止时间、WikiCFP。我根据自身领域的情况也整理了一个时间表。
以下是发会议论文的时间线,期刊论文这里不讲:
- 作者投稿;
- 审稿人审稿(一般在投稿结束后1-2月出结果);
- 如果没有中,那就准备投其他的;
- 如果中了,注册会议,参加会议。
5.1 投稿
发论文需要遵守相应会议、期刊的规则,通常会在官网上通常会有 CFP(Call For Papers) 版块发布,值得关注的信息包括:
- 各种截止时间:摘要截止时间、正文截止时间(一般晚于摘要截止时间 7 天)、其他材料截止时间(一般晚于正文截止时间 7 天);
- 论文要求:长度要求(页数),格式要求(一般都会提供 LaTeX 模板);
- 审稿方式(见下节),这关系到是否需要给出作者列表(双盲审不能给);
- …
5.2 审稿
会议的审稿很像考试,但其结果只有两个:录用、不录用。审稿是由一批审稿人完成的,每篇文章一般会根据具体领域分配几个审稿人。审稿人一般由该会议的程序委员会(PC,Program Committee)成员担任,也可能是 PC 成员推荐的其他专家。审稿人会根据自己的专业知识和经验,结合论文内容,给出对论文的评价和建议。一般来说,这些人都是高校的老师,研究所的研究员等,当然有的老师也会让博士生帮忙审稿。
审稿方式有以下几种:
- 单盲审:审稿人知道作者的身份,但是作者不知道审稿人的身份;
- 双盲审:审稿人不知道作者的身份,作者也不知道审稿人的身份;
- 开放式评审:也是双盲审,但审稿意见公开。除了 ICLR 以外,一些会议也强制规定开放式评审,例如 CVPR。深度学习论文的开放式评审结果一般都可以在 Open Review 网站 中查到。
大部分审稿只有一轮审稿。深度学习领域的审稿结果一般有 5 个分数等级。每位审稿人打分,并写下审稿意见。最后根据各审稿人的打分,由上一级的组织者决定是否录用。有两轮审稿的,中间多了给作者申辩(rebuttal),类似于上诉,一般只有 7 天时间。第二轮审稿时审稿人会结合 rebuttal 重新评判分数。
5.3 中稿之后的事情
中稿指的就是论文被录用了。中稿之后,论文会被要求做最后的修改,提交一个最终版本(camera-ready version)。这个版本会被出版,作为会议论文集的一部分。
接下来是注册会议、参加会议。会议一般会在论文录用后几个月举行,地点一般在国外。注册会议需要交注册费,费用不等,一般从几百美元到一千多美元不等。会议一般要求每篇论文必须有一个作者要参加(线上会议除外),费用一般可以由所在学校或机构报销。在会议上,作者可以做口头报告或海报展示(根据中稿的类型)。口头报告一般是 10-20 分钟,海报展示则是把论文的主要内容做成一张大海报,贴在会场的墙上,作者站在旁边回答感兴趣的人的问题。口头报告的含金量比海报展示高。