把λw加进梯度是什么意思,λ和w分别是什么?
从L2正则项的求导看懂λw的来源,并区分耦合L2与AdamW权重衰减。
DETAILED ANSWER
直接结论
λw不是一个神秘的新梯度。它来自对L2正则项求导:为了惩罚过大的参数,在原数据损失后加上与w²有关的代价;求导后,这部分对梯度的贡献就是λw。
λ:人工设置的正则化强度,是一个标量;w:模型当前的权重参数,可以是一个数、向量或矩阵;λw:与w形状相同的附加梯度,方向会促使权重向0缩小。
λw从哪里来
假设原始数据损失是L_data,加入L2正则化后:
L_total = L_data + λ/2 × w²
对w求导:
dL_total/dw
= dL_data/dw + λw
设原数据梯度为g,最终用于更新的梯度就是:
总梯度 = g + λw
公式中写λ/2是为了求导后刚好得到λw。如果正则项写成λw²而没有二分之一,导数就会写成2λw;这只是系数定义不同。
用一个数字看它怎样拉小权重
假设:
w = 10
原数据梯度g = 2
λ = 0.01
那么:
λw = 0.01 × 10 = 0.1
总梯度 = 2 + 0.1 = 2.1
若学习率为0.1:
新w = 10 − 0.1 × 2.1 = 9.79
不加正则项时会得到9.8,加入后变成9.79,也就是额外向0移动了一点。
如果w本来为负,λw也为负,执行“减去负数”会让参数向右移动,同样是靠近0,而不是固定往负方向移动。
为什么AdamW不把λw混进梯度
在普通SGD的简化条件下,把λw加入梯度与直接缩小权重可以得到相同形式。但Adam会对梯度计算历史平均和平方平均;如果先加入λw,衰减项也会进入这些自适应统计。
AdamW改为:
原数据梯度g → 只负责Adam更新
权重w → 单独执行−ηλw
所以,λw解释的是L2项求导后的来源;AdamW中的解耦权重衰减则直接作用于参数,不需要把它先伪装成数据梯度。
实际使用时的补充
权重、偏置和归一化层参数是否使用同样的权重衰减,可以通过参数组分别配置。常见做法会对主要权重使用衰减,而对部分偏置或归一化参数关闭衰减,但这属于训练配置选择,不改变λw的数学来源。
