《一天学懂深度学习》PPT翻译一

来源:互联网 发布:掌上贵金属软件下载 编辑:程序博客网 时间:2024/04/30 15:25

前言

深度学习最近是真火,一开始听说这个名字的时候感觉莫名其妙,难道是教程序员怎么学习的?后来查阅了一些资料,原来是跟人工智能有关的。

其中李宏毅的《一天学懂深度学习》挺适合初学者的。于是我花了一点时间翻译了一下该套PPT的前50张,并加以自己的看法帮助小白去理解深度学习这个概念。

因为学业压力和以及其他原因(后面有点难度),我只翻译了前50张,但这足够让你了解什么是深度学习了。大神勿喷!接下来有时间再深入学习继续翻译。

当然,要配合PPT看,如果你没有资源的话,请点击下载:http://pan.baidu.com/s/1jH6iSU6

一天学懂深度学习 ————李宏毅
PPT1
深度学习影响许多方面,我相信在此之前你经历过许多跟他有关的事情。
这次的演讲着重于(深度学习中)基础的技术。
PPT2
提纲
演讲一:关于深度学习的介绍
演讲二:关于深度神经网络训练的建议
演讲三:神经网络的多样性
演讲四:(深度学习的)下一个浪潮(发展)
PPT4
关于深度学习的介绍
PPT5:
演讲一的提纲:
1 关于深度学习的介绍(让我们从普通的机器学习开始)
2 为什么叫深度
3 对于深度学习来说的“Hello World”(程序)
PPT6
机器学习约等于寻找一个功能
1 语音识别
2 图像识别
3 预测围棋比赛中的下一步
4 对话系统(根据用户说的话分析后给予回复)
PPT7
以图像识别为例的一个框架
通过该模型中的一组函数,以及对数据的训练使函数功能逐渐优化,
监督式学习,使输入的图片输出对应正确的描述
PPT8
在训练部分:
第一步:由一组函数建立模型
第二步:对数据进行监督式的训练
第三步:从逐渐完善的函数中挑选出精确的函数
在测试部分:
测试该函数,输入猫的图片,看输出是不是“猫”
PPT9
深度学习三步骤:
步骤一:定义一组函数
步骤二:(不断训练)达到完善的功能
步骤三:挑选出最出色的函数
(个人感觉下面的图与上文没太大关系,仅表示很简单)
PPT10
将第一步替换成了神经网络
PPT11
人的脑髓:
摘自CSDN帮助大家理解图上的意思:
人类智能最重要的部分是大脑,大脑虽然复杂,它的组成单元却是相对简单的,大脑皮层以及整个神经系统,是由神经元细胞组成的。而一个神经元细胞,由树突和轴突组成,它们分别代表输入和输出。连在细胞膜上的分叉结构叫树突,是输入,那根长长的“尾巴”叫轴突,是输出。神经元输出的有电信号和化学信号,最主要的是沿着轴突细胞膜表面传播的一个电脉冲。
忽略掉各种细节,神经元,就是一个积累了足够的输入,就产生一次输出(兴奋)的相对简单的装置。
树突和轴突都有大量的分支,轴突的末端通常连接到其他细胞的树突上,连接点上是一个叫“突触”的结构。一个神经元的输出通过突触传递给成千上万个下游的神经元,神经元可以调整突触的结合强度,并且,有的突触是促进下游细胞的兴奋,有的是则是抑制。一个神经元有成千上万个上游神经元,积累它们的输入,产生输出。
PPT12
科学家以一个激励函数模拟人的大脑中的一个神经元
n个参数乘以其各自的权重,然后求和,再加上偏移量作为输入,输进激励函数,产生输出a
解释:
参考CSDN:
假设你有一幢房子,在x小区x单元x号。住了很多年了,但现在需要卖掉,但又不知道这房子具体能值多少钱。正好,现在有一款软件,你只要输入x小区x单元x号,他就能自动预测房价。该软件其内部运算的过程就相当于该函数。房子的地段,房龄,面积,装潢等n个会影响房价的因素a都相当于那
n个参数,但这些因素对房价的影响程度肯定是不一样的,因此就有了对应权重w。另外,预测并不可能百分百正确,因此还有一可误差因素b。软件将这
些因素打包一个全面具体的输入参数z进行判断,通过激励函数 σ(z)函数即通过训练产生的最优函数运算之后输出预测的房价a。
(理解上述内容之后,下面应该好理解一些。)
PPT13
下面给出一个实例测试了一下该函数的功能
将各参数代入计算后,结果为0.98
PPT14
神经网络中神经元不同的连接方式导致了不同的网络结构。
每个神经元都可能有不同的权重和偏移值,权重和偏移值是网络的参量。
(联系上文中讲的:神经元可以调整突触的结合强度,并且,有的突触是促进下游细胞的兴奋,有的是则是抑制。)
PPT15
前馈神经网络中的完整联系,即多个神经元之间的连接、作用
分析一下该图:
在这个网络结构中,起始只有两个输入,每一个输入都要分别输进两个激励函数。两个激励函数输出的结果再次作为输入,分别输进两个
激励函数,依次类推,最后输出两个结果。可以看出,这个结构较之前的一个神经元有点复杂,但人的大脑正是由一个个神经元,由不同的(复杂)方式组成在一起,
产生奇妙的功能。
将每一列两个激励函数定为一层,则该结构有三层激励,而第一层中的第一个激励函数正是我们前面所举的例子,即一个神经元的函数。
PPT16
每一层的权重都不同,将每一层的输出(或者说是次层的输入)数值都计算了出来,可以发现,由于输入参数、权重、偏移量的不同,输出的结果也不同
PPT17
从单个激励函数来看,输入一个矢量,随之输出一个矢量。即只要给定了参量(权重,偏移量),就定义了一个函数。
从这个稍微复杂点的网络来说,只要给定了结构(包含各层的参量),就定义了一组函数。
可以看出两组值不同的输入,在经过相同的网络结构时,对应的两组输出值也不同
PPT18
图中的网络就更为复杂了,有L层激励函数,每一层由N个输入组成。
深度学习中的“深度”意指输入输出层之间隐藏了很多层(即存在隐藏层)。
PPT19
这里着重讲输出层(也可以叫做选择层),将Softmax层作为输出层。这里引入了Softmax的概念,下面先简单介绍一下Softmaxde的概念,方便大家下面的学习。
参考CSDN:
我们知道max,假如说我有两个数,a和b,并且a>b,如果取max,那么就直接取a,没有第二种可能。但有的时候我不想这样,因为这样会造成分值小的那个饥饿(即一直取不到)。所以我希望分值大的那一项经常取到,分值小的那一项也偶尔可以取到,那么我用softmax就可以了。现在还是a和b,a>b,如果我们取按照softmax来计算取a和b的概率,那a的softmax值大于b的,所以a会经常取到,而b也会偶尔取到,概率跟它们本来的大小有关。所以说不是max,而是Softmax。
接下来再看PPT上的文字:
一般来说网络的输出可以是任何值。
(Softmax)可能不太容易解释。
PPT20
这里给出了Softmax的一个实例:
从图中可以看出,输入了三个参数,经过计算,输出了对应的输出的可能性占总可能性的比重,总和为1,可能性最小的那个输出约为0,但其实不为0。即每一种可能都存在。
PPT21
(Softmax)的应用范例 --识别手写的数字"2"
16*16像素的一个手写数字"2",每一个像素作为一个输入,故共256个输入。当这256个像素中有笔迹的时候,输出总可能性为1,否则为0。(不写字的就不存在数字的可能性)
输出层有十个神经元,每一个事先都配对了一个数字。根据输出的可能性大小,决定输出哪个数字。图中数字“2”的可能性最大为0.7,因此判定写的数字为2。
PPT22
对于手写数字识别的这个范例,输入256矢量,输出10个矢量,中间需要的就是一个函数(神经网络)。
PPT23
一组函数中包含着候选的数字,你需要决定网络的结构,使你的函数组能有一个好的功能。
PPT24
提问环节:
1 问题:有少层?每一层有多少神经元?
 回答:反复训练+直觉(来决定层数和每一层的神经元数)
2 问题:结构可以被自动地决定吗?
 回答:
PPT25
下面讲解深度学习的第二步:函数的完善
PPT26:
训练数据(达到想要的效果)
准备训练数据:图像(手写的数字)和(他们的)标签
学习的目标定义在训练数据之上
PPT27
例如,对于识别手写数字的函数来说,学习的目标就是:
当写“1”的时候,输出y1有最大的可能性
当写“2”的时候,输出y2有最大的可能性
PPT28
损失:一个好的函数应该尽可能的保证所有例子的损失达到最小。
损失可以指网络输出与目标(期望的结果)之间的距离,即图中的Loss(l)。
PPT29
总的损失:对于所有训练的数据,总的损失等于各损失之和。
当一个模型输出结果之后,如果跟预想的结果有偏差(即存在较大的损失)->降低损失->寻找一个可以降低损失的函数->更改参数值(权重,偏差等)
由此可见,对数据的训练是一个逆向的思维,由结果不断地去调整网络,直到结果满意。
PPT30
下面进入深度学习的第三步:找出最好的函数
PPT31
如何找出最好的函数?即找到一组能使损失达到最小的参数。
枚举所有可能的值?举个例子,在语音识别的识别中,有八层函数,每一层有1000个神经元,显然,枚举是不可取的。
PPT32
利用梯度下降法。在高等数学中有梯度的定义,再次简单的介绍一下梯度下降法的意思。
梯度下降法其实就是一个函数,该函数通过不停地调整自身参数使自己的值达到最小。跟前面的例子相结合,就是网络结构通过调整自身的参数(权重,偏差),使loss值达到最小。故梯度下降法是实现它的方法:
将函数比作一个山谷,山谷里有一个小球,它所在的坐标值代表一组参数。谷底那一点的坐标就是最佳的参数,现在要做的就是,让小球滚到谷地处。此处省略那些物理条件,滚落过程中小球需要不断地调整方向,如何找准小球的滚落方向呢?

高等数学中对梯度有这样一个结论:可微函数在一点处沿着梯度的方向具有最大的增长率,最大增长率等于梯度的模。
因此解决了方向的问题。

回到PPT:图中建立了一个以权重W为横轴,总损失L为纵坐标的坐标系。可以看出,貌似l随w的变化是一条没有规则的曲线。在这条曲线取一点,作为初始值(即给小球一个起始位置,只不过由三维变成了二维。
PPT33
曲线中的那一点该往左还是往右走呢?通过判断该点的导数是正是负决定他向左还是向右。
正->向左(在曲线上显示为梯度反方向)
负->向右
PPT34
w向右平移了一段距离,即w的值变成了w-η∂L/∂W。η为学习速率,下面帮助大家理解一下学习的速率。
w在不断右移的过程中,不断地被w-η∂L/∂W取代。而η正表示了迭代的速度,在公式中可以看出,η值越大,w向右移的距离就越远,如果起始点到终点之间的距离是一定的,那么学习速率η越大,迭代的次数就越少。但是,学习速率太大会越过最优值(终点),太小的话会导致计算时间过长,因此在移动的过程中,学习速率也是在不断调整的。
PPT35
重复,直到∂L/∂W的值接近于最小,即当他的值更新缓慢的时候。因为,导数的绝对值越小,其曲线越趋于平稳。
图中可以看出,第二次移动的距离较第一次小,因为当接近于最小值的时候,学习速率的值被调整了。
PPT36
实际上需要调整的参数不只这一个w值,图中对所有的参数(权重w,偏差值b)进行了一次调整
∇L是一个梯度列矩阵,即w=w-η∇L,经过一次调整,参数的值都有所变化。
PPT37
所有参数经过两次及两次以上的调整
PPT38
该图类似于前述的山谷滚球的例子,参数为权重w1,w2,颜色的深浅表示总的损失量。
PPT39
图中画出了一个从起始点到终点的路线,只要经过不断地调整,有望到达最小点。
PPT40
梯度向下法不能保证最后到达点是全局最低点
根据不同的起始点会到达不同的最小点,因此可能很多
有许多方法可以帮助你避免到达局部最小点,但并不能保证(绝对有效)
PPT41
(下面就进入总结阶段了)
当你在玩帝国时代的时候,你看不见整个地图,因此你会通过计算各种参数摸索着前进。
PPT42
这就是深度学习领域中机器的“学习”,就算是阿法狗也在使用这个方法。
人们想象中的人工智能(是高大上,复杂的),实际上你在玩帝国时代的时候就运用到了。
我相信你不会太失望的。
PPT43
反向传播法:一个计算导数(调整参数)的有效方法。
不要太担心导数的计算,以上的工具会帮助我们处理它。
图中给出了一个链接,并列举了很多可以帮助我们计算的工具。
PPT44
总结:
深度学习其实如此简单……


PPT45
前45章讲解了演讲一中的第一部分“深度学习的介绍”
下面开始进入第二个部分,为什么叫深度?
PPT46
越深就越好吗?
毫无惊讶,参数越多,最后的表现也越好。
PPT47
一个普遍性的真理
任何一个连续的函数(N个输入,M个输出),可以被当作一个拥有一个隐藏层的网络(只要这一层中有足够多的神经元)。
为什么叫“深”度神经网络,而不叫“胖”的神经网络
PPT48
一个胖、矮的神经网络VS一个瘦、高的神经网络
他们拥有的相同个数的参数。哪一种更好?
PPT49
数据中表明:
当每一层中神经元个数相同时,层数越多,效果越好。
另外当参数数量相同的时候,矮胖不如瘦高。
PPT50
类比法:将逻辑电路与神经网络作类比(这一页是为有电子工程知识基础的人准备的)
逻辑电路中:
逻辑电路中存在很多门(与门,非门,或门,与非门,……)
一个两层的门电路可以表示任何布尔型函数
用多层的逻辑门电路去构造一些功能会更简单。
(仅需很少的逻辑门)

神经网络中:
神经网络中存在很多神经元
一个隐藏层就能代表任何连续的函数
用多层神经元去代表一些功能会更简单。
(仅需很少的神经元)
数据也是更少的吗?

3 1