【《DNN深度神经网络分析概述》3900字】_第1页
【《DNN深度神经网络分析概述》3900字】_第2页
【《DNN深度神经网络分析概述》3900字】_第3页
【《DNN深度神经网络分析概述》3900字】_第4页
【《DNN深度神经网络分析概述》3900字】_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

[6]。(a)表达能力偏弱(b)表达能力与数据模态匹配(c)表达能力过强图2-5不同模型训练情况线性模型缺点很多,那么可以在线性模型的基础上增加一个非线性函数,将其转换为非线性模型。这样就可以解决我们的问题。我们把这个非线性函数称为激活函数,用𝜎表示。而且激活函数可以把一个区间很大的数,去挤压到0到1区间,方便后续进行计算。如Sigmoid函数(目前已很少使用),ReLU函数,Tanh函数,这些激活函数在后续的LSTM和CNN中也起到了非常重要的作用。因此函数可以表达成(2-2)不难看出,机器学习实际上是让机器去为了实现功能来不断自我学习来调节权重和偏置参数来进行符合预期的预测。其实整个神经网络就是一个大的函数。在了解了机器大致如何进行训练,当前就要解决实现整个函数的计算。要通过计算机自我学习训练去不断调整各个权重与偏置,最后得到一个满意的数据。就需要测试集和训练集的参与了。假如目前所需数据中有100张已经识别出来的0-9的各种各样的图片,如果希望神经网络可以去识别更多的数字,就需要用这100张图片去训练这个神经网络,使其不断调整参数来进行最后良好的输出。训练过程中可以拿出90张当作训练集,把它们送入给神经网络并且训练出对应的权重和偏置,然后和最后结果进行对比调整,接下来再用剩下的10张图片做测试集输入来看网络训练后的结果是否符合预期的正确结果。因此现在的大数据可以起到很好的训练作用,并且可以提供出来更多训练好的模型提供使用。1.2梯度下降法前面文章中介绍过,全连接就是每个神经元与它下一层所有神经元去连接,每一个连接都有一个权重值,可以把权重理解为连接的强弱,把偏置理解为神经元是否更容易被激活。譬如上文中最后希望它输出一个9,可是开始的神经网络的偏置和权重都是随机的,因此计算机得不出来我们想要的结果,也就是最后输出层的9这个神经元的激活值去接近1,其他神经元的激活值接近0。需要告诉计算机让它应该如何去进行调整,因此引申出来一个函数——损失函数或者叫代价函数,譬如均方差MSE让每一个输出的激活值去减去计算机想要的其对应的激活值的平方和再求平均(2-3)这个值越小,计算机的训练结果就与实际结果越接近。均方差在本项目实现的后续代码中起到了很重要的作用。但是单纯的得出来这个数值并没有用,最后计算机的目的是去改变这些权重和偏置。因此不可能让计算机对如此多的权重偏置值进行漫无目的的猜测,需要得出一个新方法——梯度下降法。例如,应该如何去找一个一元函数的最小值,通过微分求导就可以做到。但是如果函数很复杂,存在多个极小值点,计算起来就相对麻烦了,更不要提计算机要计算成千上万元的损失函数了。所以可以在一个小区间内去找到如何运动才能使函数值变小,进而就会逐渐找到一个局部最小值,一个二元函数,可以理解为把一个小球丢在任意一个位置让其自动滚下山的行为。函数的梯度指出了函数的最陡增长方向,沿着梯度的负方向走,函数值就会降落的最快。而且这个梯度向量的长度代表了这个最陡的斜坡到底有多陡。于是就可以找到这么一个向量,它能指出哪个方向下山最快,路有多陡。如图2-6所示,图2-6非凸函数实例于是计算机可以得出如何具体改变每一项参数来让损失函数的值下降的最快。最后收敛到局部最小值。在前文的公式中不难看出,如果一个神经元的激活值比较大,那么那一项的权重就会产生更大的影响。换句话说,梯度向量的每一项大小告诉计算机代价函数对于每个参数有多敏感。之后计算机对着成千上万个训练样本都这样算一遍,然后取平均,这样就得到了整个网络的权重偏置值。1.3反向传播法可是计算机如何去求这个复杂的梯度呢?这就要用到另一个新方法——反向传播法。前面文章中提到了一个公式(2-4)也就是说,如果想增大一个激活值,我们有三种方法,第一就是增加权重,第二是增加偏置,第三就是增加上一层的激活值。反之,如果希望这个激活值减小,就需要减少这三项。例如,想要识别一个数字2,就要求最后输出层的2这个神经元的激活值去接近1,其他神经元的激活值接近0。于是要让倒数第二层去实现这个目标,计算机对倒数第二层的激活值调整就有了不同的想法,如图2-7图2-7数字2对应调整上一层激活值也就是说,倒数第二层需要变化去尽可能的符合最后一层的输出,计算机把所有的改变值综合起来,就得到了一连串的对倒数第二层的改动的变化量。于是可以继续通过倒数第三层去改变倒数第二层,这就是反向传播的基本原理。计算机对其他所有的训练样本过一次反向传播,然后得到它们的权重偏置取平均,于是就可以得到之前文章中给过的负梯度了。然而实际上如果梯度下降的每一步都用上每一个训练样本来计算会很费时间,所以可以使用小批量随机梯度下降来训练这个网络。之前的训练可以看成是一个登山队员一步一步缓慢的沿着最陡的峭壁下山一样,他提前已经规划好了方向。但是随机梯度下降可以看作是一个漫无目的的下山过程,这样会很快的到达局部最低点。为了更好的理解反向传播的具体原理,可以先用一个训练样本的梯度传播去了解它,如图2-8所示图2-8梯度传播样本是输出的实际值,是计算机得出的输出值,是倒数第一层的激活值,是倒数第二层的激活值,是最后一层的权重,设(2-5)也就是说,=,损失函数为(2-6)同理由前面决定。如果现在想要理解,损失函数对权重的变化有多敏感,即,于是根据链式法则,可以得出(2-7)对各个部分求导(2-8)也就是说,如果输出结果与实际结果差值越大,对损失函数的影响越大。其次就是求激活函数的导数,这也是为什么在后续大部分激活函数的使用中不会选择sigmoid函数的原因,它的导数会造成一个问题,叫做梯度弥散,梯度弥散和梯度爆炸的概念会在后面LSTM中提到,总之最好使用ReLU之类的导数图形比较好的激活函数。的结果就是,不难看出来前一层的激活值对后续权重对损失函数的影响。计算偏置的影响和计算权重很类似。了解了一个训练样本的概念之后,总的损失函数就是许多训练样本所有损失的总平均。这就是反向传播的基本概念,之所以介绍梯度下降法和反向传播,是因为后续的C

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论