赞
踩
为什么引入正则化regularization?这牵扯到一个关键问题:过拟合
当只有一次项的时候,拟合程度不够,当存在五次方项的时候就存在过拟合现象,假设函数很好的fit给定的数据,但是不利于数据的预测(泛化性不够)
如何解决过拟合?
给损失函数加上的正则化项可以有多种形式,正则化的一般形式:
1 2 ∑ i = 1 N [ y i − w T ϕ ( x i ) ] 2 + λ 2 ∑ j = 1 1 M ∣ w j ∣ q \frac{1}{2}\sum_{i=1}^N[y_i-w^T\phi(x_i)]^2+\frac{\lambda}{2}\sum_{j=1}\frac{1}{M}|w_j|^q 21∑i=1N[yi−wTϕ(xi)]2+2λ∑j=1M1∣wj∣q
其中 M M M 是参数个数,也是模型维数; q q q 是正则项的阶数,L2的q=2
最小化目标函数时,可以看做在控制损失函数不变的情况时令正则项最小化,几何意义如下所示:蓝色圈表示没有限制的损失函数随着 w w w迭代寻找着最小化的过程的 E ( w ) E(w) E(w)函数等高线(同个圆上的损失函数值相同),蓝色圈和橙色圈之和就是目标函数值,目标函数最小化的点往往出现在蓝圈和橙圈相交的点即目标函数最小化的参数值 w ∗ w^* w∗。
可以看到,L1正则化的最优参数值恰好是 w 2 = 0 w_2=0 w2=0的时候,意味着我们剔除了模型中一个特征(系数为0等价于剔除该特征),从而达到了降低模型复杂度的目的。在这个意义上L1正则化效果要优于L2正则化,但L1存在拐点不是处处可微,从而L2正则化有更好的求解特性。
L1正则化更适用于特征选择,而L2正则化更适用于防止模型过拟合。这一区别可以从梯度下降的角度入手:
首先考虑L1正则化的目标函数 J ^ = J + λ 2 M ∑ j = 1 M ∣ w j ∣ \hat J = J+\frac{\lambda}{2M}\sum_{j=1}^M|w_j| J^=J+2Mλ∑j=1M∣wj∣,进行梯度下降时,对 w k w_k wk 求偏导:
∂ J ^ ∂ w k = ∂ J ∂ w k ± λ 2 M \frac{\partial \hat J}{\partial w_k}=\frac{\partial J}{\partial w_k}\pm \frac{\lambda}{2M} ∂wk∂J^=∂wk∂J±2Mλ,正负号由 w k w_k wk 的正负决定,对 w k w_k wk 进行更新:
w k = w k − α ∂ J ∂ w k ± α λ 2 M w_k=w_k-\alpha \frac{\partial J}{\partial w_k}\pm \alpha \frac{\lambda}{2M} wk=wk−α∂wk∂J±α2Mλ
其中前半部分是未加正则项时的梯度下降,整体就是在前者的基础上加减一个常数,在加减过程中很容易得到 w k = 0 w_k=0 wk=0 的情况,因此L1正则化会让特征变得稀疏,起到特征选择的作用。
而L2正则化的目标函数为 J ^ = J + λ 2 M ∑ j = 1 M w j 2 \hat J = J+\frac{\lambda}{2M}\sum_{j=1}^Mw_j^2 J^=J+2Mλ∑j=1Mwj2,求偏导:
∂ J ^ ∂ w k = ∂ J ∂ w k + λ M w k \frac{\partial \hat J}{\partial w_k}=\frac{\partial J}{\partial w_k}+\frac{\lambda}{M}w_k ∂wk∂J^=∂wk∂J+Mλwk,进行梯度下降:
w k = w k − α ∂ J ∂ w k − α λ M w k = ( 1 − α λ M ) w k − α ∂ J ∂ w k w_k=w_k-\alpha \frac{\partial J}{\partial w_k}- \alpha \frac{\lambda}{M}w_k=(1-\alpha\frac{\lambda}{M})w_k-\alpha \frac{\partial J}{\partial w_k} wk=wk−α∂wk∂J−αMλwk=(1−αMλ)wk−α∂wk∂J
可以看出每次更新时,会对特征系数进行一个比例的缩放,而不是加减一个常数,这会让系数趋向变小而不会变为 0,这会让模型变得更简单,防止过拟合,而不会起到特征选择的作用。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。