FOBOS
- 劣勾配法の問題点
- 収束が遅い
- L1正則化に適用してみても,0になる重みの数があまり多くならない
概要
-
勾配法に似たオンライン学習アルゴリズム
-
各データについてのパラメーター更新を,勾配法では一気にしていたが,FOBOSでは2ステップに分けている
- 損失項の劣勾配法による処理
- 正則化項の閉じた形での最適解の計算
-
更新式について
- 更新前のパラメータをとおく
- 損失項の劣勾配法による処理を終えたときに得たパラメータををおく
- 第2ステップの更新式は w_{t+1} = \arg \min_{\bold{w}} \frac{1}{2} || \bold{w} – \bold{v} || ^2 + \hat{\lambda} R(\bold{w})
- は学習率
- は正則化関数
- RがL1正則化関数なら,の番目の値はと計算できる.つまり,「パラメータの各値を定数分だけに近づけ,符号が変わったらで打ち止め(クリッピング)にする」という更新になる
実装上の工夫
- 正則化の計算の遅延
- 愚直に毎回,正則化パラメータの全ての次元の値を計算する(定数をひく)のをやめる
- 損失項の計算に必要になったときにまとめてその次元を計算する(「定数かける更新をサボった回数」をひく)