一、从零开始阅读论文
这里的从零开始,指的是我们要从零了解这篇文章做了什么事情、使用了什么方法、得到什么结果,这样的方法和结果对我有没有什么借鉴。而不是说,接触到一个全新的领域,从读论文开始入手。对于没有过接触的陌生领域。我的方法是,先看中文综述,中文博士论文,而后是英文综述。通过中文综述,可以首先了解这个领域的基本名词、实验常用方法。否则直接从论文入手的话,作者站的高度和我们的水平不一致,很容易想当然的理解或者根本看不下去。因此,在阅读这篇文章之前,对于这篇文章中涉及到的基础知识,对应中文基础都理解透彻,这时,回归到从零开始理解这篇文章的状态。
对一篇文章的阅读往往有3个递增的层次:
层次1. 读懂这篇文章的概要信息(5-10分钟)
-
认真读懂标题、摘要、简介(title, abstract, and introduction)。
-
只读各个部分和子部分(section and sub-section)的标题,跳过具体内容。
-
读懂结论和讨论(作者通常会在这里论述本研究的不足和缺失,为未来的研究提供建议,指明方向)。
-
浏览参考文献,记下哪些文献是你已经读过的。
因此,在第一层次过后,应该能回答出以下5个问题:
-
文章分类:关于实现方法的文章?对于已有系统的分析文章?对于研究理论的描述文章?
-
内容:有没有对应的相关paper?这篇文章是基于什么样的基础理论?(theoretical bases)
-
文章的假设(assumptions)是真的正确么?
-
贡献:这篇文章是在效果上(state of art)有了明显进步?还是方法上有了创新?还是完善了基础理论?
-
清晰度:是一篇描述清晰的文章么?
第一个层次完成你就可以觉得是否要深入第二个层次,它足够做你的某天想用到时的知识储备,而不是现在立刻入手。
层次2. 抓住文章的内容,忽略文章细节(1个小时)
第二个层次需要认真读,抓住重点:
-
对图、表的含义以及他们支持的结论弄懂。
-
记下参考文献中你认为重要的未读文献,它能让你对这篇文章的背景有深刻理解。
完成第2个层次,要达到知道文章用了哪些证据,如何证明了一个什么样的结论。
尤其在这个层次中,如果遇到读不懂(原因有很多:公式太多、对术语不理解、对实验手段不熟悉、参考文献的文献过多)。说明我们还没有和作者在一个基础上,建议先从几篇重要的参考文献入手,补充背景知识。
层次3. 深入细节理解文章(5-6小时)
如果这个文章是你想应用到目前工程中的,则需要第3个层次。目标是能够在相同的假设条件下,重现(re-implement)论文。
同时,要注重论文在GitHub上的对应代码,跳到程序中能加速理解。
比较你重现的结果和原论文,就能真正理解一篇文章的创新点,以及它的隐含前提或假设。并且你能从重现过程中得到一些你未来工作的方向。
做这三个层次的好处就是,能够让你对读一篇文章的时间有合理的估计,甚至可以根据时间和你的工作需要调整掌握一篇文章的深度。
二、代码实现
建立好数学模型,提出解决办法(贪心、组合优化、智能优化算法等),然后用代码(matlab/C/C++/)实现。
三、图表分析
用MATLAB(orange)画图,导出为矢量图
四、书写论文
用latex(Ctex)等书写论文,当然word也可以,但是显得没有那么专业。