沐神 —————— 如何读论文

花三遍,读一篇论文

第一遍(花时最少,做海选)

第一遍读论文的时候,需要去关注标题摘要
读完摘要之后,直接跳到结论这边
读完这三个部分,大致就知道这篇论文是在讲什么东西了

第二遍(对相关论文做以进一步精选)

第二遍里面我们就要对整个文章完整过一遍,然后知道每一块到底在干什么东西,我们可以沿着从标题一直往下读到最后,但是这个时候也不需要注意太多的细节,以及一些公式的证明等等
关注的地方
第二遍阅读的时候,最重要是搞明白那些重要的图和表,都要知道他每一个字在干什么事情
作者提出的方法和别人提出的方法是怎么进行对比的?之间差距有多大?这个时候可能你还没有特别搞懂他在干什么。但是不要紧,你可以将不懂的地方标记下来,留到之后第三遍进行阅读
达到的效果
第二遍阅读完之后,你就对整个论文的各个部分,都有一个大概的了解,中间可以把作者引用的别人的相关文献圈出来,比如作者是在某某某的方法上进行了改进,做了哪些改进之类的。这里需要注意的是,如果你发现作者引用的这些重要文献是你没有读过的,那么你需要把它圈出来,作为你的稍后阅读清单
对后续的影响
这一遍阅读之后,你需要再继续思考一下这篇论文的质量以及和自己研究方向的契合程度,决定一下自己要不要进行第三遍的完完全全彻底的精读

第三遍(重点研读)

第三遍是最后一遍了,也是最详细的一遍,这里就需要自己知道每一句话在干什么,每一段在说什么
一边读,可以一边在脑子里面思考一些问题:
比如说,如果要是我来写这篇文章,我会如何组织这个结构?
读实验部分的时候,可以思考一下,作者是如何描述自己的实验的,你可以思考,如果换自己来做的话,能不能比作者做得更好?
这一遍读的时候,一定要明白作者每句话,每个字在说什么,并且最好可以脑补出它整个流程是什么样子的,似乎是自己在做实验,写论文一样。如果有困难的话,可以借助思维导图或者流程图这样的工具,把他的整个流程以可视化的形式展现出来,帮助自己理解。

如何把论文与代码结合

你要理解原来算法的原理,精确到tensor过了某一层以后形状发生什么变化了。然后还要对你代码用到的框架有一定的认识,不需要到源码级别的认识,至少知道如何搭建一个基本的框架,一个tensor你能把它变着法转,哪里的参数不用梯度更新能够给他no_grad掉。完事儿找一个baseline,我相信这个你已经有了,但是不知道怎么改对吧。先跑通,跑通以后试验各种参数,比较结果,然后设断点,一步步debug,看tensor的shape变化,看调用了哪些函数。完事儿,找到最关键的主类或者py文件,也就是这份代码对应的论文的核心。这个时候如果你对代码框架有比较好的认识,其实有基础就行。你就看看从main函数开始,一直到调用这个主类模块,经过了哪些,就是数据怎么读取的,做了什么预处理,什么时候变换了属性和形状,到哪儿进入的网络,从这个点开始,基本就是你要修改的代码,如果你有思路修改,就复制一份你要修改的代码,手边准备一张纸,左边是原来的网络结构,右边你可以画你想的网络结构,先把代码中每一行在纸上网络结构对应上,可以直接标记行号,其实到这里,就知道最小的代码粒度和论文中算法最基础的“一步”对应关系。

我这里说的修改网路结构,其实你要是想改公式实现,想引入新的变量都差不多如此。因为在论文中,在你的理解中,不会精确到代码最小粒度,我说的代码最小粒度,就是你debug过程中每走一步的变化。当然你要是想随便搞一搞,就加点层数,扩宽宽度,在别人的基础上加点trick,还有一个思路,就是去找你这个方向,有关系的两个工作,就是最近的论文是在前一篇论文的基础上做的改进,时间间隔越短,关联性越强越好,这个应该不难吧。完事儿,两篇论文打印好,一左一右,找到对应的代码,最好用的同一框架,也用的相同数据集,这个应该很正常吧。两份代码也一左一右,然后照着读吧,论文理解透了以后,就在代码里找不同吧,看看最近这个作者怎么折腾前人的代码,最后,把这些代码改进的地方用你自己的语言记录下来,把最近这份代码关了,复制一份前人的代码,按照你记的改进的笔记,一条条用你的思路改,不要求一定完全相同,至少改完能跑起来,效果差点没事,万一你效果比最近这个作者还好,这可能就是一个改进的trick。

综上,给你泼点冷水,不要一上来就觉得自己看点论文跑点线程baseline就有好多想法,说白了都是laji,你要抱着这种心态看呆你实现不了的laji,然后抱着学习的心态看待前人工作,不要觉得我想了个新想法就一定比前人强,你也不要孤立的看待每一份工作,多找找关联,多找找不同,这些关联就是后人的idea来源,这些不同就是后人如何把自己的idea加到程序里。先去学,不要动不动就实现自己的idea,有了记下来,一个月你可能记下来100个,找个时间一个个划拉,划拉的时候这里边可能这个和那个能组合,最后就剩下一个了,再开始大干一场。这个过程中干嘛呢?就按我说的,找几篇人家的工作,论文过完就开始找代码的不同,你这样搞仨月再去实现自己垃圾堆中剩下的那个idea,才是一份有价值有意义的工作。不然你即使够呛学会改程序,也会迷失在你所谓的idea垃圾堆里。

  • 17
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值