和SGDM一样计算,加入动量,计算衰减梯度:
m
t
=
β
1
⋅
m
t
−
1
+
(
1
−
β
1
)
g
t
−
1
m_t=\beta _1\cdot m_{t-1}+\left( 1-\beta _1 \right) g_{t-1}
mt=β1⋅mt−1+(1−β1)gt−1 和RMSProp算法类似,计算衰减学习率:
v
t
=
β
2
⋅
v
t
−
1
+
(
1
−
β
2
)
(
g
t
−
1
)
2
v_t=\beta _2\cdot v_{t-1}+\left( 1-\beta _2 \right) \left( g_{t-1} \right) ^2
vt=β2⋅vt−1+(1−β2)(gt−1)2 最后更新参数:
θ
t
=
θ
t
−
1
−
η
v
^
t
+
ε
m
^
t
\theta_{t}=\theta_{t-1}-\frac{\eta}{\sqrt{\hat{v}_{t}}+\varepsilon} \hat{m}_{t}
θt=θt−1−v^t+εηm^t