本博客翻译了 这篇文章,包含很实用的 读论文的方法论。

读论文的四个 layers

在读论文之前,要首先搞清楚,自己读论文的目的是什么,或者 希望读到什么程度。

下表列出了常见的读论文目的,以及相应的理解程度 layers(1 最浅 4 最深):

目的 layer 目的 layer
了解领域背景 1 评估是否引用论文(相同主题,方法非常不同) 1
评估自己对该领域是否感兴趣 1 评估是否引用论文(相同主题,方法有些不同) 2
关键词搜寻 1 思考自己如何引用该论文(相同主题,方法有些相似) 3
课堂演示(5~10 min) 2 思考自己如何引用该论文(相同主题,方法非常相似) 4
课堂演示(>10 min) 3 复现 4
review 3

然后,分别介绍各个 layer 所需的理解程度 + 阅读论文方法。

layer 1:知道 main idea

如果只想 对该领域产生一些感性了解、看看自己是否感兴趣,或者 看看是否引用这篇论文(方法非常不同),读到 layer 1 就足够了。

  • 需要回答以下问题:

    1. 【问题定义】作者试图解决 / 研究什么类型的问题 / 现象?
    2. 【问题重要性】读者为什么要关心这个问题 / 现象?
    3. 【novelty】proposed method 与 previous works 有什么不同?
    4. 【为何胜出】比 previous works 好在哪里?(比如 性能更好 / 更 general / 更快)
    5. 【论文在文献树上的位置】这是什么类型的方法?(通常有几种方法可以解决相同的问题)
    6. 【实际应用】这项工作有哪些应用?
  • 需要阅读:
    • abstract + intro + conclusion,获得全文概览。
    • 图、表,有助于快速获取感性认知。
    • related work,有助于理解 这篇论文在整个文献树上的位置。
    • 如果搞 engineering,还需要看实验结果(小心 demoware)。

layer 2:知道 proposed method 的 structure

(首先确保已经做完 layer 1)

如果需要做个 5~10min 的 pre,或者 看看是否引用这篇论文(方法还是有些不同的),需要读到 layer 2。

  • 需要做到以下内容:

    1. 【画出整个 method 的框图】,每一模块的 目的功能 + 输入输出。
    2. 通常,大多数模块我们都不关心(和论文主旨无关 / 自己不感兴趣),仅关心个别模块。
  • 需要阅读:
    • 图、表,原文直接给出 structure 图最好。
    • method(以及 abstract intro 等),标注不清楚的地方(layer 3 再去 check),注意不要陷到细节里。

layer 3:比较重要的细节

(首先确保已经做完 layer 1 2)

如果需要做个超过 10min 的 pre,或者 决定如何引用这篇论文(方法有些类似),需要读到 layer 3。

▷▷▷ 是时候深入研究细节了!

  • 需要做到以下内容:

    • 密切关注作者的 main contribution,并确保理解 他们所谈论的每一步。

      • 一个有用的实践,是想象一个给定的输入,模拟 proposed method 如何处理它。
      • 例如,对于 A* 算法,想象一个有起点和目标的迷宫环境,并画出 A* 算法在搜索时会扩展的单元格(不需要全部画出,足以获得直觉)。甚至可以想象该方法的一个困难案例(例如 A* 的死胡同),并考虑 A* 如何应对它。
    • 如果在做 engineering,也请仔细 check 实验结果:
      • 【result & conclusion 匹配吗】结果是否证明了 该方法的合理性?
      • 【有无遗漏的实验】是否有 应该测试但没测试的 案例 / 场景?
      • 【performance & complexity 的权衡】(对于某些可量化的指标),proposed method 相比于其他方法的优势,能否使人接受 它新引入的 complexity?
      • 【不 work 的场景】方法在哪些情况下失败?
  • 需要阅读:
    • 追踪 有关 main method 的、自己不熟悉的引文。

      • 我们应该遍历关键的引文,并至少通读一层的深度;但如果真的很重要,那么可能读两层。
    • 如果在做 engineering,实验结果部分。

layer 4:其他细节

(首先确保已经做完 layer 1 2 3)

如果需要 决定如何引用这篇论文(方法非常相似,正在寻找它与我们的细微差别 ),或者 打算复现论文,或许需要读到 layer 4。

作者并不推荐读的那么细。

  • 需要做到以下内容:

    • 查看 structure 框图中,不是 main contribution 的所有其他模块,并研究如何实现它们。
    • 或许我们还在寻找 实现过程的细微细节,这些 tricks 或许能改进 performance。
  • 需要阅读:
    • 不幸的是,在这一点上,原文作者能给出的一般性建议很少,除了 ① 理解要彻底,② 如果想实现这个方法,我们可能会在一开始就出错。(别担心,出错是自然的,因为论文在描述 implementation 时,不可避免会遗漏一些东西。)

往后退一步

如果想在它的基础上 继续前进一步,则在视野上 需要往后退一步,更加宏观 更加整体。

  • 询问以下关键问题:

    • 论文的优点是什么,即 它在哪些方面做得很好。

      • 【论文合理性】实验结果真的能证明 他们 claim 的结论吗?
    • 论文做了哪些假设?
      • 【论文合理性】假设可能会限制 该方法对某些重要场景的适用性,甚至不适用于实际情况。
      • 【论文完备性】有时候假设很清楚,但通常也有一些隐藏的假设。发现隐性假设的一个好方法是,试着想一个 “打破” 该方法的例子。
      • 【进一步改进】可以通过 考虑拿掉某些假设的情况,来做下一步的改进。
    • 如何改进这项工作?(可能是一些冒出来的想法)
      • 某些 “未来展望” 章节的内容,很可能是事后诸葛亮,并不值得做。

逐层阅读 research paper:Dmitry Berenson 的方法论的更多相关文章

  1. 如何写出优秀的研究论文 Chapter 1. How to Write an A+ Research Paper

    This Chapter outlines the logical steps to writing a good research paper. To achieve supreme excelle ...

  2. How to Read an Engineering Research Paper

    How to Read an Engineering Research Paper William G. Griswold Department of Computer Science & E ...

  3. 写essay和research paper必用的17个网站

    1.http://scholar.google.com/ 虽然还是Beta版,但个人已觉得现在已经是很好很强大了,Google学术搜索滤掉了普通搜索结果中大量的垃圾信息,排列出文章的不同版本以及被其它 ...

  4. ### Paper about Event Detection

    Paper about Event Detection. #@author: gr #@date: 2014-03-15 #@email: forgerui@gmail.com 看一些相关的论文. 1 ...

  5. 译文 - Recommender Systems: Issues, Challenges, and Research Opportunities

    REF: 原文 Recommender Systems: Issues, Challenges, and Research Opportunities Shah Khusro, Zafar Ali a ...

  6. 【文献阅读】Densely Connected Convolutional Networks-best paper-CVPR-2017

    Densely Connected Convolutional Networks,CVPR-2017-best paper之一(共两篇,另外一篇是apple关于GAN的paper),早在去年八月 De ...

  7. 【机器学习Machine Learning】资料大全

    昨天总结了深度学习的资料,今天把机器学习的资料也总结一下(友情提示:有些网站需要"科学上网"^_^) 推荐几本好书: 1.Pattern Recognition and Machi ...

  8. Awesome Deep Vision

    Awesome Deep Vision  A curated list of deep learning resources for computer vision, inspired by awes ...

  9. 机器学习(Machine Learning)&深度学习(Deep Learning)资料【转】

    转自:机器学习(Machine Learning)&深度学习(Deep Learning)资料 <Brief History of Machine Learning> 介绍:这是一 ...

随机推荐

  1. Redis初启(一)

    1.数据库存存储性能优化 在mysql的文章专题中我写过了关于传统关系型数据库的一些优化思路,整体来说,通过优化之后能够提升程序访问数据库的计算性能.但是还是有一些情况,即便是优化之后,使用传统关系型 ...

  2. 使用 DartPad 制作代码实践教程

    DartPad 是一个开源的.在浏览器中体验和运行 Dart 编程语言的线上编辑器,目标是为了帮助开发者更好地了解 Dart 编程语言以及 Flutter 应用开发. DartPad 项目起始于 20 ...

  3. dotnet 在 linux 上构建问题(RID 的问题)

    个人理解 一方面 /etc/os-release 中定义的的 ID VERSION_ID 是会与源代码中定义 RID 的相对应,如果不对应,就会报错 The specified RuntimeIden ...

  4. 接口偶尔超时,竟又是JVM停顿的锅!

    原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处. 简介 继上次我们JVM停顿十几秒的问题解决后,我们系统终于稳定了,再也不会无故重启了! 这是之前的文章:耗时几个月,终于 ...

  5. Vscode个性化设置:让一个小萌妹陪你敲代码

    前言 大家平时都用什么代码编辑器啊!我个人比较喜欢用vscode,因为有以下几点: 开源,免费: 自定义配置 集成git 智能提示强大 支持各种文件格式(html/jade/css/less/sass ...

  6. 梯度下降算法实现原理(Gradient Descent)

    概述   梯度下降法(Gradient Descent)是一个算法,但不是像多元线性回归那样是一个具体做回归任务的算法,而是一个非常通用的优化算法来帮助一些机器学习算法求解出最优解的,所谓的通用就是很 ...

  7. 全新升级的AOP框架Dora.Interception[汇总,共6篇]

    多年之前利用IL Emit写了一个名为Dora.Interception(github地址,觉得不错不妨给一颗星)的AOP框架.前几天利用Roslyn的Source Generator对自己为公司写的 ...

  8. 本地拉取服务器上的项目,SVN 由于目标计算机积极拒绝 无法连接失败

    下面几种解决方案一定一定一定都要试一下哈, 比如,如果你的SVN没有启动,并且防火墙也开启了,那么你即便启动了SVN,也是无法拉取项目的,需要把防火墙也关闭. 1.是否启动了svn 输入命令查看是否启 ...

  9. 事务@Transactional注解的属性

    事务的传播行为 当事务方法被另一个事务方法调用时,必须指定事务应该如何传播.例如:方法可能继续在现有事务中运行,也可能开启一个新事务,并在自己的事务中运行.事务的传播行为可以由传播属性指定.Sprin ...

  10. 密码学系列之:使用openssl检测网站是否支持ocsp

    目录 简介 支持OCSP stapling的网站 获取服务器的证书 获取OCSP responder地址 发送OCSP请求 一个更加简单的方法 总结 简介 OCSP在线证书状态协议是为了替换CRL而提 ...