Algorithm 不同反向传播算法的性能比较
我正在为同一个数据集实现各种反向传播算法,并尝试比较性能。我从下面的教程中得到了同样的帮助 我试图策划:Algorithm 不同反向传播算法的性能比较,algorithm,matlab,neural-network,backpropagation,Algorithm,Matlab,Neural Network,Backpropagation,我正在为同一个数据集实现各种反向传播算法,并尝试比较性能。我从下面的教程中得到了同样的帮助 我试图策划: 每个算法的均方误差与执行时间 与每个算法的均方误差收敛目标相比,收敛所需的时间 我已经使用了下面的代码来创建我的神经网络,并愿意知道如何实现上述两个图 %Data x=0:0.2:6*pi; y=sin(x); p=con2seq(x); t=con2seq(y); % Networks net1=feedforwardnet(20,'trainlm'); net2=feedforwar
%Data
x=0:0.2:6*pi; y=sin(x);
p=con2seq(x); t=con2seq(y);
% Networks
net1=feedforwardnet(20,'trainlm');
net2=feedforwardnet(20,'traingd');
net2.iw{1,1}=net1.iw{1,1}; %set the same weights and biases for the networks
net2.lw{2,1}=net1.lw{2,1};
net2.b{1}=net1.b{1};
net2.b{2}=net1.b{2};
%training and simulation
net1.trainParam.epochs=1; % set the number of epochs for the training
net2.trainParam.epochs=1;
net1=train(net1,p,t); % train the networks
net2=train(net2,p,t);
a11=sim(net1,p); a21=sim(net2,p); % simulate the networks with the input vector p
net1.trainParam.epochs=14;
net2.trainParam.epochs=14;
net1=train(net1,p,t);
net2=train(net2,p,t);
a12=sim(net1,p); a22=sim(net2,p);
net1.trainParam.epochs=985;
net2.trainParam.epochs=985;
net1=train(net1,p,t);
net2=train(net2,p,t);
a13=sim(net1,p); a23=sim(net2,p);
%plots
figure
subplot(3,3,1);
plot(x,y,'bx',x,cell2mat(a11),'r',x,cell2mat(a21),'g'); % plot the sine function and the output of the networks
title('1 epoch');
legend('target','trainlm','traingd');
subplot(3,3,2);
postregm(cell2mat(a11),y); % perform a linear regression analysis and plot the result
subplot(3,3,3);
postregm(cell2mat(a21),y);
%
subplot(3,3,4);
plot(x,y,'bx',x,cell2mat(a12),'r',x,cell2mat(a22),'g');
title('15 epochs');
legend('target','trainlm','traingd');
subplot(3,3,5);
postregm(cell2mat(a12),y);
subplot(3,3,6);
postregm(cell2mat(a22),y);
%
subplot(3,3,7);
plot(x,y,'bx',x,cell2mat(a13),'r',x,cell2mat(a23),'g');
title('1000 epochs');
legend('target','trainlm','traingd');
subplot(3,3,8);
postregm(cell2mat(a13),y);
subplot(3,3,9);
postregm(cell2mat(a23),y);
请注意,当未指定错误度量时,默认情况下使用MSE 在进行培训时,您可以执行以下操作:
[net tr] = train(net, x, t);
然后绘制tr.perf
或tr.tperf
或tr.vperf
“postregm”函数来自哪个工具箱?