1. 简介
Adam 算法可以看作动量法和 RMSprop 算法的结合,不但使用动量作为参数更新方向,而且可以自适应调整学习率。
2. 原理
第 t 次迭代时:
Gt=β2Gt−1+(1−β2)∂Wt−1∂L⊙∂Wt−1∂L
Mt=β1Mt−1+(1−β1)∂Wt−1∂L
一般参数取值为:β1=0.9,β2=0.99。Mt 和 Gt 可以分别看作是梯度的一阶矩和二阶矩,其初始化取值为 Mt=0,Gt=0;但这样会导致迭代初期 Mt 和 Gt 的值会比真实的一阶矩和二阶矩要小,因此要对偏差进行修正:
M^t=1−β1MtG^t=1−β2Gt
ΔWt=−Gt^+εηMt^
其中,η 为学习率,通常取值为 0.001 。