作为一个工作过的老油条,我认为参照别人的轮子来创造自己的轮子通常比空手造轮子会顺利很多。因此,在坚定进入学术生涯的目标后,我开始寻找一些前人的经验来提升自己。当然,在向别人学习的过程中,我也会加入自己的思考。事实上,在Prof. Ren的实验室中,本人用7个月的时间跟着师兄师姐走过一段完整的科研过程,也体会到了把idea转化为实验再输出为paper的曲折而充实的感受。因此,笔者在这里记录一下在CUHK学习时所用到的一些关于学术能力培养的资料,以及本人对于学术的一些拙见。如果以下的内容可以对入门科研的新手起到一些帮助作用,那是再好不过了🙏
How to read paper in a fast speed
Before reading: 论文分类
根据以下三点将论文分成四类:
- 可以与同门讨论看看该论文是否值得阅读。
- 看引用量(对新论文不合适)。
- 自己速览阅读,看改论文是否结果不错,写作流畅(需要有一定的基础,本人暂未达到)。
而四类分别是:
- 完全不需要了解的论文
- 需要大致了解的论文,大部分论文属于此类。关于此类,只需要半小时浏览了解其方法,效果和故事脉络即可。只需要进行到阅读环节的前两步即可,即阅读abstract和experiment。同时可以多关注相关的公众号(机器之心等),可以速读一下新出的paper。
- 需要精读的论文 (有启发性和突破性,写作良好,实验结果不错) 和需要复现的经典论文。不仅需要知道方法和细节,也需要尝试复现,只有自己做出来才是完全的理解。
学术论文的结构
- Abstract:背景+问题+方法+结论和结果 例如(整活唔介意👽):背景:当今用深度学习来水论文的方法已经成为应届毕业生的热门毕业方向之一,如何用深度学习来实现用深度学习来水论文更是研究热点之一。 问题:很多人依旧不知道如何以深度学习为主题来水论文。 方法:我们分析了以深度学习为主题来水论文的范式,并以此构建transformer的深度学习网络,用于自动生成以以深度学习为主题的水文,并可以泛化应用于多个领域。 结果:我们基于transformer的DNN生成了含括理工科,人文社科等各领域的基于深度学习的水文,使得毕业生只需输入他的研究方向就可以自动生成一篇高质量的水毕业论文。
- Introduction:介绍问题的背景,本文提出的方法和创新点,大致的实验结果。
- Related work:介绍相关的工作。看别人摘要来写别人做了啥:时间+某人+做了啥尝试解决什么问题+结果+不足。需要5-10篇做相关工作。
- Approach:本文提出的详细方法,和如何实现。
- Experiment:需要相关的实验来支撑approach。多使用数据图像来描述现象和创新点。
- Conclusion:背景+问题+你做了啥(分点)+有哪些不足(分点)。在这里要多展示一些定量的数据。
论文阅读の方法论
- 不要纠结于某字某句的理解,着重理解本章的故事线。不能在第一遍阅读时就逐字逐句纠结。当卡壳时继续往下读,可能在之后的章节可以获得解答
- 先读两遍摘要,从而得知三个点:处理的是什么问题,对这个问题使用什么方法和创新点,这个solution有什么效果。如果有疑问就记录出来继续读。
- 直接看Experiment,需要知道 1. 是什么样的实验环境,如数据集,测试方法,性能指标等。2. 作为对比的方法是啥,一般是本领域经典baseline或SOTA。3. 作者的方法取得了什么效果。有些会使用消融实验(ablation study)来对比不同角度下solution中不同部分的efficiency。有些也会使用对比实验(同领域的效果对比)。
- 然后看intro(详细版的abstract),读完后应该了解到本文的故事线和创新点。
- 再看approach。对于第三类论文,需要慢下来反复阅读和推导,最后可以讲述给别人。
- 最后related work。这一部分一般最后撰写。要是对该领域熟悉的话,可以略看。若是想深入了解,可以看经典的survey paper。
- 读完整篇论文后,可以从审稿人的视角来思考来加深理解,让自己来回答以下四个问题:该论文试图解决什么问题,作者提出了什么方法和创新点,方法取得了什么效果,他的方法有什么局限性和改进之处。也可以像Prof. Andrew Ng分享的那样来问自己:What did the authors try to accomplish? What were the key elemnts of the approach? What can you use yourself? What other references do you want to follow?
Essay reading tips of my JIYOU
- 多阅读他人的文章和算法,理解透彻,然后思考有什么改进的地方。有两种发新paper的方法:改进他人的方法,或者改应用方向(例如smart grid一篇,network又是一篇)。
- 最开始不要浮躁,静下心来读文章。对于本领域的经典和好文章直接吃透花时间去磨,阅读完后做好总结,有能力就复现。精读个二十篇。不会疯狂网上查,搞明白再接着看。
- 看完一篇论文,要明白他的故事线,应用在什么问题上,有哪些关键点,使用了什么方法,最后效果怎么样,和其它方法比呢?
- 刚开始,一篇论文看懂十几天都不夸张,到后面就快了,直接扫一眼摘要进入核心。久而久之,你也能想出一些attractive的东西,然后就开始实现,成功了paper就有了。
How about Zotero
- Zotero tips in ZHIHU: 优雅地用 Zotero 进行文献管理和论文写作,Zotero 5.0使用教程/坚果云同步盘和Zotero的配置过程详解,VS Code + LaTex + Zotero 写作毕业论文,zotero配置全流程——安装、同步与插件,一些软件使用过程中的技巧,如Endnote, zotero,R等(进入该链接的github下载pdf)。
- Zotero tips in CSDN: 论文翻译阅读 + 文献管理 + markdown笔记 + 多设备同步 + 一键导出bib参考文献,Zotero文献管理软件使用指南——入门篇,Zotero快速上手指南。
- Zotero tips in Bilibili: zoterob站教学up,跨设备文献管理。在使用zotero时可以这样做:1. 一般重点是黄色,需要拓展了解是蓝色,不会的术语是红色。2. 看文章的时候可以在条目笔记里记录自己的问题,一边问一边在文章里找答案,可以直接复制进去。
Something about LaTex
- 在LaTeX中调整图片和表格的位置,两个表格并列的话可以看这里。实际在LaTex插入表格可以在这个网站上copy现成的代码。
- 在LaTeX正文中加粗字体可以看这几个函数:
\textbf{}
:文本环境加粗。在数学环境使用的话,会使斜体效果消失。并且无法输出加粗的希腊字母\mathbf{}
:会变为粗体,但同样会导致数学字母斜体形式的丢失\boldmath{}
:数学环境里可以加粗且不会使斜体消失,需要添加amsmath宏包\boldsymbol{}
:可以对希腊字母加粗,需要添加amsmath宏包- 在数学环境中,可以添加宏包
\usepackage{bm}
, 使用\bm{}
命令加粗。但是在 xelatex 或 Luatex 引擎的unicode-math环境中中,\bm{}
会报错。此时可以使用一下三个函数:\symbfit{}
加粗,且有斜体效果;\symbf{}
加粗,没有斜体效果;\mathbfcal{}
加粗的 \mathcal 字体
- 在Markdown中添加LaTex公式:可以参考这里。例如,行内公式使用
$f(x)=ax^2+bx+c$
,而行间居中可以使用$$f(x)=ax^2+bx+c$$
。 - 在LaTex中使用引用的话一般有两种方式,第一种是导入
\begin{thebibliography}{99}
,使用\bibitem {ref1}
来添加引用文献。几乎没啥优点,缺点是需要手动排序,就是当文献很多的时候极其麻烦。第二种是新建并写入”.bib”文件,然后导入\bibliographystyle{ieee}
or\usepackage[backend=bibtex,style=ieee,natbib=true]{biblatex}
(其中的参数设置可以参考这两个网址:1, 2),然后引用\addbibresource{thesis.bib} % The filename of the bibliography
。强烈建议第二种方法,因为只需要从文献引用处复制 bib 格式即可。更多可查看这里。
ARXIV发文建议
- 记得删注释。
- Overleaf发文到arxiv。在overleaf编辑时,可以使用 源码 格式来让grammarly工作(记得在插件处关闭automatic correction,不然会导致公式格式错误)。