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

15 ビュー (過去 30 日間)
hitoku
hitoku 2020 年 5 月 11 日
コメント済み: michio 2020 年 5 月 13 日
ニューラルネットワークにおける学習アルゴリズムはどのように確認すればよいでしょうか?
例えば以下のコードでは、
[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関数の様にレーベンバーグ・マルカート法逆伝播などの学習アルゴリズムを関数として書き出すことはできないでしょうか?

採用された回答

michio
michio 2020 年 5 月 12 日
浅い多層ニューラル ネットワークの学習と適用学習アルゴリズムの項にあるアルゴリズムの一覧が参考になるかもしれません。
リンク先の構文に
net.trainFcn = 'trainlm'
などと記載があると思いますが、net.trainFcn で使用される学習アルゴリズムを確認できます。
例えば
edit trainlm
と実行すると関数の中身も確認できますが、お役に立ちますでしょうか。
  2 件のコメント
hitoku
hitoku 2020 年 5 月 12 日
回答ありがとうございます。
アルゴリズムの一覧および変更方法等は調べれば確認できるのですが、具体的なアルゴリズムについては参考文献が掲示されるのみで、MATLAB上でどのように動作しているかの確認の方法がないか思案していたのですが、
edit trainlm
等で関数の中身を確認することでアルゴリズムの確認もできました。
michio
michio 2020 年 5 月 13 日
丁寧にご連絡頂きありがとうございました。お役に立ちましたら幸いです。

サインインしてコメントする。

その他の回答 (0 件)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!