weight decay
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了weight decay相关的知识,希望对你有一定的参考价值。
参考技术A sgd
神经网络经常加入weight decay来防止过拟合,optimizer使用SGD时我们所说的weight decay通常指l2 weight decay(即,加在loss中的l2正则化)。公式1:
在梯度更新时就会加入一项权重衰减项,公式2是原始的weight dacay公式:
这符合weight decay的原始定义,在权重比较大时,因为采用相同的衰减系数w,权重的惩罚也越大(1-w)x t 。此时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的主要内容,如果未能解决你的问题,请参考以下文章
r包emmeans中的weights="cell"和weights="proportional"有啥区别
什么是 yolo_best.weights 文件?它与 yolo_custom.weights 有何不同
weights = 'noisy-student' ValueError: `weights` 参数应该是 `None`、`imagenet` 或要加载的权重文件的路径