MATLAB Answers

ニューラルネットワー​クにおける学習アルゴ​リズムの確認方法

3 views (last 30 days)
hitoku
hitoku on 11 May 2020
Commented: michio on 13 May 2020
ニューラルネットワークにおける学習アルゴリズムはどのように確認すればよいでしょうか?
例えば以下のコードでは、
[X,T] = simpleseries_dataset;
net = layrecnet(1:2,10);
[Xs,Xi,Ai,Ts] = preparets(net,X,T);
net = train(net,Xs,Ts,Xi,Ai);
view(net)
Y = net(Xs,Xi,Ai);
perf = perform(net,Y,Ts)
規定の学習アルゴリズムであるレーベンバーグ・マルカート法逆伝播が実行されていることがわかります。
以下の関数等で学習後のニューラルネットワークの構造は確認できますが、
genFunction(net,'preditction_layrecnet_Fcn','MatrixOnly','yes');
これらの重み更新が具体的にどのように行われているのかを確認する方法は無いのでしょうか?
genFunction関数の様にレーベンバーグ・マルカート法逆伝播などの学習アルゴリズムを関数として書き出すことはできないでしょうか?

  0 Comments

Sign in to comment.

Accepted Answer

michio
michio on 12 May 2020
浅い多層ニューラル ネットワークの学習と適用学習アルゴリズムの項にあるアルゴリズムの一覧が参考になるかもしれません。
リンク先の構文に
net.trainFcn = 'trainlm'
などと記載があると思いますが、net.trainFcn で使用される学習アルゴリズムを確認できます。
例えば
edit trainlm
と実行すると関数の中身も確認できますが、お役に立ちますでしょうか。

  2 Comments

hitoku
hitoku on 12 May 2020
回答ありがとうございます。
アルゴリズムの一覧および変更方法等は調べれば確認できるのですが、具体的なアルゴリズムについては参考文献が掲示されるのみで、MATLAB上でどのように動作しているかの確認の方法がないか思案していたのですが、
edit trainlm
等で関数の中身を確認することでアルゴリズムの確認もできました。
michio
michio on 13 May 2020
丁寧にご連絡頂きありがとうございました。お役に立ちましたら幸いです。

Sign in to comment.

More Answers (0)