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

下载本文档

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

文档简介

《BP神经网络的优化算法》综述姓名:刘彪学号:南京理工大学摘要:本文对于BP算法存在的缺陷,简介了几种BP神经网络优化算法的根本原理,并比拟了这几种优化算法的优缺点,给出了它们可以应用的场合。关键词:BP神经网络,优化算法引言人们常把误差反向传播算法的多层前馈网络直接称为BP网络。BP网络学习训练中采用有导师学习方式,在调整权值过程中采用梯度下降技术,使网络总误差最小。其算法思想是:学习训练过程由正向信号传播和反向误差传播构成。正向传播时,输入样本从输入层进入,经各隐层逐层处理后,传向输出层。假设输出层的实际输出与期望的输出不符,那么转入误差的反向传播阶段。误差反传是将输出误差以某种形式通过隐层向输入层逐层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此误差信号作为修正各单元权值的依据。这种信号正向传播与误差反向传播的各层权值调整过程,周而复始地进行的。一直进行到网络输出的误差减少到可以接受的程度,或进行到预先设定的学习次数。正向信号传输计算隐层的输出、输入为〔1〕式中,为输入层第j个节点的输出;为隐层神经元j与输入层神经元i之间的连接权重;f〔*〕是转换函数。输出层节点的输出、输入为〔2〕式中,为隐层节点与输出层节点之间的权重;f〔*〕是转换函数。定义网络的输出误差函数为〔3〕将式〔3〕展开至隐层,有〔4〕进一步展开至输入层,有〔5〕反向传播计算有文献[1]可得三层感知器的BP学习算法权值调整计算公式〔6〕其中〔7〕算法步骤实际应用中有2种方法可以调整权值和阈值:单样本训练和成批训练。对于单样本训练,每输入一个样本,都要回传误差,并调整权值和阈值。而成批训练算法,是当所有的样本输入后,计算其总误差。然后进行权值和阈值的调整。下面是单样本训练算法步骤。1〕初始化。赋随机数给初始权值和阈值,将样本模式计数器p和训练次数计数器q置为1,误差置为0,学习率设为0-1的小数,网络训练后到达的精度Emin设为一个正的小数。2〕输入训练样本对〔X,T〕。3〕正向计算各层输出。用当前样本向量数组赋值,用式〔1〕〔2〕计算隐层和输出层的输出。4〕计算各网络输出误差。根据式〔7〕计算和。5〕计算各层误差信号,调整各层权值。用式〔6〕计算V、W,调整各层权值。〔8〕6)检验是否对所有样本完成一次轮训。假设p<P(样本对),计数器p,q增1,返回步骤2〕,否那么转步骤7〕7〕检验网络总误差是否到达精度要求。判断误差是否满足要求,假设满足那么转步骤8〕,否那么E置0,p置1,返回步骤2〕。8〕训练结束。BP算法中存在的问题和改良措施BP算法的计算特点是,计算公式比拟简单,相应的计算机程序简短,但是在计算过程中,还有诸多问题:1〕反向传播算法的收敛速度较慢,一般需要成千上万次的迭代计算才能到目的;2〕存在函数局部极小值;3〕网络隐层神经元数目选取和连接权、阈值初值的选取一般靠经验;4〕新参加的样本会影响已经学习完的样本。本文讨论的BP算法有两类,一类是采用启发式技术,如附加动量法、自适应学习速率法、RPROP方法等;另一类是采用数字化优化技术,如共轭梯度法、拟牛顿法、Levenberg—Marquardt方法等。附加动量法[2]实际应用中,学习率的选择具有重要的地位,如果过大,那么可能引起不稳定;过小可以防止振荡,但是收敛的速度比拟慢。解决这一矛盾是参加“动量项[3]〞,即令〔9〕其中,0<<1。式中,第二项是常规BP算法的修正量,第一项称为动量项。其作用简单分析如下:当顺序参加训练样本时,上式可以写成以t为变量的实际序列,t由0到n,因此上式可以看成是的一阶差分方程,对求解,可得[4]〔10〕当本次的与前一次同号时,其加权求和值增大。使得较大,从而在稳定调节时增加了w的调节速度;当与前一次符号相反时,说明有一定振荡,此时指数加权和结果使得减小,起到了稳定的作用。自适应学习速率法学习速率是影响网络收敛速度和输出结果精确度的主要因素。较大的学习速率会使迭代次数和训练时间减少,但是网络容易出现振荡现象,造成网络的不稳定;反之,较小的将增加网络的学习时间和迭代次数[5]。在传统的网络算法中,学习速率在整个学习过程中是不变的,因此选择一个适宜的是至关重要的,同时也是非常困难的。事实上,最优的是随着网络训练的进程不断变化的,理想的学习速率应该是根据误差曲线自适应调整的[6]。在误差下降曲线的平坦区,应该增加值,使得误差脱离平坦区;在下降曲线的急剧变化段,应该降低值,以免网络出现振荡现象。因此,本文在传统BP网络的根底上,采取学习率自适应调整算法。具体过程见公式〔11〕,式中a,b是常数,可以通过屡次数值模拟计算得到。网络每次迭代一次,将调整一次,而调整的根据是误差最小原那么。引入学习速率自适应调整算法[7]:(11)弹性BP方法BP网络通常采用Sigmoid激活函数。当输入的函数很大时,斜率接近于零,这将导致算法中的梯度幅值很小,可能使网络权值的修正过程几乎停顿下来。弹性方法只取偏导数的符号,而不考虑偏导数的幅值。其权值修正的迭代过程可表示为:〔12〕在弹性BP算法中,当训练发生振荡时,权值的变化量将减小;当在几次迭代过程中权值均朝一个方向变化时,权值的变化量将增大。因此,使用弹性方法的改良算法,其收敛速度要比前几种方法快得多。1993年德国MartinRiedmiller和HeinrichBraun提出了弹性BP算法。这种方法的原理是打算消除偏导数的大小有害的影响权步,因此,唯有导数的符号被认为表示权更新的反向,而导数的大小对权更新没有影响[8]。权改变的大小仅仅由权专门的更新值〔12〕对每个权重和阈值的更新值得到修改,权更新本身遵循一个很简单的规那么:如果导数是正,这个权重和阈值由它的更新值降低,如果导数是负,更新值提高:〔13〕RPROP的根本原理是权重和阈值更新值的直接修改,它和以学习速率为根底的算法相反〔正如梯度下降一样〕。RPROP引入Resilient〔有弹性的〕更新值的概念直接地修改权步的大小。因此,修改结果不会被不可预见的梯度性能变模糊。由于学习规律的清楚和简单,和最初的反传算法比拟,在计算上仅有少量的消耗。除了快速外,RPROP的主要优点之一在于对许多问题一点也不需要参数的选择以得到最优或者至少接近最优收敛时间。共轭梯度法共轭向量定义见参考文献[4]。梯度下降法收敛速度较慢,而拟牛顿法计算又较复杂,共轭梯度法那么力图防止两者的缺点。1990年,J.Leonard和M.A.Kramer将共轭梯度法和行搜索策略结合在一起。共轭梯度法也是一种改良搜索方向的方法,它是把前一点的梯度乘以适当的系数,加到该点的梯度上,得到新的搜索方向。共轭梯度法力图防止梯度下降法收敛速度较慢和计算复杂的缺点,第一步沿着负梯度方向进行搜索,然后再沿着当前搜索的共轭方向进行搜索,从而可以迅速到达最优值。共轭梯度法比大多数常规的梯度飞收敛快,并且只需要很少的存储量和计算量。对于权值很多的网络,采用共轭梯度法是一种比拟好的选择。共轭梯度法[9]是重要的无约束最优化方法。其根本思想就是使得最速下降方向具有共轭性,并据此搜索目标函数极值,从而提高算法的有效性和可靠性。图中g(k)即为共轭梯度矢量。它的方向矢量不是预先给定的,而是在现在的负梯度与前一个方向矢量的线性组合的方向上进行的。梯度g(k)被定义为f(x)对x的微分。但是该方法中方向矢量的共轭性仅仅依赖于负梯度的初始方向,所以在解点附近很可能失去共轭方向的优点,因此,这种算法的缺点在于算法不是全局最优的[9]。共轭梯度法原理:前向BP网络神经元节点间的连接权值空间记为,是对角线为零元素的对称矩阵,根本BP算法中的搜索方向为,t为迭代次数,显然相邻搜索方向正交〔共轭〕。取第一步搜索方向为负梯度方向,即,学习率为,那么〔14〕第一步迭代后计算得到目标函数E对权值空间W的负梯度方向为,组合已有的梯度,构造〔15〕其中,称为共轭因子,选择适当的值即可以保证和满足共轭性。一般的,第t+1次搜索方向为〔16〕于是基于共轭方向修正的BP算法权值修正公式为:〔17〕假定在第t步修正前目标函数E在权值空间W的梯度为,第t步修正计算得到E对W的梯度为,那么取共轭因子〔18〕能保证一系列搜索方向共轭。为了确保搜索方向的共轭性,初始搜索方向取负梯度方向,即令=0,且当由于误差积累使得某步的搜索方向变为非下降方向时,也以负梯度方向重新开始后续搜索。可以把共轭梯度法的主要步骤归纳如下:选初始权值w1;求梯度,起始搜索方向;在第j步,调a使得到达最小,并且计算;检验是否满足停止条件;计算新的梯度;求新的搜索方向,可按式〔18〕计算;置j=j+1,返回〔3〕。运行时,搜索方向的共轭性可能会退化,可在每运行W次后重新置搜索方向为负梯度方向再继续执行共轭梯度法程序。对其进一步改良见文献[11]。在MATLAB工具箱中,有4中不同的共轭梯度算法:除了Fletcher-Reeves共轭梯度法,还有Polak-Ribiere、Pwell-Beale以及ScaledConjugateGradient算法。Fletcher-Reeves共轭梯度法当网络权重很多时,Fletcher-Reeves共轭梯度法[12]是一种很好的方法。所有的共轭梯度算法的搜索方向是从最陡下降方向d(梯度的负方向)开始搜索。然后利用行搜索沿着当前搜索方向确定权值和阈值,公式〔16〕。Fletcher-Reeves共轭梯度法公式为:〔19〕Fletcher-Reeves共轭梯度法训练速度要比自适应学习算法快的多,有时还比RPROP算法还要快,这种算法需要的内存小。文献[13]证明采用精确线性搜索的Fletcher-Reeves共轭梯度法在求解非二次凸函数时是全局收敛的。非精确性搜索时,文献[15]利用文献[14]提出的在共轭梯度法中结合谱梯度的思想提出了Fletcher-Reeves共轭梯度法的一个修正公式,并且证明了所提出的修正公式是全局收敛的。Polak-RibierePolak-Ribiere共轭梯度法[17]搜索方向与上雷同,为〔16〕式。但是由下式计算〔20〕Pwell-BealePwell-Beale共轭梯度法[18],搜索方向将随设定的公式变化,不断设置为负梯度。但是其需要的内存较大。〔文献[19]我看不太明白〕ScaledConjugateGradientScaledConjugateGradient(成比例)共轭梯度法,针对前面提过的共轭梯度法要求每次迭代时进行行搜索。这种行搜索很费时,因为每次进行行搜索时网络所响应的训练的输入变量要进行屡次计算。而ScaledConjugateGradient算法忽略行搜索法了,该算法过于复杂。采用此法训练较其他共轭梯度法需要更多的迭代次数才能到达收敛,但每次迭代需要计算的次数减小。其根本原理用Levenberg-Marquardt算法与共轭梯度法相结合。牛顿法及其变形考虑在最小点附近的二次逼近,此时线性项,有式:〔22〕在任意一点的梯度为,因此。向量称为牛顿方向,对二次误差函数来说,w处的直接指向极小值点。直接用上述方法计算量大,且当H接近奇异时难以计算。可见相邻两步的w满足〔23〕下面给出一组公式可以防止计算〔即用矩阵G来近似〕〔24〕其中各向量为:;;。修正公式为:,之中可以通过最小化方法求解。牛顿法是直接使用二次导数,有关进一步的讨论文献[20]。Levenberg-Marquart算法BP算法存在一些缺乏,主要是收敛速度很慢,往往收敛于局部极小点,数值稳定性差,学习率、动量项系数和初始权值等参数难以调整,非线性神经网络学习算法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,=10。在采用Levenberg-Marquart算法时,为使得收敛的速度更快,需要增加学习率因子a,取为0.4。Levenberg-Marquart算法的计算复杂度为,为网络权值数目,如果网络中权值的数目很大。那么计算量和存储量都非常大。因此,当每次迭代效率显著提高时,其整体性能可以大为改善,特别是在精度要求高的时候。结论多数情况下,建议首先采用Levenberg-Marquart算法,如果该算法消耗内存太大,可以尝试使用BFGS算法或共轭梯度法以及RPROP算法。自适应学习速率算法通常比其他算法慢,与RPROP算法一样,需要同样的内存,但是对某些算法来说,其很有用。如:采用某种算法得到网络的收敛很快,但是结果不正确,就可以采用自适应学习速率算法让网络的收敛慢一些,以减小误差。附加动量法、自适应学习速率法。RPROP方法是采用启发式技术,而共轭梯度法、拟牛顿法、Levenberg-Marquart算法采用数字优化方法。其他还有一些算法:如使用动量项的加快离线训练速度的方法、归一化权值更新技术方法、快速传播方法、D-D法、扩展卡尔曼滤波法[22]、二阶优化法以及最优滤波法等。参考文献张国忠.智能控制系统及应用.北京:中国电力出版社,2007:94-98.RalfSalomon.JLeovanHemmen.AcceleratingBackpropagationthroughDynamicSelf-Adaptation.NeuralNetworks,1996;9(4):589-601.RumellhartDE,etal.LearningRepresentationbyBPErrors.Nature(London),1986,7:149-154.YanPingfan,ZhangChangshui.ArtificialNeuralNetworksandEvolutionaryComputing.Springer,2005:26-27.PANDEYPC,BARAISV.Mutilayerperceptronindamagedetectionofbridgestructures[J].Computers&Structures,1995,54(4):597-608.ZHUHong-ping,ZHANGYuan.Applicationofself-adaptiveBPneuralnetworkstothedetectionofstructuredamages[J].ActaMechanicaSinica,2003,35(1):110-116.JINHu,LOUWen-juan.Loadidentificationforbridgestructuresbasedonself-adaptiveBPneuralnetworks.CollegeofCivilEngineeringandArchitecture,2005.MartinR,HeinrichB.ADirectAdaptiveMethodforFasterBackpropagationLearning:TheRPRCPAlgorithm[A].RuspiniH.ProceedingsoftheIEEEInternationalConferenceonNeuralNetworks(ICNN)[C].IEEEPress,NewYork.1993:586-591.陈宝林.最优化理论与算法.北京:清华大学出版社,1989.周建华.共轭梯度法在BP网络中的应用.计算机工程与应用,1993.MollerMF.AScaledConjugateGradientAlgorithmforFastSupervisedLearning.NeuralComputation,1993,6:525-533.Fletcher,ReevesCM.Functionminimizationbyconjugategradients[J].ComputerJournal,1964,7:149-154.ZOUTENDIJKG.Nonlinearprogramming,computationalmethods[C]//AbadicJ.IntegerandNonlinearProgramming,NorthHolland,Amsteram,1970:37-86BIRGINE,MARTINEZJM.Aspectralconjugategradientmethodsforunstrainedoptimization[J].App1MathOptim,2001,43:117-128.ZHANGL,ZHOUWJ,LIDH.GlobalconvergenceofamodifiedFlelcher-ReevesconjugalegradieutmethodwithArmijo-typelinesearch[J].NumerischeMathematik,2006,(104):561-572.苏高利,邓芳萍.论基于MATLAB语言的BP神经网络的

温馨提示

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

评论

0/150

提交评论