1. 论文写作工具 Latex
本科毕业论文是用word写的,基本都是把一个样本论文拿来,格式不变,内容修改成自己的,遇到格式问题要修改很久。上了这门课之后,才发现用Latex写论文十分方便,也不用花太多精力在格式问题上。同时,每种期刊都会提供一个或多个格式文件, Latex 源文件只需要进行少量改变,,就可以获得完全不同的版面。比如cls文件:控制论文的总体格式。bst文件:用于控制参考文献的格式。
2. 学术论文 写作
在上门课之前,对与论文写作只是停留在本科毕业论文写作的层面上,如何写学术论文基本不了解。在这门课中,通过 what, why, how, when, where五个方面,了解了学术论文是什么,怎么写以及一些小技巧。在我看来,学术论文按照八股文的方式写,也就是每个部分内容有固有的要求。对于写论文的人而言,论文不需要文采, 只需要正确的内容放在正确的位置。对于读者而言,固定的格式能够方便找到自己需要的内容。
3. 论文写作时间的认识
通过这门课对于研究生写论文的时间也有了清晰的认识,能尽量早点写就早点写,最好在研一写作完成,并且要高质量完成不能强行灌水。因为从投稿到出版可能要花费一年的时间,研二写完投稿一旦被拒,就可能要延毕。
4. 论文阅读
阅读论文要看一些顶刊顶会的论文或者是近几年的高被引论文,因为计算机技术更新换代很快。在读的时候,可以摘抄一些常用的词句,后面写论文时可能用得上。在阅读时,也可以通过论文复现的方法,快速掌握论文的主要内容。
常见的问题
5. 论文写作慎用的词
通过这门课的学习,了解到写论文时也要注意词语的使用,比如未出现在任何学术论文中的单词,不可以使用。然后,通过闵帆老师的讲解,了解了一些词的用法,比如Only这个词,在写作时把 only 放到一个尽可能靠后的位置。同时,也了解到如果有两个相似的词汇,使用时出现纠结,我们可以通过查询 这两个词在 https://www.linggle.com 上的使用频率,选择使用频率高的词汇。
6. 空格和数学符号
空格的错误比较常见,也比较容易犯,闵老师在课堂上总结了几种常见的情况,比如标点符号前(后)多(少)空格,小括号前没空格,参考文献引用的方括号前面没有空格等。还有就是数学符号,要保证在同一篇论文中的一致性,同一个符号的不同写法代表不同的意思,比如 x , x , x x, \mathbf x, \bm x x,x,x代表不同的意思。数学符号直接在Latex中写,在word公式编辑器写再粘贴到Latex中,会出现很多额外控制,导致不规范。
7. 句子的一些错误
句子的完整和易读也是很重要的一点,写论文跟写英语作文的思路完全不一样,英语作文的高分是要求复杂的语句和不常用的单词等,但学术论文恰好相反。因为学术论文的主要功能是进行读者与作者之间的交流, 句子太长以及太复杂反而会影响读者的阅读。 在写论文时,句子也要注意格式和语法。尽量避免写长句,避免阅读的不便和出现歧义。同时,要注意不完整的句子以及中式翻译,比如缺少主语。还有就是同一词组要避免在同一句子中重复出现。避免这些语法错误的方式主要是将写好的句子,放到翻译软件上进行检查。
8. 符号系统和数学表达式
论文中的符号和数学表达式主要有以下注意事项:
- 不要对式子和符号进行额外的、特殊的处理,包括强行增加空格、花括号等。
- 数学表达式的处理是 Latex 相较于 Word 非常重要的优势。严禁先用 Word 里面的公式编辑器写数学式子, 再转到 Latex,这样很容易出现不规范。
- 不同字体的同一个字母表示不同的涵义。
解决这一些问题,闵帆老师提出了一个很好的方法,就是找一篇已经发表的论文的 .tex 文件来学习数学表达式。
9. Latex 表格的控制
表格的控制主要有以下的方法:
- 表格一般应该与文字边距相同。
如果表格内容不多, 可以用如下语句控制宽度。
\begin{tabular*}{12cm}{@{\extraclosep{\fill}}lll}
如果数据太多装不下,也可以用如下语句控制宽度,但表格中字体会自动缩小。
\resizebox{12cm}{!}{}
- 在Latex中写的时候就对齐,这样在pdf中就不会出现表格对不齐的问题
10. 英文句子语法问题
这个主要是解决我们英语句子写的不好,闵帆老师主要提出了借鉴法和倒腾法两种方法。借鉴法需要积累很多的句式,是一个漫长的积累过程,但是随着阅读的文献阅读,积累的越多,越写越顺手,查阅句式的速度也会变快。倒腾法写一个表达自己意思的英文句子,用谷歌翻译在中文和英文之间多次翻译,直到中文句子和英文句子都不再改变 。优点是完全按照自己的本意来写。缺点是来回倒腾花费的时间长,效果可能还不怎么好。
11. 拒稿原因–避免一些坑
写论文的时候要换位思考: 如果我是审稿人或读者, 我会怎么批评这篇论文? 闵帆老师强烈建议写完论文之后不要急着投, 在手里放一周,然后给自己写一个尽可能详细的审稿意见。拒稿原因也给出了一下5个方面的内容:
- 文字不规范,主要是语法错误和语言不规范造成的。
- 实验太少。可能是数据集太小或太少,也可能是对比的算法太少或太老。
- 内容不一致。主要是自己提到的东西,在论文写作或实验时,没有实现。
- 理论不强。数学表达不强,没有足够的理论支撑,算法复杂度分析不够透彻等。
- 创新不够。主要是创新点不够。
12. 会议论文与期刊论文的区别
会议论文均有篇幅要求,一般比期刊论文篇幅要短。会议论文没有没有章节组织描述、相关工作描述比较少、实验比较少、不讨论 future work和参考文献较少。会议论文一定是针对某个学术会议投稿,并且由学术会议的会务组决定是否录用;期刊论文肯定是针对某学术期刊投稿,而且是期刊编辑部决定是否录用,而不是审稿专家,审稿专家只是审稿并返回意见,真正决定录用权在期刊编辑上。
13. 摘要与正文
审稿人看摘要,就能把你的文字水平、逻辑能力摸得清清楚楚的。摘要通常会出现大量的问题,由于文字性的问题在正文中也会同时出现,闵帆老师主要罗列了以下几种问题。
- 把别人的内容写了一大堆, 自己的内容只写三四行, 导致未突出自己的工作。
- 很多作者想到哪里写到哪里, 句子太长又没有良好的排比, 导致难于理解。
- 前一句与后一句的意思相隔太远, 或者有交叉。
- **摘要是一个独立的部分,一般不引用参考文献。**有些搞数学的可能会引用,但我们计算机界的最好不要耍花招。
论文写作
14. 第一篇论文写作流程
闵帆老师建议的是先采用自底向上的方式堆材料, 有了初稿再采用自顶向下的方式把控全局。
- 初稿
(1)程序: 根据任务写出程序并调试。
(2)基础实验: 用表格展现运行时间, 自己算法的实验结果等。
(3)算法描述: 写出算法伪代码, 或者画出流程图
(4)方案描述: 用一张图描述总体的方案. 可以是开局一张图
(5)摘要撰写: 用文字描述方案
(6)引言撰写: 与摘要同样的节奏, 只是要详细些, 着重解释开局一张图
前期还是注意不要乱写,把小问题全堆到后面的阶段不好。 - 修改
按照由易到难的顺序, 挑选一个部分进行讨论、修改, 并不断进行版本的更新 (从 001 到 099)。本阶段需要增加如下内容:
(1)相关工作的文献综述, 含参考文献。
(2)理论基础、符号表
(3)对比实验, 很可能涉及重新实现、运行别人的算法
(4)消融实验
(5)实验的图形展示 - 打磨
作者进行论文的问题检查、语言打磨
15. 图表问题
闵帆老师也进行了总结,主要为以下几种问题:
- 图导致页面底部大量的空白 (表格、算法同理),使用“如下图:”紧跟一张图. 由于图的尺寸较大, 在当页剩余部分排不下。
- 图片模糊,线条不清晰,文字看不清楚。除了运行界面, 均使用矢量图 。
- 图中文字字号不对,图中文字太大、太小或大小不一。
- 图中布局太挤或太空,图中的字挤到一起了, 或一个方框中文字仅占到面积的 1/3 以下。
- 不规范的图。例如: 流程图中没有判断框,却出现了两个或多个分支;流程图中箭头指到的位置不正确。
16. 论文题目
论文的题目也是一个关键点,换个角度思考,假如是你,看到一个普普通通、平平无奇的题目,估计自己也很难想看下去吧,这里闵帆老师总结出的出彩的论文题目的注意事项非常精炼:
17. 摘要
从中文的角度, "摘要"就是把论文重要的内容摘录出来;从英文的角度,Abstract 就是把重要的内容抽取出来。它通常包括三个部分: 已有工作的评述,本文工作的描述,实验结果。
闵帆老师总结可以通过以下几个方面来写摘要:
(1)问题及其重要性,可以说明问题所属的领域,解释最重要的概念,或者强调问题的重要性。
(2)已有工作,可以描述该问题的流行解决方案。
(3)已有工作局限性,以 However 开头, 需要注意指责不要太强烈, 要尊重别人的劳动;本句干的事情是挖坑, 要保证自己的方法能把坑填上;实在不行也可以不写本句,但这样显得没有底气。
(4)本文工作,以 In this paper 开始,是题目的扩展,可以出现算法的缩写。
(5)本文方法的第 1 个技术/步骤/方面/优势/贡献。
(6)本文方法的第 2 个技术/步骤/方面/优势/贡献。
(7)本文方法的第 3 个技术/步骤/方面/优势/贡献,如果不能扯出 3 个方面, 论文的工作量就显得不够。
(8)实验设置,给出数据的领域、来源、数量。
(9)实验结果,提高了准确性、效率等等。
(10)提升,吹嘘一下论文的意义: 为该领域打开一扇门之类。
18. 关键字
关键词常被看作摘要的一种补充;一般需要 3-5 个关键词;关键词一般由 1-3 个单词构成;将关键词按照字母表排序。
19. 引言
"引言"的本意是为论文作一些铺垫,然而,在计算机英文论文中,Introduction 需要讲述完整的故事。近年来,一些好的中文杂志也逐渐采用了这个风格。
- 它应该对整篇论文进行详细的描述。
- 最八股的方式, 就是采用与摘要相同的节奏。
- 每段应有 5–10 句。这样,该段就有 50-150 个单词。如果相邻两段都太短, 应把它们合并到一起. 如果某段太长, 就应该拆分, 或者直接减少文字. 太短的段落导致零零碎碎的感觉, 太长的段落则让人读起来累。
- 有些期刊和会议还喜欢让作者把自己的贡献单独列出来, 放在实验陈述段落之后。这个与论文的 Highlights 是同一个意思。
- 期刊论文要求写论文的组织结构。引言的最后一段以 The rest of the paper is organized as follows。开头即可。也不需要玩什么花样, 按部就班陈述即可。
20. 开局一张图
计算机领域 (特别是顶会) 流行在引言里面放 “开局一张图”。这里闵帆老师着重介绍了开局一张图的重要性。画好了,读者仅仅通过该图就迅速理解论文,节省时间。但是如果画的不好,不如不画。
如果采用这种风格,在In this paper 之后就应该围绕该图进行解释。“一幅图胜过千言万语”,该图可以帮助读者花最少的时间理解论文的主要内容。 该图可以展现核心技术、算法框架、小的运行实例、效果对比等等。
21. 文献综述
- 每篇论文都应有文献综述。表示对前人工作的尊重,我们是站在巨人的肩头上。
- 文献需要进行分门别类的介绍。便于读者理解你这项工作的位置。例: 主动学习有两个流派: 基于不确定性与基于代表性,本文工作为后者。
- 参考文献的引用一般仅仅是一种附属品。先写一个完整的句子, 再把参考文献的引用加上去。
- 不应将参考文献的引用作为句子的主语、宾语等。这种情况下,你就失去了自己的观点,而以其它作者的观点为主。
- 不要一次性引用太多文献。
- 不提倡全句引用。如果实在要引用, 应在原句外面套上双引号, 否则就是学术不端。
- 合理评述相关工作的优缺点。在谈到优点时可以使劲夸,但也不要用口语;说到缺点时要中肯,也要客气,很可能文献作者也是你这篇论文的审稿人。
22. 参考文献引用
以年份为主线的综述也不值得提倡,主要是计算机技术更新的太快,每一年可能有许多相关的论文发表出来。这里闵帆老师提了一个例子,对年份引用与序号引用进行了对比。
23. 理论部分
对于计算机专业的学生而言,数学语言的运用通常有一定困难。这是因为很多人在学习数学的时候,只是想办法应付考试,而没有思考内在的涵义。
闵帆老师总结的一般性的准则如下:
- 理论应该完备
- 符号要保持同一风格,同一篇论文要保持一致性
- 重要结论称为定理 theorem,定理前面打辅助的叫作引理 lemma,定理后面的尾巴叫推论 corollary,附属于算法的叫 property。
- 简洁。数学语言就是应该言简意赅。
需要特别注意第三条准则,在写结论和理论时,需要特别的注意。
24. 算法伪代码
算法伪代码是论文的核心之一,在使用Latex书写时,也需要注意格式问题。
- 需要说明输入、输出;
- 方法 (函数) 名可写可不写,如果被别的方法调用就必须写
- 需要写出主要步骤的注释
- 长度控制在 15-30 行
- 可使用数学式子或对已有数学式子的引用
- 不重要的步骤可以省略
- 一般需要进行时间、空间复杂度分析, 并写出配套的 property 以及相应的表格, 以使其更标准。
25. 数据集信息
数据集信息关系实验的成败与否,一个实验如果数据集不好或者太少,那么实验结果的鲁棒性可能较弱。闵帆老师总结了以下关于数据集方面的信息:
(1)数据集越多,覆盖领域越广,结果就越可信。数据集大些更好。在多数情况下, 12 至 20 个公开数据集就足够了. 然而, 对于一些领域和问题而言, 数据集却非常珍贵. 可以使用人造数据集, 或者数据集随机采样成多个, 来缓解该问题.
(2)获取自己主要参考文献中的数据,有利于进行比较。
(3)要么获得对比算法的源码,要么实现它们。由于使用平台不同, 数据采样不同, 有时候你重现别人的实验, 会发现结果不大一致. 如果没有特别的原因, 就使用自己实现的版本.
(4)同一结果不应该在图和表中同时出现,这样就重复了。
26. 内部比较
内部比较的动机包括:
(1)展示参数变化所导致的性能变化。二维图一次只能展示一个参数和一个性能指标。因此,如果有很多参数,就只能讨论最重要的几个,否则图太多。
(2)展示主要方案与其变种相比的优势。有时候我们有好几种可选方案,通过比较,可以获得最佳那个。
27. 外部比较
外部比较也就是与已有算法进行对比。
- 需要比较经典方案,基准方案和最先进的方案。
- 很多时候使用柱状图。
- 如果数据太多, 用表格就比图合适。
- 如果要把参数影响,数据集大小影响也表现出来, 就只有用折线图。
- 最重要的比较放在最后。
- 要有足够的文字进行分析,不能让读者自己去观察。
- 并不需要在所有数据集上击败其它方案。
- 在分析自己方案优势之余,也应该分析它的劣势。一个方案既然有优点,就肯定有缺点。既然有擅长的数据/指标, 也就有不擅长的数据/指标.
28. 实验结论
实验结论是对实验的总结以及未来可以改进的方向,读者和审稿人都会详细看。
- 结论一般不要太长, 5 句就够了. 如果想讨论的内部比较多, 应该在本节之前加入一个单独的 Disussions 小节。
- 避免使用与摘要内相同的句子。摘要里面说我们做了哪些事情,而这里应该说我们获得哪些观察与结论. 也就是说, 结论比摘要更加具体. 可以具体到论文中的某个算法, 某条性质, 某个定理, 某个实验结果, 这样就自然与摘要区别开来。
- 如果要讨论说进一步工作,可以列出 3 至 5 条,不算在 Conclusion 的字数里面。读者很可能非常关注这一部分,因为他们可以按照这种思路继续进行研究。作为一项研究工作,打开一扇门比完全解决某一问题更重要。如果这一部分写得好,就会有很多的引用。引用数量也比论文发表数量更重要。
29. 参考文献
参考文献中的错误有很多,在上课时,注意到以下几条可能是写论文时常犯的错误:
(1)将等号进行列对齐。这和我们写程序一样,需要良好的习惯: 保证格式正确. 否则会隐藏一些错误。
(2)名字要有意义。必须保证不同的参考文献具有不同的名字。
(3)作者名不要缩写成 “F Min” 或 “Fan Min”。Latex 自己会进行必要的转换。
(4)页码之间应使用两个连词符 -,最终的效果就是一条比较长的横线。
(5)除最后一行外,其它行应以逗号结束。
(6)为了保证格式的正确性,应检查生成的 pdf 文件。
30. 论文中的图片与图摘要
闵帆老师总结:一幅图胜过千言万语。将一幅图解释清楚,这样读者和审稿人阅读时,方便易懂,不必再通篇阅读,节省时间。
- 尽可能使用矢量图。这样在放大的时候就不会失真。
- 一般而言,引用图片时,应保持与图片编号的一致。
- 使用一张图 (含图注) 把论文的主要思想介绍清楚。
31. 论文写作从1到N
有时候,写完第一篇论文后,不知道第二篇论文怎么写。闵帆老师总结了三个角度来解决问题:问题的角度、算法的角度和应用的角度,每个角度都根据第一篇论文的内容或者学过的内容进行拓展。思路不够宽广,最大的可能是读的文献太少。因此应该在第一篇论文的基础上进行探索,写个文献综述(不求发表,只求把思路捋清楚),就有可能从 1 篇论文发展到 N 篇。
32. 总结
在上完闵帆老师的论文写作课后,感觉自己在这堂课上收获颇多,从学术论文的定义,到写计算机学术论文的方法以及注意事项,再到写作流程以及写论文工具等都有一定程度的了解,感谢闵帆老师的耐心讲解。