《2022年神经网络大作业函数拟合 .pdf》由会员分享,可在线阅读,更多相关《2022年神经网络大作业函数拟合 .pdf(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、人工神经网络第一次作业题目:使用函数sin()autecu试验 MATLAB 中的 BP 算法1、改变不同训练算法,观察效果;2、改变参数 a,c的值,观察效果;3、改变隐层神经网络个数,观察效果;4、尝试:加入噪声的训练效果。一、改变不同训练算法,观察效果在 MATLAB 中, BP 网络的训练函数一共有以下几种,改变不同训练算法,观察效果就是在其他参数不变只改变程序中训练函数的情况下,得到不同训练算法的训练结果。训练方法训练函数梯度下降法traingd 有动量的梯度下降法traingdm 自适应 lr 梯度下降法traingda 自适应 lr 动量梯度下降法traingdx 弹性梯度下降法
2、trainrp Fletcher-Reeves共轭梯度法traincgf Ploak-Ribiere 共轭梯度法traincgp Powell-Beale 共轭梯度法traincgb 量化共轭梯度法trainscg 拟牛顿算法trainbfg 一步正割算法trainoss Levenberg-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, traing
4、d); %梯度下降法net2=newff(minmax(u),layer_number,1,tansig, purelin, trainrp)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 13 页 - - - - - - - - - ; %弹性梯度下降法net3=newff(minmax(u),layer_number,1,tansig, purelin, trainbfg);% 拟牛顿算法net4=newff(minmax(u),layer_number,1,tans
5、ig, purelin, trainlm); %Levenberg-Marquardtnet.trainParam.show = 50;net.trainparam.epochs=1000;net.trainparam.goal=0.01;net1=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
6、,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);ylabel(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);leg
7、end( 目标函数曲线 , 未经训练BP 网络逼近曲线 , 训练后的BP 网络逼近曲线 );subplot(2,2,3)plot(u,t,b-,u,y1,g:,u,y2_3,r-) ;title(3 、采用拟牛顿算法的仿真结果图 );xlabel(input_u);ylabel(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
8、);ylabel(output_y);legend( 目标函数曲线 , 未经训练BP 网络逼近曲线 , 训练后的BP 网络逼近曲线 );仿真结果图:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 13 页 - - - - - - - - - -4-3-2-101234-10010203040501、 采 用 梯 度 下 降 法 的 仿 真 结 果 图inputuoutputy目 标 函 数 曲 线未 经 训 练 BP网 络 逼 近 曲 线训 练 后 的 BP网 络 逼 近
9、 曲 线-4-3-2-101234-10010203040502、 采 用 弹 性 梯 度 下 降 法 的 仿 真 结 果 图inputuoutputy目 标 函 数 曲 线未 经 训 练 BP网 络 逼 近 曲 线训 练 后 的 BP网 络 逼 近 曲 线-4-3-2-101234-10010203040503、 采 用 拟 牛 顿 算 法 的 仿 真 结 果 图inputuoutputy目 标 函 数 曲 线未 经 训 练 BP网 络 逼 近 曲 线训 练 后 的 BP网 络 逼 近 曲 线-4-3-2-101234-10010203040504、 采 用 Levenberg-Marqua
10、rdt 法 的 仿 真 结 果 图inputuoutputy目 标 函 数 曲 线未 经 训 练 BP网 络 逼 近 曲 线训 练 后 的 BP网 络 逼 近 曲 线图 1 改变不同训练算法仿真结果从图 1 中可以看出,改变不同训练算法得到的结果有所区别。二、改变参数 a,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; %
11、在此改变 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);% 未训练直接输出net=newff(minmax(u),layer_number,1,tansig, purelin, traingd);net.trainParam.show = 50;net.trainparam.epochs=1000;net.trainp
12、aram.goal=0.01;net=train(net,u,t);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 13 页 - - - - - - - - - y2=sim(net,u);% 采用梯度下降法训练节点plot(u,t,-,u,y1,:,u,y2,-);title(c=1,a=1 的仿真结果图 );xlabel(input_u);ylabel(output_y);legend( 目标函数曲线 , 未经训练BP 网络逼近曲线 , 训练后的BP 网络逼近曲线 )
13、;-4-3-2-101234-3-2-101234c=1,a=0.3 的 仿 真 结 果 图inputuoutputy目 标 函 数 曲 线未 经 训 练 BP 网 络 逼 近 曲 线训 练 后 的 BP 网 络 逼 近 曲 线-4-3-2-101234-4-202468c=1,a=0.5 的 仿 真 结 果 图inputuoutputy目 标 函 数 曲 线未 经 训 练 BP 网 络 逼 近 曲 线训 练 后 的 BP 网 络 逼 近 曲 线名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - -
14、 - 第 4 页,共 13 页 - - - - - - - - - -4-3-2-101234-4-202468101214c=1,a=0.7 的 仿 真 结 果 图inputuoutputy目 标 函 数 曲 线未 经 训 练 BP 网 络 逼 近 曲 线训 练 后 的 BP 网 络 逼 近 曲 线-4-3-2-101234-1001020304050c=1,a=1 的 仿 真 结 果 图inputuoutputy目 标 函 数 曲 线未 经 训 练 BP网 络 逼 近 曲 线训 练 后 的 BP网 络 逼 近 曲 线名师资料总结 - - -精品资料欢迎下载 - - - - - - - -
15、- - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 13 页 - - - - - - - - - -4-3-2-101234-50050100150200250300350c=1,a=1.5 的 仿 真 结 果 图inputuoutputy目 标 函 数 曲 线未 经 训 练 BP 网 络 逼 近 曲 线训 练 后 的 BP 网 络 逼 近 曲 线图 2 c=1,a=0.3,0.5,0.7,1,1.5 时的仿真结果由以上 5 副仿真图可知,在 c 值确定, a=1的时候,经过梯度下降法traingd训练之后得到的结果较好。-4-3-2-101234
16、-60-50-40-30-20-10010a=1,c=0.3 的 仿 真 结 果 图inputuoutputy目 标 函 数 曲 线未 经 训 练 BP 网 络 逼 近 曲 线训 练 后 的 BP 网 络 逼 近 曲 线名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 13 页 - - - - - - - - - -4-3-2-101234-50-40-30-20-10010a=1,c=0.5 的 仿 真 结 果 图inputuoutputy目 标 函 数 曲 线未 经 训
17、 练 BP网 络 逼 近 曲 线训 练 后 的 BP网 络 逼 近 曲 线-4-3-2-101234-25-20-15-10-50510a=1,c=0.7 的 仿 真 结 果 图inputuoutputy目 标 函 数 曲 线未 经 训 练 BP网 络 逼 近 曲 线训 练 后 的 BP网 络 逼 近 曲 线名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 13 页 - - - - - - - - - -4-3-2-101234-1001020304050a=1,c=1 的
18、 仿 真 结 果 图inputuoutputy目 标 函 数 曲 线未 经 训 练 BP 网 络 逼 近 曲 线训 练 后 的 BP 网 络 逼 近 曲 线-4-3-2-101234-10-5051015202530a=1,c=1.5 的 仿 真 结 果 图inputuoutputy目 标 函 数 曲 线未 经 训 练 BP 网 络 逼 近 曲 线训 练 后 的 BP 网 络 逼 近 曲 线名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 13 页 - - - - - -
19、- - - -4-3-2-101234-20-1001020304050a=1,c=3 的 仿 真 结 果 图inputuoutputy目 标 函 数 曲 线未 经 训 练 BP 网 络 逼 近 曲 线训 练 后 的 BP 网 络 逼 近 曲 线图 3a=1,c=0.3,0.5,0.7,1,1.5,3 时的仿真结果对比图 3 的结果图,可知在a 固定时,当 c=1 时,经过梯度下降法traingd训练之后得到的结果较好。三、改变隐层神经网络个数,观察效果选定梯度下降法traingd 训练算法来训练样本,只改变隐层神经网络个数,其它不变。在本文中,对隐层神经网络个数layer_number为 5
20、、10、20、30 的情况进行了仿真, MATLAB 程序如下,结果分别如图4。clear all;close all;clc;a=1;c=1; % 在此改变a,c的值layer_number=5; %在此改隐含层的个数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);% 未训练直接输出net=newff(minmax(u),layer_number,1,tansig, purelin
21、, traingd);net.trainParam.show = 50;net.trainparam.epochs=1000;net.trainparam.goal=0.01;net=train(net,u,t);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 13 页 - - - - - - - - - y2=sim(net,u);% 采用梯度下降法训练节点plot(u,t,-,u,y1,:,u,y2,-);title( 隐层神经网络个数layer_number=5时结
22、果图 );xlabel(input_u);ylabel(output_y);legend( 目标函数曲线 , 未经训练BP 网络逼近曲线 , 训练后的BP 网络逼近曲线 ); -4-3-2-101234-1001020304050隐 层 神 经 网 络 个 数 layernumber=5 时 结 果 图inputuoutputy目 标 函 数 曲 线未 经 训 练 BP 网 络 逼 近 曲 线训 练 后 的 BP 网 络 逼 近 曲 线名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第
23、10 页,共 13 页 - - - - - - - - - -4-3-2-101234-1001020304050隐 层 神 经 网 络 个 数 layernumber=10 时 结 果 图inputuoutputy目 标 函 数 曲 线未 经 训 练 BP 网 络 逼 近 曲 线训 练 后 的 BP 网 络 逼 近 曲 线-4-3-2-101234-1001020304050隐 层 神 经 网 络 个 数 layernumber=20 时 结 果 图inputuoutputy目 标 函 数 曲 线未 经 训 练 BP 网 络 逼 近 曲 线训 练 后 的 BP 网 络 逼 近 曲 线名师资料
24、总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 13 页 - - - - - - - - - -4-3-2-101234-1001020304050隐 层 神 经 网 络 个 数 layernumber=30 时 结 果 图inputuoutputy目 标 函 数 曲 线未 经 训 练 BP 网 络 逼 近 曲 线训 练 后 的 BP 网 络 逼 近 曲 线图 4 改变隐层神经网络个数的结果从以上结果可知,在其他参数不变,只改变隐层神经网络个数的情况下,在隐层神经网络个数lay
25、er_number=20时,获得的训练结果较理想。四、尝试:加入噪声的训练效果本文采用 randn函数产生一个和输入变量同维度的一个均值为0 方差为 1的正态分布的随机噪声,然后加入到函数中,其它参数不变,MATLAB 程序如下,结果如图 5 所示。clear all;close all;clc;a=1;c=1; % 在此改变a,c的值layer_number=20; %在此改隐含层的个数u=-4:0.001:4;ul=length(u);noise=randn(1,ul);%产生一个均值为0 方差为 1 的正态分布的随机噪声t=exp(-a*u).*sin(c*u)+noise; % 加入随
26、机噪声net=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;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - -
27、 - - - - 第 12 页,共 13 页 - - - - - - - - - net=train(net,u,t);y2=sim(net,u);% 采用梯度下降法训练节点plot(u,t,-,u,y1,:,u,y2,-);title( 加入随机噪声时的结果图 );xlabel(input_u);ylabel(output_y);legend( 目标函数曲线 , 未经训练BP 网络逼近曲线 , 训练后的BP 网络逼近曲线 );-4-3-2-101234-20-1001020304050加 入 随 机 噪 声 时 的 结 果 图inputuoutputy目 标 函 数 曲 线未 经 训 练 BP 网 络 逼 近 曲 线训 练 后 的 BP 网 络 逼 近 曲 线图 5 加入随机噪声之后的结果从图 5 可以看出,加入随机噪声之后,训练之后得到的曲线还是较好的。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 13 页 - - - - - - - - -
限制150内