なぜ、trainNetwork 関数で学習すると学習​の途中経過がNaNに​なりますか?

2 ビュー (過去 30 日間)
MathWorks Support Team
MathWorks Support Team 2017 年 5 月 19 日
回答済み: MathWorks Support Team 2017 年 5 月 19 日
trainNetwork関数を利用して、学習を進めています。
ネットワークのパラメータを変更しながら、学習すると、
パラメータや学習データによって、「Mini-batch Loss」等の途中経過の値が「NaN」になることがあり、モデルが作成できない状況が発生します。

採用された回答

MathWorks Support Team
MathWorks Support Team 2017 年 5 月 19 日
学習ログの出力結果の一部が「NaN」になる場合は、設定している学習率が高すぎる場合に生じる傾向があります。 
この問題を抑制する方法としては、以下が検討頂ける項目となります。 
(1) 初期の学習率を小さく設定する 
→ trainingOptions の InitialLearnRate を 既定の 0.01 よりも小さい値に設定します 
(2) 学習率を学習時に可変になるように設定する 
→ trainingOptions の LearnRateSchedule を 既定の "none" から "piecewise" に変更します。現状では、学習率は常に固定値を利用します。 
関連する学習率を可変にするパラメータに該当する項目としては、 
InitialLearnRate 
LearnRateDropFactor 
LearnRateDropPeriod 
となります。 
InitialLearnRate は、上記での紹介と重複となりますが初期の学習率を設定します。 
(既定では、 0.01 と設定されます) 
LearnRateDropFactor は、実際にどの程度学習率を変更させるかの調整値となります。 
既定では、0.1 と設定されますが、 0 ~ 1 の範囲で、減衰率を設定します。 
LearnRateDropPeriod は、何Epoch 毎に更新を行うかの調整パラメータとなります。 
既定では 10 と設定されております。 
 

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeDeep Learning Toolbox についてさらに検索

タグ

タグが未入力です。

製品


リリース

R2017a

Community Treasure Hunt

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

Start Hunting!