神经网络大作业 函数拟合.pdf
《神经网络大作业 函数拟合.pdf》由会员分享,可在线阅读,更多相关《神经网络大作业 函数拟合.pdf(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、人工神经网络第一次作业题目:使用函数t eausin(cu)试验 MATLAB中的 BP 算法1、改变不同训练算法,观察效果;2、改变参数 a,c 的值,观察效果;3、改变隐层神经网络个数,观察效果;4、尝试:加入噪声的训练效果。一、改变不同训练算法,观察效果一、改变不同训练算法,观察效果在 MATLAB中,BP 网络的训练函数一共有以下几种,改变不同训练算法,观察效果就是在其他参数不变只改变程序中训练函数的情况下,得到不同训练算法的训练结果。训练方法训练函数梯度下降法traingd有动量的梯度下降法traingdm自适应 lr 梯度下降法traingda自适应 lr 动量梯度下降法train
2、gdx弹性梯度下降法trainrpFletcher-Reeves 共轭梯度法traincgfPloak-Ribiere 共轭梯度法traincgpPowell-Beale 共轭梯度法traincgb量化共轭梯度法trainscg拟牛顿算法trainbfg一步正割算法trainossLevenberg-Marquardt 法trainlm由于这只是改变程序中的训练算法,其他不变,所以为了简洁,在本程序中只选取了四种训练算法,分别是梯度下降法 traingd、弹性梯度下降法 trainrp、拟牛顿算法 trainbfg 和 Levenberg-Marquardt 法 trainlm,只更改不同的训
3、练算法来构造节点,程序如下,得到不同训练算法下的仿真图如图 1 所示。clear all;close all;clc;a=1,c=1;%在此改变 a,c 的值layer_number=20;%在此改隐含层的个数u=-4:0.001:4;t=exp(-a*u).*sin(c*u);%这里是矩阵相乘,要用点乘net=newff(minmax(u),layer_number,1,tansig,purelin,traingd);%梯度下降法y1=sim(net,u);%未训练直接输出net1=newff(minmax(u),layer_number,1,tansig,purelin,traingd);
4、%梯度下降法net2=newff(minmax(u),layer_number,1,tansig,purelin,trainrp);%弹性梯度下降法net3=newff(minmax(u),layer_number,1,tansig,purelin,trainbfg);%拟牛顿算法net4=newff(minmax(u),layer_number,1,tansig,purelin,trainlm);%Levenberg-Marquardtnet.trainParam.show=50;net.trainparam.epochs=1000;net.trainparam.goal=0.01;net1
5、=train(net1,u,t);%采用梯度下降法训练节点net2=train(net2,u,t);%采用弹性梯度下降法训练节点net3=train(net3,u,t);%采用拟牛顿算法训练节点net4=train(net4,u,t);%采用 Levenberg-Marquardt 法训练节点y2_1=sim(net1,u);y2_2=sim(net2,u);y2_3=sim(net3,u);y2_4=sim(net4,u);subplot(2,2,1)plot(u,t,b-,u,y1,g:,u,y2_1,r-);title(1、采用梯度下降法的仿真结果图);xlabel(input_u);y
6、label(output_y);legend(目标函数曲线,未经训练 BP 网络逼近曲线,训练后的 BP 网络逼近曲线);subplot(2,2,2)plot(u,t,b-,u,y1,g:,u,y2_2,r-);title(2、采用弹性梯度下降法的仿真结果图);xlabel(input_u);ylabel(output_y);legend(目标函数曲线,未经训练 BP 网络逼近曲线,训练后的 BP 网络逼近曲线);subplot(2,2,3)plot(u,t,b-,u,y1,g:,u,y2_3,r-);title(3、采用拟牛顿算法的仿真结果图);xlabel(input_u);ylabel(
7、output_y);legend(目标函数曲线,未经训练 BP 网络逼近曲线,训练后的 BP 网络逼近曲线);subplot(2,2,4)plot(u,t,b-,u,y1,g:,u,y2_4,r-);title(4、采用 Levenberg-Marquardt 法的仿真结果图);xlabel(input_u);ylabel(output_y);legend(目标函数曲线,未经训练 BP 网络逼近曲线,训练后的 BP 网络逼近曲线);仿真结果图:1、采用梯度下降法的仿真结果图504030outputy2、采用弹性梯度下降法的仿真结果图504030outputy目标函数曲线未经训练BP网络逼近曲线
8、训练后的BP网络逼近曲线目标函数曲线未经训练BP网络逼近曲线训练后的BP网络逼近曲线20100-10-420100-10-4-3-2-10inputu1234-3-2-10inputu12343、采用拟牛顿算法的仿真结果图504030outputy4、采用Levenberg-Marquardt法的仿真结果图504030outputy目标函数曲线未经训练BP网络逼近曲线训练后的BP网络逼近曲线目标函数曲线未经训练BP网络逼近曲线训练后的BP网络逼近曲线20100-10-420100-10-4-3-2-10inputu1234-3-2-10inputu1234图 1 改变不同训练算法仿真结果从图
9、1 中可以看出,改变不同训练算法得到的结果有所区别。二、改变参数二、改变参数 a,ca,c 的值,观察效果的值,观察效果选定一种训练算法,只改变 a,c 的值,其它不变,在本文中,对 c=1,a=0.3,0.5,0.7,1,1.5 的情况和 a=1,c=0.3,0.5,0.7,1,1.5,3 的情况进行了仿真,MATLAB程序如下,结果分别如图 2 和图 3。clear all;close all;clc;a=1;c=1;%在此改变 a,c 的值layer_number=20;%在此改隐含层的个数u=-4:0.001:4;t=exp(-a*u).*sin(c*u);%这里是矩阵相乘,要用点乘n
10、et=newff(minmax(u),layer_number,1,tansig,purelin,traingd);%梯度下降法y1=sim(net,u);%未训练直接输出net=newff(minmax(u),layer_number,1,tansig,purelin,traingd);net.trainParam.show=50;net.trainparam.epochs=1000;net.trainparam.goal=0.01;net=train(net,u,t);y2=sim(net,u);%采用梯度下降法训练节点plot(u,t,-,u,y1,:,u,y2,-);title(c=1
11、,a=1 的仿真结果图);xlabel(input_u);ylabel(output_y);legend(目标函数曲线,未经训练 BP 网络逼近曲线,训练后的 BP 网络逼近曲线);c=1,a=0.3 的 仿 真 结 果 图4目 标 函 数 曲 线未 经 训 练 BP网 络 逼 近 曲 线训 练 后 的 BP网 络 逼 近 曲 线32outputy10-1-2-3-4-3-2-10inputu1234目 标 函 数 曲 线未 经 训 练 BP网 络 逼 近 曲 线训 练 后 的 BP网 络 逼 近 曲 线c=1,a=0.5 的 仿 真 结 果 图864outputy20-2-4-4-3-2-1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 神经网络大作业 函数拟合 神经网络 作业 函数 拟合
限制150内