概述
weight decay的作用主要是令神经网络中的权重变小(趋于0),以防止过拟合
如
y
=
∑
i
w
i
x
i
y=sum_{i}{w_ix_i}
y=∑iwixi,则因噪声的存在,可能会令其中某几个
w
w
w偏大,导致无法正确拟合正常输入
weight decay的公式为:
C = C 0 + λ 2 n ∑ i w i 2 C=C_0+frac{lambda}{2n}sum_i{w_i^2} C=C0+2nλ∑iwi2
∂ C ∂ w k = ∂ C 0 ∂ w k + λ w k n frac{partial{C}}{partial{w_k}}=frac{partial{C_0}}{partial{w_k}}+frac{lambda w_k}{n} ∂wk∂C=∂wk∂C0+nλwk
其中 C 0 C_0 C0为原误差, λ lambda λ为weight decay系数,也可以看做是惩罚值, 1 2 frac{1}{2} 21则用于求导时的简化
原始梯度下降 w n e w = w o l d − η Δ , Δ = ∂ C 0 ∂ w k w_{new}=w_{old}-etaDelta ,Delta=frac{partial{C_0}}{partial{w_k}} wnew=wold−ηΔ,Δ=∂wk∂C0
使用了weight decay之后, Δ Delta Δ中多了一项 λ w k n frac{lambda w_k}{n} 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
最后
以上就是长情画笔为你收集整理的关于weight decay的全部内容,希望文章能够帮你解决关于weight decay所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复