ラビットチャレンジ【深層学習day2】~学習率最適化手法~

概要

パラメータを出来るだけ早く、より正確に終わらせるために様々な方法な方法が考案されている

重みを調整する方法や学習率を調整する方法がある

この章では以下の項目を学んだ

・モメンタム

・AdaGrad

・RMSProp

・Adam(確認テストを1つ含む)

・ハンズオン

モメンタム

値を更新する際に前回の更新量に減衰率をかけたものを加える

メリット

・局所的最適解にはならず、大域的最適解となる

・谷間についてからも最も低い位置(最適解)に行くまでの時間が早い

f:id:Maruring:20210716144013p:plain

AdaGrad

誤差をパラメータで微分したものと再定義した学習率の積を減算する誤差をパラメータで微分したものと学習率の積を減算する

メリット

・勾配の緩やかな斜面に対して、最適値に近づける

課題

・学習率が徐々に小さくなるので、鞍点問題を引き起こす

f:id:Maruring:20210716144555p:plain

RMSProp

・誤差をパラメータで微分したものと再定義した学習率の積を減算する

メリット

・局所的最適解にはならず、大域的最適解となる

・ハイパーパラメータの調整が必要な場合が少ない

f:id:Maruring:20210716144816p:plain

Adam

モメンタムとRMSPropのいいとこどり

メリット

・モメンタムおよびRMSPropのメリットを孕んだアルゴリズム

f:id:Maruring:20210716144935p:plain

<<確認テスト>>

モメンタム・AdaGrad・RMSPropの特徴をそれぞれ簡潔に説明せよ

モメンタム:傾きが大きい時は学習を早く進める。そのためパラメータの更新がはやくなる

AdaGrad:傾きが小さくなるほど学習率を小さくする。勾配をみながら学習率を変化させている

RMSProp:AdaGradの値が更新しずらくなる問題を過去の蓄積した学習率を参照しながら勾配を決定する

ハンズオン

[学習率, 活性化関数+初期値, バッチ正規化] = [0.01, sigmoid-gauss+0.01, なし]であるため

以下の条件で学習経過を比較

・[0.1, sigmoid-gauss+0.01, なし]

・[0.01, ReLU+Xavier, なし]

・[0.01, sigmoid-gauss+0.01, あり]

初期設定ではAdamが一番良い。モメンタム,AdaGrad,Adamに関しては活性化関数+初期値を変更した時が一番良い。RMSPropに関しては活性化関数+初期値と正規化を変更した性能が同等である

f:id:Maruring:20210716160914p:plain

f:id:Maruring:20210716160926p:plain

f:id:Maruring:20210716160941p:plain

f:id:Maruring:20210716160956p:plain

f:id:Maruring:20210716161009p:plain