阅读与相关工作
何时进行阅读
- 在整个科研周期中都要进行相关文献的阅读。尤其是新的会议结束后,调查领域有什么更新。
搜索与分类
- 从两个方向进行搜索:
- Google scholar或者其它在线工具
- 会议和期刊的论文列表
从会议和期刊搜索的步骤:问题是如何抽象的?问题是如何解决的?
- 从大类至小类
- 大类:会议所划分的session,论文的keyword/index
- 小类:从标题中分理出所解决的问题,和解决问题的方法,进一步细分
- 进一步筛选:从摘要和对文章的粗略阅读判断是不是所要寻找的论文。
- 交叉学科的处理
通过关键词的查找
- TODO
分类与整理
-
先准备一个文件夹对找到的资料进行临时存放
-
写作时引用文献有几种原因,根据引用原因创建文件夹并进行整理。一但有归类,从临时文件夹中删除。一篇文章可以有多个归类
- 从问题的应用角度进行分类
- 从问题的抽象角度进行分类
- 从问题的解决角度进行分类
- 所使用的现有的方法
-
从新往旧进行搜索,首先找出相关的关键词
阅读与记笔记
-
从何下手:
- 先读新发表的论文,新发表的论文会引用经典论文,从而可以得知哪些论文对现在的工作还在产生影响。
-
有目的的阅读:
- 不同论文可以带着不同的目的去阅读,如 - 学习系统整体设计思路,研究方向 - 算法理论框架,基本元素,找出类似论文共通的点 - 具体技术,改进方法,如何调参/实现
- 根据问题,搜索一个论文列表
- 将所有论文和摘要一起列出
- 先针对每一篇摘要记笔记,归纳论文核心,筛选摘要
-
保持同时正在阅读三到四篇论文
-
只要打开一篇论文,就应该记笔记。
- 如果一篇论文没有什么价值,应当标记出为什么不好
- 记录论文标题(最好附上pdf链接),作者,作者单位,出处,方便查找和引用
- 记录论文阅读的完成度(参考Andrew Ng的标准),和标题放在一起,方便跟踪阅读进度
阅读的输出:用一个表格总结论文
- 在阅读几篇文章后,准备设计一个表格,这个表格应包含一些问题,从这些问题完成对论文的分类工作
- 表格的好处:便于对不同论文进行横向对比
- related work部分时的用法
- 优先回答表格中的问题,如果觉得表格的问题不能很好的涵盖论文,对项目进行修改。 回答的方法:先不需要完全搞懂方法的数学细节,找出方法的名称或者关键字,大致了解是什么方向的即可填入表格,一般如果只是准备在引用文献中使用时足够了。
示例:
- 一组deformable linear object的论文: 论文的总结
- 一组车辆运行优化控制的论文: 论文的总结
- 一组博弈论的论文
项目 | 解释 | |
环境/游戏类型 | 回合(题设) | 一回合结束?多回合制?(repeated game?) |
Follower/attacker | 知识(题设) | 一般是完全知道Leader的策略(如mixed strategy的概率),但是不知道具体action,从而在已确定的type下计算出相应的最优策略。 |
策略(题设) | 一个follower?多个follower?确定的optimal function(单一type)或者multiple types(一开始从多个选项中确定一个,或每回合以一定概率从types中选择)? | |
Defender/leader | 知识(题设) | 最理想情况是确知Follower的optimal function。若follower是multiple types,可能知道究竟有哪些types,但是不知道follower选择了哪个。那么通过何种方式(例如Monte Carlo)直接或者间接决定策略。 |
求解策略的算法 | mixed strategy或optimal function。从上面的题设,那么Leader最优的策略应如何得出? |
论文阅读的四个阶段(阅读/解答问题/记笔记)
-
阅读内容的四个阶段(论文读四遍,价值不大的论文可以在中途放弃,Andrew Ng):
- [20%] 阅读Title/abstract/figures(时间标准:力争做到平均每页1~2分钟,加上一定思考时间,) 有的experinment section也可以看一下
- [40%] 重点阅读Intro+conclusions+figures+概览其他部分(时间标准: 力争做到8页标准长度paper,二十分钟到半个小时阅读和思考。) Related work(skim或skip): 可以帮助理解论文之间的关系以及其它工作的重要性,但是前几次阅读的时候简单浏览或者跳过。Related work的组成比较复杂,不一定全部有用,也不一定能在对领域没有什么了解的情况下搞懂关系
- [60%] 跳过数学通读全文。
- [80%] 跳过难以理解的部分阅读全文。一篇论文不一定所有理论都是重要的。
-
解答四个问题(Andrew Ng):
- [20%]作者究竟做了什么?What did the author try to accompolish?
- [40%]作者设计的方法中的关键点是什么?What were the key elements of the approach?
- [60%]如何为自己所用?What can you use yourself? (What content within the paper is useful to you?)
- [80%]最后找出更多相关文献。What other reference do you want to follow?
-
笔记的四个部分:
- [20%]尽量以列表的形式/list的形式进行宏观的总结,辅以两到三句话。
- [40%]作者如何对问题进行验证?尽量使用论文中的图例或自己的图例,以简单的例子进行总结。
- [60%]对方法的理解。尽可能以伪代码或流程图的形式表述。如有数学部分且有重要价值,记录自己推导的过程。
- [80%]和reference的关系。
-
其它注意事项
- 不够好的论文及时丢弃,做标记。
- 重点部分可以用中文,方便定位,其它部分可以用英文和中英参照。
- 记笔记的标准:一目了然。下一次翻出笔记的时候仅凭笔记,用尽可能短的时间就可以回想起论文的重点,不需要翻阅论文。 反复更新笔记的作用:做到上面的要求。 先从数学中提炼思路,用简明扼要的语言或者例子说明,然后才是复现论文的详细推导(如果有必要的话)
- 如果用bullet points的话,尽量控制在五到七个点(Katsushi Ikeuchi)。 ^katsu-bullet-point
- 例子要keep it simple and stupid(Joseph Beck)。越蠢越好。
-
几篇论文交替阅读,齐头并进有助于内容的理解和对比。
[20%]题设:
- 这个领域中paper的题设的共同之处是什么?他们共享哪些相同的要素?在这些要素上如何细分(作者对要素不同的假设即为提出的问题,解决问题即为论文的工程实现)?
不同领域的示例:
- 一篇RL的论文
- 第一个层次:MDP environment是什么?S,A,R,P如何定义?有何额外要素(POMDP,SASMDP等)?
- 第二个层次:应用了哪种方法?方法细分:model-based?model-free?Value-based?Policy-based?Q-value based?等。
- 一篇Game theory的论文
- 第一个层次:都有哪些agent?每个agent如何优化自己的选择?每个agent有哪些信息?
- 第二个层次:如何达到equilibrium。
- 一篇RL的论文
[40%]解决:
- 由以上题设(要素的特点),最恰当的解决方案/作者提出的解决方案是什么?分为两方面:
- 有什么优势?为什么这么做?(比如何实现更为重要)
- 怎么做的/工程实现?
不同类型的论文应如何阅读?Conference paper,journal paper,review paper。
其它资料的阅读标准
书籍章节
源代码
By Andrew Ng (Stanford CS230 lecture 8)
Reading research papers
- 准备一个paper列表 (research+medium/blog, etc.)
- Skim around the list.
- 从几篇文章开始
paper | 0% | 20% | … | 100% red/understood |
---|---|---|---|---|
1 | 快速浏览,理解,如果读起来觉得这篇paper不好,或者在其它文献中被大量提及缺点,就丢下不要继续读了 | |||
2 | 如果发现一篇paper比较基础,对别的工作影响比较大再继续阅读 | |||
3 | 从related works等找出更多的citation添加在列表中 | |||
4 | ||||
5 |
5-20 papers:basic understanding,足够实现一些算法,但是做research还不够 50-100 papers:very good understanding
- Reading one paper
- [paper reading group]读五到六篇paper,从中选取两篇最有价值的
- multiple passes through 1 paper
- 阅读Title/abstract/figures(时间标准:力争做到平均每页1~2分钟,加上一定思考时间,) 有的experinment section也可以看一下
- 重点阅读Intro+conclusions+figures+浏览其他部分(时间标准: 力争做到8页标准长度paper,二十分钟到半个小时阅读和思考。) Related work(skim或skip): 可以帮助理解论文之间的关系以及其它工作的重要性,但是前几次阅读的时候简单浏览或者跳过。Related work的组成比较复杂,不一定全部有用,也不一定能在对领域没有什么了解的情况下搞懂关系
- 跳过数学通读全文。
- 跳过难以理解的部分阅读全文。一篇论文不一定所有理论都是重要的。 Find the very efficient high information content first.
- 阅读时的问题
- What did the author try to accompolish?
- What were the key elements of the approach?
- What can you use yourself? (What content within the paper is useful to you?)
- What other reference do you want to follow?
- Source of papers
- ML subreddit
- 相应会议 (通过标题筛选论文)
- 朋友
- 数学 通读,尽可能详细的做笔记,然后尝试从最基础开始自行推导re-derive it from scratch。然后思考如何将推导泛化?
- 代码 Run opensource code, re-implement from scratch
- 阅读量 每周至少两到三篇
- 形式:要打印出来读
Paper discussion by Koji Yatani
- Everyone has to read all the papers before the meeting. This is very important because all of you have to be ready for discussions.
- One or two of you will lead the discussions for each of the papers.
- Be ready to summarize the work in shorter than two minutes. As everyone is supposed to read the papers beforehand, it does not make sense to go through every single section. Make sure that you can summarize the paper without looking at the paper or any material. Xiang and I will not allow you to flip the paper while you are pitching your summary.
- For the summary, I expect you to explain three things:
- Problems and motivation: What problems they tried to solve? Why are they so important?
- Solutions: What did they build? How?
- Findings: What did they find? What can we learn from the paper?
- Bring your questions, discussion points, and future work you think might be interesting. When you read, always think about what research projects you can do upon this work, how differently you would conduct this research, etc.
- Proactively participate in the discussions. Don’t be like “I did my summary, so I am done.” This is exactly why you should read all papers before the meeting. We don’t want to hear a report about the papers from you; rather we want to discuss with you.
记笔记
- 笔记不是一次性完成的,需要反复回顾修改提高
- 每一篇笔记涵盖尽可能小的一部分内容(知识卡片?),通过异构的方式,提纲的方式将笔记串联起来
一篇笔记长度上的考量
- 论文阅读类笔记
- 理论架构类笔记
- 类似微信公众号文章?一页可以拉到头
- 应用手册类笔记