E資格に出題される勾配法についてまとめてみました。
確率的勾配降下法(SGD)
確率的勾配降下法(Stochastic Gradient Descent, SGD)のこと。一番基本的。
ハイパーパラメータとして学習率lrを持つ。学習率は大きすぎると勾配の谷底付近で谷底を飛び越え、反対側の勾配に到達してしまうため、学習が収束しない。また、学習率が小さすぎると学習が全く進まず、収束させるまでに大量の入力が必要となる。
momentumSGD
SGDに速度と慣性(モーメンタム)の概念を取り入れた手法。
AdaGrad
Adaptive Gradient Algorithmの略。
勾配の谷底付近で学習が収束しない問題(谷底を飛び越え、反対側の勾配に到達してしまう事象)を解決するために、学習の進捗に比例して学習率を減少させていく手法。
パラメータごとに固有の値hを保持し、学習の度に勾配の2乗ずつhが増加していく。hが大きくなるほどパラメータの更新量を減らしていく。
ただし、AdaGradには学習率が極端に速く減衰していくという問題があります
RMSProp
AdaGradの改良版。
学習の進行(ステップ)ごとにhの値を減少させていく。これにより、過去であるほどhの影響を受けづらくなる。
学習初期に大きな勾配を下ると、そのパラメータに対応するhが大きくなり、その後のパラメータ更新が行われなくなるという問題を解決する。
Adadelta
RMSPropの改良版。更新差分の計算時に無次元化と呼ばれる操作を行うため、ハイパーパラメータとして学習率を設定する必要がないという大きな特徴を持つ。
確率的勾配降下法(SGD)では、学習するパラメータから勾配の値(厳密には学習率を掛けたもの)を除算している。ここでのパラメータを移動距離と考えると、パラメータの勾配の値(微分値)は速さと考えることができる。このように考えると、確率的勾配降下法は、距離から速さを引くという、異なる単位での計算を行っていることが分かる。
Adadeltaは、上記の単位が異なるという問題を解決するため、過去のパラメータの更新差分の平均 / 過去の勾配の平均 × 現在の勾配 の計算を行っている。
Adam
momentumSGDとRMSPropを複合した手法。
Adadeltaの派生形ではないため、単位が統一されていないという問題点については解決されていない。