社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

导师当着研一新生的面说深度学习代码不重要,重要的是真正的理论创新点,他这句话说的有道理吗?

AI算法科研paper • 1 月前 • 147 次点击  

这句话不能简单说对,也不能说错。关键还得看你现在处于哪个阶段。

如果你已经能熟练跑Baseline、看懂论文和代码的对应关系,也能自己修改模型,那代码确实只是工具。但如果你还是研一,连环境都经常配不好,论文里的方法看懂了,却不知道代码在哪、怎么跑、怎么改,那这个阶段就不要谈什么理论创新了。

所以对大多数研一来说,我个人认为应该先把论文→代码→实验这条链路打通。下面分享点我自己的学习路线:

在此之前,我再分享一套自己学习过程中整理的资料,刚好可以用来练这条路线:

  • 627篇经典神经网络及其变体论文+代码,按照不同技术路线做了分类,想练哪个方向直接找对应的论文和代码。
  • 论文+代码复现记录表+修改/创新检查清单,帮助你从跑Baseline、对照源码,到尝试修改,一步步练,避免论文看了一堆,最后还是不知道从哪里下手。
长按添加小享,回复【代码指南】无偿获取

这样搭配着练,比单纯刷论文更容易真正上手。下面具体说说这4步:

1. 先跑通

找一篇和自己方向相关的论文,先把官方代码跑起来。不用一开始就研究源码,先搞清楚数据怎么进、模型怎么跑、Baseline结果是多少。

2. 再对照

开始把论文和代码放在一起看。论文里的网络结构、模块、损失函数,到代码里分别对应什么?慢慢建立“论文里的方法→代码里的实现”这种对应关系。

3. 然后修改

这一步特别重要。不要刚开始就想着要提出一个全新的理论。可以先尝试一些简单修改,比如换模块、换损失函数、改特征融合方式、调整网络结构……这样哪怕只是一个很小的改动,也是在训练自己的实验能力。

4. 最后再谈创新

当你真的跑过、改过一些模型以后,再去想为什么作者要这么设计?这个模块换一种方式会怎么样?这个方法还能不能放到其他任务?这时候再去找创新点,通常会比凭空想一个理论创新靠谱得多。

前面那份修改/创新检查清单,其实就是用在这一步,先把能改的地方系统过一遍,再根据实验结果判断哪些方向值得继续深挖。

总结一下

研一不是代码和理论二选一,而是先用代码把理论落下来,再从实验里反过来找问题。至于导师说的“理论创新很重要”,当然没错。

但对研一来说,很多时候连实验都没真正做过,很难知道一个所谓的创新到底有没有意义。这种情况就得先动手。论文看多了,代码跑多了,实验改多了,很多真正值得研究的问题,自然就会自己冒出来。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/201094