過去の勾配を記憶する 単純な勾配ステップは各反復を単独で扱うので、狭い谷ではジグザグし、平らな所では這うように進みます。モメンタムは過去の勾配の累積である速度を保ちます:v ← β v + g \mathbf v\leftarrow\beta\mathbf v+\mathbf g v ← β v + g 、w ← w − η v \mathbf w\leftarrow\mathbf w-\eta\mathbf v w ← w − η v 。同じ向きの勾配は積み上がり、符号が反転する勾配は打ち消し合います。勾配が一定なら速度は勾配の 1 / ( 1 − β ) 1/(1-\beta) 1/ ( 1 − β ) 倍に近づくので、β = 0.9 \beta=0.9 β = 0.9 は単純な降下の10倍のステップを踏むことになります。
v ← β v + g , w ← w − η v , v ∞ = g 1 − β \mathbf v\leftarrow\beta\mathbf v+\mathbf g,\qquad \mathbf w\leftarrow\mathbf w-\eta\mathbf v,\qquad \mathbf v_{\infty}=\frac{\mathbf g}{1-\beta} v ← β v + g , w ← w − η v , v ∞ = 1 − β g (1) RMSProp は別の問題、つまりパラメータのスケールの違いを扱います。各座標の勾配の2乗の移動平均 s s s を追い、ステップを s \sqrt{s} s で割るので、勾配が大きくてノイズの多い座標は小さく、勾配の小さい座標は大きく進みます。Adam は2つの考えを合わせ、勾配の平均(m m m 、モメンタム部分)と勾配の2乗の平均(v v v 、RMSProp部分)を取ります。どちらの平均もゼロから始まるため最初は小さすぎるので、Adam は 1 − β t 1-\beta^{t} 1 − β t で割ってこの偏りを補正します。標準値は β 1 = 0.9 \beta_1=0.9 β 1 = 0.9 、β 2 = 0.999 \beta_2=0.999 β 2 = 0.999 、η = 10 − 3 \eta=10^{-3} η = 1 0 − 3 です。
s ← ρ s + ( 1 − ρ ) g 2 , w ← w − η g s + ε s\leftarrow\rho s+(1-\rho)g^{2},\qquad w\leftarrow w-\eta\frac{g}{\sqrt{s}+\varepsilon} s ← ρ s + ( 1 − ρ ) g 2 , w ← w − η s + ε g (2) m ← β 1 m + ( 1 − β 1 ) g , v ← β 2 v + ( 1 − β 2 ) g 2 , m ^ = m 1 − β 1 t , v ^ = v 1 − β 2 t , w ← w − η m ^ v ^ + ε m\leftarrow\beta_1 m+(1-\beta_1)g,\quad v\leftarrow\beta_2 v+(1-\beta_2)g^{2},\quad \hat m=\frac{m}{1-\beta_1^{t}},\ \ \hat v=\frac{v}{1-\beta_2^{t}},\quad w\leftarrow w-\eta\frac{\hat m}{\sqrt{\hat v}+\varepsilon} m ← β 1 m + ( 1 − β 1 ) g , v ← β 2 v + ( 1 − β 2 ) g 2 , m ^ = 1 − β 1 t m , v ^ = 1 − β 2 t v , w ← w − η v ^ + ε m ^ (3) 手計算の3つの更新 β = 0.9 \beta=0.9 β = 0.9 、
η = 0.1 \eta=0.1 η = 0.1 、一定の勾配
g = 1 g=1 g = 1 のモメンタムでは、
v 1 = 1 v_1=1 v 1 = 1 、
v 2 = 1.9 v_2=1.9 v 2 = 1.9 、
v 3 = 2.71 v_3=2.71 v 3 = 2.71 で、3番目のステップの長さは単純な降下の
0.1 0.1 0.1 に対して
0.271 0.271 0.271 です。
ρ = 0.9 \rho=0.9 ρ = 0.9 、
g = 2 g=2 g = 2 の RMSProp では、
s 1 = 0.1 ⋅ 4 = 0.4 s_1=0.1\cdot4=0.4 s 1 = 0.1 ⋅ 4 = 0.4 、
g / s 1 = 3.16 g/\sqrt{s_1}=3.16 g / s 1 = 3.16 で、ステップは約
3.16 3.16 3.16 倍に増幅されます。
t = 1 t=1 t = 1 、
g = 2 g=2 g = 2 の Adam では、
m = 0.2 m=0.2 m = 0.2 、
v = 0.004 v=0.004 v = 0.004 なので
m ^ = 2 \hat m=2 m ^ = 2 、
v ^ = 4 \hat v=4 v ^ = 4 となり、ステップは
g g g の大きさによらず
η ⋅ 2 / 2 = η \eta\cdot2/2=\eta η ⋅ 2/2 = η です。
モメンタム :ジグザグを和らげ、一貫した向きで加速します。RMSProp :各座標を、その勾配の移動二乗平均平方根で割ります。Adam :両方に加え、平均がゼロから始まるための偏り補正を行います。Adamは標準であって保証ではない Adam のステップは勾配の大きさによらず座標あたりおよそ η \eta η なので、η \eta η が主な調整ノブになります。大きすぎると損失が跳ね、小さすぎると学習が這うように遅くなります。ノイズの多い問題では η \eta η を時間とともに減らし、Adam の結果を信じる前に、よく調整したモメンタム付きSGDと比較してください。両者は別の最小値に落ち着くことがあります。 ラボ:採点される内容 モメンタムの速度 15点 長期的な増幅率 15点 RMSPropの平均 10点 RMSPropのステップ倍率 15点 Adamの最初のステップ 15点 手法と考え方を結び付ける 15点 座標ごとのスケーリングが役立つ理由 15点