Adam 和 AdamW 的重要区别在于 权重衰减(Weight Decay) 的实现方式,具体如下:
1. 权重衰减(Weight Decay)处理方式
Adam:采用 L2 正则化,通过在梯度更新时手动添加 weight_decay 项:
g t = ∇ f ( θ t ) + λ θ t g_t = \nabla f(\theta_t) + \lambda \theta_t gt=∇f(θt)+λθt
此中, λ \lambda λ 是权重衰减系数。
AdamW:直接在 参数更新时 实行权重衰减,而不是在梯度盘算时添加 L2 正则:
θ t + 1 = θ t − η m t v t + ϵ − η λ θ t \theta_{t+1} = \theta_t - \eta \frac{m_t}{\sqrt{v_t} + \epsilon} - \eta \lambda \theta_t θt+1=θt−ηvt +ϵmt−ηλθt
这里权重衰减项独立于梯度盘算,在更新参数时进行。
2. 影响
Adam 的 L2 正则化 会影响梯度估计值,导致优化器在 自顺应学习率的调治 过程中对权重衰减的影响不稳固。