深度之眼Pytorch框架训练营第四期——正则化之weight decay

正则化之weight decay

1、正则化与偏差-方差分解

机器学习中的误差可以看作噪声+偏差+方差:

  • 噪声:在当前任务上任何学习算法所能达到的期望泛化误差的下界,无法通过优化模型来减小
  • 偏差:指一个模型在不同训练集上的平均性能和最优模型的差异,度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力
  • 方差:指一个模型在不同训练集上的差异,度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据 扰动所造成的影响,可以用来衡量一个模型是否容易过拟合

正则化就是用来降低方差,从而减小过拟合的方法,如果记录损失函数为: L o s s = f ( y ^ , y ) Loss = f (\hat{y}, y) Loss=f(y^,y),则对于样本而言,代价函数为 c o s t = 1 N ∑ i N f ( y ^ i , y i ) cost=\frac{1}{N} \sum_{i}^{N} f\left(\hat{y}_{i}, y_{i}\right) cost=N1iNf(y^i,yi),目标函数为:
O b j = C o s t + R e g u l a r i z a t i o n Obj = Cost + Regularization Obj=Cost+Regularization
这里的 R e g u l a r i z a t i o n Regularization Regularization就是正则项,用于减小方差的策略,常见的有两种正则化方式:

  • L 1 L1 L1正则: Σ i N ∣ w i ∣ \Sigma_{i}^{N}\left|w_{i}\right| ΣiNwi
  • L 2 L2 L2正则: ∑ i N w i 2 \sum_{i}^{N} w_{i}^{2} iNwi2
2、Pytorch中的L2正则项——weight decay

L 2 L2 L2正则项本质上相当于是权值衰减,这是因为目标函数为 O b j = C o s t + R e g u l a r i z a t i o n = L o s s + λ 2 ∑ i N w i 2 Obj = Cost + Regularization = Loss + \frac{\lambda}{2} \sum_{i}^{N} w_{i}^{2} Obj=Cost+Regularization=Loss+2λiNwi2,在梯度下降公式中:
w i + 1 = w i − ∂ o b j ∂ w i = w i − ( ∂ L o s s ∂ w i + λ w i ) = ( 1 − λ ) w i − ∂ L o s s ∂ w i \begin{aligned} w_{i+1}&=w_{i}-\frac{\partial o b j}{\partial w_{i}}\\ &=w_{i}-(\frac{\partial L o s s}{\partial w_{i}}+\lambda w_i)\\ & = (1-\lambda)w_i - \frac{\partial L o s s}{\partial w_{i}} \end{aligned} wi+1=wiwiobj=wi(wiLoss+λwi)=(1λ)wiwiLoss
由于这里的正则化系数 λ \lambda λ是一个介于 0 0 0 1 1 1之间数,因此可以看出,与不加正则项的梯度下降公式—— w i + 1 = w i − ∂ L o s s ∂ w i w_{i+1}= w_i - \frac{\partial L o s s}{\partial w_{i}} wi+1=wiwiLoss相比,相当于是做了一个权值的下降。

Pytorch中的 weight decay 是在优化器中实现的,在优化器中加入参数weight_decay=即可,例如下面的两个随机梯度优化器,一个是没有加入正则项,一个加入了正则项,区别仅仅在于是否设置了参数weight_decay的值:

optim_normal = torch.optim.SGD(net_normal.parameters(), lr=lr_init, momentum=0.9)
optim_wdecay = torch.optim.SGD(net_weight_decay.parameters(), lr=lr_init, momentum=0.9, weight_decay=1e-2)

最终,我们可以得到通过这两个优化器训练得到的模型:

在这里插入图片描述

红色曲线为没有 weight decay 的结果,蓝色虚线为加入 weight decay 的训练结果,可以看到加入后能够非常有效的缓解过拟合现象。
下图为第二层的权值柱状图,左边为加入正则项,右边为没有加正则项,可以看出,左边的权值确实有一个递减的趋势,而右边几乎是保持不变的状态。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值