Adam

  • Adam(Adaptive Moment Estimation)自适应矩估计

  • Adam优化器在2015年由Kingma和Ba在论文《Adam: A Method for Stochastic Optimization》中提出。它结合了动态学习率和动态momentum,以解决梯度问题。在许多实践中,Adam优化器表现出比传统优化方法更好的性能。

  • 能够为每个参数动态调整学习率,因而表现出色。

核心思想

  • Adam 同时维护了参数梯度的一阶动量(均值)和二阶动量(方差),并使用这两个信息动态调整学习率。

    • 一阶动量(均值): 梯度的指数加权平均,用于平滑梯度的变化。

    • 二阶动量(方差): 梯度平方的指数加权平均,用于衡量梯度的变化幅度。

这种机制使 Adam 能够在训练过程中:

加速收敛
在稀疏梯度或梯度变化剧烈的场景中表现稳定

公式

𝑚𝑡=𝛽1𝑚𝑡1+(1𝛽1)𝑔𝑡𝑣𝑡=𝛽2𝑣𝑡1+(1𝛽2)𝑔𝑡20𝑚𝑡𝑣𝑡𝑚^𝑡=𝑚𝑡1𝛽1𝑡,𝑣^𝑡=𝑣𝑡1𝛽2𝑡𝜃𝑡+1=𝜃𝑡𝜂𝑚^𝑡𝑣^𝑡+𝜖
  • ϵ 是一个小值(如 10^−8 ),用于防止除零

  • 𝑔𝑡 :当前梯度。

  • 𝑚𝑡 :梯度的一阶动量(均值)。

  • 𝑣𝑡 :梯度的二阶动量(方差)。

  • 𝑚^𝑡,𝑣^𝑡 :偏差校正后的 𝑚𝑡𝑣𝑡

  • 𝜂:学习率。

优缺点

优点:

自适应学习率:
    根据一阶和二阶动量动态调整每个参数的学习率,无需手动调节。

快速收敛:
    在高维参数空间中,Adam 能快速找到较优解。

对稀疏梯度友好:
    在 NLP 和推荐系统等场景中,Adam 对稀疏梯度的处理非常高效。

易于实现:
    只需少量代码即可实现,且超参数(如 𝛽_1,𝛽_2,𝜖)对最终结果影响较小。

缺点:

欠收敛:
    在某些问题上,Adam 可能会陷入局部最优解或无法充分收敛。

泛化能力不足:
    相比 SGD(随机梯度下降),Adam 的正则化效果较差,可能导致泛化性能下降。

超参数敏感性:
    尽管默认参数适用于大多数场景,但特定任务可能需要微调。