【深度学习】第一章:深度学习的入坑线路

深度学习涉及的内容非常多,浩瀚如烟的各色资料,更是眼花缭乱,窥其一而不知全豹的情况常常存在。常常知识点看完了,也理解了,可学这是干啥的?用在什么地方?什么场景?为什么是这个思路?目的是什么?等等,你会蹦出一系列的疑问。就是一个个知识点都是散落的珠子,你无法有因果有逻辑地贯穿起来。所以在写深度学习系列文章之前,我觉得非常有必要先把深度学习的整个框架展示一下。这是我自己跌跌撞撞走了很多弯路,才略知一二,现在mark下来。  

你最佳地学习路线是:以DNN、CNN、RNN这样的三条线路开始学。注意顺序不能颠倒,因为DNN是你学习CNN的基础,而CNN又是你入门RNN的基础。基础不牢,后面是你会越来越抓狂。当然你学DNN之前也是默认你有一定的计算机基础的、底层的内存、操作系统、语言、数据结构、数据库等都是默认你已经该知道的都知道了。  

那你现在可以以DNN、CNN、RNN的顺序开始构建你的深度学习知识框架了。但是不管是学DNN还是CNN还是RNN,大方向上,你这三个方面都要掌握:一是原理方面,包括网络结构、数据传播流程、损失函数、优化算法、训练流程、优化技巧等;二是数学方面,你要清楚数据传播过程是怎样的一个数学计算过程、你要清楚损失函数的具体或抽选的表达是什么、你要清楚优化算法背后的数学逻辑、你要知道训练过程的数学过程等,就是每步的数学过程你要清楚,这样你才能知道问题出在那里,你才能针对性的采取措施;三是代码实现方面,上述的各个环节都要用代码实现,因为你的任何想法和行为都要借助代码去实现,所以你要有基础的代码能力。

上面三方面你都掌握了,才能说明你学会了这个知识点。我个人的经历是:

数学方面最简单,如果你是研究生,你的数学储备基本就可以了,因为毕竟深度学习不像机器学习那样有严格的数学过程。深度学习是巨量的数据进行简单的运算,最多就是矩阵乘法。

其次是原理方面,有的知识点的原理会涉及到复杂严谨的数学过程,但是你可以不用细扣数学过程,你只要使用它的结论即可,就是用它的结论来印证你对原理的通俗理解。你类似我们不用人人都去发明牛顿定律,但我们可以使用牛顿定律去解决现实中的问题。就是即使你不明牛顿定律是怎么推导的,你只要知道这个公式是什么作用,能达到什么目的,你会自由使用这个公式即可。同时你要足够的灵活理解,就是多角度理解,因为深度学习原理部分有太多新名词,但是你只要理解它背后的数学过程,你就可以灵活理解了。比如就是一个矩阵和矩阵的乘,在深度学习中会有人说升维降维、空间转化、特征变换、高维、低维、映射等等不同场景下它发明了不同的专业词汇,但其本质都是一样的。再比如,给一个数乘以一个系数,这种再简单不过的计算,它会在不同的场景下你会被告诉是放缩、是调整了数据流啥啥的、是记住了啥啥啥、参考了啥啥啥、甚至说成这个门那个门的,其实背后仅仅就是乘了一个系数而已,所以你要绕开装逼看到本质。  

最后代码方面,这是你学习的归宿,不管你有什么想法、什么行动,你都得借助计算机,才能实现或者想大家展示你的想法,所以你的基本代码能力必须有。而这个能力是一点点积累的,单独去学也效果不大,因为在你没有学它的目的和背景的情况下,你只可能是学完即忘完。所以我推荐是边学原理边学代码,这样你就知道这个函数用在什么地方,它帮我实现什么功能、完成了什么任务。以后你再遇到相同任务,你就可以拿来用了。它是一个工具,而且是一个非常复杂的工具,你要日积月累的认识它、熟练它。

好那我们开始从DNN、CNN、RNN这样的顺序,细化每种网络我们都要学什么:

第一阶段:DNN阶段。

 我暂时能想到的知识线条就这么多,本来打算再继续写CNN、RNN,但是实在是太多,时间也有限。CNN和RNN的类似上面的四维导图,等我开始写的时候再补上。

后面开始按照DNN、CNN、RNN这个线条更新文章。  

  

猜你喜欢

转载自blog.csdn.net/friday1203/article/details/134847702