Adam 算法可以看作动量法和 RMSprop 算法的结合,不但使用动量作为参数更新方向,而且可以自适应调整学习率。
第 t 次迭代时:
一般参数取值为:\beta_1 = 0.9, \beta_2 = 0.99 。\boldsymbol{M}_t 和 \boldsymbol{G}_t 可以分别看作是梯度的一阶矩和二阶矩,其初始化取值为 \boldsymbol{M}_t = 0, \boldsymbol{G}_t = 0 ;但这样会导致迭代初期 \boldsymbol{M}_t 和 \boldsymbol{G}_t 的值会比真实的一阶矩和二阶矩要小,因此要对偏差进行修正:
Adam 算法的参数更新公式为:
其中,\eta 为学习率,通常取值为0.001 。