我是靠谱客的博主 长情画笔,最近开发中收集的这篇文章主要介绍关于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}-etaDelta ,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

最后

以上就是长情画笔为你收集整理的关于weight decay的全部内容,希望文章能够帮你解决关于weight decay所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部