本文主要是介绍how to read paper ——知乎,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
首先声明,我的方向是机器学习和数据挖掘,平时读的文章偏重算法研究。计算机本身就是个很大的学科,算法,嵌入式,网络都是计算机,但是我认为研究的侧重点是不一样的,文章的结构也会不同,所以我就只能根据机器学习方面的经验说说了。
个人觉得做研究的不同时期读论文的方式也不一样,最开始刚入行的时候当然会一个字一个字的读,甚至还会用词典把单词的意思查出来标在旁边(我非常反对这么做!你不是在学英语!),我见过厉害的老师读论文只读标题和摘要就知道这篇文章对自己有没有用了,当然这个是建立在长期不间断阅读文献,自己又在第一线做研究,对领域有着非常清楚的了解和把握的基础上。
我现在博士还没毕业,所以回答的内容也仅仅是我的一些个人感受,受水平所限,一定会有不足和错误的地方,还请大家包涵。
首先应该清楚要读什么样的文章吧。以目前的情况来看,SCI期刊还是很有质量保证的,高水平会议论文也是非常棒的。主要是一些EI的会议,良莠不齐,刚入行的同学们最好请教一下学长或者去网上搜一下各个大学或者著名实验室认证的会议/期刊列表。就看列表里面的就行了,每年出那么多论文,一般人是没法都跟过来的。
接下来说按照论文的结构说说吧。
- 标题。给论文起名字还真是个学问,平时多留意。
- 作者信息。看到一位作者经常出现的时候就去作者主页看一下,通常会有意外惊喜。也要留意合作者都是谁,虽然这个可以通过微软学术搜索中工具找到,但是自己读论文的时候心中有数最好。
- 摘要。一篇文章的最精华的部分,通常好文章在摘要中都会交代做了什么工作,然后取得了何种进展,进而吸引读者读完文章。
- 关键字。如何选关键字,关键字的顺序也是有说道的。
- Introduction。从写作上来讲,这部分是一篇文章最重要的部分。这部分通常会包括文章内容的意义何在,简单概述一下领域发展状况,告诉读者现在领域中有什么问题,其实也就是自己要解决的问题,然后说明自己这篇文章的贡献在什么地方,如果多说一些的话,会说出来用什么方法解决了上述提到的问题。
- Related works。 这个也有放在后面的,这部分的目的是让读者知道文章解决问题所在小领域的发展状况,比如最小二乘支持向量机的研究就会说一下支持向量机,最小二乘支持向量机的一些改进算法,然后温和得提出来现有算法都有什么问题,目的是树立靶子,以便下一章提出自己的算法,把前人的算法拍在沙滩上!
- Main body。通常是理论分析,算法描述,具体的细节。期刊文章长度没有限制,会写的比较详细,会议文章就8-9页,这个部分不会写得那么详细。
- Experiment result。如果是期刊文章,作者会用一些章节介绍实验设置,参数设置等内容。期刊文章写的也相对简略些。接下来是针对解决的问题进行有针对性的实验。报告实验结果。最重要的是,好文章会有对结果的讨论的,通过对实验结果的讨论,论证自己提出方法的确优于前人的算法,最后得出结论。
- Result。对文章的总结,提出接下来可以进行的工作。
现在回答你的问题。
在阅读外国会议、期刊的优秀计算机论文时,应该以如何的方式阅读?重点注意论文中的那些方面?如何做阅读笔记?
- 如果是刚入门的话,就要着重看前两部分,一来快速了解文章意图,二来通过相关工作发现更多的文献,进一步的深入读。
- 如果是已经知道了该做什么了,这时候看文献就要看好文章是如何设计实验的,以及如何讨论问题。
- 如果是已经小有成就了,这个就不用我说了,你自己都会清楚要干嘛了。
使读完之后能够充分理解作者研究思路,论文的创新等,能够为以后做研究,写论文做借鉴
- 好文章你不用去理解作者的研究思路,顺着读下来,你就清楚了。
- 创新点的话,文章也会说出来的。
- 至于做借鉴,做笔记,你不同阶段都会有不同的侧重点,自己有所得就记下来吧。这个问题貌似就因人而异了。
最后补充一点,光读文章是没办法完全弄清楚一个问题的,非得自己去编码,实现算法才有机会完全理解一个算法的。
Hope this helps, happy reading!
补充:看到你标签中加了笔记软件,就再说一句。笔记软件就是文本编辑器,平时要记笔记的时候,就用LaTeX记下来,最后写论文的时候只要复制粘贴就可以了。最近发现ipythonnotebook很好玩,你也可以尝试一下。
Me: 记笔记用latex,是不是太高达上了点
二、
l 我看论文后的总结路线是:
【论文一句话总结】
【论文要解决的问题】
【论文使用的数据】
【论文使用的方法】
【论文的实验结果】
三
· 计算机科学方向很多,关于读论文,先谈谈选题吧。作为本科生或者当自己还是个科研小白的时候,我建议:不要自己盲目的选题,不要任由自己的兴趣选题,我在这方面吃过亏走过弯路,我认为应该选择一个牛X的老师带着你,让他给你一个课题,规定一个方向,如果你觉得自己不讨厌这个研究方向,就努力研究下去,个人感觉想做科研、读论文甚至想发论文的本科生做起事情来都很有韧性,只要不失去兴趣,一般有困难都能克服掉,毕竟这就是科研。
· 既然lz提问时已经附上了“优秀计算机论文”,想必对期刊、会议的级别已经有所了解。读paper要从顶级期刊、会议入手,哪怕你跟不上,但是你也要知道这个方向现在最前沿走到什么程度。【我啰嗦一个自己的例子:有一次我在论文时,发现文中的一个算法并不是改进的已有的最快的算法,虽然文章比较新,但是文章级别是一个不太高的国际会议;而关于这个问题的相对较老的另一个算法目前来说性能是最优的,虽然文章老但是级别是顶级的,所以搞清楚哪些是顶级期刊会议才能帮助你站在巨人的肩膀上摘苹果。】
· 研究一个问题不可能只读一篇paper,当时我的老师给了我几十篇论文(论文的质量算是有所保证了),我平时还要上课背单词哪有那么多时间读啊……于是我采取的方法是按时间顺序把所有论文的abstract和introduction先读了,记录一下研究的什么问题,记录一下研究背景的(人家研究这算法是有什么应用,这部分以后自己写论文也能用上)记录一下此paper做了什么贡献(如何比前人的好),此过程留意论文发表的级别就OK,我现在只读过理论计算机科学算法方面的paper,一般读到introduction就应该弄懂这篇paper和参考文献中的那一篇或几篇作比较,抓住论文重点比较的参考文献接着读(有点儿递归调用的意思吧)。读每一篇时,跳过Related Works,跳过算法的具体实现细节,跳过算法证明,跳过实验说明,直接扫一眼实验结果,记一下在哪些方面改进了。个人感觉这些对于第一遍来说已经足够。
· 第一遍读完,将所有手中的文献资料加以梳理,搞清楚问题的来龙去脉(画棵树好了,呵呵),以论文作的贡献大小+时间排序,切不可只根据时间顺序排序(如果introduction都读明白了这个错误是不会犯得),就像@苏椰说的,弄清祖宗源头是谁,现在最好的是谁,中间大概有几次milestone似的改进,你想改进的方面(此时自己已经有想法最棒了!),如果没有想法,就从高往低再次重复读吧,这一遍细读,最后揪出一个研究点,觉得和自己水平差不多的,树立个靶子,准备开火吧。
· 读paper,对于我这个科研经验很不足够的本科生来说,那真的是啃下来的,刚开始读paper,对于这个方向完全陌生,甚至对于科研的概念都不完全了解,遇到不会的词就查辞典,不行就逐句翻译成中文(后来发现这样并不能帮助理解……)走过不少弯路有过不少尝试,失败绝对比成功多。之前跟一个学长交流过:如果一个方向你钻进去了,2天一篇paper吧,如果是刚开始,那就慢慢来,我刚开始时一篇都读十几遍甚至几十遍(没统计过,总之没数了……),有时还不明白……哈哈。
· 个人感觉虽然同是计算机科学,但是不同方向的论文在读的具体细节上还是有所区别的。
另:一片《How to read paper》http://wenku.baidu.com/view/d210791bc281e53a5802ff4d.html
这篇关于how to read paper ——知乎的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!