关注“深度学习自然语言处理”,一起学习一起冲鸭!
设为星标,第一时间获取更多干货
如何系统型的学习深度学习?
作者:机器学习入坑者
https://www.zhihu.com/question/305745486/answer/557055667
一开始,我每天固定两个小时学Python,两个小时看吴大佬的有题目的视频教程,两个小时自己实现课后习题。这期间感觉自己进步很大,但是总觉得哪里出了问题,却又说不出来。
两个多月以后,课程完结,开始学习tensorflow,看书敲代码,出现问题就百度。虽然自己能实现类似resnet这种基础网络,但是自我感觉没有之前那么好了,好像越学越糊涂。
再后来,我开始看论文了,找那些有开源实现的论文,看一篇论文,学习一篇代码。在这样稳扎稳打的步伐下,我感觉自己又进入了快速上升期。
既然能搞懂别人的论文了,能不能自己来一篇?于是我开始去怎么提出新东西,进而意识到我应该先对自己领域现存方法有所了解,知道它们的优点和不足。按照这种想法,我开始有意识的泛读自己领域的顶会论文,了解最流行的方法。我意识到,最简单的创新实际上就是把别的领域的东西搬过来用,所以我从nlp找了点思想用到对抗上(此时我并不知道已经有人这么做了,毕竟自己掌握的文献还不够)。不管怎么说,我算是有自己的成果了。
这就足够了吗?不是的。我越发感觉到自己的不足,深度学习仅仅在cv领域就有各个子分支,每个分支就算整个研究生生涯都不一定能吃透。
更要命的是,我发现我一直都是在写算法,从没考虑过如何部署模型,也就是整天纸上谈兵。所以我最近开始学网络知识,学习什么是客户机服务器模式,学习flask,想把自己的模型部署到web服务器上。
总得来说,我没有采纳我当初所看见的建议,那些建议有的列出来一系列书单,有的列出来一系列课程,对我个人来说是不太可行的计划我一般都不去做。
我觉得应该从自己想解决的问题入手,旧问题的解决往往伴随新问题的诞生。我最开始只是想知道啥玩意是反向传播,后来却自己搞出一篇论文,是那些困扰我的问题激励着我进一步研究,每次解决问题都会有那种喜悦的心理,这是我进步的源泉。
作者:Jason金
https://www.zhihu.com/question/305745486/answer/798114557
系统性我不太了解,但是我可以讲讲我的学习经历,我主要分为四个阶段:
啃吴恩达的机器学习的课程,然后看的是黄海广博士等人翻译的课程和笔记,这一阶段主要了解相关的概念,一定要有一个整体的结构,每个名字大概是什么意思,有什么用。
然后就是代码方面的事情,我没有马上跟上代码,而是去学习了一下一些以后会用到的基础的python库,比如pandas,numpy,matplotlib等
当时因为一些偶然因素要做深度学习方面的东西,然后去kaggle上下载了一段完整的训练代码。这里有一些了解的初学者可能会问到底选什么深度学习平台好,tensorflow?pytorch?keras?每个平台之间并没有绝对的优势,主要还是看自己的具体情况。
我的方向是和医学图像相关的东西,所以选择了keras,因为他上手快,可以快速构建出一个模型,但是灵活性要稍微差一些;pytorch是另一个热门选择,我的很多师兄师姐都是用的pytorch,他们很多事做的和人脸相关的方向;tensorflow不太建议初学者,相比之下前期学习花销大且代码量也比较多。
回到正题,上面说的那段完整的训练代码,我进行了一次精读,理解他每个步骤都在干些什么,然后用到了哪些有关的库,然后对训练过程有了一个整体了解,还有就是熟悉这个框架的一些函数。
这个阶段,就如小标题所说的一样,跟着别人的代码一步一步来,然后化为己用。
虽然对那段代码进行了精读,但是直接拿来自己用还是比较牵强,各个专业名词越来越混,也不知道要如何下手。没办法,只能继续巩固基础,我就去把keras的官方文档给琢磨了一遍,然后照着它给的最简单的分类网络实现了一遍,之中有很多坎坷和挫折,但是坚持下来就是胜利。然后就是将自己的数据集放入到模型中了,结果根本不好,但起码能跑起来。
接下来就是调参的过程,不会或者疑惑的地方就百度谷歌还有问师兄师姐,自己感受一遍和只看书是完全不一样的。
到了这个阶段,已经对网络结构和训练流程有了一定认知了,接下里就是要训练出一个表现不错的模型了。又要回到专业名词中去,去看别人是怎么优化的,提出了什么网络结构,有什么创新的思路,相关的paper当然是要读的,然后就是尝试去优化自己的模型。
作者:疯猫子
https://www.zhihu.com/question/305745486/answer/557090589
分享一下我的学习路径。
首先,基本的数学素养是必须具备的,这个自不必细说。
正是开始学习前,先了解神经网络的实现原理,在动手写一遍代码,是自己动手实现神经网络的算法。
有了这个基础,再开始学习深度神经网络的原理及用代码撸一遍。
开始逐步加深难度,学习激活函数并加入神经网络。学习反向传播,学习损失函数,学习梯度下降。动手撸一遍代码。
自此,基本原理搞明白之后,就可以开始熟悉主流框架,包括tensorflow keras等,能够阅读代码之后,开始研究各种成熟网络的结构和调参。
主要包括基本的cnn,RNN,GAN。这个过程不是孤立的学习,需要看论文,做一些小项目来实践,所以过程较长。
当然,人生苦短,这个过程,你还需要弄块好显卡来给深度神经网络加速。
这个过程,我大概每天平均2-3小时的学习,也差不多用了9个月,所以,祝好,祝学习快乐。
作者:yuquanle
https://www.zhihu.com/question/305745486/answer/558653688
个人感觉有了些基础常识之后就开始在实践中学习吧,系统的学里面涉及那么多知识,学一遍怕的黄花菜都凉了~遇到不懂的概念利用百度谷歌,然后理解学习这个概念,若是概念难懂,就多看不同的人对这些概念的理解,有的时候有些人能深入浅出的讲解一些很不错的资料,我觉得这种有目的性的实践学习方式学来的东西更加印象深刻~
这样即锻炼了个人能力(独立查找资料文献也是能力),又能达成某些目的~这样过了一段时间之后,你好像又懂很多东西了,但是好像又有很多方面不了解,其实这就是你在某个点有点深度了,但是广度还不够。如果此时有大把闲置的时间,就可以去刷刷那些不错的系统性课程,刷课的时候会发现很多概念理解起来轻松多了,或者说似曾相识(理解的知识点又得到了复习并再次确认自己的理解了的知识点和这些老师讲的是否一致)。
每天进步一丢丢
下载一:中文版!学习TensorFlow、PyTorch、机器学习、深度学习和数据结构五件套! 后台回复【五件套】
下载二:南大模式识别PPT 后台回复【南大模式识别】
整理不易,还望给个在看!