在成功发布数篇顶级会议论文之后,我却依然觉得自己尚未真正入门。一方面,深度学习如今的分支如繁星般多,我们难以对每个领域都有深入的理解——不同的领域之间已经形成了如隔山般的距离⛰。
另一方面,即使在我所研究的领域,阅读他人的工作或者进行实验时,我也常常发现自己过去的理解是错误或片面的。那么从开启深度学习之旅,到成功发表一篇尚可的论文,我的历程大约花费了两年的时间。
记得在大四的时候,我遇到了和你相似的困惑。那时我阅读了大量的论文,在阅读过程中,我产生了很多看似独特的想法,但是把它们付诸实现后,却并不能提升网络的性能。因此,我一度自我怀疑,决定放弃研究,转而选择一个更偏向于工程的毕业设计题目。
我的毕设项目是实现一个算法库,复现我研究领域内的几个经典算法,并按照pytorch API的风格进行重新实现。
在这半年的毕设期间,我重新找回了编程的乐趣。每个算法都必定是可以复现的,如果我无法复现出来,那必定是因为我实现上的问题,而不是想法本身有问题。
也就是说,问题的答案一定是存在的,我需要做的就像解OJ题一样,把bug调出来。
在这个过程中,我学习了别人是如何将论文中的理念,转换为具体的代码实现,以及如何调整超参数。
研究生一年级开始,在解决实验室项目中的问题时,我发现自己突然能够实现出一个有效的想法,甚至成功发表在CVPR。因此,我的建议是:不妨模仿,学习。
没有训练数据,深度学习模型什么也做不了,其实人也是一样。在复现那些高质量的顶级会议论文的过程中,你会发现许多阅读论文时注意不到的实现细节,这些都会帮助你在解决自己的问题时提出有效的解决思路。
即使最终没有能够发表顶级会议,你在这个过程中积累的经验,对解决实际问题也是百利而无一害。