用一个例子理解
如果一个参数的梯度经常很大,另一个经常很小,完全用同样的原始步幅可能不好协调。Adam 同时参考近期方向和梯度平方的规模,再计算各自的更新。
看图理解把过程看清楚
01当前梯度
本轮参数的变化信号
02两份滑动统计
梯度均值与梯度平方均值
03偏差修正与更新
按各参数的尺度调整
再深入一层
一阶矩可以理解为平滑后的方向信息;二阶原始矩来自梯度平方,用于估计变化规模。初始化统计量为零会产生早期偏差,算法会做修正,再用修正后一阶矩除以二阶矩平方根等量来计算更新。
想看得更细
想看数学表达,可以读原论文算法 1:m、v 分别积累梯度与梯度平方,β₁、β₂ 控制保留多少历史,α 控制整体步长,ε 避免除数过小。先理解各自作用,比记住默认数值更有帮助。
它不能说明什么
Adam 仍需要学习率等设置,并不自动保证最优结果。AdamW 将权重衰减与梯度更新解耦,是相关变体;不能把两者写成完全相同。名称相似也不代表与 PPO 属于同一层级。
接下来可以了解
资料依据
- Adam: A Method for Stochastic Optimization:第 2 节和算法 1:一阶与二阶矩、偏差修正、参数更新。
资料核验于 2026-09-09;原论文用于说明机制,文中例子为教学示例。