勾配降下法 とは
機械学習や深層学習で利用されるパラメータの最適化の方法のひとつ。
モデル式の誤差を小さくなるような、パラメータを探したい。
パラメータを少しずつ動かして、誤差の小さくなる場所を探していく。
- 適当なパラメータを設定して、誤差の式を微分 → 傾きを求める → 傾きが右下がりだったので、グラフは減少傾向にある、とわかる
- パラメータを少し右に動かしてみる
- 傾きを求める
これを繰り返して傾きが0になる点を探していくことで、誤差の最小値を探していく。
問題点
- データ量が多いと計算量が増え、1回の重み更新に時間がかかってしまう
- ローカルミニマムに陥ってしまう
ローカルミニマム
誤差が小さくなるようにパラメータを変更していくので、小さな谷を抜け出すことができない。
確率的勾配降下法
上の2つの問題の解決策が確率的勾配降下法。
全データから数十件~数百件のデータセット(ミニバッチ)を作成し、計算する。
→ 計算量の問題は解決
全データで計算したときのようにまっすぐ極小値へ向かわないこともあるが、ローカルミニマムから出られない、ということはなくなる。
何度も試行することで確率的に最小の誤差に向かっていく。
参考
- 新村 拓也. TensorFlowではじめるDeepLearning実装入門 impress top gearシリーズ . Kindle 版.
- https://shironeko.hateblo.jp/entry/2016/10/29/173634