はじめに
この記事はゼロから作るディープラーニング 7章学習に関するテクニックを自分なりに理解して分かりやすくアウトプットしたものです。
文系の自分でも理解することが出来たので、気持ちを楽にして読んでいただけたら幸いです。
また、本書を学習する際に参考にしていただけたらもっと嬉しいです。
SGD
SGDは、今までのように勾配を求めたら学習係数をかけて現在のパラメータと引き算をする事でパラメータを更新する手法です。
この方法は単純で実装もしやすいのですが、勾配が示す向き=正確な最小値への方向ではないので、損失関数の最小値となるパラメータの地点までギザギザと効率の悪い探索をしてしまうのが弱点です。
Momentum
速度という概念が追加された手法。勾配から現在の地点の損失関数の最小値の地点に転がっていく速度を求めて、それをパラメータに加算する事でパラメータを更新します。
SGDのようにジグザクな探索をしてしまいますが、SGDよりもジグザグが軽減されて丸みを帯びたジグザク探索になるので、効率の悪さは軽減されている。
AdaGrad
最初は学習係数を大きくして更新を行い、どんどん学習係数を小さくして更新を行う学習係数の減衰というテクニックを使った手法。
最初は大きくパラメータが更新され、徐々にパラメータの更新は小さくなっていく。
この手法を使う事で、さらにジグザグ探索を軽減することができ、効率の良い探索をすることができる。
Adam
2015年に提唱された新しい手法で、MomentumとAdaGradを合体させたような手法。
複雑な為ここでは説明は控えるが、すごく効率の良い探索をすることができる。
現在主に使われている手法は、単純なSGDとすごく効率は良いが複雑なAdamである。