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次模拟');

 

你可能感兴趣的:(c,网络,plot)