- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
神经网络案例教学材料2
第9 章神经网络优化及故障诊断’
9.1 Bp 网络学习算法的改进
标准BP 算法采用的是最速梯度下降法修正权值,训练过程从某一起点沿误差函数的斜面逐渐达到最小点使之误差为零。而对于复杂的网络,误差曲面在多维空间,这就像一个碗一样,碗底就是最小点。但这个碗的表面是凹凸不平的,因而在训练过程中可能会陷入某个局部最小点,由该点向多方向变化均会使误差增加,以致无法逃出这个局部最小点,由于标准BP 网络学习算法存在与输入样本的顺序有关、收敛速度缓慢、易陷入局部极小等缺陷,为了克服算法中的不足,下面几节将给出一些改进算法,这些改进算法或者减少了输入样本顺序的影响,或者收敛速度比标准梯度法快数十乃至数百倍。
9.1.1消除样本输入顺序影响的改进算法
前面描述的BP 网络标准学习算法,在每输入一个学习样本后,根据其产生的误差立即对权值进行调整,属于在线学习方式。实验表明,在线学习方式,网络受后面输入样本的影响较大,严重时,会影响用户要求的训练精度。为了消除这种样本顺序对结果的影响,可以采用批处理学习方式,即使用一批学习样本产生的总误差来调整权值,用公式表示如下:
Δwij=∑Δpwij
式中,∑Δpwij代表连接权wij关于一批学习样本的调整量,表示由所有学习样本产生的误差,每一个样本产生的权值调整量可由相应的计算公式求得,从而有效地消除样本顺序对学习算法的影响。1 .网络初始化
给wih 、wh0分别赋一个(-1,1)内的随机数,设定误差函数给定计算精度值ε和最大学习次数M。
2 .计算输出层的权值的调整值输出层对于一批学习样本的仅值调整按下式计算:
(9-2)
3 .计算隐含层的权值调整隐含层对于一批学习样本的权值调整值按下式计算:
(9-3)
4 .计算全局误差E
(9-3)
5 .判断网络误差是否满足要求
当Eε或学习次数大于设定的最大次数M时,则结束算法;否则,返回到2 步,进入下-轮学习过程。
上述改进算法较好地解决了因样本输入顺序引起的精度问题和训练的抖动问题。但是,该算法的收敛速度相对来说还是比较慢的。
9.1.2附加动量的改进算法
该方法是在反向传播法的基础上在每一个权值(或阀值)的变化上加上一项正比于一次权值(或阀值)变化量的值,并根据反射传播法来产生新的权值(或阀值)变化。
带有附加动量因子的权值调节公式为
Δw(k+1)=(1-mc)η▽?(w(k))+mc(w(k)-w(k-1))
式中 w——权值向量。
K——训练次数。
mc(0≤mc≥1)——动量因子,一般取0.95左右。
η——学习速率。
▽?(w(k))——误差函数的梯度。
附加动量法的实质是将最后一次权值(或阀值)变化的影响,通过一个动量因子来传递。当动量因子取值为零时,权值(或阀值)的变化仅根据梯度下降法产生;当动量因子取值为1 时,新的权值(或阀值)变化则设置为最后一次权值(或阀值)的变化,而依梯度法产生的变化部分则被忽略掉了。由此可以看出,增加动量项后,促使权值的调节向着误差曲面底部的平均方向变化,当值的变化量为0 ,有助于使网络从误差曲面的局部极小值中跳出。但对于大多数实际应用问题,该法训练速度仍然很慢。
MAT1AB 中的工具函数traingdm ( )即对应于附加动量法。
9.1.3采用自适应调整参数的改进算法
采用自适应调整参数的改进算法的基本设想是学习率η应根据误差变化而自适应调整,以使权系数调整向误差减小的方向变化,其迭代过程可表示为 w(k+1)=w(k)—η▽?(w(k)) ( 9-6 )
通过研究发现,在一定范围内增大学习率η,可大大加快学习效率,得到比标准BP 算法更快的收敛速度。然而,在▽?(w(k))很小的情况下,采用自适应调整参数的改进算法仍然存在权值的修正量很小的问题,致使学习率降低。
MAT1AB 中的工具函数traingda()即对应于自适应调整参数法。
9.1.4使用弹胜方法的改进算法
BP 网络通常采用sigm0id 隐含层。当输入的函数很大时,斜率接近于零,这将导致算法中的梯度幅值很小,可能使网络权值的修正过程几乎停顿下来。弹性方法只取偏导数的符号,而不考虑偏导数的幅值。其权值修正的迭代过程可表示为
W(k+1)=(w(k)-w(k))-w(k-1)sign(▽?(w(k))) (9-7)
式中 sign(·)─符号函数。
在弹性BP 算法中,当训练发生振荡时,权值的变化量将减小;当在几次迭代过程中权朝一个方向变化时,权值的变化量将增大。因此,使用弹性方法的改进算法,其收敛速的度要比前
文档评论(0)