weight decay的作用主要是令神经网络中的权重变小(趋于0),以防止过拟合
如
y=∑iwixi,则因噪声的存在,可能会令其中某几个
w偏大,导致无法正确拟合正常输入
weight decay的公式为:
C=C0+2nλ∑iwi2
∂wk∂C=∂wk∂C0+nλwk
其中
C0为原误差,
λ为weight decay系数,也可以看做是惩罚值,
21则用于求导时的简化
原始梯度下降
wnew=wold−ηΔ,Δ=∂wk∂C0
使用了weight decay之后,
Δ中多了一项
nλwk,即对梯度下降时较大的权重,会赋予较大的惩罚值,使新的w趋于0
而在选取decay值上,目前尚没有比较普适的公式
How could I choose the value of weight decay for neural network regularization 中提到用平时调参时常用的两种策略:grid search 和 random search
其实都是类似穷举,首先需要有个验证集(不同于训练集),分别对验证集采取不同decay值(如0.5, 0.1, 0.01等等)进行测试,选取其中效果较好的decay,即作为训练集的decay