1 / 16
文档名称:

[精品]bp神经网络matlab编程代码.doc

格式:doc   大小:35KB   页数:16页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

[精品]bp神经网络matlab编程代码.doc

上传人:iris028 2019/9/8 文件大小:35 KB

下载得到文件列表

[精品]bp神经网络matlab编程代码.doc

文档介绍

文档介绍:[精品]BP神经网络MATLAB编程代码BP神经网络的设计MATLAB编程例1采用动量梯度下降算法训练BP网络。训练样本定义如下:输入矢量为p=[-1-231-115-3]目标矢量为t=[-1-111]解:本例的MATLAB程序如下:closeallclearechoonclc%NEWFF——生成一个新的前向神经网络%TRAIN——对BP神经网络进行训练%SIM——对BP神经网络进行仿真pause%敲任意键开始clc%定义训练样本%P为输入矢量P=[-1,-2,3,1;-1,1,5,-3];%T为目标矢量T=[-1,-1,1,1];pause;clc%=newff(minmax(P),[3,1],{'tansig','purelin'},'traingdm')%.IW{1,1}.b{1}%.LW{2,1}.b{2}pauseclc%.=.=0..=;=newff(pr,[124],{'logsig','logsig'},'traingdx','learngdm');%建立BP神经网络,12个隐层神经元,4个输出神经元%属性'logsig'隐层采用Sigmoid传输函数%属性'logsig'输出层采用Sigmoid传输函数%属性'traingdx'自适应调整学****速率附加动量因子梯度下降反向传播算法训练函数%learn属性'learngdm'.=1000;%.=;%训练目标最小误差0..=10;%.=;%学****速率0..=.=1e-3;pauseclc%,tr]=,P,T);pauseclc%对BP网络进行仿真A=,P)%计算仿真误差E=T-AMSE=mse(E)pauseclcechooff网络的推广能力。在本例中,我们采用两例2采用贝叶斯正则化算法提高BP种训练方法,即L-M优化算法(trainlm)和贝叶斯正则化算法(trainbr),用以训练BP网络,使其能够拟合某一附加有白噪声的正弦样本数据。其中,样本数据可以采用如下MATLAB语句生成:输入矢量:P=[-1::1];目标矢量:randn(’seed’,78341223);T=sin(2*pi*P)+*randn(size(P));解:本例的MATLAB程序如下:closeallclearechoonclc%NEWFF——生成一个新的前向神经网络%TRAIN——对BP神经网络进行训练%SIM——对BP神经网络进行仿真pause%敲任意键开始clc%定义训练样本矢量%P为输入矢量P=[-1::1];%T为目标矢量randn('seed',78341223);T=sin(2*pi*P)+*randn(size(P));%绘制样本数据点plot(P,T,'+');echooffholdon;plot(P,sin(2*pi*P),':');%绘制不含噪声的正弦曲线echoonclcpauseclc%=newff(minmax(P),[20,1],{'tansig','purelin'});pauseclcechooffclcdisp('-M优化算法TRAINLM');disp('');choice=input('请选择训练算法(1,2):');figure(gcf);if(choice==1)echoonclc%采用L-.='trainlm';pauseclc%.=.=1e-=);%重新初始化pauseclcelseif(choice==2)echoonclc%.='trainbr';pauseclc%.=500;randn('seed',192736547);net=);%重新初始化pauseclcend%,tr]=,P,T);pauseclc%对BP网络进行仿真A=,P);%计算仿真误差E=T-A;MSE=mse(E)pauseclc%绘制匹配结果曲线closeall;plot(P,A,P,T,'+',P,sin(2*pi*P),':');pause;clcechooff通过采用两种不同的训练算法,我们可以得到如图1和图2所示的两种拟合结果。图中的实线表示拟合曲线,虚线代表不含白噪声的正弦曲线,“,”点为含有白噪声的正弦样本数据点。显然,经trainlm函数训练后的神经网络对样本数据点实现了“过度匹配”,而经trainbr函数训