关于weight decay

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} wkC=wkC0+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}-\eta\Delta ,\Delta=\frac{\partial{C_0}}{\partial{w_k}} wnew=woldηΔ,Δ=wkC0

使用了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

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值