3

研一,在学机器学习和深度学习,为什么感觉越学越不会,怎么解决这个问题?

 3 years ago
source link: https://bbs.cvmart.net/articles/2938
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

研一,在学机器学习和深度学习,为什么感觉越学越不会,怎么解决这个问题?

5个月前 ⋅ 541 ⋅ 1 ⋅ 0

(比如说看了prml前几章感觉什么也没学到)


研一刚入学,一定要“小步慢跑”,学一个算法就一定要学透(公式推导+代码编写),不要今天看一下SVM、明天瞅一眼MLP。写代码能够学到东西,跑代码是学不到任何东西的。从基本的算法开始,比如KNN,花上一周时间按照类似下面的流程进行实验:
(0)公式推理
(1)筛选数据
(2)模型搭建(编写代码)
(3)指标计算
(4)调参分析(不断优化)
(5)重新理解公式推理按照上述步骤学完第一个算法以后,再以相同的过程学习第二个算法。


对不同算法重复相同的实验流程,能让自己对模式识别那本书理解更深刻。我认为从事深度学习最忌讳的就是“急”,python还没学好,就去学pytorch;pytorch还没学好,就去跑开源项目。编程基础和理论基础还没打好,就去看论文跑开源代码,时间都浪费在环境配置和版本兼容调试上面了。

美其名曰项目驱动学习,实际上就是浮土筑高台。研一基础不牢靠,研二很难静下心来弥补缺失的知识。然后就有趣了,研一整年没能学到扎实的技能,导致二年级做实验的时候举步维艰。在这种焦虑的情况下只能继续听从“项目驱动学习”这种策略,害怕组会、害怕导师催你。(我并非反对项目驱动学习,我反对的是没有ML或DL基础的情况下就搞项目)。

相反的,如果研一的基础非常扎实,天天写代码夯实实践基础,天天推导公式夯实理论基础。研二的时候就能水到渠成,自然就能把论文实验做的很好,磨刀不误砍柴工。一步急,步步急,最后就只会跑别人代码调调参数,关掉github以后连一个基本的CNN分类pipeline都写不出来(数据清洗+数据读取+网络设计+损失选择+模型训练+指标计算+调优)。粗略的读一读理论证明,然后找个开源代码跑一下,我认为这种方式真的学不好模式识别那门课。补充:


关于学习经历

一开始,我每天固定两个小时学Python,两个小时看吴大佬的有题目的视频教程,两个小时自己实现课后习题。这期间感觉自己进步很大,但是总觉得哪里出了问题,却又说不出来。两个多月以后,课程完结,开始学习tensorflow,看书敲代码,出现问题就百度。

虽然自己能实现类似resnet这种基础网络,但是自我感觉没有之前那么好了,好像越学越糊涂。再后来,我开始看论文了,找那些有开源实现的论文,看一篇论文,学习一篇代码。在这样稳扎稳打的步伐下,我感觉自己又进入了快速上升期。既然能搞懂别人的论文了,能不能自己来一篇?于是我开始去怎么提出新东西,进而意识到我应该先对自己领域现存方法有所了解,知道它们的优点和不足。


按照这种想法,我开始有意识的泛读自己领域的顶会论文,了解最流行的方法。我意识到,最简单的创新实际上就是把别的领域的东西搬过来用,所以我从nlp找了点思想用到对抗上(此时我并不知道已经有人这么做了,毕竟自己掌握的文献还不够)。不管怎么说,我算是有自己的成果了。这就足够了吗?不是的。我越发感觉到自己的不足,深度学习仅仅在cv领域就有各个子分支,每个分支就算整个研究生生涯都不一定能吃透。更要命的是,我发现我一直都是在写算法,从没考虑过如何部署模型,也就是整天纸上谈兵。。。

所以我最近开始学网络知识,学习什么是客户机服务器模式,学习flask,想把自己的模型部署到web服务器上。总得来说,我没有采纳我当初所看见的建议,那些建议有的列出来一系列书单,有的列出来一系列课程,对我个人来说是不太可行的计划我一般都不去做。我觉得应该从自己想解决的问题入手,旧问题的解决往往伴随新问题的诞生。我最开始只是想知道啥玩意是反向传播,后来却自己搞出一篇论文,是那些困扰我的问题激励着我进一步研究,每次解决问题都会有那种喜悦的心理,这是我进步的源泉。

补充:关于pytorch

曾经写过一些pytorch的日志,包含数据采样、增强、模型搭建等等:

file

来源:本人的【人工智能与深度学习研究社】
https://zhuanlan.zhihu.com/c_1176057805353766912

版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK