確率的勾配降下法(SGD)

  • バッチ学習である最急降下法をオンライン学習に改良したもの
    • 最急降下法では1回のパラメータ更新のために,すべてのデータを使って勾配を計算しなおす必要がある
    • SGDでは新しく読み込んだデータのみを使って,目的関数の勾配を近似計算する
    • この近似の理論的保証は,確率近似の理論で解析されているようだ (link)
  • ミニバッチ: 全てではないが複数の訓練データで勾配を計算する方法

反復計算

  1. パラメータ$\bold{w}$と学習率$\eta$の初期値を選ぶ
  2. 収束 or 所定の反復回数まで以下を繰り返す
    • 学習データの順番をランダムにシャッフルする
    • 先頭から順に,更新式$\bold{w}^{(t+1)} = \bold{w}^{(t)} - \eta_t \nabla l(\bold{x}^{(t)}, y^{(t)}, \bold{w}^{(t)})$でパラメータ$w$を更新していく

なお,目的関数$L(\bold{w})$に対して,$L(\bold{w}) = \sum_i l(\bold{x}^{(i)}, y^{(i)}, \bold{w})$が成り立つとする. 目的関数はオンライン学習アルゴリズムごとに異なる.

学習率の変化方法

確率的近似法 (1951)

  • $\eta_t = \frac{\eta_0}{t}$
  • 学習率をイテレーション回数の逆数で減衰させる

モメンタム法 (1964)

Nesterovの加速勾配降下法 (1983)

平均化法 (1988)

RDA (2009)

  • RDA (Regularized Dual Averaging)

AdaGrad (2011)

  • AdaGrad(Adaptive Gradient)
  • 実装

AdaGrad + RDA (2011)

RMSProp (2012)

  • AdaGrad の変形

AdaDelta (2012)

  • AdaGrad や RMSProp の変形
  • 学習率がない

Adam (2015)

  • AdaGrad, RMSPropの変形

参考文献