勾配降下法
モデルの予測値と実際の値の誤差を最小にするため,入力値に対する重みを適切な値にしなければならない.その際に最適解を探索する手法として,勾配降下法が用いられる.
曲線に対する勾配ということで,微分値である「接線の傾き」に沿って解を探索し続ける.そのため学習には時間がかかる.
⇔ 勾配上昇法
イテレーション:何回繰り返し計算を行い,重みを更新したか.
学習率:勾配に沿って一度にどれくらい降りていくか.
エポック:訓練データを何度学習に用いたか
大域最適解:誤差の値を最も小さくする,本当の最適解.
局所最適解:見せかけの最適解.一見誤差の値が小さく見えるが,全体的な最小値を実現しているわけではない.
勾配降下法では,求められた重みが局所最適解なのか大域最適解なのかが判断できない.そのため,適切なタイミングで学習率を小さくしていくことが必要になる.
しかし一般的には「局所最適解が求まれば,ある程度誤差の値は小さいため,それで妥協しよう」というスタンスで学習を進める.
停留点
勾配が0になる点.局所最適解でも大域最適解でもない.
鞍点
ある次元まで低くすると,極小となる点.これ以上次元を落としても付近は極小のままであるため,局所最適解となりがちである.鞍点に陥り,学習の停滞状態になることをプラトーという.
モーメンタム
最適化の進行方向へ学習を加速させ,停滞を防ぐ.
ex ) Adagrad, Adadelta, RMSprop, Adam, AdaBound, AMSBound
重み更新のタイミングに応じた勾配降下法
確率的勾配降下法 (SGD / Stochastic Gradient Descent)
データ1つごとにイテレーションが増える.逐次学習といい,1回1回の予測の度に,正解ラベルとの誤差を計算し,重みを更新していく.
ミニバッチ勾配降下法
ミニバッチ:いくつかの訓練データからランダムにサンプリングした小さなデータの集合.
ミニバッチに含まれるデータ全ての誤差の総和を計算し,その総和を小さくするように重みを1回更新する.
バッチ勾配降下法
訓練データ全ての誤差を計算してから重みを更新する.イテレーションとエポックの回数が同じになる.
見るべき解説動画
数式を交えた解説動画
ハンズオンによる説明