阅读深度学习论文的一些技巧

本菜鸡的科研之路已经开始两三个月了,期间遇到了很多问题,现在想在这里总结一下。

  1. 在阅读深度学习论文的时候,首先需要看看代码是否开源,如果没有开源应该向作者索要源码,然后在本地运行这些代码。这样做是很有必要的,因为深度学习就是一个玄学,论文里故事编的再漂亮也不能work,因此你需要用代码来进行验证论文的正确性。本人在阅读论文的过程中,发现了一些造假明显的文章,实验数据异常,idea不work,向作者索要代码也不给。
  2. 在开始学习深度学习的时候,代码需要自己一行一行的扣,熟悉各种API,这样才能打好基础。千万不要直接拿人家现成的模型就去跑,很多时候是看着简单,但是很多细节精髓都没有学到。
  3. 打好基础后,我们就需要自己进行相应的实验了。首先,我们需要确定baseline,首先拿一些基本模型来跑实验,看看效果。然后挑选相应的模型作为基础,再来做实验。注意,这个时候不要自己重头开始构建代码,重新开始构建代码是一个非常耗时间的过程(因为要保证代码一定正确,不然后续的实验分析都是错的),并且最终模型的效果也往往不会有论文中的效果好,有过模型复现经验的同学,一定知道这点。
  4. 学会跑人家开源的代码,这个不是一个简单的活。第一,github上开源的代码,不一定是对的,很多时候都有错误,这个时候需要自己检查,一些水文和他人复现的代码都有bug,这个时候就应该用一些顶会论文的开源代码,这样的代码质量有保证(顶会论文的代码也不一定是完全正确的,手动滑稽,但学习别人高质量的代码能够学到很多东西)。第二,由于深度学习的模型很多,我们需要根据不同框架的代码安装不同的环境,这一点很麻烦。并且跑别人的代码,需要快速找到数据的入口,并且进行相应的修改,这都是有技巧的。
  5. 在我们跑对比实验的时候,也需要跑别人的代码,把数据送入,然后看结果。如果没有开源,可能还需要自己复现,这个过程耗时且无聊。
  6. NLP 的风气很差,很多论文都不开源,这一点上CV要好的多。
  7. NLP可以进行错误样例分析,这可以说是NLP的优势之一(滑稽),可以通过人工来看哪些文本分错了,但是像生物信息和CV就不能这样做,因为分错了,人也不能找到原因。
原文地址:https://www.cnblogs.com/mlgjb/p/11773694.html