深度学习必备基础
深度学习发展至今已然有几个年头了,上个世纪九十年代的美国银行率先使用深度学习技术做为手写字体识别,但深度学习的惊艳登场并没有留住它一时的辉煌, 直到2012年深度学习这个领域才开始渐入人们的眼帘。可以说我们现在拥有着***的学习机会,世界***的会的议论文,各大数据库公开的数据源以及开源的力量已经让我们站在了巨人的肩膀上去成长。下面就给大家分享一份深度学习入门指南,让大家能更快更好的加入深度学习这个璀璨的舞台。
必备技能1-Python:
python我就不必多说啦吧,有多方便大家用过了都知道,这里强调这点是因为,现在无论是公开的论文还是代码基本在深度学习这个领域都是python为主流的,我在学习的过程中一个最重要的点就是学习别人的代码,通过把高手的代码debug一遍我们才能真正的懂一个技术的原理,那么在这个领域里高手们的代码很多都是python版本的。更重要的一点是,我们入门这个领域肯定不会自己动手一步一步的去实现所有需要的技术代码,一个最直接的学习方法就是结合开源的框架,那么可以说深度学习的开源框架基本都是python接口的,能用这些开源框架是我们学习的一个最基本的手段啦,所以重要的事情说三遍,python!python!python!
必备技能2–线性代数,微积分
很多同学该觉得很头疼了。。。,怎么有是数学啊,没错咱们深度学习需要很好的数据基础,我所说的这俩简直就是九牛一毛,但是作为我们入门来说已经够啦。其实咱们所有的深度学习是什么呢?它就是一个复杂的人工神经网络嘛,那么要去能懂这个神经网络的原理,有机器学习基础的同学们肯定都知道,其实就包括了两部分嘛,前向传播和反向传播。这两部分一个最最最核心的点就是矩阵计算和梯度求导运算啦,所以说咱们要能入门这个领域,这些数学可是还要复习起来的。
必备技能3–英文阅读能力:
这个还需要说啥子嘛?技术都是国外搬来的,咱们要学习的肯定都是国外各路大神的作品啦,比如课程呀,论文呀等等,那么要能跟上大神们的脚步,这点肯定是不能少的吧。
必备技能4–查找资料能力:
这点其实是蛮重要的,也就是我们在学习的过程中,要积累一些数据库还有好的学习资源,比如公开的代码呀,这也就要我们经常去逛逛技术博客,github呀看看有木有一些适合咱们学习的东东,找到有价值的学习资源比咱们自己埋头苦学更有价值的。
避开常见误区
深度学习这个领域的坑可以说还是蛮多的,咱们在进军的路上
一定要避开这些了。
自己挖的坑:
咱们在学习的过程中一定要循序渐进,切不可急于求成。这就像练武功一样,一味的求快求狠只能走火入门。这里我暂且认为想要入门的同学们的基础都是比较薄弱的,咱们不能跳过传统机器学习这条路直接一大步迈进深度学习这个领域中,我们起码要知道神经网络是怎么一回事。这对于咱们理解以及掌握深度学习有着重要的帮助,比如咱们***步要做的就是去搞明白什么是前向和反向传播以及从头到尾的自己推导一遍,有了这样一个过程咱们再去学习深度学习就会轻松多啦。千万不可自欺欺人,一步还没走稳呢就着急跑去下一个知识点啦,在积累的过程中不要给自己挖坑,确保自己搞明白一个点啦再去深入到下一个点中。
掉进别人的坑:
我们在学习的路上肯定会挖掘到很多的资源,但是这些资源不可盲目学习,我们需要有一定的鉴别能力。就好比说我们跟着一个武功一般的学,怎么也不会学到哪里去,但是我们给一个武林***当小弟,我们学到的也不会少嘛。这就是说我们要学习的资源一定要是通过了大家的认可的,在我看来现在百度到的很多资源其实错误的地方还是蛮多的,我们尽量多关注一些国外大神的主页以及github上比较火的项目。
学习路线图
这个路线图是针对咱们要入门的同学制定的,已然成神的同学们可不使用哦。
(一)入门神经网络:
对于咱们要入门的同学来说,***部也是最重要的一步就是能够去懂什么是神经网络以及把整体流程从头到尾的推一遍,神经网络这个东西还是蛮抽象的,这里有一个入门的课程大家可以参考下深度学习全民皆兵
把神经网络以及深度学习所需的每一个知识点都从头到尾的推了一遍还是很不错的。
(二)选择一个深度学习方向:
深度学习现在来说有两个方向比较成功,一个是自然语言处理,另一个是计算机视觉。在学习的路上,我们需要选择一个自己喜欢的方向去深入,有的同学可能会说我都想去研究个究竟,其实只要有时间这些都不是事。但是我觉得还是选择一个方向去深入比较好,无论对于研究还是工作我们不可能同一阶段去弄这两个事,所以确定好一个深度学习的方向还是很重要的。当我们选择好方向之后我们要学习的东东就确定了,对于自然语言处理我们要学习的就是RNN现在更火的是LSTM,对于计算机视觉我们要学习的就是CNN,大家如果听不懂这几个缩写,没关系的等咱们真正走到了这不的时候再去了解也来得及,这里我们只需要知道我们要两个方向可以选择。
(三)论文与代码:
对于选择好的方向我们首先要弄懂这个网络的原理,***的办法就是边学边做,结合一个实际的项目。有的同学可能比较愁,我哪有实际项目去结合啊,其实咱们github上的每一位大神的代码咱们都可以当成是一个实际的项目呀,比如人脸检测,物体识别呀,这些公开的代码就是咱们练手的利器呀,我们首先需要从头到尾的完全理解一个找好的项目,这其中包括了很多内容了。比如学习一个深度学习框架,应用公开数据集,训练模型等等。从我自身学习的经验来说,最有价值的做法就是,在一些高端会议上找到一篇开源的而且做的事是咱们感兴趣的的论文,首先通读论文,然后对应于开源的代码开始大干一波 (就是把代码和论文对应上,确保自己完全理解),还有些需要注意的点比如说咱们一定要找***的论文和代码,这些应该就不用我多说啦。在完成了一个项目之后,咱们就有一定功底啦,可以说咱们已经入门深度学习这个领域啦,但仅仅是入门,切不可就此止步。
【本文是51CTO专栏作者唐宇迪的原创稿件,转载请注明出处】