Adam 算法的更新公式如下:

对于每个参数 θ,使用以下公式更新参数:

m = β₁ * m + (1 - β₁) * g
v = β₂ * v + (1 - β₂) * (g^2)
m_hat = m / (1 - β₁^t)
v_hat = v / (1 - β₂^t)
θ = θ - (η * m_hat / (√v_hat + ε))

其中:

  • θ 是需要更新的参数
  • g 是参数 θ 的梯度
  • m 是对梯度的一阶矩估计(均值),初始值为 0 向量
  • v 是对梯度的二阶矩估计(方差),初始值为 0 向量
  • β₁ 和 β₂ 是衰减率,通常设置为接近 1 的值,例如 0.9 和 0.999
  • t 是当前的迭代次数(训练步骤)
  • η 是学习率(通常设置为一个较小的值,如 0.001)
  • ε 是一个很小的数,用于防止除零错误(通常设置为一个小的常数,如 1e-8)

Adam 算法通过维护对梯度的一阶矩估计 m 和二阶矩估计 v 来自适应地调整学习率。一阶矩估计 m 用于估计梯度的均值,二阶矩估计 v 用于估计梯度的方差。公式中的衰减率用于控制历史梯度的影响程度,使其更加平滑。m_hat 和 v_hat 是对 m 和 v 的校正,用于解决初始阶段估计偏差的问题。

希望这可以帮助您理解 Adam 算法的公式。如果您有其他问题,请随时提问。

Adam 算法公式详解 - 深入理解参数更新机制

原文地址: https://www.cveoy.top/t/topic/dkjA 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录