正则化L1 L2

发布于:2023-01-07 ⋅ 阅读:(331) ⋅ 点赞:(0)

1 正则化

正则化是一种防止过拟合的手段

正则化本质就是在损失函数上加上一个正则项,也称作惩罚项(模型太过复杂,参数过多易过拟合,惩罚参数)。正则化通常有两种方式,分别是L1,L2正则化,对应L1范数,和L2范数

  • L1范数(绝对值求和): ∑ i n ∣ w i ∣ \sum_i^n|w_i| inwi
  • L2范数(平方求和): ∑ i n w i 2 \sum_i^nw_i^2 inwi2

正则化的使用一般如下: l o s s = C o s t + R e g u l a r i z a t i o n loss = Cost +Regularization loss=Cost+Regularization

使得loss在正则的约束下最小,其实也是要让正则最小。

1.1 L1正则化

L1正则化可以产生一个稀疏矩阵,从而达到惩罚参数的目的。

稀疏矩阵是指:矩阵中大多参数都是0,其余少数才是非0。

1.1.1 为什么L1正则化产生了稀疏矩阵?

以下,以二维情况为例,只有参数w1,w2。即其L1 = |w1| + |w2|
在这里插入图片描述
损失函数: l o s s = c o s t + r e g u l a r i z a t i o n loss = cost + regularization loss=cost+regularization
上图中,彩色的曲线圆圈,就是cost的等高线。

所有参数点只要在同一个等高线上,cost就一致。
黑色的矩形,就是L1(regularization)的函数图像

L1正则化的本质是,要让cost在L1惩罚项的约束下(也就是loss),使得cost最小。当cost的等值线与L1图形首次相交的地方就是最优解。

可以看到这个相交的顶点,其中w1=0,w2=w。有0值出现,确实也该如此,当对一组数据求绝对值的和时,想要其值很小,必须有足够多0值。
例如,相交顶点为w1=0,w2=w,若是其他点落在红色等高线上,可以发现 ∣ w 1 + w 2 ∣ > w |w_1 + w_2| > w w1+w2>w,只有黑色矩形上的点才 = w =w =w,但是和等高线相交的只有顶点。

上图中是二维的情况,若是多维情况,有多个顶点,并且顶点都在坐标轴上,且离等值线更近,也意味着有参数的值为0,也就是产生了稀疏矩阵。

1.1.2 从导数角度理解为什么L1能产生稀疏矩阵

注:以下推导没有放上学习率

  • 损失函数: l o s s = c o s t + α n ∑ i n ∣ w i ∣ loss = cost + \frac{\alpha}{n}\sum_i^n|w_i| loss=cost+nαinwi
  • 参数更新: w i + 1 = w i − ∂ c o s t ∂ w i − α s g n ( w i ) n w_{i+1} = w_i - \frac{\partial cost}{\partial w_i} - \frac{\alpha sgn(w_i)}{n} wi+1=wiwicostnαsgn(wi)
  • 当w大于0时,更新的参数w变小;当w小于0时,更新的参数w变大;所以,L1正则化容易使参数变为0,即特征稀疏化。

1.2 L2正则化

L2正则化不能产生一个稀疏矩阵,但是可以使得参数值都比较小。

1.2.1 L2为什么就不能产生稀疏矩阵,而是让所有参数的值都相对变小,继而做到权值衰减

在这里插入图片描述
L2正则化的公式是绝对值的平方,也就是圆形的函数公式,如上图所示。同理,相交的点就是 w 1 2 + w 2 2 w_1^2 + w_2^2 w12+w22的最小点。
其余点,若是在等高线上那么比这个相交点的 w 1 2 + w 2 2 w_1^2 + w_2^2 w12+w22大,若是在黑色圆上和相交点的 w 1 2 + w 2 2 w_1^2 + w_2^2 w12+w22相等但又不在等高线上。

1.2.2 从导数角度理解L2的权值衰减

注:以下推导没有放上学习率。

  • 损失函数: l o s s = c o s t + α 2 ∑ i n w i 2 loss = cost + \frac{\alpha}{2}\sum_i^nw_i^2 loss=cost+2αinwi2

α \alpha α是一个超参数(取 0-1),主要是调和cost和正则项的比列,二分之一,是为了求导后,消除2

  • 没有加正则项的参数更新: w i + 1 = w i − ∂ c o s t ∂ w i w_{i+1} = w_i - \frac{\partial cost}{\partial w_i} wi+1=wiwicost
  • 加正则项后的参数更新: w i + 1 = w i − ∂ l o s s ∂ w i = w i − ( ∂ c o s t ∂ w i + α ∗ w i ) w_{i+1} = w_i - \frac{\partial loss}{\partial w_i} = w_i -(\frac{\partial cost}{\partial w_i} + \alpha* w_i) wi+1=wiwiloss=wi(wicost+αwi)
    化简之后: = w i ( 1 − α ) − ∂ c o s t ∂ w i =w_i(1 - \alpha) - \frac{\partial cost}{\partial w_i} =wi(1α)wicost

观察化简之后的公式,可以发现和没加L2的相比, w i w_i wi多了一个衰减 ( 1 − α ) (1 - \alpha) (1α),让其参数多了一个数值上的衰减,使得模型能够防止过拟合。

2 参考

机器学习中正则化项L1和L2的直观理解
比较全面的L1和L2正则化的解释

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到