0
点赞
收藏
分享

微信扫一扫

bp网络参数说明


 

多个不同参数(主要是迭代步骤和误差值)控制下,运算结果的差异比较:

 

%设置输入样本 
P=0:0.05:4;
%期望输出值
T=[0.5:0.025:1 0.975:-0.025:0 0.025:0.025:0.5];
%目标拟合曲线
%生成1-4-1BP网络
net=newff(minmax(P),[4 1],{'logsig' 'purelin'},'trainlm');
%设置第一层权值
net.IW{1}=[0.2;0.3;0.4;0.5];
%设置第二层权值
net.LW{2}=[0.5 0.2 0.1 0.4 ];
%设置第一层第二层阈值均为零
net.b{1}=net.b{1}*0;
net.b{2}=net.b{2}*0;
%网络训练参数设置
net.trainparam.goal=0.0001;%设置训练误差值
net.trainparam.show=50;%设置数据显示刷新频率,学习次刷新一次图象
net.trainparam.epochs=20;%设置训练训练次数
net.trainParam.goal=1;%设置训练的目标结果
[net,tr]=train(net,P,T);%进行网络训练
Y=sim(net,P);%进行仿真运算
%%%%改变控制条件,增大步骤,减少误差
net.trainparam.epochs=200;%设置训练训练次数
net.trainParam.goal=1e-1;%设置训练的目标结果
[net2,tr]=train(net,P,T);%进行网络训练
Y2=sim(net2,P);%进行仿真运算
%%%%改变控制条件,增大步骤,减少误差
net.trainparam.epochs=2000;%设置训练训练次数
net.trainParam.goal=1e-2;%设置训练的目标结果
[net2,tr]=train(net,P,T);%进行网络训练
Y3=sim(net2,P);%进行仿真运算
%%%%改变控制条件,增大步骤,减少误差
net.trainparam.epochs=2000;%设置训练训练次数
net.trainParam.goal=1e-10;%设置训练的目标结果
[net2,tr]=train(net,P,T);%进行网络训练
Y4=sim(net2,P);%进行仿真运算
% 画出目标曲线与实际仿真曲线
plot(P,T,P,Y,'c')
hold on;
plot(P,Y2,'y')
plot(P,Y3,'g')
plot(P,Y4,'r')
legend('目标值','第1次模拟','第2次模拟','第3次模拟','第4次模拟');

举报

相关推荐

0 条评论