確率的勾配降下法(SGD)
- バッチ学習である最急降下法をオンライン学習に改良したもの
- 最急降下法では1回のパラメータ更新のために,すべてのデータを使って勾配を計算しなおす必要がある
- SGDでは新しく読み込んだデータのみを使って,目的関数の勾配を近似計算する
- この近似の理論的保証は,確率近似の理論で解析されているようだ (link)
- ミニバッチ: 全てではないが複数の訓練データで勾配を計算する方法
反復計算
- パラメータ$\bold{w}$と学習率$\eta$の初期値を選ぶ
- 収束 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)
- オンライン機械学習本の4.3.5節にも説明がある
平均化法 (1988)
RDA (2009)
- RDA (Regularized Dual Averaging)
AdaGrad (2011)
AdaGrad + RDA (2011)
RMSProp (2012)
- AdaGrad の変形
AdaDelta (2012)
- AdaGrad や RMSProp の変形
- 学習率がない
Adam (2015)
- AdaGrad, RMSPropの変形
参考文献
- 確率的勾配降下法 - wikipedia
- 勾配降下法の最適化アルゴリズム
- 西尾さんのスライド