《反向传播神经网络》ppt课件_第1页
《反向传播神经网络》ppt课件_第2页
《反向传播神经网络》ppt课件_第3页
《反向传播神经网络》ppt课件_第4页
《反向传播神经网络》ppt课件_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1、第06讲 反向传播网络 反向传播网络(BackPropagation Network,简称BP网络)是将WH学习规那么普通化,对非线性可微分函数进展权值训练的多层网络。 BP网络是一种多层前向反响神经网络,其神经元的变换函数是S型函数,因此输出量为0到1之间的延续量,它可以实现从输入到输出的恣意的非线性映射。由于其权值的调整采用反向传播Backpropagation的学习算法,因此被称为BP网络。 BP网络主要用于:1)函数逼近:用输入矢量和相应的输出矢量训练一个网络逼近个函数;2)方式识别:用一个特定的输出矢量将它与输入矢量联络起来;3)分类:把输入矢量以所定义的适宜方式进展分类; 4)数据

2、紧缩:减少输出矢量维数以便于传输或存储。 61 BP网络模型与构造 一个具有r个输入和一个隐含层的神经网络模型构造 感知器和自顺应线性元件的主要差别在激活函数上:前者是二值型的,后者是线性的。 BP网络具有一层或多层隐含层,除了在多层网络上与前面已引见过的模型有不同外,其主要差别也表如今激活函数上。BP网络的激活函数必需是处处可微的,所以它就不能采用二值型的阀值函数0,1或符号函数1,1,BP网络经常运用的是S型的对数或正切激活函数和线性函数。 图6. 2 BP网络S型激活函数 由于S型函数具有非线性放大系数功能,它可以把输入从负无穷大到正无穷大的信号,变换成-1到l之间输出,对较大的输入信号

3、,放大系数较小;而对较小的输入信号,放大系数那么较大,所以采用S型激活函数可以去处置和逼近非线性的输入/输出关系。 只需当希望对网络的输出进展限制,如限制在0和1之间,那么在输出层该当包含S型激活函数,在普通情况下,均是在隐含层采用S型激活函数,而输出层采用线性激活函数。BP网络的特点:1、输入和输出是并行的模拟量;2、网络的输入输出关系是各层衔接的权因子决议,没有固定的算法;3、权因子是经过学习信号调理的,这样学习越多,网络越聪明;4、隐含层越多,网络输出精度越高,且个别权因子的损坏不会对网络输出产生大的影响62 BP学习规那么 BP算法属于算法,是一种监视式的学习算法。 其主要思想为:对于

4、q个输入学习样本:P1,P2,Pq,知与其对应的输出样本为:T1,T2,Tq。学习的目的是用网络的实践输出A1,A2,Aq,与目的矢量T1,T2,Tq,之间的误差来修正其权值,使Al,(ll,2,q)与期望的Tl尽能够地接近;即:使网络输出层的误差平方和到达最小。 BP算法是由两部分组成:信息的正向传送与误差的反向传播。在正向传播过程中,输入信息从输入经隐含层逐层计算传向输出层,每一层神经元的形状只影响下一层神经元的形状。假设在输出层没有得到期望的输出,那么计算输出层的误差变化值,然后转向反向传播,经过网络将误差信号沿原来的衔接通路反传回来修正各层神经元的权值直至到达期望目的。 图63 具有一

5、个隐含层的简化网络图 设输入为P,输入神经元有r个,隐含层内有s1个神经元,激活函数为F1,输出层内有s2个神经元,对应的激活函数为F2,输出为A,目的矢量为T。 621信息的正向传送1)隐含层中第i个神经元的输出为: 2)输出层第k个神经元的输出为: 3)定义误差函数为: (6.1)6.2 6.3 622利用梯度下降法求权值变化及误差的反向传播 (1)输出层的权值变化对从第i个输入到第k个输出的权值有:其中: 同理可得: 6.4 6.56.6 6.7 (2)隐含层权值变化 对从第j个输入到第i个输出的权值,有: 其中: 同理可得: 6.8 6.9 6.10 经过MATLAB的实现过程:1)对

6、于(61)式所表示的隐含层输出,假设采用对数S型激活函数,那么用函数logsig.m;假设采用双曲正切S型激活函数,那么用函数tansig.m;2)对于(62)式所表示的输出层输出,假设采用线性激活函数有purelin.m与之对应;3)对于(63)式所表示的误差函数,可用函数sumsqr.m求之;4)有learnbp.m函数专门求(64)、(67)、(68)和(610)式所表示的输出层以及隐含层中权值与偏向的变化量; 5)由(6.5)和(6.9)式所表示的误差的变化有函数deltalin.m、deltatan.m、deltalog.m来处理。它们分别用于线性层、双曲正切层和对数层。 623 误

7、差反向传播的流程图与图形解释 误差反向传播过程实践上是经过计算输出层的误差ek,然后将其与输出层激活函数的一阶导数f2相乘来求得ki。由于隐含层中没有直接给出目的矢量,所以利用输出层的ki反向传送来求出隐含层权值的变化量w2ki。然后计算并同样经过将ei与该层激活函数的一阶导数f1相乘,而求得ij,以此求出前层权值的变化量w1ij。假设前面还有隐含层,沿用上述同样方法依此类推,不断将输出误差ek一层一层的反推算到第一层为止。 图64 误差反向传播法的图形解释 6.3 BP网络的训练过程 为了训练一个BP网络,需求计算网络加权输入矢量以及网络输出和误差矢量,然后求得误差平方和。当所训练矢量的误差

8、平方和小于误差目的,训练那么停顿,否那么在输出层计算误差变化,且采用反向传播学习规那么来调整权值,并反复此过程。当网络完成训练后,对网络输入一个不是训练集合中的矢量,网络将以泛化方式给出输出结果。 为了可以较好地掌握BP网络的训练过程,我们用两层网络为例来表达BP网络的训练步骤。 1)用小的随机数对每一层的权值W和偏向B初始化,以保证网络不被大的加权输入饱和;并进展以下参数的设定或初始化: a)期望误差最小值error_goal; b)最大循环次数max_epoch; c)修正权值的学习速率1r,普通情况下k00l07; d)从1开场的循环训练:for epoch1:max_epoch;2)计

9、算网络各层输出矢量A1和A2以及网络误差E:A1tansig(W1*P,B1);A2purelin(W2*A1,B2);ET-A;3)计算各层反传的误差变化D2和D1并计算各层权值的修正值以及新权值:D2deltalin(A2,E);D1deltatan(A1,D2,W2);dlWl,dBllearnbp(P,D1,lr);dW2,dB21earnbp(A1,D2,1r);W1W1十dW1;B1B1十dBl;W2W2十dW2;B2B2十dB2;4)再次计算权值修正后误差平方和:SSEsumsqr(T-purelin(W2*tansig(W1*P,B1),B2);5)检查SSE能否小于err_g

10、oal,假设是,训练终了;否那么继续。以上一切的学习规那么与训练的全过程,依然可以用函数trainbp.m来完成。它的运用同样只需求定义有关参数:显示间隔次数,最大循环次数,目的误差,以及学习速率,而调用后前往训练后权值,循环总数和最终误差: TPdisp_freq max_epoch err_goal 1r;W,B,epochs,errorstrainbp(W,B,F,P,T,TP); 例61用于函数逼近的BP网络的设计。P=-1:0.1:1;T=-0.96 0.577 -0.0729 0.377 0.641 0.66 0.461 0.1336 -0.201 -0.434 -0.5 -0.3

11、93 -0.1647 0.0988 0.3072 0.396 0.3449 0.1816 -0.0312 -0.2183 -0.3201;比较trainbpx和trainbp的速度差别。exc4.m泛化性能:使网络平滑地学习函数,使网络可以合理地呼应被训练以外的输入。 要留意的是,泛化性能只对被训练的输入输出对最大值范围内的数据有效,即网络具有内插值特性,不具有外插值性。超出最大训练值的输入必将产生大的输出误差。 64 BP网络的设计 641网络的层数实际上曾经证明:具有偏向和至少一个S型隐含层加上一个线性输出层的网络,可以逼近任何有理函数。 添加层数主要可以更进一步的降低误差,提高精度,但同

12、时也使网络复杂化,从而添加了网络权值的训练时间。 普通情况下,应优先思索添加隐含层中的神经元数。 能不能仅器具有非线性激活函数的单层网络来处理问题呢?结论是:没有必要或效果不好。 642 隐含层的神经元数网络训练精度的提高,可以经过采用一个隐含层,而添加其神经元数的方法来获得。这在构造实现上,要比添加更多的隐含层要简单得多。 在详细设计时,比较实践的做法是经过对不同神经元数进展训练对比,然后适当地加上一点余量。 643初始权值的选取普通取初始权值在(1,1)之间的随机数。威得罗等人在分析了两层网络是如何对一个函数进展训练后,提出一种选定初始权值的战略。在MATLAB工具箱中可采用函数nwlog

13、.m或nwtan.m来初始化隐含层权值W1和B1。其方法仅需求运用在第一隐含层的初始值的选取上,后面层的初始值依然采用随机取数。 644 学习速率学习速率决议每一次循环训练中所产生的权值变化量。大的学习速率能够导致系统的不稳定。小的学习速率导致较长的训练时间,能够收敛很慢,不过能保证网络的误差值不跳出误差外表的低谷而最终趋于最小误差值。所以在普通情况下,倾向于选取较小的学习速率以保证系统的稳定性。学习速率的选取范围在00108之间。 645 期望误差的选取在设计网络的训练过程中,期望误差值也该当经过对比训练后确定一个适宜的值。这个所谓的“适宜,是相对于所需求的隐含层的节点数来确定,由于较小的期

14、望误差值是要靠添加隐含层的节点,以及训练时间来获得的。普通情况下,作为对比,可以同时对两个不同期望误差值的网络进展训练,最后经过综合要素的思索来确定采用其中一个网络。 65 限制与缺乏 (1)需求较长的训练时间 (2)完全不能训练 通常为了防止这种景象的发生,一是选取较小的初始权值,二是采用较小的学习速率,但这又添加了训练时间。 (3)部分极小值 BP算法可以使网络权值收敛到一个解,但它并不能保证所求为误差超平面的全局最小解,很能够是一个部分极小解。 66 反向传播法的改良方法 主要目的是为了加快训练速度,防止堕入部分极小值。661 附加动量法 附加动量法使网络在修正其权值时,不仅思索误差在梯

15、度上的作用,而且思索在误差曲面上变化趋势的影响,其作用好像一个低通滤波器,它允许网络忽略网络上的微小变化特性。 利用附加动量的作用那么有能够滑过部分极小值。 该方法是在反向传播法的根底上在每一个权值的变化上加上一项正比于前次权值变化量的值,并根据反向传播法来产生新的权值变化。带有附加动量因子的权值调理公式为: 其中k为训练次数,mc为动量因子,普通取095左右。 附加动量法的本质是将最后一次权值变化的影响,经过一个动量因子来传送。当动量因子取值为零时,权值的变化仅是根据梯度下降法产生;当动量因子取值为1时,新的权值变化那么是设置为最后一次权值的变化,而依梯度法产生的变化部分那么被忽略掉了。 在

16、MATLAB工具箱中,带有动量因子的权值修正法是用函数learnbpm.m来实现的。 trainbpm.m可以训练一层直至三层的带有附加动量因子的反向传播网络。 下面是对单层网络运用函数trainbpm.m的情形:W,B,epochs,errorstrainbpm(W,B,F,P,T,TP); 662 误差函数的改良 包穆(Baum)等人于1988年提出一种误差函数为: 不会产生不能完全训练的麻木景象。 663 自顺应学习速率 通常调理学习速率的准那么是:检查权值的修正值能否真正降低了误差函数,假设确实如此,那么阐明所选取的学习速率值小了,可以对其添加一个量;假设不是这样,而产生了过调,那么就

17、应该减小学习速率的值。下式给出了一种自顺应学习速率的调整公式:MATLAB工具箱中带有自顺应学习速率进展反向传播训练的函数为:trainbpa.m。它可以训练直至三层网络。运用方法为:W,B,epochs,TEtrainbpa(W,B,F,P,T,TP)可以将动量法和自顺应学习速率结合起来以利用两方面的优点。这个技术已编入了函数trainbpx.m之中。这个函数的调用和其他函数一样,只是需求更多的初始参数而已:TPdisp_freq max_epoch error_goal lr 1r_inc 1r_dec mom_const err_ratio;W,B,epochs,error; lrtrainbpx(W,B,F,P,T,TP)47 本章小结 1)反向传播法可以用来训练具有可微激活函数的多层前向网络以进展函数逼近,方式分类等任务;2)反向传播网络的构造不完全受所要处理的问题所限制。网络的输入神经元数目及输出层神经元的数目是由问题的要求所决议的,而输入和输出层之间的隐含层数以及每层的神经元数是由设计者来决议的;3)已证明,两层S型线性网络,假设S型层有足够的神经元,那么可以训练出

温馨提示

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

评论

0/150

提交评论