【2018年整理】反向传播神经网络

上传人:ji****72 文档编号:48677297 上传时间:2018-07-19 格式:PPT 页数:37 大小:296.50KB
返回 下载 相关 举报
【2018年整理】反向传播神经网络_第1页
第1页 / 共37页
【2018年整理】反向传播神经网络_第2页
第2页 / 共37页
【2018年整理】反向传播神经网络_第3页
第3页 / 共37页
【2018年整理】反向传播神经网络_第4页
第4页 / 共37页
【2018年整理】反向传播神经网络_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《【2018年整理】反向传播神经网络》由会员分享,可在线阅读,更多相关《【2018年整理】反向传播神经网络(37页珍藏版)》请在金锄头文库上搜索。

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

2、进行分 类;4)数据压缩:减少输出矢量维数以便于传输或 存储。 61 BP网络模型与结构 一个具有r个输入和一个隐含层的神经网络模型结构 感知器和自适应线性元件的主要差别在激活函数 上:前者是二值型的,后者是线性的。 BP网络具有一层或多层隐含层,除了在多层网络 上与前面已介绍过的模型有不同外,其主要差 别也表现在激活函数上。BP网络的激活函数必须是处处可微的,所以它就 不能采用二值型的阀值函数0,1或符号函数 1,1,BP网络经常使用的是S型的对数或 正切激活函数和线性函数。 图6. 2 BP网络S型激活函数 因为S型函数具有非线性放大系数功能,它可以把输入 从负无穷大到正无穷大的信号,变换

3、成-1到l之间输出 ,对较大的输入信号,放大系数较小;而对较小的输 入信号,放大系数则较大,所以采用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算法是由两部分组成:信息的正向传递与误差 的反向传播。在正向传播过程中,输入信息从输入经隐含层逐 层计算传向输出层,每一层神经元的状态只影 响下一层神经元的状态。如果在输出层没有得到期望的输出,则计算输出 层的误差变化值,然后转向反向传播,通过网 络将误差

5、信号沿原来的连接通路反传回来修改 各层神经元的权值直至达到期望目标。 图63 具有一个隐含层的简化网络图 设输入为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.5)(6.6) (6.7) (2)隐含层权值变化 对从

6、第j个输入到第i个输出的权值,有: 其中: 同理可得: (6.8) (6.9) (6.10) 通过MATLAB的实现过程: 1)对于(61)式所表示的隐含层输出,若采用对数S型激 活函数,则用函数logsig.m;若采用双曲正切S型激活 函数,则用函数tansig.m; 2)对于(62)式所表示的输出层输出,若采用线性激活函 数有purelin.m与之对应; 3)对于(63)式所表示的误差函数,可用函数sumsqr.m求 之; 4)有learnbp.m函数专门求(64)、(67)、(68)和(6 10)式所表示的输出层以及隐含层中权值与偏差的变化 量;5)由(6.5)和(6.9)式所表示的误差

7、的变化有函数deltalin.m 、deltatan.m、deltalog.m来解决。它们分别用于线性层 、双曲正切层和对数层。 623 误差反向传播的流程图与图形解释 误差反向传播过程实际上是通过计算输出层的误差ek ,然后将其与输出层激活函数的一阶导数f2相乘来求 得ki。 由于隐含层中没有直接给出目标矢量,所以利用输出 层的ki反向传递来求出隐含层权值的变化量w2ki。然 后计算并同样通过将ei与该层激活函数的一阶导数f1相乘, 而求得ij,以此求出前层权值的变化量w1ij。如果 前面还有隐含层,沿用上述同样方法依此类推,一 直将输出误差ek一层一层的反推算到第一层为止。 图64 误差反

8、向传播法的图形解释 6.3 BP网络的训练过程 为了训练一个BP网络,需要计算网络加权输入矢 量以及网络输出和误差矢量,然后求得误差平 方和。当所训练矢量的误差平方和小于误差目标,训练 则停止,否则在输出层计算误差变化,且采用 反向传播学习规则来调整权值,并重复此过程 。当网络完成训练后,对网络输入一个不是训练集 合中的矢量,网络将以泛化方式给出输出结果 。 为了能够较好地掌握BP网络的训练过程,我们用 两层网络为例来叙述BP网络的训练步骤。 1)用小的随机数对每一层的权值W和偏差B初始 化,以保证网络不被大的加权输入饱和;并进 行以下参数的设定或初始化:a)期望误差最小值error_goal

9、;b)最大循环次数max_epoch;c)修正权值的学习速率1r,一般情况下k0 0l07;d)从1开始的循环训练:for epoch1: max_epoch;2)计算网络各层输出矢量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;

10、W2W2十dW2;B2B2十dB2;4)再次计算权值修正后误差平方和: SSEsumsqr(T-purelin(W2*tansig(W1*P,B1), B2); 5)检查SSE是否小于err_goal,若是,训练结束; 否则继续。以上所有的学习规则与训练的全过程,仍然可以 用函数trainbp.m来完成。它的使用同样只需要 定义有关参数:显示间隔次数,最大循环次数 ,目标误差,以及学习速率,而调用后返回训 练后权值,循环总数和最终误差: TPdisp_freq max_epoch err_goal 1r; W,B,epochs,errorstrainbp(W,B,F,P ,T,TP); 例61

11、用于函数逼近的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.393 -0.1647 0.0988 0.3072 0.396 0.3449 0.1816 -0.0312 -0.2183 -0.3201;比较trainbpx和trainbp的速度差别。 exc4.m泛化性能:使网络平滑地学习函数,使网络能够 合理地响应被训练以外的输入。 要注意的是,泛化性能只对被训练的输入输出 对最大值范围内的数据有效,即网络具有内插 值特性,不具有外插值性。超出最大训练

12、值的 输入必将产生大的输出误差。 64 BP网络的设计 641网络的层数 理论上已经证明:具有偏差和至少一个S型隐含层 加上一个线性输出层的网络,能够逼近任何有 理函数。 增加层数主要可以更进一步的降低误差,提高精 度,但同时也使网络复杂化,从而增加了网络 权值的训练时间。 一般情况下,应优先考虑增加隐含层中的神经元 数。 能不能仅用具有非线性激活函数的单层网络来解 决问题呢?结论是:没有必要或效果不好。 642 隐含层的神经元数网络训练精度的提高,可以通过采用一个隐含层 ,而增加其神经元数的方法来获得。这在结构 实现上,要比增加更多的隐含层要简单得多。 在具体设计时,比较实际的做法是通过对不

13、同神 经元数进行训练对比,然后适当地加上一点余 量。 643初始权值的选取 一般取初始权值在(1,1)之间的随机数。威得罗等人在分析了两层网络是如何对一个函数 进行训练后,提出一种选定初始权值的策略。在MATLAB工具箱中可采用函数nwlog.m或 nwtan.m来初始化隐含层权值W1和B1。其方法仅需要使用在第一隐含层的初始值的选取 上,后面层的初始值仍然采用随机取数。 644 学习速率学习速率决定每一次循环训练中所产生的权值变 化量。大的学习速率可能导致系统的不稳定。 小的学习速率导致较长的训练时间,可能收敛很 慢,不过能保证网络的误差值不跳出误差表面 的低谷而最终趋于最小误差值。所以在一

14、般情况下,倾向于选取较小的学习速率 以保证系统的稳定性。学习速率的选取范围在 00108之间。 645 期望误差的选取在设计网络的训练过程中,期望误差值也应当通 过对比训练后确定一个合适的值。这个所谓的“合适”,是相对于所需要的隐含层的 节点数来确定,因为较小的期望误差值是要靠 增加隐含层的节点,以及训练时间来获得的。一般情况下,作为对比,可以同时对两个不同期 望误差值的网络进行训练,最后通过综合因素 的考虑来确定采用其中一个网络。 65 限制与不足 (1)需要较长的训练时间 (2)完全不能训练 通常为了避免这种现象的发生,一是选取较小的 初始权值,二是采用较小的学习速率,但这又 增加了训练时

15、间。 (3)局部极小值 BP算法可以使网络权值收敛到一个解,但它并不 能保证所求为误差超平面的全局最小解,很可 能是一个局部极小解。 66 反向传播法的改进方法 主要目标是为了加快训练速度,避免陷入局部极 小值。661 附加动量法 附加动量法使网络在修正其权值时,不仅考虑误 差在梯度上的作用,而且考虑在误差曲面上变 化趋势的影响,其作用如同一个低通滤波器, 它允许网络忽略网络上的微小变化特性。 利用附加动量的作用则有可能滑过局部极小值。 该方法是在反向传播法的基础上在每一个权值的变化 上加上一项正比于前次权值变化量的值,并根据反向 传播法来产生新的权值变化。 带有附加动量因子的权值调节公式为:

16、 其中k为训练次数,mc为动量因子,一般取095左右。 附加动量法的实质是将最后一次权值变化的影响,通过 一个动量因子来传递。当动量因子取值为零时,权值的 变化仅是根据梯度下降法产生;当动量因子取值为1时 ,新的权值变化则是设置为最后一次权值的变化,而依 梯度法产生的变化部分则被忽略掉了。 在MATLAB工具箱中,带有动量因子的权值修正法是 用函数learnbpm.m来实现的。 trainbpm.m可以训练一层直至三层的带有附加动量因 子的反向传播网络。 下面是对单层网络使用函数trainbpm.m的情形: W,B,epochs,errorstrainbpm(W,B,F,P, T,TP); 662 误差函数的改进 包穆(Baum)等人于1988年提出一种误差函数为: 不会产生不能完

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号