前段时间听了一个关于读论文的公开课,课上的老师讲的非常好,听完之后确实发现从以前看论文的没头没脑到现在的有了一些思绪的变化,所以特此整理了一下分享给大家,希望对大家有用。
在我们初次接触论文的时候,经常性的遇到以下一系列的问题:
①研究论文时无法透彻理解paper,不能复现代码
②无法提出创新优化方案,导致论文发不出
③还有无法按照技术演进思路,系统学习深度学习知识
④不知道从哪个论文资源平台找论文
所以,有的同学调侃:世上无难事,只要肯放弃
讲师从大家在学习paper面临的问题中,从7个角度给一些参考方法:
1、如何选择论文
2、查找论文的几个常用网址
3、如何筛选优质论文
4、如何精确查找已知论文
5、如何管理论文
6、如何阅读一篇论文
7、论文paper学习路径
1、如何选择论文
那目前论文每年新出的那么多,如果不会选,耗时耗力,所以第一点,如何选论文很重要,我们可以从论文类型角度看:
- 综述论文
第一个是综述论文,综述论文是对某一领域的研究历史和现状的相关方法、算法进行汇总,对比分析,同时分析该领域未来发展方向。所以,综述论文是适合入门一个新领域的首选,刚接触一个新领域,首先要读的就是综述类的论文 - 专题论文
第二个是专题论文,就是具体的算法、模型的提出。有了相关基础知识,我们就可以进入具体算法论文当中去学习其设计思路,实验技巧,代码实现等具体技术。
但深度学习技术发展之快,每天都有成千上百的新论文,难免鱼龙混杂。所以需要挑出质量高的论文。读上百篇低质论文,不如精通一篇高质量论文
所以,如何选择高质量的论文,我们可以从以下几个方面入手:
① 选择高质量期刊会议:CVPR、ECCV、ICCV、AAAI、NIPS、ICLR、ICML等
② 选择高引论文:同行间普遍认可,参考,借鉴的论文高引论文表明了这篇论文中的方法在该领域内非常重要,这也是你在选择论文时一个非常重要的参考要素
③ 选择知名团队:因为知名团队的论文质量相对较高,例如 Yoshua Bengio、Yann LeCun、Geoffrey Hinton、 Andrew Ng等
④ 选择有代码论文:我们都知道 Talk is cheap.Show me the code。这句经典名言。有代码复现的论文,不仅质量有保证的,在你实操复现的过程中,才能得到及时的反馈和收获。毕竟很多论文的实验结果无法复现,那么我们读了可能也没什么作用。
2、如何查找论文
问题来了,去哪里找到我们要读的论文呢?
首先,推荐一个实用网站:paperwithcode,上面收集了大量论文及其代码实现,大家可以在上面寻找论文去阅读。
有些同学可能疑惑了,对于未知论文题目的论文,如何进行检索?
一般来说,我们只有关键词,想通过关键词来寻找相关论文来阅读,那么我们可以通过以下4种方法:
(1)通过知网寻找优质综述,快速入门,并通过参考文献收集大量论文题目
(2)通过搜索引擎,这里常用的有百度学术和google scholar,这些搜索引擎上能找到大量的相关论文
(3)arXiv,arXiv是预印本平台。现在大多数论文在发表之前都会先公布到arXiv上占坑。这是由于技术发展之快,论文等不到见刊,就需要先公诸于世,让大家先看到这个方法是作者提出来的
(4)到顶会中搜索相关关键词,紧跟技术发展
3、如何筛选优质论文
通过以上途径可以搜索到成千上万的论文,但是如何筛选优质论文呢?
那需要看论文所在的期刊是否优质,评判期刊优质的方法是看期刊影响因子
期刊影响因子是大家公认的期刊质量评判指标,它的计算方式是:
采用期刊前N年发表的论文被引数除以前N年发表的论文数,通常N=2或N=5
除了看IF,更方便快捷的方法也可以看期刊的分区,一区优于二区,二区优于三区,以此类推
在这里我们需要知道,分区的方式主要有两种,一种是JCR,一种是中科院。JCR是国际通用的方式,而中科院的方式仅在中国适用
以上方法是针对未知论文题目,我们应该从哪里找到论文
那如何精确查找已知论文呢?
这里给大家安利一个能绕过科研论文收费的神奇网站——sci-hub(注意:由于它这个神奇的功能,所以它的网址经常需要变动。)
打开网站,我们可以搜索URL,PMID,DOI或字符串就可以打开论文,进行阅读,下载。
(PMID是PubMed中收录的文献编号,并且是唯一的。DOI是数字对象标识符,每一篇论文都有这个编号,相当于论文的数字身份证,我们可以通过DOI快速的锁定论文。)
我们可以看一看两篇经典论文的DOI,DOI分为前缀和后缀,后缀是颁发机构。举个栗子,从下面图中我们可以看到,这两篇论文都出自CVPR
2、百度学术的文献互助功能。通过搜索,点击求助文献,等待有资源的朋友上传论文就可以了。这个功能还是比较实用,比较快捷的
3、其他领域
知网:寻找优质综述,快入入门
google scholar:scholar.google.com 构建知识体系
arXiv:arxiv.org 论文预印本(preprint)平台
关注顶会:CVPR、ECCV、ICCV、AAAI、NIPS、ICLR、ICML等
4、如何管理论文
我们学习的论文太多,所以需要论文的管理:
(1)PDF格式论文通过命名进行管理。推荐两种命名格式:
时间-作者-题名的方式, 或者时间-关键词-题名的方式。
将同一个作者的同一个研究进行归类,可以清晰的看出这个研究的发展。除了规范的命名,我们还需要将同类的论文放到同一个文件夹中,方便我们查找。
(2)论文管理软件:如果涉及成百上千的论文管理,那么推荐使用论文管理软件
常用的有endnote,mendeley,Zotero等等,大家可以根据需要自行下载安装管理软件。【这里提醒大家,endnote是收费的,mendeley是免费的,下面就是mendeley的界面,我们可以看到它可以很好的管理大量的论文。】
5、如何阅读一篇论文
【本节敲重点】首先,不同的人看论文侧重点不同:
① 刚入门的学员,这一类同学主要目的是学习论文中的知识点,所以要求面面俱到,尽量每个细枝末节都要学。
② 对于工业界中的工程师,则需要注重算法实现部分,要快速的从论文中知道如何复现算法,应用到自己的项目当中。
那么推荐的论文阅读方法是分为三步,首先 泛读,再精读,最后总结。再加上验证
(1)泛读
这里泛读的作用就是快速浏览,把握概要,如同吃火锅一样,一大桌菜,我们先看看桌上有哪些菜,哪些菜是要吃的,哪些是不吃的。比如,火锅底料我们就是不吃的啦~
泛读阶段,我们重点读标题、摘要、结论以及所有的小标题和图标。
下面我们举个例子,对论文进行快速浏览
这是一篇CV领域非常经典的论文Alexnet,我们先看题目,题目是Imagenet classification with deep convolutional neural networks,从题目我们知道这论文用深度卷积神经网络来做图像分类任务。
接着阅读摘要,我们可以了解论文的概要,清楚论文采用什么方法,解决什么问题,达到什么效果。接着我们要把论文所有的小标题给列出来,将论文大卸八块,了解论文都有哪些内容,就像前面那一桌子火锅,我们要先浏览每一个盘子里装的是什么菜
接着还要把论文的结论,所有的图片和表格进行浏览,更近一步了解论文中有哪些论证,举例,内容说明
在泛读之后,我们要达到的水平就是能回答以下这三个问题,这样才能算泛读完成。
第一问题,论文要解决什么问题?回想摘要我们就知道它是像要解决ILSVRC挑战赛中的分类任务
第二个问题,论文采用了什么方法?那么这篇论文采用了什么方法呢?其实在题目中就告诉我们了,采用的是深度卷积神经网络
第三个问题,论文达到什么效果?从摘要我们也能知道,论文在ILSVRC2012比赛中以15.3%的top5 error夺冠
以上就是对泛读之后进行自我评测的三个问题
泛读完成之后,对论文总体有了把握,接下来就是挑选精华部分进行阅读
前面提到在校生与工程师读论文之间是有差异的,更具体地就体现在精读部分
① 对于学员来说,要学习更多知识,做到面面俱到,那么论文中的所有内容都是你的精华,都需要仔细阅读,仔细去品
② 对于工程师而言,目标就是找到算法实施部分,了解算法如何实现,以及其中有哪些技巧,更偏工程的看待论文。对于精读完成后,我们要能够对所读段落了如指掌。这样才算完成精读
经过泛读精读,最后需要对论文进行总结。
总结是对论文的创新点、关键点和启发点进行摘抄记录。对于有写论文发论文需要的同学来说,这一步是至关重要的,对论文的总结是为课题提出创新点打下基础。 总结部分也是仁者见仁,在校生需要总结一切与写论文发论文有关的信息句子,对于工程师,可能更多的是总结算法实现的参数,步骤,实验细节等。
完成论文三步曲之后,我们需要对阅读效果进行一个验证
验证的方法其实很简单,就是回答三个终极问题,你是谁,从哪里来,到哪里去 最后也要知道这篇论文有哪些是可以借鉴的
最后,我们来看看论文结构,要知道论文都有哪些内容构成,每一部分会有什么信息。
这里总结为6个主要部分:
- 摘要,摘要主要讲论文简介,阐述工作内容,创新点,效果
- 引言部分介绍研究背景,研究意义,发展历程,提出问题
- 相关工作相关研究算法简介,分析存在的缺点
- 本文工作论文主要方法,实现细节
- 实验部分,介绍算法实现步骤及结果分析
- 探讨部分,论文结论及未来可研究方向
最后,如何更高效地阅读论文,并通过论文熟悉某个方向领域呢?
学习论文是一个系统性的工程,如何更高效地阅读论文,并通过论文熟悉某个方向领域呢?这就需要合理的学习路径
第一点,基础必不可少。这里总结了必备的基础知识,我们来看一下
1、Python基础:这是毋庸置疑的必备基础,我们后边代码实现就是基于python语言
2、数学基础:包含矩阵计算、概率论和信息论,矩阵计算在CV领域是必备知识,概率论与信息论在NLP中也是常见的概念
3、神经网络基础:由于深度学习属于神经网络,因此神经网络的内容必须要了解,特别地,对于CV领域CNN是很重要的,大多数CV任务已经被CNN统治,对于NLP领域而言,RNN是必不可少的知识
4、深度学习框架PyTorch:除了理论基础,实践的基础就是现在最热门的深度学习框架PyTorch,我们需要了解如何利用pytorch实现数据读取,数据增强,如何构建模型,如何设置损失函数优化器等等。而且PyTorch是现在最适合新手入门的框架,代码简洁易读懂,并且目前最前沿的技术,论文,大多数都有pytorch的实现,学会pytorch可以快速的紧跟前沿技术。
第二点,有了理论和实践的基础,就要针对CV和NLP两个方向进行选择,CV和NLP有着各自领域基础,大家要根据自己方向进行基础知识的巩固学习。对于CV领域,我们需要知道图像基础知识,图像的基本处理方法等等内容。对于NLP方向,我们需要了解什么是词袋,分布特征是什么,tfidf权重,等基础知识。
第三点,那我们巩固好理论、实践、方向领域上的基础之后,就可以进入论文的baseline cv方向,你应该选择领域内引用高,同行间普遍熟知的论文,包含alexnet vggnet googlenet resnet等等。
NLP方向的baseline,你应该选择开创性、引用高和应用到实际业务的论文,主要覆盖词向量、nlp深度学习主流框架和应用,预训练模型等主流方向,做到兼顾科研和工业应用平衡
第四点,熟悉了baseline论文,就算是入了门,就可以根据自己研究方向及感兴趣的方向选择性的学习专题论文。对于CV常见的有OCR、GAN、知识蒸馏、目标检测、图像分割等等。对于NLP有文本分类,句子匹配,关系抽取等等
从中找到你想要研究的专题是很重要的,如果你在初期阶段,对细分专题没什么概念,你也可以初步都学习了解一下,找到自己感兴趣的专题,针对特定研究方向,深入学习
最后分享一些找论文的地址
1、如果大家想看中文论文,可以以这几个期刊发表的论文为主去看,非核心类论文可以不用看了。
https://shimo.im/sheets/wV3VV02XgoFdx03y/MODOC/ 《一些国内中文核心/EI期刊
2、【怎么查某个论文是SCI?EI?是几区的SCI?】http://www.letpub.com.cn/index.php?page=journalapp&view=search