Adam方法同样融合了 AdaGrad和RMSProp,更新公式如下:
wt=wt−1−α∗mt^vt^−−√+ϵ
其中 t 表示次数,
mt^=mt1−βt1
vt^=vt1−βt2
β1 和 β2 是常数,控制指数衰减, mt 是梯度的指数移动均值,通过梯度的一阶矩求得。 vt 是平方梯度,通过梯度的二阶矩求得。 mt 和 vt 的更新如下:
mt=β1∗mt−1+(1−β1)∗gt
vt=β2∗vt−1+(1−β2)∗g2t
gt 为一阶导。以上所有参数的默认设置为: α=0.001,β1=0.9,β2=0.999,ϵ=10−8
在文章中,指明
mt^/vt^−−√
当值很小时,也意味这对目前的方向越不确定,就会有更小的步长,也是一种自动退火的形式。
参考:
Kingma D P, Ba J. Adam: A method for stochastic optimization[J]. arXiv preprint arXiv:1412.6980, 2014.