当前位置:   article > 正文

L1和L2正则

L1和L2正则

正则化

L1正则

L1正则化是所有参数的绝对值之和,这就要求所有参数的绝对值之和最小,求导,导数可能为1或-1,而绝对值的取值是大于等于0的,那么就可能导致某些参数在更新的时候趋于0

L2正则

L2正则化是所有参数平方和,导数为 2 w 2w 2w,每个参数更新的量与参数 w w w本身相关, w w w在更新时,会逐渐变慢, w w w逐渐变小趋于0,而不会变为0。

区别

L0和L1的区别:

  • L0范数是指向量中非0的元素的个数,如果我们用L0范数来规则化一个参数矩阵W的话,希望W的大部分元素都是0。
  • L0范数很难优化求解(NP问题)。
  • L1范数是L0范数的最优凸近似,而且它比L0范数更容易优化求解。L1范数和L0范数可以实现稀疏,L1因具有比L0范数更好的优化求解特性而广泛应用。

L1和L2的区别:

  • L1会趋向于产生少量的特征,而其他的特征都为0,L2会选择更多的特征,这些特征都趋于0。
  • 使用L1可以得到稀疏的权值,用L2可以得到平滑的权值

为什么

更小的权值 w w w,表示网络的复杂度更低,对数据的拟合刚刚好(奥卡姆剃刀法则)。设想一个线性回归模型,如果参数很大,只要数据偏移一点点,就会对结果产生很大的影响;但如果参数足够小,数据偏移的多一点不会对结果造成什么影响,也就是抗扰动能力强。
过拟合的时候,拟合函数的系数往往非常大,因为拟合函数需要顾忌每一个点,最终形成的拟合函数波动很大。在某些很小的区间里,函数值的变化很剧烈,这就意味着函数在某些小区间里的导数值(绝对值)非常大,由于自变量可大可小,所以只有系数足够大,导数值才能很大。

权值衰减

L2正则又被称为权值衰减
当loss不包含正则项是:
O b j = L o s s w i + 1 = w i − ∂ o b j ∂ w i = w i − ∂ L o s s ∂ w i Obj=Loss\\ w_{i+1}=w_i-\frac{\partial_{obj}}{\partial_{w_i}}=w_i-\frac{\partial_{Loss}}{\partial_{w_i}} Obj=Losswi+1=wiwiobj=wiwiLoss
当使用L2正则时:
O b j = L o s s + λ 2 ∗ ∑ i N w i 2 w i + 1 = w i − ∂ o b j ∂ w i = w i − ( ∂ L o s s ∂ w i + λ ∗ w i ) = w i ( 1 − λ ) − ∂ L o s s ∂ w i Obj=Loss+\frac{\lambda}{2}*\sum_i^Nw_i^2\\ w_{i+1}=w_i-\frac{\partial_{obj}}{\partial_{w_i}}=w_i-(\frac{\partial_{Loss}}{\partial_{w_i}}+\lambda*w_i)=w_i(1-\lambda)-\frac{\partial_{Loss}}{\partial_{w_i}} Obj=Loss+2λiNwi2wi+1=wiwiobj=wi(wiLoss+λwi)=wi(1λ)wiLoss

其中, 0 < λ < 1 0<\lambda<1 0<λ<1,所以具有权值衰减的作用。
在 PyTorch 中,L2 正则项是在优化器中 ( torch.optim ) 实现的,在构造优化器时可以传入 weight decay 参数,对应的是公式中的 λ \lambda λ

深度学习如何防止过拟合
weight decay 和 dropout
L1正则化与L2正则化

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/549515
推荐阅读
相关标签
  

闽ICP备14008679号