weight decay

sgd
神经网络经常加入weight decay来防止过拟合,optimizer使用SGD时我们所说的weight decay通常指l2 weight decay(即,加在loss中的l2正则化)。公式1:

在梯度更新时就会加入一项权重衰减项,公式2是原始的weight dacay公式:

这符合weight decay的原始定义,在权重比较大时,因为采用相同的衰减系数w,权重的惩罚也越大(1-w)xt。此时l2正则可以通过控制权重大小使公式与原始weight decay相同。所以在我们使用sgd时,加入weight decay通常是用l2 weight decay的方式加入。

sgd+momentum
momentum是一种梯度下降中常用的加速技术,公式3:

当此时loss加入l2正则时,l2 weight decay和weight decay不相等,即公式3和公式2的结果不同,l2 weight decay方式的权重衰减项将会受momentum中v项滑动平均影响,但是当前很多实现方式仍然使用l2 weight decay这种方式。
Adam
相比于sgd+momentum,Adam如果使用l2 weight decay将会受到更大的影响,在计算梯度时由于Adam计算步骤中减去项有除以梯度平方的累积,使得减去项偏小。不能实现weight decay的原始定义:权重越大惩罚越大。因此有AdamW的提出,也就是直接使用weight decay来进行实现。

weight decay_第1张图片

你可能感兴趣的:(weight decay)