深層学習day2 Section2:学習率最適化手法

要点まとめ

学習率の最適化手法は様々あるが、試験の範囲では以下のものがある。

勾配降下法

効果的だが、局所最適解に陥りやすい。

 \displaystyle{
\boldsymbol{w}^{(t+1)} = \boldsymbol{w}^{(t)} - \epsilon \bigtriangledown \boldsymbol{E}
}

モメンタム

Momentum=運動量、勢い。

前回の重みの減算量に係数\muを掛けて加算することで、局所最適解を抜け出して大域最適解にたどり着く。 振動的になりやすい。

 \displaystyle{
\boldsymbol{V}_t = \mu \boldsymbol{V}_{t-1} - \epsilon \bigtriangledown \boldsymbol{E} \\
\boldsymbol{w}^{(t+1)} = \boldsymbol{w}^{(t)} + \boldsymbol{V}_t
}

AdaGrad

Adaptive Gradient = 適応的な勾配

誤差の2乗を積算していき、徐々に学習されにくくする。

メリット:勾配が緩やかな斜面に対して最適値に近づける。

課題:学習率が徐々に小さくなるので、鞍点問題を引き起こすことがあった。

 \displaystyle{
h_0 = \theta \\
h_t = h_{t-1} + (\bigtriangledown \boldsymbol{E})^2 \\
\boldsymbol{w}^{(t+1)} = \boldsymbol{w}^{(t)} - \epsilon \frac{1}{\sqrt{h_t} + \theta} \bigtriangledown \boldsymbol{E}
}

RMSProp

AdaGradに対して、係数\alphaを用いてh_tの更新に調整を行う。

 \displaystyle{
h_t = \alpha h_{t-1} + (1-\alpha)(\bigtriangledown \boldsymbol{E})^2 \\
\boldsymbol{w}^{(t+1)} = \boldsymbol{w}^{(t)} - \epsilon \frac{1}{\sqrt{h_t} + \theta} \bigtriangledown \boldsymbol{E}
}

実装演習

SGDでは学習が進まなかったが、Momentum、AdaGrad、RMSProp と徐々に学習がスムーズに進むことが確認できた。

f:id:yui-gen-ron:20211214005400p:plain
学習率最適化手法

確認テスト等考察

特徴を順に追っていくと学習率の更新を工夫することで最適な学習を行おうとしてきた歴史が感じられる。

追加演習

ぜろつく①の⑥小でのSGDから始まる実装を行って確認した。

f:id:yui-gen-ron:20211214005649p:plain
SGD

f:id:yui-gen-ron:20211214005717p:plain
AdaGrad