关于weight decay
weight decay的作用主要是令神經網絡中的權重變小(趨于0),以防止過擬合
如y=∑iwixiy=\sum_{i}{w_ix_i}y=∑i?wi?xi?,則因噪聲的存在,可能會令其中某幾個www偏大,導致無法正確擬合正常輸入
weight decay的公式為:
C=C0+λ2n∑iwi2C=C_0+\frac{\lambda}{2n}\sum_i{w_i^2}C=C0?+2nλ?∑i?wi2?
?C?wk=?C0?wk+λwkn\frac{\partial{C}}{\partial{w_k}}=\frac{\partial{C_0}}{\partial{w_k}}+\frac{\lambda w_k}{n}?wk??C?=?wk??C0??+nλwk??
其中C0C_0C0?為原誤差,λ\lambdaλ為weight decay系數,也可以看做是懲罰值, 12\frac{1}{2}21?則用于求導時的簡化
原始梯度下降wnew=wold?ηΔ,Δ=?C0?wkw_{new}=w_{old}-\eta\Delta ,\Delta=\frac{\partial{C_0}}{\partial{w_k}}wnew?=wold??ηΔ,Δ=?wk??C0??
使用了weight decay之后,Δ\DeltaΔ中多了一項λwkn\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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在Excel中输入身份证号码的方法或批量
- 下一篇: java正则表达式控制半角字符串输入