




kok电子竞技权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
kok电子竞技:文档简介
1、(23)反向传播算法的工作原理(1)反向传播算法是神经网络中的重要算法,通过它能够快速计算梯度,进而通过梯度下降实现权重和偏置参数的更新反向传播算法最初是在20世纪70年代被引入的,但直到1986年大卫鲁梅尔哈特、杰弗里辛顿和罗纳德威廉姆斯合作的一篇著名论文问世后,人们才充分认识到它的重要性。这篇论文描述了几种神经网络,其中反向传播比以前的方法快得多,使人们有可能利用神经网络来解决以前无法解决的问题。如今,反向传播算法是神经网络中所要学习的主要内容。本文的内容中涉及到更多的数学问题。如果你对数学不感兴趣,可以把反向传播当作一个黑匣子,忽略其中的细节。但是,如果想深入理解神经网络,还是有必要花时
2、间研究这些细节的。反向传播的核心思想是代价函数C相对于网络中任何权重w(或偏置b)的偏导数dC/dw,此式说明,更新权重和偏差时,代价函数的变化程度。虽然表达式有点复杂,但它的每一个元素都有一个自然的、直观的解释。所以反向传播不仅仅是一种可供学习的快速算法,它也为我们详细解释了权重和偏置的改变,从而提升网络的整体预测能力。这很值得详细研究。基于矩阵的计算在讨论反向传播之前,让我们先用一个基于矩阵的快速算法来计算神经网络的输出。首先要明确一些符号的意义,文中会用wjk表示从(l1)th层的第kth个神经元到Ith层的第jth个神经元的连接权重参数。下图显示的是从网络第二层的第四个神经元到第三层的
3、第二个神经元的连接的权重:1Uyer2lsyer3讷*isthewenghtfromthe炉neuronithe1严穷ertothejthueurcminthe抄layer这种记法一开始很麻烦,要掌握它确实需要费些功夫。但只要稍加努力,你就会发现这种记法变得简单而自然。它的一个奇怪之处是j和k的顺序。你可能认为更合理的操作是:使用j表示输入神经元、k表示输出神经元,反之就不成立了,是这样。下面将解释这个奇怪现象的原因。我们使用类似的符号来表示网络的偏置和激活结果。bj表示Ith层中的jth神经元的偏差;用窗来表示激活Ith层中的沖神经元。下面的图表展示了这些符号的应用:layer1layer2
4、layer3(23)(23)有了这些符号,ith层中的沦神经元的激活a与(ii)th层中的激活产生了关联,公式如下:其中,求和表示的是(l-1)th层中所有神经元共计k个。为了以矩阵形式重写这个表达式,我们为每个层I定义一个权重矩阵wl,权重矩阵wl的各项是连接到神经元的Ith层的权重,也就是说,jth行和kth列中的项是wjk。类似地,对于每个层l,我们定义一个偏差向量,勺。你也许可以猜出这样操作的原理一一偏差向量的元素bj,是Ith层中每个神经元的一个分量。最后,我们定义了一个激活函数的输出向量al,它的分量是j将(23)式用矩阵形式重写,不过,这里还需要将激活函数()向量化。基本想法是函
5、数应用于向量v中的每个元素,于是用符号(V)来表示函数的这种应用,也就是说,r(v)的分量只是”(v)j=b(vj)。举个例子,对于函数f(x)=x2,f矢量化形式的效果如下:2f(2)4f(3)=f(3)9也就是说,矢量化的f只是对矢量的每个元素求平方。有了这些符号,我们就可以把式(23)改写成漂亮而紧凑的矢量化形式:al=(wlal-1+bl)(25)这个表达式使我们可以从全局的角度来思考问题:一个层里的激活函数是如何与前一层里的激活输出相关联的。我们只需将权重矩阵应用于激活函数,然后添加偏置向量,最后应用函数(顺便说一下,正是这个表达式激活了前面提到的wjk符号中的怪现象。如果我们用j来
6、表示输入的神经元,用k来表示输出的神经元,那么,我们需要用权重矩阵的转置来代替方程(25)中的权重矩阵。这是一个很小的改变,但是很烦人,我们将失去简单易懂的说法(和想法):“将权重矩阵应用于激活函数”。与我们现在所采用的逐神经元观点相比,这种全局观点通常更简单、更简洁(涉及的指数更少!)。这种方法可以使我们逃离“角标地狱”,同时仍然精确地表述所发生的情况。该表达式在实践中也很有用,因为大多数矩阵库提供了实现矩阵乘法、矢量加法和矢量化的快速方法。当使用方程(25)计算a时,我们计算中间量Z三wlal-1+bl。把zl称为层l中的神经元的加权输入。我们将在后半部分大量使用加权输入zl。方程(25)
7、有时用加权输入来表示,如:a=a(zl)o同样值得注意的是,zl包含zj=Ekwjkaj-1+bj,也就是说,zj只是层I中神经元j的激活函数的加权输入。代价函数的两个假设反向传播的目标是计算代价函数C相对于网络中任何权重w或偏置b的偏导数dC/dw和dC/db。为了使反向传播有效,我们需要对代价函数的形式做两个主要的假设。不过,在陈述这些假设之前,先考虑以示例说明代价函数。以下是二次代价函数的形式:1工C=2nxll(x)丛(x)|2其中,n是训练示例的总数;刀x是对所有单个训练示例求和;y=y(x)是相应的真实输出;L表示网络中的层数;aL=aL(x)是输入x时从网络输出的激活向量(即网络
8、的预测值)。那么,为了应用反向传播,我们需要对代价函数C做什么样的假设呢?第一个假设是,对于单个训练示例x,可以把代价函数写成一个平均值C=IExCx,而不是Cx。对于二次代价函数来说,情况就是如此。其中单个训练示例的代价为Cx=2Hy-aLI2。这个假设也适用于所有其他的代价函数。之所以需要这个假设,是因为反向传播实际上允许我们计算一个训练集的偏导数dCx/dw和dCx/db。然后,我们通过对训练模型求平均值来恢复dC/dw和dC/db。事实上,基于这个假设,我们认为训练示例x已修复,并删除x下标,将代价Cx写成C。我们最终会让x回到原处,但目前它是一个令人讨厌的符号,最好还是隐式的。我们对
9、代价的第二个假设是,它可以写成神经网络输出的函数:例如,二次代价函数满足这一要求,因为单个训练示例/的二次代价可以写成:(27)Ej(j-ajL)2代价函数也取决于真实值。你可能感到疑惑:为什么我们不把代价也看作是y的函数?不过,请记。淙胙盗肥纠/是固定的,因此输出y也是一个固定参数。特别是,y不是我们可以通过改变权重和偏差来修改的。也就是说,它不是神经网络学习的东西。因此,将C看作是aL的函数,而y只是一个帮助定义该函数的参数。矩阵的Hadamard积sOt反向传播算法基于常见的线性代数运算,如矢量加法、矢量乘矩阵等。但其中一种运算不太常用。假设s和t是同一维的两个矢量。然后我们使用sO
10、t来表示这两个矢量的对应元素的积。因此,sOt的分量仅为(sOt)j=Sjtj。例如,12-1x3-3=2x4=8这种矩阵的对应元素相乘被称为矩阵的Hadamard积。很多支持矩阵计算的库通常提供了Hadamard积的函数或算式,这在实现反向传播时非常有用。反向传播幕后的四个基本方程反向传播能够让网络中的权重和偏置参数更新,从而最小化代价函数,这意味着计算偏导数dC/dwjk和dC/dbj。但是为了便于计算,我们首先引入一个中间量j它表示Ith层的jth神经元误差。反向传播将为我们提供一个计算误差略的过程,然后将町与dC/dwjk和dC/dbj关联起来。为了理解这个误差是如何定义的,我们想象在
11、神经网络中有一个精灵:neuron,j,layerI精灵坐在I层的jth神经元上。当输入结果传给神经元时,精灵就会扰乱神经元的运作。它在神经元的加权输入中增加了一点变化因此神经元输出的不是6(zj),而是输出6(zj+zj)o这种变化会在网络中的后续层传播,最终导致总代价发生变化,变化的幅度为:dCdzjzjode现在,这个精灵表现很好,它试图帮助你减少代价。也就是说,他试图找到一个使代价更小的zj。假设dzj有一个很大的值(正或负),ldCdCl精灵可以选择zj,获取与dzj相反的符号,从而实现梯度下降。相比之下,如果dzj接近于零,那么精灵无法通过扰动加权输入zj来减少代价。这是精灵会认为
12、,神经元已经接近最佳状态(当然,这种情况只适合于小的改变厶zj。我们假设精灵会被迫做出这么小的改变)。de所以,瞄是对神经元误差的度量。受此启发,我们在l层中定义神经元j的误差&,其表达式为:(29)按照通常的约定,使用刃来表示与层l相关的误差向量。反向传播将为我们提供一种计算每层的刃的方法,然后将这些误差与实际感兴趣的量dC/dwjk和dC/dbj相关联。你可能感到疑惑:为什么精灵要更改加权输入zj?或许,想象它更改输出激活aj会更自然,因为这样的更改使我们能够利用爲作为误差的度量标准。事实上,如果你这样做,结果会和下面的讨论非常相似。但这种做法使反向传播在代数表达上更为复杂。因此,我们将坚
13、持使dC用3j=瞄作为误差度量标准。制胜计划:反向传播基于四个基本方程。这些方程为我们提供了一种计算误差刃和代价函数梯度的方法。我讲到的是以下四个方程式。不过,需要注意的是:你不应该期望在瞬间就掌握这些方程式,期望越高失望越大。事实上,要理解反向传播,需要相当多的时间和耐心,需要逐渐深入研究这些方程。输出层肛中的误差方程式:(BP1)dCj=dajaf(zJ)(BP1)给出了皿的分量。这是一个非常自然的表达。右边的第一项dC/daL是对jth输出激活的函数,代价的变化。例如,如果C不太依赖于某个特定的输出神经元j,那么时的值将很。馐俏颐撬谕。右边的第二项E(zj)是激活函数在zL的导数
14、。注意,(BP1)中的所有内容都很容易计算。特别是,我们计算zf,计算E(zj)只是简单的求导。当然,dC/daL的确切形式取决于代价函数的形式。但是,如果代价函数已知,则计算dC/daL应该不会有什么问题。例如,如果我们使用二次代价函数C=2工j(yj-aL)2,容易得出dC/daLj=(aLj-yj),这显然是很容易计算的。式(BP1)是L的分量式表达式。这是一个非:玫谋泶锸,但不是反向传播所需要的基于矩阵的形式。然而,我们很容易将这个方程改写为基于矩阵的形式,如:dL=Vcpa(zL)(BP1a)在这里,NaC是一个矢量,其分量是偏导数dC/Oaf。你可以将NaC看作是C相对于输出激活
15、的变化率。显然(BP1a)和(BP1)是等价的,因此从现在起,我们将交替使用(BP1)。例如,在二次代价的情况下,得到NaC=(aL-y)。因此,完全基于矩阵的(BP1)就变成这种形式:6L=(aL一y)a(zL)(30)如你所见,此表达式中的所有内容都有一个很好的矢量形式,并且可以使用诸如Numpy之类的库轻松地进行计算。关于下一层l+1的误差&的方程是&=(wi+i)T&i+i)OE(Z)(BP2)其中,(wl+1)T是(l+1)th层的权重矩阵wl+1的转置。这个方程看起来很复杂,但每个元素都很好解释。假设我们知道(l+1)th层的误差&l+1。当我们应用转置权重矩阵(wl+1)T时,可
16、以直观地认为:这是在网络中反向移动误差,使我们可以对第l层输出处的误差进行某种衡量。然后,我们取Hadamard积刁(刃)。这就通过层l中的激活函数反向移动误差,从而使我们得出层l的加权输入中的误差&。将(BP2)与(BP1)相结合,我们可以计算网络中任何层的误差&1。首先使用(BP1)来计算皿,再应用方程(BP2)来计算肛-1,然后再次使用方程(BP2)来计算口-2,在网络中依此类推。与网络中任何偏置相关的、代价变化率的方程是:(BP3)也就是说,误差&正好等于变化率dC/dbj。这是一个好消息,因为(BP1)和(BP2)已经告诉我们如何计算&。我们可以将(BP3)简写为:dCdb=&(31
17、)我们知道&和偏差b是在同一个神经元上评估的。与网络中任何权重相关的、代价变化率的方程是:dCdWjk=a计&(BP4)下所示:dC(32)dw=ain&out这告诉我们如何计算与&和al-1相关的偏导数dC/dwjk,而我们已经知道如何计算&和al-1了。可以用角标较少的符号改写方程,如其中,ain是对权重w的神经元输入的激活,&out是权重w的神经元输出的误差。放大查看权重w,以及由该权重连接的两个神经元,我们可以将其描述为:方程(32)的一个很好的结果是:当激活ain很小的时候,也就是ain0,梯度项dC/dw也将趋于很小。在这种情况下,权重学习缓慢,这意味着它在梯度下降过程中变化不大。
18、换句话说,(BP4)的一个结果是低激活神经元输出的权重学习缓慢。从(BP1)到(BP4)中可以得到其他关于这些方面的理解。我们首先着眼于输出层。考虑一下(BP1)中的E(zjL),可以使用S型函数。当(zjj)大约为0或1时,函数变得非常平坦。当这种情况发生时,我们就得到0。因此,要吸取的教训是:如果输出神经元是低激活度(0或高激活度(D,最后一层中的权重将缓慢学习。在这种情况下,通常会说:输出神经元已经饱和,因此权重停止学习(或学习缓慢)。类似的情况也适用于输出神经元的偏置。我们可以对早期的层获得类似的结果。特别要注意(BP2)中的,(刃)项。这意味着:如果神经元接近饱和,盼可能会变小。这也
19、意味着:输入到饱和神经元的任何权重都将学习缓慢(如果(wl+1)Tdl+1有足够大的项来补偿8(zj)的小值,这个推理就不成立了。但我说的是总体趋势)。综上所述,我们已经了解到:如果输入神经元的激活度很低,或者输出神经元已经饱和,也就是说,无论是高激活还是低激活,权重学习都会很慢。这些观察结果都不太令人惊讶。尽管如此,它们仍有助于改进我们的心理模型。这些模型反应了神经网络学习过程中所发生的情况。此外,我们可以优化这种推理方式。这四个基本方程对任何激活函数都适用,而不仅仅是标准的S型函数。记住这四个方程(BP1)-(BP4)可以帮助解释:为什么要尝试这样的修改?以及,它们会产生什么样的影响?SumiDHiy:theequationsofion(BP1)申=(出+1尸甲+1)时)(BP2)龍=碍(BP3)霁=rRPdi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
kok电子竞技:最新文档
- 基础护理微课比赛
- 2025届浙江省台州市温岭市书生中学高考化学二模试卷含解析
- 2025会考生物复习专项九社会热点与科学前沿练习课件(共18张)
- 2025年会考生物学专题练习第22讲 传染病和免疫 (含答案)
- 全媒体运营师的品牌策略试题及答案
- 2023年江苏省宿迁市教师招聘《教育理论基础》试题及答案
- 2024秋新沪粤kok电子竞技物理八kok电子竞技上册课件 3.7 眼睛与光学仪器
- 网络工程师技术实习试题及答案
- 中职生国防教育
- 贵州国企招聘2024镇远金晶现代咨询服务有限公司招聘笔试参考题库附带答案详解
- LY/T 2518-2015喷雾防治林业有害生物技术规程
- GB/T 23119-2017家用和类似用途电器性能测试用水
- GB/T 2007.7-1987散装矿产品取样、制样通则粒度测定方法手工筛分法
- GB/T 20001.6-2017标准编写规则第6部分:规程标准
- GB/T 12970.2-2009电工软铜绞线第2部分:软铜绞线
- 涂布调试技能等级考核笔试试题(O4-O5)附答案
- FZ/T 24003-2006粗梳毛织品
- 2018年广州城市职业学院自主招生
- 五kok电子竞技语文下册教学设计 第四单元-“家国情怀”大单元整体学习设计 部编kok电子竞技
- 无底薪劳动合同范本(3篇)
- GCP原则及相关法律法规课件
评论
0/150
提交评论