確率的勾配降下法
m 0 = v 0 = 0 m t = β 1 m t − 1 + ( 1 − β 1 ) ∇ Q i ( w ) v t = β 2 v t − 1 + ( 1 − β 2 ) ∇ Q i ( w ) ∘ ∇ Q i ( w ) m ^ t = m t 1 − β 1 t v ^ t = v t 1 − β 2 t w t = w t − 1 − α m ^ t v ^ t + ε {\displaystyle {\begin{aligned}m_{0}&=v_{0}=0\\m_{t}&=\beta _{1}m_{t-1}+(1-\beta _{1})\nabla Q_{i}(w)\\v_{t}&=\beta _{2}v_{t-1}+(1-\beta _{2})\nabla Q_{i}(w)\circ \nabla Q_{i}(w)\\{\hat {m}}_{t}&={\frac {m_{t}}{1-\beta _{1}^{t}}}\\{\hat {v}}_{t}&={\frac {v_{t}}{1-\beta _{2}^{t}}}\\w_{t}&=w_{t-1}-\alpha {\frac {{\hat {m}}_{t}}{{\sqrt {{\hat {v}}_{t}}}+\epsilon }}\end{aligned}}}
2009年に Lin Xiao が発表した方法。目的関数が下記のように汎化能力を高めるために L1 正則化を含む場合、確率的勾配降下法だとパラメータが 0 になりにくく、そのための対策をした方法。以下、この手法では Q(w) には λ ‖ w ‖ 1 {\displaystyle \lambda \|w\|_{1}} を含めずに、L1 正則化の効果を実現する。
Q ( w ) + λ ‖ w ‖ 1 {\displaystyle Q(w)+\lambda \|w\|_{1}}
まず、勾配の平均を計算する。
g ̄ t = 1 t ∑ t ′ = 1 t ∇ Q ( w ) t ′ {\displaystyle {\overline {g}}_{t}={\frac {1}{t}}\sum _{t'=1}^{t}\nabla Q(w)_{t'}}
その上で、パラメータの更新は以下の通り。ここでパラメータの初期値は0としている。
w i := { 0 if | g ̄ t , i | ≤ λ , − t γ ( g ̄ t , i − λ sgn  ( g ̄ t , i ) ) otherwise. {\displaystyle w_{i}:={\begin{cases}0&{\text{if }}|{\overline {g}}_{t,i}|\leq \lambda ,\\-{\dfrac {\sqrt {t}}{\gamma }}\left({\overline {g}}_{t,i}-\lambda \operatorname {sgn}({\overline {g}}_{t,i})\right)&{\text{otherwise.}}\end{cases}}}