标准bp算法及改进的bp算法应用

上传人:ji****n 文档编号:54517450 上传时间:2018-09-14 格式:PPT 页数:19 大小:174KB
返回 下载 相关 举报
标准bp算法及改进的bp算法应用_第1页
第1页 / 共19页
标准bp算法及改进的bp算法应用_第2页
第2页 / 共19页
标准bp算法及改进的bp算法应用_第3页
第3页 / 共19页
标准bp算法及改进的bp算法应用_第4页
第4页 / 共19页
标准bp算法及改进的bp算法应用_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《标准bp算法及改进的bp算法应用》由会员分享,可在线阅读,更多相关《标准bp算法及改进的bp算法应用(19页珍藏版)》请在金锄头文库上搜索。

1、标准BP算法及改进的BP算法应用,1.1 标准的BP算法,BP标准的BP算法是基于梯度下降法,通过计算目标函数对网络权值和阈值的梯度进行修正。 X(k + 1 ) = X(k) - F( X(K) ) X(K)为由网络所有权值和阈值所形成的向量; 为学习速率; F( X(K) )为目标函数的梯度;,标准的BP 算法虽然原理简单,实现方便,但由于训练过程中为一较小的常数,因而存在收敛速度慢和局部极小的问题。 对于复杂问题,训练过程需迭代几千、几万次才能收敛到期望的精度。 因此,标准的BP 网络在很大程度上表现出它的不实用性,特别是对实时性很强的系统。为此就有了各种改进算法。,标准BP网络的应用,

2、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 ;R,Q = size(P); S2,Q = size(T); S1 = 5; W1,B1 = rands(S1,R); W2,B2 = rands(S2,S1);,net = newcf( minmax(P), 5,1, tansig,purelin,traingd ); ne

3、t.trainParam.epochs = 7000; net.performFcn = sse; net.trainParam.goal = 0.02; net,tr = train(net,P,T); Y = sim(net,P);plot(P,T,P,Y,o),训练1000次的结果,训练次3000次的结果,训练7366次的结果,训练结束后的网络误差记录,1.2 附加动量法,附加动量法使网络在修正权值时不仅考虑误差在梯度上的作用,而且考虑在误差曲面上变化趋势的影响; X( K+1 ) = Mc( X(K) X(K 1) ) (1 - Mc)F(X(K) 式中0 = Mc = 1 为动量因子

4、; 附加动量法的实质是将最后一次权值变化的影响通过一个动量因子来传递。,当动量因子的取值为零时,权值的变化仅是根据梯度下降法产生的。 当动量因子的取值为1时,新的权值变化为最后一次权值的变化,而依梯度法产生的变化部分则被忽略掉了。 为此当增加了动量项后,促使权值的调节向着误差曲面底部的平均方向变化。可在一定程度上解决局部极小问题,但收敛速度仍然很慢。,附加动量法的应用,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.307

5、2 0.396 0.3449 0.1816 -0.0312 -0.2183 -0.3201 ;R,Q = size(P); S2,Q = size(T); S1 = 5; W1,B1 = rands(S1,R); W2,B2 = rands(S2,S1);,net = newff( minmax(P), 5,1, tansig,purelin,traingdx ); net.trainParam.epochs = 700; net.trainParam.mc = 0.95; net.trainParam.lr = 0.05; net.performFcn = sse; net.trainPar

6、am.goal = 0.02; net,tr = train(net,P,T); Y = sim(net,P);plot(P,T,P,Y,o),采用动量法时的训练误差记录,1.3 自适应学习率调整法,在BP算法中,网络权值的调整取决于学习速率和梯度。在标准BP 算法中,学习速率是不变的。 而在自适应学习率调整法中,通常学习速率的调整准则是:检查权值的修正是否真正降低了误差函数,如果确实如此,则说明所选的学习率小了,可对其增加一个量;若不是则说明产生了过调,那么就应减小学习速率的值。,X(k + 1 ) = X(k) - (K)F( X(K) ) 通过调整学习率(K),从而可得到比标准的BP算法

7、更快的收敛速度。 因此,将附加动量法和自适应学习率调整法两种策略结合起来,既可有效地抑制网络陷入局部极小,又有利于缩短学习时间。 但上述两种改进方法都是在标准梯度下降法基础上发展起来的,它们只利用了目标函数对网络权值和阈值的一阶导数信息。因此,当用于较复杂的问题时,也还存在收敛速度不够快的问题。,自适应学习速率应用,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.03

8、12 -0.2183 -0.3201 ;R,Q = size(P); S2,Q = size(T); S1 = 5; W1,B1 = rands(S1,R); W2,B2 = rands(S2,S1);,net = newff( minmax(P), 5,1, tansig,purelin,traingdx ); net.trainParam.epochs = 1000; net.trainParam.lr = 0.05; net.trainParam.lr_inc = 1.05; net.trainParam.lr_dec = 0.7; net.performFcn = sse; net.trainParam.goal = 0; net,tr = train(net,P,T); Y = sim(net,P);plot(P,T,P,Y,o),

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

当前位置:首页 > 中学教育 > 初中教育

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