Caffe 中的“weight_decay”元参数是什么?

What is `weight_decay` meta parameter in Caffe?

看一个例子 'solver.prototxt',发布在 BVLC/caffe git,有一个训练元参数

weight_decay: 0.04

这个元参数是什么意思?我应该赋予它什么价值?

权重衰减是一个惩罚大权重的正则化项。 当权重衰减系数大时,对大权重的惩罚也大,当权重小时,权重可以自由增长。

看看这个答案(不是特定于caffe)以获得更好的解释: Difference between neural net "weight decay" and "learning rate".

weight_decay 元参数控制神经网络的正则化项。

在训练期间,正则化项被添加到网络的损失中以计算反向传播梯度。 weight_decay 值决定了这个正则化项在梯度计算中的主导地位。

根据经验,你拥有的训练样本越多,这个术语应该越弱。您拥有的参数越多(即,更深的网络、更大的过滤器、更大的 InnerProduct 层等),此项应该越高。

Caffe 还允许您通过设置 L2 正则化(默认)和 L1 正则化进行选择

regularization_type: "L1"

然而,由于在大多数情况下权重是小数(即 -1<w<1),因此权重的 L2 范数明显小于它们的 L1 范数。因此,如果您选择使用 regularization_type: "L1",您可能需要将 weight_decay 调整为一个小得多的值。

虽然学习率在训练期间可能(并且通常会)发生变化,但正则化权重始终是固定的。