BP神经网络综述_第1页
BP神经网络综述_第2页
BP神经网络综述_第3页
BP神经网络综述_第4页
BP神经网络综述_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、BP神经网络的优化算法综述姓名:刘彪学号:南京理工大学摘 要:本文对于BP算法存在的缺陷,简介了几种BP神经网络优化算法的基本原理,并比较了这几种优化算法的优缺点,给出了它们可以应用的场合。关键词:BP神经网络,优化算法1. 引言人们常把误差反向传播算法的多层前馈网络直接称为BP网络。BP网络学习训练中采用有导师学习方式,在调整权值过程中采用梯度下降技术,使网络总误差最小。其算法思想是:学习训练过程由正向信号传播和反向误差传播构成。正向传播时,输入样本从输入层进入,经各隐层逐层处理后,传向输出层。若输出层的实际输出与期望的输出不符,则转入误差的反向传播阶段。误差反传是将输出误差以某种形式通过隐

2、层向输入层逐层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此误差信号作为修正各单元权值的依据。这种信号正向传播与误差反向传播的各层权值调整过程,周而复始地进行的。一直进行到网络输出的误差减少到可以接受的程度,或进行到预先设定的学习次数。(1) 正向信号传输计算隐层的输出、输入为(1)式中,为输入层第j个节点的输出;为隐层神经元j与输入层神经元i之间的连接权重;f(*)是转换函数。输出层节点的输出、输入为(2)式中,为隐层节点与输出层节点之间的权重;f(*)是转换函数。定义网络的输出误差函数为(3)将式(3)展开至隐层,有(4)进一步展开至输入层,有(5)(2) 反向传播计算

3、有文献1可得三层感知器的BP学习算法权值调整计算公式(6)其中(7)(3) 算法步骤实际应用中有2种方法可以调整权值和阈值:单样本训练和成批训练。对于单样本训练,每输入一个样本,都要回传误差,并调整权值和阈值。而成批训练算法,是当所有的样本输入后,计算其总误差。然后进行权值和阈值的调整。下面是单样本训练算法步骤。1)初始化。赋随机数给初始权值和阈值,将样本模式计数器p和训练次数计数器q置为1,误差置为0,学习率设为0-1的小数,网络训练后达到的精度Emin设为一个正的小数。2)输入训练样本对(X,T)。3)正向计算各层输出。用当前样本向量数组赋值,用式(1)(2)计算隐层和输出层的输出。4)计

4、算各网络输出误差。根据式(7)计算和。5)计算各层误差信号,调整各层权值。用式(6)计算V、W,调整各层权值。(8)6) 检验是否对所有样本完成一次轮训。若p<P(样本对),计数器p,q增1,返回步骤2),否则转步骤7)7)检验网络总误差是否达到精度要求。判断误差是否满足要求,若满足则转步骤8),否则E置0,p置1,返回步骤2)。8)训练结束。(4) BP算法中存在的问题和改进措施BP算法的计算特点是,计算公式比较简单,相应的计算机程序简短,但是在计算过程中,还有诸多问题:1)反向传播算法的收敛速度较慢,一般需要成千上万次的迭代计算才能到目的; 2)存在函数局部极小值; 3)网络隐层神经

5、元数目选取和连接权、阈值初值的选取一般靠经验; 4)新加入的样本会影响已经学习完的样本。 本文讨论的BP算法有两类,一类是采用启发式技术,如附加动量法、自适应学习速率法、RPROP方法等;另一类是采用数字化优化技术,如共轭梯度法、拟牛顿法、LevenbergMarquardt方法等。1. 附加动量法2实际应用中,学习率的选择具有重要的地位,如果过大,则可能引起不稳定;过小可以避免振荡,但是收敛的速度比较慢。解决这一矛盾是加入“动量项3”,即令 (9)其中,0<<1。式中,第二项是常规BP算法的修正量,第一项称为动量项。其作用简单分析如下:当顺序加入训练样本时,上式可以写成以t为变量

6、的实际序列,t由0到n,因此上式可以看成是的一阶差分方程,对求解,可得4(10)当本次的与前一次同号时,其加权求和值增大。使得较大,从而在稳定调节时增加了w的调节速度;当与前一次符号相反时,说明有一定振荡,此时指数加权和结果使得减小,起到了稳定的作用。2. 自适应学习速率法学习速率是影响网络收敛速度和输出结果精确度的主要因素。较大的学习速率会使迭代次数和训练时间减少,但是网络容易出现振荡现象,造成网络的不稳定;反之,较小的将增加网络的学习时间和迭代次数5。在传统的网络算法中,学习速率在整个学习过程中是不变的,因此选择一个合适的是至关重要的,同时也是非常困难的。事实上,最优的是随着网络训练的进程

7、不断变化的,理想的学习速率应该是根据误差曲线自适应调整的6。在误差下降曲线的平坦区,应该增加值,使得误差脱离平坦区;在下降曲线的急剧变化段,应该降低值,以免网络出现振荡现象。因此,本文在传统BP网络的基础上,采取学习率自适应调整算法。具体过程见公式(11),式中a,b是常数,可以通过多次数值模拟计算得到。网络每次迭代一次,将调整一次,而调整的根据是误差最小原则。引入学习速率自适应调整算法7:(11)3. 弹性BP方法BP网络通常采用Sigmoid激活函数。当输入的函数很大时,斜率接近于零,这将导致算法中的梯度幅值很小,可能使网络权值的修正过程几乎停顿下来。弹性方法只取偏导数的符号,而不考虑偏导

8、数的幅值。其权值修正的迭代过程可表示为:(12)在弹性BP算法中,当训练发生振荡时,权值的变化量将减小;当在几次迭代过程中权值均朝一个方向变化时,权值的变化量将增大。因此,使用弹性方法的改进算法,其收敛速度要比前几种方法快得多。1993年德国Martin Riedmiller和Heinrich Braun提出了弹性BP算法。这种方法的原理是打算消除偏导数的大小有害的影响权步,因此,唯有导数的符号被认为表示权更新的反向,而导数的大小对权更新没有影响8。权改变的大小仅仅由权专门的更新值(12)对每个权重和阈值的更新值得到修改,权更新本身遵循一个很简单的规则:如果导数是正,这个权重和阈值由它的更新值

9、降低,如果导数是负,更新值提高:(13)RPROP的基本原理是权重和阈值更新值的直接修改,它和以学习速率为基础的算法相反(正如梯度下降一样)。RPROP引入Resilient(有弹性的)更新值的概念直接地修改权步的大小。因此,修改结果不会被不可预见的梯度性能变模糊。由于学习规律的清楚和简单,和最初的反传算法比较,在计算上仅有少量的耗费。除了快速外,RPROP 的主要优点之一在于对许多问题一点也不需要参数的选择以得到最优或者至少接近最优收敛时间。4. 共轭梯度法共轭向量定义见参考文献4。梯度下降法收敛速度较慢,而拟牛顿法计算又较复杂,共轭梯度法则力图避免两者的缺点。1990年,J.Leonard

10、 和M.A.Kramer将共轭梯度法和行搜索策略结合在一起。共轭梯度法也是一种改进搜索方向的方法,它是把前一点的梯度乘以适当的系数,加到该点的梯度上,得到新的搜索方向。共轭梯度法力图避免梯度下降法收敛速度较慢和计算复杂的缺点,第一步沿着负梯度方向进行搜索,然后再沿着当前搜索的共轭方向进行搜索,从而可以迅速达到最优值。共轭梯度法比大多数常规的梯度飞收敛快,并且只需要很少的存储量和计算量。对于权值很多的网络,采用共轭梯度法是一种比较好的选择。共轭梯度法9是重要的无约束最优化方法。其基本思想就是使得最速下降方向具有共轭性,并据此搜索目标函数极值,从而提高算法的有效性和可靠性。图中g(k)即

11、为共轭梯度矢量。它的方向矢量不是预先给定的,而是在现在的负梯度与前一个方向矢量的线性组合的方向上进行的。梯度g(k)被定义为f(x)对x的微分。但是该方法中方向矢量的共轭性仅仅依赖于负梯度的初始方向,所以在解点附近很可能失去共轭方向的优点,因此,这种算法的缺点在于算法不是全局最优的9。共轭梯度法原理:前向BP网络神经元节点间的连接权值空间记为,是对角线为零元素的对称矩阵,基本BP算法中的搜索方向为,t为迭代次数,显然相邻搜索方向正交(共轭)。取第一步搜索方向为负梯度方向,即,学习率为,则(14)第一步迭代后计算得到目标函数E对权值空间W的负梯度方向为,组合已有的梯度,构造(15)其中,称为共轭

12、因子,选择适当的值即可以保证和满足共轭性。一般的,第t+1次搜索方向为(16)于是基于共轭方向修正的BP算法权值修正公式为:(17)假定在第t步修正前目标函数E在权值空间W的梯度为,第t步修正计算得到E对W的梯度为,则取共轭因子(18)能保证一系列搜索方向共轭。为了确保搜索方向的共轭性,初始搜索方向取负梯度方向,即令=0,且当由于误差积累使得某步的搜索方向变为非下降方向时,也以负梯度方向重新开始后续搜索。可以把共轭梯度法的主要步骤归纳如下:1) 选初始权值w1;2) 求梯度,起始搜索方向;3) 在第j步,调a使得达到最小,并且计算;4) 检验是否满足停止条件;5) 计算新的梯度;6) 求新的搜

13、索方向,可按式(18)计算;7) 置j=j+1,返回(3)。8) 运行时,搜索方向的共轭性可能会退化,可在每运行W次后重新置搜索方向为负梯度方向再继续执行共轭梯度法程序。对其进一步改进见文献11。在MATLAB工具箱中,有4中不同的共轭梯度算法:除了Fletcher-Reeves共轭梯度法,还有Polak-Ribiere、Pwell-Beale以及Scaled Conjugate Gradient算法。(1) Fletcher-Reeves共轭梯度法当网络权重很多时,Fletcher-Reeves共轭梯度法12是一种很好的方法。所有的共轭梯度算法的搜索方向是从最陡下降方向d(梯度的负方向)开始

14、搜索。然后利用行搜索沿着当前搜索方向确定权值和阈值,公式(16)。Fletcher-Reeves共轭梯度法公式为:(19)Fletcher-Reeves共轭梯度法训练速度要比自适应学习算法快的多,有时还比RPROP算法还要快,这种算法需要的内存小。文献13证明采用精确线性搜索的Fletcher-Reeves共轭梯度法在求解非二次凸函数时是全局收敛的。非精确性搜索时,文献15利用文献14提出的在共轭梯度法中结合谱梯度的思想提出了Fletcher-Reeves共轭梯度法的一个修正公式,并且证明了所提出的修正公式是全局收敛的。(2) Polak-RibierePolak-Ribiere共轭梯度法17

15、搜索方向与上雷同,为(16)式。但是由下式计算(20)(3) Pwell-BealePwell-Beale共轭梯度法18,搜索方向将随设定的公式变化,不断设置为负梯度。但是其需要的内存较大。(文献19我看不太明白)(4) Scaled Conjugate GradientScaled Conjugate Gradient(成比例)共轭梯度法,针对前面提过的共轭梯度法要求每次迭代时进行行搜索。这种行搜索很费时,因为每次进行行搜索时网络所响应的训练的输入变量要进行多次计算。而Scaled Conjugate Gradient算法忽略行搜索法了,该算法过于复杂。采用此法训练较其他共轭梯度法需要更多的

16、迭代次数才能达到收敛,但每次迭代需要计算的次数减小。其基本原理用Levenberg-Marquardt算法与共轭梯度法相结合。5. 牛顿法及其变形考虑在最小点附近的二次逼近,此时线性项,有式:(22)在任意一点的梯度为,因此。向量称为牛顿方向,对二次误差函数来说,w处的直接指向极小值点。直接用上述方法计算量大,且当H接近奇异时难以计算。可见相邻两步的w满足(23)下面给出一组公式可以避免计算(即用矩阵G来近似)(24)其中各向量为:;。修正公式为:,之中可以通过最小化方法求解。牛顿法是直接使用二次导数,有关进一步的讨论文献20。6. Levenberg-Marquart算法BP算法存在一些不足

17、,主要是收敛速度很慢,往往收敛于局部极小点,数值稳定性差,学习率、动量项系数和初始权值等参数难以调整,非线性神经网络学习算法Levenberg Marquart可以有效的克服BP算法所存在的缺陷21。具体步骤是:1)给定初始点,精度,k=0;2)求,i=1,2,M。得到向量;求得,Jacobi矩阵。3)求解线性方程组,求出搜索梯度方向。4)直线搜索,其中满足5)若,则得到解,转向7),否则6)。6),则令,k=k+1,转2),否则,转2)。7)停止计算。在实际的操作中,是一个试探性的参数,对于给定的,如果求得的h(k)能使得误差函数Ep(X)增加,则乘以因子。仿真中,选取初始值=0.01,=1

18、0。在采用Levenberg-Marquart算法时,为使得收敛的速度更快,需要增加学习率因子a,取为0.4。Levenberg-Marquart算法的计算复杂度为,为网络权值数目,如果网络中权值的数目很大。则计算量和存储量都非常大。因此,当每次迭代效率显著提高时,其整体性能可以大为改善,特别是在精度要求高的时候。7. 结论多数情况下,建议首先采用Levenberg-Marquart算法,如果该算法消耗内存太大,可以尝试使用BFGS算法或共轭梯度法以及RPROP算法。自适应学习速率算法通常比其他算法慢,与RPROP算法一样,需要同样的内存,但是对某些算法来说,其很有用。如:采用某种算法得到网络

19、的收敛很快,但是结果不正确,就可以采用自适应学习速率算法让网络的收敛慢一些,以减小误差。附加动量法、自适应学习速率法。RPROP方法是采用启发式技术,而共轭梯度法、拟牛顿法、Levenberg-Marquart算法采用数字优化方法。其他还有一些算法:如使用动量项的加快离线训练速度的方法、归一化权值更新技术方法、快速传播方法、D-D法、扩展卡尔曼滤波法22、二阶优化法以及最优滤波法等。8. 参考文献【1】 张国忠.智能控制系统及应用.北京:中国电力出版社,2007:94-98.【2】 Ralf Salomon. J Leo van Hemmen. Accelerating Backpropaga

20、tion through Dynamic Self-Adaptation. Neural Networks,1996;9(4):589-601.【3】 Rumellhart D E,et al. Learning Representation by BP Errors. Nature (London), 1986,7:149-154.【4】 Yan Pingfan,Zhang Changshui.Artificial Neural Networks and Evolutionary Computing. Springer,2005:26-27.【5】 PANDEY P C,BARAI S V.

21、Mutilayer perceptron in damage detection of bridge structuresJ. Computers&Structures,1995,54(4):597-608.【6】 ZHU Hong-ping,ZHANG Yuan.Application of self-adaptive BP neural networks to the detection of structure damagesJ.Acta Mechanica Sinica,2003,35(1):110-116.【7】 JIN Hu,LOU Wen-juan.Load identi

22、fication for bridge structures based on self-adaptive BP neural networks.College of Civil Engineering and Architecture,2005.【8】 Martin R,Heinrich B.A Direct Adaptive Method for Faster Backpropagation Learning:The RPRCP AlgorithmA.Ruspini H.Proceedings of the IEEE International Conference on Neural N

23、etworks(ICNN)C.IEEE Press,New York.1993:586-591.【9】 陈宝林.最优化理论与算法.北京:清华大学出版社,1989.【10】 周建华.共轭梯度法在BP网络中的应用.计算机工程与应用,1993.【11】 Moller M F.A Scaled Conjugate Gradient Algorithm for Fast Supervised Learning.Neural Computation,1993,6:525-533.【12】 Fletcher,Reeves C M. Function minimization by conjugate gra

24、dientsJ. Computer Journal,1964,7:149-154.【13】 ZOU TENDIJ K G. Nonlinear programming, computational methodsC/Abadic J.Integer and Nonlinear Programming, North Holland, Amsteram, 1970:37-86【14】 BIR GIN E,MARTINEZJ M. A spectral conjugate gradient methods for unstrained optimizationJ. App1 Math Optim, 2001,43:117-128.【15】 ZHAN G L , ZHOU W J, LI D H.Global convergence of a modified Flelcher-Reeves conjugale gradieut method with Armijo-type line searchJ.Numerische Mathematik,2006,(104):561-572.【16】 苏高利,邓芳萍.论基于MATLAB语言的BP神经网络的改进算法.科技通报.2

温馨提示

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

评论

0/150

提交评论