Adam 算法公式详解 - 深入理解参数更新机制
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 算法的公式。如果您有其他问题,请随时提问。
原文地址: https://www.cveoy.top/t/topic/dkjA 著作权归作者所有。请勿转载和采集!