什么是Caffe中的`weight_decay`元参数?

时间:2015-08-24 08:33:15

标签: machine-learning neural-network deep-learning caffe gradient-descent

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

weight_decay: 0.04

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

2 个答案:

答案 0 :(得分:43)

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

在训练期间,将正则化项添加到网络的损失中以计算后向梯度。 weight_decay值确定该正则化项在梯度计算中的优势。

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

Caffe还允许您通过设置

L2正则化(默认)和L1正则化之间进行选择
regularization_type: "L1"

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

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

答案 1 :(得分:14)

体重衰减是一个惩罚大重量的正则化术语。 当重量衰减系数较大时,对于较大权重的惩罚也较大,当它较小时,权重可以自由增长。

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