情報詳細Q:学習率とモメンタムには相関関係があるのでしょうか。また、トレーニング誤差とバリデーション誤差はどのような違いがありますか。A:【学習率とモメンタムの相関関係について】それぞれディープラーニングネットワークの判定の重みを決定する際に用いられます。まったく相関がないわけではないですが学習率の設定が高いからモメンタムを低くさせるといったものではなくトレーニング中の正答率を見てそれぞれ調整させていきます。エポックがn回のとき現在の重みが𝐴、読み込んだ画像から計算された重みの更新量が𝑎、学習率が𝜀とすると、重みの更新式は、𝐴(𝑛+1) = 𝐴(𝑛) – 𝜀𝑎となります。モメンタムはこの重みが変わりすぎることを抑制し、早く収束させられるようにします。A(n+1)=A(n) − 𝜀𝑎 +β⊿𝐴(𝑛) (" β":モメンタム)学習中のグラフがなかなか0に向かわない場合は学習率を高くしトレーニング誤差が上下して安定しないときにモメンタムを高くします。ただしモメンタムが高すぎると、正しい判定基準から学習できていないことが生じトレーニング誤差とバリデーション誤差がずれることが起きるためその場合モメンタムを下げる調整が必要となります。(train_dl_classifier_batchのヘルプよりモメンタムの詳細を確認可能です。)完全に正しいわけではないですが、わかりやすくなるよう例えるとディープラーニングは教科書を丸暗記する勉強法でバッチサイズは一度の学習で実施するページ量で、多い方が早く終わりますし、幅広く知ることができますが、能力(=メモリサイズ)で上限があります。エポック数がテキストを読み返す回数で、学習率はどれだけ熱心に読み込むかを表します。学習率を常に高くしすぎると、早く内容を覚えてくれやすくはなりますが質問されたときに、助詞や語順まで完全に一致しないと答えられないような融通が利かない勉強結果になってしまいます。これが過学習と呼ばれる状況で、トレーニング誤差とバリデーション誤差が大きい場合です。それを防ぎつつ、かつ高速に勉強が終わるように学習率によって、まずは重要な単語の重みを強く、それ以外は学習の度合いを弱めて繰り返し読みながら覚えるようにします。モメンタムは、前回の学習でここはだいたい正しかったからもっと流しちゃっていいよとする度合いで学習を終わらせるのを早くするものとなります。【トレーニング誤差とバリデーション誤差の違いについて】トレーニング誤差は実際に学習に使っている画像に対して判定結果が誤ったかの確率です。何に分けるべきかをその画像で検討しているため分類種別ごとに存在する、画像内のどんな違いでも(全体の明るさや特定の画素に何かがある場合など)判定基準にされることから人が目視で確認できる以上に高い分類精度を持つことも可能です。それに対してバリデーション誤差は、ディープラーニングでは用意された画像の一部をトレーニング用ではなく学習結果が正しいか確認用に別にしていますので、その画像に対する、誤った判定がされた確率です。上記のトレーニングの際に、実際に判断基準にすべきもの以外で不要なトレーニングを行っていると誤差はトレーニング誤差と隔離してしまうため学習が誤っているといった判断に利用できます。 添付ファイルタイトルDeep Learning:学習率とモーメンタムについてURL 名000005585公開状況公開済み検証状況公開済み