文档详情

反向传播网络

工****
实名认证
店铺
DOC
542KB
约11页
文档ID:415036244
反向传播网络_第1页
1/11

反向传播网络原理及其应用1. 引言反向传播网络( Back-Propagation Network, 简称 BP网络)是将 W-H学习规则一般化,对非线性可微分函数进行权值训练的多层网络 它是一种多层前向神经网络, 包括输入层、隐层、 输出层, 其中隐层可以是一层,也可以是多层其神经元的变换函数是 S 型函数, 因此输出量为 0 到 1 之间的连续量,它可以实现从输入到输出的任意非线性映射BPNN前后层之前实现全连接,每层神经元直接无连接2. 用途及限制BP 网络主要用于:1:函数逼近:用输入矢量和输出矢量训练一个网络逼近一个函数2:模式识别:用一个特定的输出矢量将它与输入矢量联系起来3:分类:把输入矢量以所定义的合适方式进行分类4:数据压缩:减少输出矢量维数以便于传输或存储BP 网络的产生要归功于 BP算法的获得 BP算法要属于δ算法 它是一种监督式的学习算法它的主要思想是:对于 q 个输出学习样本: P1, P2, , Pq,已知与其对应的输出样本q q q是: T1, , T 学习的目的是用网络的实际输出 A1, A 与其目标矢量 T1, ,T 之间的误差来修改其权值,使使 Ae,(e=l,2, ,q) 与期望的 Te 尽可能地接近 ; ;即:使网络输出层的误差平方和达到最小。

它是通过连续不断地在相对于误差函数斜率下降的方向上计算网络权值和偏差的变化而逐渐逼近目标的每一次权值和偏差的变化都与网络误差的影响成正比,并以反向传播的方式, 通过网络将输出层的误差信号, 沿原来的连接通路反传到每一层来修改前面各层神经元的权值直至达到期望目标虽然反向传播法得到广泛的应用 , 但这也存在自身的限制与不足 , 主要表现在以下几点 :()l 需要较长的训练时间对于一些复杂的问题 ,BP 算法可能要进行几小时甚至更长的时间的训练 这主要是由于学习速率太小所造成的2) 完全不能训练这主要表现在网络出现的麻痹现象上 在网络的训练过程中 , 当其权值调得过大 , 可能使得所有的或大部分神经元的加权输入和过大 , 这使得激活函数的输入工作在 S 型转移函数的饱和区 , 从而导致其导数非常小而使得对网络权值的调节过程几乎停顿下来3) 局部极小值BP 算法可以使网络权值收敛到一个解 , 但它并不能保证所求为误差超平面的全局最小解 ,很可能是一个局部极小解 这是因为 BP算法采用的是梯度下降法 , 训练是从某一起始点沿误差函数的斜面逐渐达到误差的最小值 对于复杂的网络 , 其误差函数为多维空间的曲面 , 就像一个碗 , 其碗底是最小值点。

但是这个碗的表面是凹凸不平的 , 因而在对其训练过程中 , 可能陷入某一小谷区 , 而这一个谷区产生的是一个局部极小值由此点向各方向变化均使误差增加, 以致于使训练无法逃出这一局部极小如果对训练结果不满意的话 , 采用多层网络和较多的神经元可能得到更好的结果然而增加神经元和层数 , 也增加了网络的复杂性及训练时间在一定情况下可能是不明智的可代替的办法是选用几组不同的初始条件对网络进行训练 , 从中挑选最好结果为了避免发生麻痹现象 , 一是选取较小的初始权值 , 二是采用较小的学习速率 , 但这又增加了训练时问采用较大的学习速率 , 则可能引起网络训练的不稳定等问题 由于在人工神经网络中 , 反向传播法占据了非常重要的地位 , 所以近十几年来 , 许多研究人员对其做了深入的研究 , 提出了很多改进的方法主要目标是为了加快训练速度 , 避免陷入局部极小值 和改善其它能力3. 原理及方法反向传播网络其实是误差的反传与误差的反向传播算法的学习过程,由两个过程组成: 信息正向的传播和误差反向的传播,输入层的各神经元要负责接收来自外界输入的所有信息,并传递到中间层的各神经元;中间层就是内部的信息处理层,对信息变换进行负责, 以信息变化能力的需求为依据,设计为单隐层或多隐层结构的中间层;最后一个隐层的传递各神经元的信息到输出层, 经过进一步的处理后, 完成了一次正向传播中的处理过程,再由输出层向外界输出信息的处理结果。

正向传播和误差反向周而复始的传播信息的过程,是各层的权值不断进行调整的过程,也是神经晚了进行学习训练的一个过程,这一过程一直进行, 直到网络输出的误差减少到能被接收的程度也可以达到预先设定到的学习次数网络是由于其连接权的调整采用的是反向传播的学习算法而得名的网络学习是典型的有导师学习, 它通过一个使代价函数最小化过程来完成从输入到输出的映射,通常代价函数定义为所有输入模式上输出层单元希望输出与实际输出的误差平方和图2所示为 3层BP网络算法示意图对于 BP网络,当给定网络的一个输入模式时,它由输入层单元传到隐层单元,经隐层单元逐层处理后再送到输出层单元,由输出层单元处理后产生一个输出模式,该过程称为前向传播 如果输出响应与期望输出模式有误差,不满足要求, 那么就转入误差后向传播, 将误差值沿连接通路逐层传送并修正各层连接权值对于给定的一组训练模式,不断用一个个训练模式训练网络,重复前向传播和后向传播过程,当各个训练模式都满足需求时,就说明 BP 网络训练好了 1)附加动量法附加动量法使网络在修正其权值时, 不仅考虑误差在梯度上的作用, 而且考虑在误差曲面上变化趋势的影响 , 其作用如同一个低通滤波器, 它允许网络忽略网络上的微小变化特性。

在没有附加动量的作用下, 网络可能陷入浅的局部极小值, 利用附加动量的作用则有可能滑过这些极小值 该方法是在反向传播法的基础上在每一个权值的变化上加上一项正比于前次权值变化量的值 , 并根据反向传播法来产生新的权值变化带有附加动量因子的权值调节公式为 :△ wij(k+l)=(l 一 mc)n 尽 Pj+mc△ wij( 卜 )△ b*(k+l)=(l一 me)n6 +mc△ b`(k)其中 k 为训练次数 ,mc 为动量因子 , 一般取 0.95 左右附加动量法的实质是将最后一次权值变化的影响 , 通过一个动量因子来传递 当动量因子取值为零时 , 权值的变化仅是根据梯度下降法产生 ; 当动量因子取值为 1 时 , 新的权值变化则是设置为最后一次权值的变化 , 而依梯度法产生的变化部分则被忽略掉了 以此方式 , 当增加了动量项后 , 促使权值的调节向着误差曲面底部的平均方向变化 , 当网络权值进入误差曲面底部的平坦区时 ,61 将变得很小 , 于是 ,△wijk(+l) 勺△ wijk(), 从而防止了△ wij 二 0 的出现 , 有助于使网络从误差曲面的局部极小值中跳出。

根据附加动量法的设计原则 , 当修正的权值在误差中导致太大的增长结果时 , 新的权值应被取消而不被采用 , 并使动量作用停止下来 , 以使网络不进入较大误差曲面 ; 当新的误差变化率超过其旧值一个事先设定的最大误差变化率时 , 也得取消所计算的权值变化其最大误差变化率可以是任何大于或等于 1 的值典型的值取 1.04 所以在进行附加动量法的训练程序设计时 , 必须加进条件判断以正确使用其权值修正公式训练程序中对采用动量法的判断条件为 :其中 ,SEE 为网络的输出误差和此训练方法也存在缺点它对训练的初始值有要求, 必须使其值在误差曲线上的位置所处误差下降方向与误差最小值的运动方向一致如果初始误差点的斜率下降方向与通向最小值的方向相反, 则附加动量法失效训练结果将同样落入局部极小值而不能自拔初始值选得太靠近局部极小值时也不行, 所以建议多用几个初始值先粗略训练几次以找到合适的初始位置另外, 学习速率太小也不行, 比如对于本例题, 选择l=r.001, 网络则没有足够的能量跳过低“谷” 2)自适应学习速率对于一个特定的问题, 要选择适当的学习速率不是一件容易的事情通常是凭经验或实验获取 , 但即使这样 , 对训练初期功效较好的学习速率, 不见得对后来的训练合适。

为了解决这一问题 , 人们自然会想到在训练过程中 ,自动调整学习速率通常调节学习速率的准则是: 检查权值的修正值是否真正降低了误差函数, 如果确实如此 , 则说明所选取的学习速率值小了,可以对其增加一个量; 若不是这样 , 而产生了过调 , 那么就应该减小学习速率的值与采用附加动量法时的判断条件相仿, 当新误差超过旧误差一定的倍数时, 学习速率将减少 ; 否则其学习速率保持不变 ; 当新误差小于旧误差时, 学习速率将被增加 此方法可以保证网络总是以最大的可接受的学习速率进行训练当一个较大的学习速率仍能够使网络稳定学习, 使其误差继续下降 , 则增加学习速率 , 使其以更大的学习速率进行学习一旦学习速率调得过大, 而不能保证误差继续减少, 则减少学习速率直到使其学习过程稳定为止下式给出了一种自适应学习速率的调整公式:同样 ,SEE 为网络输出误差和初始学习速率 n(0) 的选取范围可以有很大的随意性在 BP网络的实际设计和训练中 , 总是要加进上述两种改进方法中的一种 , 或两种同时应用单纯BP 法的使用几乎不再采用加之在人们常用的 MATLAB环境下的神经网络工具箱中 , 己有现成的带有动量因子的权值 BP 修正法的子程序 elmaPb.mm、带有自适应学习速率进行反向传播训练的函数 atrinbPa.m 以及具有动量法和自适应学习速率相结合的训练程序 atrinbPxm 。

利用它们均可以训练直至三层网络使用方法比如 :}WI,BI,WZ,BZ,W3,B3,Peochs,TE]=廿 ainbPa(WI,BI, 夕 FI,,WZ,BZ, 乍 2,,W3, B3,`F3,,P,T,TP)在行矢量 TP 中的参数依次为 : 显示频率 dispesfreq 、最大训练次数 mxa 一 poch、目标误差 err-goal 、初始学习速率 lr 、递增乘因子 1r_inc 、递减乘因子 lr_dec 和误差速率err_ratio 函数在训练结束后返回最终权值 Wl、 WZ、W3和偏差 Bl 、BZ、 B3, 训练网络所用次数 Peochs和训练误。

下载提示
相似文档
正为您匹配相似的精品文档