Sha*_*hai 24 machine-learning neural-network gradient-descent deep-learning caffe
看一个'solver.prototxt'在BVLC/caffe git上发布的例子,有一个训练元参数
weight_decay: 0.04
Run Code Online (Sandbox Code Playgroud)
这个元参数是什么意思?我应该赋予它什么价值?
Sha*_*hai 44
该weight_decay元参数支配神经网络的调整项.
在训练期间,将正则化项添加到网络的损失中以计算后向梯度.该weight_decay值决定了该正则化项在梯度计算中的主导地位.
根据经验,你拥有的训练样本越多,这个术语就越弱.您拥有的参数越多(即,更深的网络,更大的过滤器,更大的InnerProduct层等),该术语应该越高.
Caffe还允许您通过设置在L2正则化(默认)和L1正则化之间进行选择
regularization_type: "L1"
Run Code Online (Sandbox Code Playgroud)
然而,由于在大多数情况下权重是小数(即-1<w<1),L2权重的范数明显小于它们的L1范数.因此,如果您选择使用,则regularization_type: "L1"可能需要调整weight_decay到更小的值.
虽然在训练期间学习率可能(并且通常确实)发生变化,但正则化权重始终是固定的.
Tal*_*rom 14
体重衰减是一个惩罚大重量的正则化术语.当重量衰减系数大时,大重量的惩罚也很大,当小重量可以自由增长时.
看看这个答案(不是特定于caffe)以获得更好的解释: 神经网络"体重衰减"和"学习率"之间的差异.