ディープラーニング

【pythonでディープラーニング】勾配降下法のあれこれ

勾配降下法とは

訓練テストに対してコストが最小になるように、モデルパラメータを少しづつ操作し、モデルを訓練テストに対して適合したパラメータに収束させる方法。
誤差を前の層へ伝播させて、重みとバイアスを少しずつ更新して最適化することが利用目的となる。

確率的勾配降下法

訓練用のデータから更新毎にランダムでサンプルを選ぶため、局所最適解に囚われにくい
学習係数と勾配をかけてシンプルに更新量が決まる。
デメリットとして学習の進行に応じて柔軟に更新量の調整ができない点が挙げられる。

Momentim

確率的勾配降下法に慣性項を付与したアルゴリズム。
新たな更新量はこれまでの更新量の影響を受ける事で、更新量の急激な変化を防ぎ滑らかな更新が実現される
ただし、確率的勾配降下法よりも設定項目が増える為、調整が難しくなる。

AdaGrad

最大のメリットは更新量が自動的に調整される点。
学習が進むにつれて、学習率が次第に小さくなっていく。
初期は広い領域で探索し、次第に探索範囲を絞るという効率的な探索を実現できる。
デメリットとして、更新量が限りなく0に近づき、それ以上の最適化が進まなくなることが挙げられる。