研究生阶段最为重要的就是写论文和发论文, 但是总不能有一上来就说 “我要发论文”, 然后找了一篇顶刊顶会读了之后就说 “还是算了吧”。
因为实验不会做, 代码不会写, 论文不会写, 四处碰壁的挫败感一下就上来了。所以说, 这个时候就要放平心态按部就班一步一步来。
下面奉上 “圣经” 链接和自己的一些收获和感想。
1、首先我们要有一个思想, 不要把论文当做一件很难的事情。写论文不过是写一篇文章, 这篇文章应当是易懂的文章。不一定要通俗, 但一定要言简意赅不要弯弯绕绕。
2、论文不同于散文或者各种故事小说的结构。 论文是对自己工作的阐述、总结和对比, 所以大部分论文结构一致, 我们需要做的就是 “填空题”, 在论文的不同位置填上我们自己的答案。
3、当决定开始写一篇论文的时候就要做好打一场持久战的准备, 中间最好不要有任何停歇。这样做可以保证思维的连贯, 可以流畅地完成一系列工作。
4、“好马配好鞍, 兵器要趁手”。写论文的“兵器”当然就是 Latex, 它不用像 Word 那样考虑手动排版的问题。不要一想着通过代码写论文很难, 怀着畏难的心理什么事情都做不好的。
5、有了心理准备和工具准备, 是时候开始大展拳脚了。第一个问题就是我该研究哪个方向呢?如果有横向, 就沿着横向那个方向。如果没有就问一下师兄师姐, 当然在自己综合思考后就可以去和导师讨论 (千万不要什么想法都没有就去说啊!)
6、确定方向之后, 就去找顶刊顶会的文章, 然后自己列个表格进行筛选。比如做 CV 方向, 数据集大的不要, 训练时间长的不要, 模型太大爆显存的不要, 写得像“天书”论文的作者不要, 没有代码的不要。筛选过后根据自己感兴趣程度, 有多少 idea 来选择从哪方面入手。
7、idea 不要选得太大, 第一篇论文能够做到在别人的优秀成果上进行修改。要是运气好, 能够在某些方面超过他那就万事大吉, 不过要做好多选几个 idea 。因为失败才是贯穿研究始终, 不过不要气馁, 选 100 个 idea, 失败一个不还有 99 个嘛!
8、根据自己的 idea 来设计实验方案, 这一步就可以先写到论文中, 能够多详细就多详细, 能做到的, 不能做到的, 统统都写进去。最怕就是实验做完, 好效果一出来, 自己复现不了自己的效果就尴尬了。
9、排列组合往往在实验过程中有奇效。比如某个阶段, 论文使用的 KNN 算法, 我换一个随机森林算法。神经网络他有六层, 我就再加一层。从零写代码是一件十分痛苦的事情, 千万不要去尝试, 除非这个时候自己有了一个非常清晰的逻辑和超强的代码功底。
10、要展现自己效果好, 这个时候就需要一个评价指标。主流的方向都有一些公共数据集, 那就当然要试试自己的模型在这些数据集上效果好不好。这个就要实事求是, 是多少就写多少, 不能为了发论文而伪造数据。发不出论文比起丧失学术道德那就是不值一提了。
11、有了前期工作就可以开始动手写论文了。题目不要太长, 最好不要有基于什么什么, 直接提出自己的算法或者模型, 并给它去一个独特的名字 (可以简写的, 读起来顺口的). 可以加上一些这个领域类比较热门的词.
12、摘要部分是比较重要的, 别人看论文就先看摘要。简单来说就是描述这篇文章的工作内容、实验结果、对比分析。说一说别人的优点和局限性, 谈一谈自己的拓展和工作不足。
13、一旦开始写论文的内容时, 就需要注意自己的措辞, 要尽量地道, 说一件事情的时候不要太绝对。翻译软件永远是自己写作时候的好帮手, 把自己的句子拿进去来回倒腾翻译, 然后自己再去修改就会有一种恍然大悟的感觉。
14、避免长句子的出现, 写论文不是来炫耀英文水平的地方。目的不仅要自己看得懂, 而且要读者看的懂, 更要审稿人看得懂。直接一个主谓宾结构贯穿全文。
15、论文要保证处处都是细节, 关键词也不可以放过。词不要过多, 3~5个就好, 也不要傻乎乎的只会用一个词!几个词组合成一个词更能准确表达意思。(注意关键词排序按照首字母排序)
16、引言就是比摘要更完整地讲述了一下本文地内容, 要让人读完就有一种通透的感觉, 感觉自己已经掌握了本文地大致内容, 然后精读的时候才会有所感悟。语句要精干, 每一句话都是摘要当中的扩展。适当地考虑段落长度, 适中就好 (肉眼看起来刚刚好地感觉)。
17、一篇好的文章不能没有一张好的图片。一张好图片就基本能够包含文章要说的事情。第一件事情就是要明确输入、输出和内部发生的事情。整体要显得端正, 线条不要太艺术化。要对线条使用颜色来进行不同标注时尽量考虑通过在线段上标注符号来完成这个工作。
18、文献综述必不可少, 因为一开始我们的 idea 就来自于这个方向各个大牛的论文。我们不过是站在巨人的肩膀上。综述时考虑到计算机的发展迅速, 尽量从发展方向横向考虑, 而不是从年份进行纵向描述。
19、参考文献作为附属品, 但是也要考虑到这个的细节。自己引用的每篇文章自己都要去阅读, 就算不能精读也要简单了解一下做了什么工作。不能想当然地加到自己的论文里面。
20、当我们提及机器学习和深度学习时总是想到各种广泛应用, 但是一旦提及数学就直摇头。还是最开始的一句话, 不要有畏难心理。数学公式简单来说就是为文章增色的一步, 论文是要求严谨的, 不能说我做出了效果好就可以。另一个原因就是别人都有公式, 我没有公式看起来就会很 low。
21、数学公式里面最重要的就是符号系统。一篇论文中不要想用什么用什么, 相同符号不同定义满天飞。可以先参考别人的文章是怎么做的, 实在不行就拿一些教科书, 比如 《离散数学》, 然后拿来自己抄写一遍。
22、不仅仅是符号系统, 在描写定义的时候也要注意。注意符号的粗细和符号之间的关系, 要做到言简意赅。多看别人怎么写的, 自己再慢慢模仿。
23、有了公式和图片, 剩下的就是算法了。这里用伪代码描述就好, 看了几篇文章, 他们里面的伪代码都有一个统一的表格。必须要写上算法名和输入输出, 每一个关键点最好能够加上注释。引用上自己写的数学公式使得前后文紧密联系。
24、实验结果的描述有两方面的工作, 一个是对内部对比, 另一个是对外部对比。内部对比是为了展现参数变换对实验结果的影响, 外部对比是为了展现自己 idea 的优点和不足。展示时除了使用表格中填数字, 还可以使用图形进行描述。(不过更多还是用的数字进行描述)
25、结论要简洁, 因为该说的已经说完。再说的话就是用其他的描述方式对摘要进行一个复述。最后可以提出后续的工作,为自己或者为别人指明方向。
26、不管是参考文献中的名字还是对比表格中的数据都要保证格式的统一。不要在论文中一会用这个格式,另一会用那个格式。数值如果有小数点就看一下总体,然后再对其进行保留。
27、论文写完后就要投稿了,先投会议,如果录用之后就再增加内容投期刊。要有投顶刊顶会的信心,不能一开始就躺平,抱着投个二区三区的想法。取法其上,得乎其中。(当面对现实问题时候,自己能力确实不足,这时考虑其他路才显得合理)
28、文章投出后如果编辑多次要自己修改那多半有戏。回复邮件要分点回复,直接了断地回答编辑的问题。对于修改过的地方要用蓝色进行标注。
29、实验过程往往不尽人意,这个时候不要钻牛角尖。可以做的事情比如验证实验正确性,考虑更换实验方案,选择新的评价指标。有错才会有成长。
30、对我这样的小白来说,如果可以做到按部就班、接受失败、心态平和、虚心请教等等方面,多多少少都会在这个过程中收获不少内容。
列出的圣经不可能一下就学会,常写常看常总结。