この記事は
Deep Learning初心者がざっくりと
"ゼロから作るDeep Learning"(オライリー・ジャパン)
を読むノートです。
第6章 学習に関するテクニック
損失関数(loss function)の値をできるだけ小さくするパラメータをみつけたい。=> 最適化問題
機械学習フレームワークには、様々な optimizer が用意されています。
SGD (Stochastic Gradient Descent) 確率的勾配降下法
- パラメータ: Weight、Gradient、Learning-Rate
- 勾配の方向が、本来の最小値ではない方向を指している課題がある
- ジグザグ状に収束していくため、遠回り
Momentum
- パラメータ: Weight, Gradient, Learning-Rate, Verocity, alpha
- Velocity は速度、alpha はインピーダンス(摩擦、空気抵抗みたいなもの)
- ゆれ方向に減速することで、ジグザグ状を軽減する
AdaGrad (Adaptive Gradient)
- パラメータ: Weight, Gradient, Learning-Rate, h
- h はこれまでに経験した勾配の値の2乗和
- 大きく動いたLearning-Rateを次第に小さくしていく
RMSProp
- AdaGradの改良
- 過去の勾配を少なく、新しい勾配の影響を大きく反映されるようにする
Adam (AdaGrad + Momentum)
- 原著論文 -> Adam: A Method for Stochastic Optimization
- ハイパーパラメータ: Learning-Rate, beta1, beta2
- beta1: 0.9, beta2: 0.999 が標準値