2017-05-04 22 views
0

同じデータセットに対して様々なバックプロパゲーションアルゴリズムを実装し、パフォーマンスを比較しようとしています。私は同じチュートリアルの助けを得ました。異なるバックプロパゲーションアルゴリズムのパフォーマンス比較プロット

https://nl.mathworks.com/help/nnet/ug/choose-a-multilayer-neural-network-training-function.html

私はプロットしてみました:

  1. 各アルゴリズムの実行時間に対する各アルゴリズム
の平均二乗誤差の収束目標に対して収束させるために必要な
  • 時間を平均二乗誤差

    次のコードを使用してニューラルネットワークを作成し、上記の2つのプロットをどのように実装できるかを知りたいと思っています。

    %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); 
    
  • 答えて

    1

    エラーの尺度が指定されていない場合、デフォルトでMSEが使用されることに注意してください。

    あなたのような何かを行うことができます訓練時:

    [net tr] = train(net, x, t); 
    

    その後tr.perfまたはtr.tperfまたはtr.vperf

    をプロット
    関連する問題