神经网络大作业 函数拟合Word格式.docx

上传人:b****3 文档编号:17138655 上传时间:2022-11-28 格式:DOCX 页数:14 大小:159.02KB
下载 相关 举报
神经网络大作业 函数拟合Word格式.docx_第1页
第1页 / 共14页
神经网络大作业 函数拟合Word格式.docx_第2页
第2页 / 共14页
神经网络大作业 函数拟合Word格式.docx_第3页
第3页 / 共14页
神经网络大作业 函数拟合Word格式.docx_第4页
第4页 / 共14页
神经网络大作业 函数拟合Word格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

神经网络大作业 函数拟合Word格式.docx

《神经网络大作业 函数拟合Word格式.docx》由会员分享,可在线阅读,更多相关《神经网络大作业 函数拟合Word格式.docx(14页珍藏版)》请在冰豆网上搜索。

神经网络大作业 函数拟合Word格式.docx

traingd

有动量的梯度下降法

traingdm

自适应lr梯度下降法

traingda

自适应lr动量梯度下降法

traingdx

弹性梯度下降法

trainrp

Fletcher-Reeves共轭梯度法

traincgf

Ploak-Ribiere共轭梯度法

traincgp

Powell-Beale共轭梯度法

traincgb

量化共轭梯度法

trainscg

拟牛顿算法

trainbfg

一步正割算法

trainoss

Levenberg-Marquardt法

trainlm

由于这只是改变程序中的训练算法,其他不变,所以为了简洁,在本程序中只选取了四种训练算法,分别是梯度下降法traingd、弹性梯度下降法trainrp、拟牛顿算法trainbfg和Levenberg-Marquardt法trainlm,只更改不同的训练算法来构造节点,程序如下,得到不同训练算法下的仿真图如图1所示。

clearall;

closeall;

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],{'

net2=newff(minmax(u),[layer_number,1],{'

trainrp'

%弹性梯度下降法

net3=newff(minmax(u),[layer_number,1],{'

trainbfg'

%拟牛顿算法

net4=newff(minmax(u),[layer_number,1],{'

trainlm'

%Levenberg-Marquardt

net.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,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)

u,y2_2,'

);

2、采用弹性梯度下降法的仿真结果图'

subplot(2,2,3)

u,y2_3,'

3、采用拟牛顿算法的仿真结果图'

subplot(2,2,4)

u,y2_4,'

4、采用Levenberg-Marquardt法的仿真结果图'

仿真结果图:

 

图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。

a=1;

c=1;

net=train(net,u,t);

y2=sim(net,u);

--'

:

u,y2,'

-'

c=1,a=1的仿真结果图'

图2c=1,a=0.3,0.5,0.7,1,1.5时的仿真结果

由以上5副仿真图可知,在c值确定,a=1的时候,经过梯度下降法traingd训练之后得到的结果较好。

图3a=1,c=0.3,0.5,0.7,1,1.5,3时的仿真结果

对比图3的结果图,可知在a固定时,当c=1时,经过梯度下降法traingd训练之后得到的结果较好。

三、改变隐层神经网络个数,观察效果

选定梯度下降法traingd训练算法来训练样本,只改变隐层神经网络个数,其它不变。

在本文中,对隐层神经网络个数layer_number为5、10、20、30的情况进行了仿真,MATLAB程序如下,结果分别如图4。

layer_number=5;

隐层神经网络个数layer_number=5时结果图'

图4改变隐层神经网络个数的结果

从以上结果可知,在其他参数不变,只改变隐层神经网络个数的情况下,在隐层神经网络个数layer_number=20时,获得的训练结果较理想。

四、尝试:

加入噪声的训练效果

本文采用randn函数产生一个和输入变量同维度的一个均值为0方差为1的正态分布的随机噪声,然后加入到函数中,其它参数不变,MATLAB程序如下,结果如图5所示。

ul=length(u);

noise=randn(1,ul);

%产生一个均值为0方差为1的正态分布的随机噪声

t=exp(-a*u).*sin(c*u)+noise;

%加入随机噪声

加入随机噪声时的结果图'

图5加入随机噪声之后的结果

从图5可以看出,加入随机噪声之后,训练之后得到的曲线还是较好的。

欢迎您的下载,

资料仅供参考!

致力为企业和个人提供合同协议,策划案计划书,学习资料等等

打造全网一站式需求

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1