各种bp学习算法matlab仿真

各种bp学习算法matlab仿真

ID:11199552

大小:579.44 KB

页数:15页

时间:2018-07-10

各种bp学习算法matlab仿真_第1页
各种bp学习算法matlab仿真_第2页
各种bp学习算法matlab仿真_第3页
各种bp学习算法matlab仿真_第4页
各种bp学习算法matlab仿真_第5页
资源描述:

《各种bp学习算法matlab仿真》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、3.3.2各种BP学习算法MATLAB仿真根据上面一节对BP神经网络的MATLAB设计,可以得出下面的通用的MATLAB程序段,由于各种BP学习算法采用了不同的学习函数,所以只需要更改学习函数即可。MATLAB程序段如下:x=-4:0.01:4;y1=sin((1/2)*pi*x)+sin(pi*x);%trainlm函数可以选择替换net=newff(minmax(x),[1,15,1],{'tansig','tansig','purelin'},'trainlm');net.trainparam.ep

2、ochs=2000;net.trainparam.goal=0.00001;net=train(net,x,y1);y2=sim(net,x);err=y2-y1;res=norm(err);%暂停,按任意键继续Pause%绘图,原图(蓝色光滑线)和仿真效果图(红色+号点线)plot(x,y1);holdonplot(x,y2,'r+');注意:由于各种不确定因素,可能对网络训练有不同程度的影响,产生不同的效果。如图3-8。标准BP算法(traingd)图3-8标准BP算法的训练过程以及结果(原图蓝色线,

3、仿真图+号线)增加动量法(traingdm)如图3-9。图3-9增加动量法的训练过程以及结果(原图蓝色线,仿真图+号线)弹性BP算法(trainrp)如图3-10图3-10弹性BP算法的训练过程以及结果(原图蓝色线,仿真图+号线)动量及自适应学习速率法(traingdx)如图3-11。图3-11动量及自适应学习速率法的训练过程以及结果(原图蓝色线,仿真图+号线)共轭梯度法(traincgf)如图3-12。图3-12共轭梯度法的训练过程以及结果(原图蓝色线,仿真图+号线)Levenberg-Marquard

4、t算法(trainlm)如图3-13。图3-13Levenberg-Marquardt算法的训练过程以及结果(原图蓝色线,仿真图+号线)3.3.3各种算法仿真结果比较与分析由上面的仿真结果可以得到下表的比较和下面的结论与分析:表3-2表3-2各种BP学习算法MATLAB仿真结果比较BP算法训练函数训练次数均方误差标准BP算法traingd20000.134968增加动量法traingdm20000.108883弹性BP算法trainrp20000.0135652动量及自适应学习速率法trangdx2000

5、0.0761264共轭梯度法traincgf7690.00499915Levenberg-Marquardt法trainlm610.0000098727结论与分析:从仿真结果可以看出,标准BP算法、增加动量发、弹性BP算法、动量及自适应学习速率法的收敛速度都不如共轭梯度法和Levenberg-Marquardt法(L-M算法)收敛速度明显的快。从仿真结果和均方误差综合来看,只有L-M算法达到了目标误差,可见对高要求的误差来说,L-M算法的优势要明显的多,其余均未达到目标误差;从均方误差的效果来看,所仿真的

6、BP算法的优劣(从优到劣)顺序依次为L-M算法、共轭梯度法、弹性BP算法、动量及自适应学习速率法、增加动量法、标准BP算法。从仿真效果图可以看出,L-M算法的效果最好,其次是共轭梯度法,其余均有不同范围内的失真。从误差曲线来看,L-M算法达到了目标误差(较高的误差),标准BP算法的误差曲线较粗,是因为较小范围振荡产生锯齿,在图形中由于间距加大,图形不断重叠而成,收敛速度很慢;增加动量法、弹性BP算法、动量及自适应学习速率法的误差曲线较为平滑,在刚开始收敛较快,在训练步数增加的时候,曲线趋于水平,收敛速度比

7、较慢;共轭梯度法和L-M算法的误差曲线变化较大且产生局部锯齿状,说明不是最优,仍需要进行优化,其中L-M算法达到了目标误差。共轭梯度法在相邻迭代的正交方向搜索,综合误差曲线可知当接近极值时会产生锯齿形振荡。再根据前面对各种BP改进算法的描述可知,弹性BP算法不需要进行搜索,需要内存比较小,因此在一些大型网络中比较适用,但是需要很长的训练时间。对收敛速度要求不高时也可使用动量及自适应学习速率法。在小型网络中,共轭梯度法仅次于L-M算法,但是L-M算法需要更大的内存做临时存储,对于较大复杂的网络和内存受限的设

8、备来说不是很好的选择,但是对于小型网络来说却是首要选择。对训练时间允许的条件下,共轭梯度法和弹性BP算法是对复杂大型网络较好的选择。其中共轭梯度法在训练的时候,训练次数为769次,均方误差为0.00499915,均未达到所设定的要求,产生了“Minimumstepsizereached,performancegoalwasnotmet”的结果。可能意味着子区间的长度与计算机舍入误差相当,无法继续计算了,原因可能是有奇点(无限小

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。