机器学习------L1、L2规范化(L1 Regularization、L1 Regularization)

取自孙明的"数字图像处理与分析基础"

1. 引入——病态问题和约束

  通过改变模型的拟合能力来避免过拟合并不是一件容易的事情,更常用的办法是使用规范化对模型的参数进行一定的约束。下面来考虑一个非常简单的例子,求下面方程的解:
  

2 x y + 2 = 0

  这是一个二元一次方程,有无数个解,都在下图1a所示的这条直线上。
这里写图片描述

图1 病态方程求解和规范化

  这是一个典型的病态(ill-posed)方程,有无数个解可以满足方程,可以通过 x y 代入等式左边求出0,但是通过等式来推导 x y 的值却是不可行的。病态方程除了有不可逆的性质,在数值计算上也不受欢迎,比如 x = 10 9 , y = 2 10 9 + 2 ,那么如果 x y 的系数发生很小的变化,则这个变化会被放大很多到等式的右边,在数值计算中,这常常是不稳定的。
 针对病态方程,一个常见的办法是加入一个约束项,缩小 x y 的取值范围,比如令 x 2 + y 2 = 0.8 ,如图1b所示,则相当于约束 x y 在半径为 2 5 圆上,于是相切点(-0.8,0.4)成了一个稳定的解。此外还可以令约束为 | x | + | y | = 1 ,则交点也只有一个,就是(-1,0),也是一个稳定的唯一解。

2. L2规范化

  虽然上面讨论的是一个非常简单的解方程的例子,但是和机器学习的问题有许多相似性。基于参数的机器学习模型某种程度上就是一个不可逆的问题,对于同一个损失函数值,可以对应很多种不同的参数。甚至在高维度下,极小值和最小值都很接近,所以即使是很好优化过的模型,也会对应许多不同的参数组合,而这些组合未必是数值稳定的。而且因为参数的范围更自由,可以得到很小的训练误差,往往都不具有很好地泛化能力(对训练数据以外数据做出准确预测的能力成为泛化能力)。这时候可以考虑加入一个约束项,这种方法叫做规范化(Regularization)。具体来说就是在损失函数里加上一项,最常用的一种是L2规范化:
          这里写图片描述
  其实就是L2范数,也就是欧氏距离的平方乘上一个系数。在神经网络中,L2规范化通常只应用于仿射变换中的线性变换部分,也就是 w x + b w 。根据公式形式,这样一项加上之后,权重的绝对值大小就会整体倾向于减小,尤其是不会出现特别大的值。所以L2规范化还有个名字叫做权重衰减(weight decay),也有一种理解这种衰减是对权重的惩罚,所以有时候会看到文章或者书里管这一项叫做惩罚(penalty)项。
  下面通过一个简单的例子来形象理解下L2规范化的作用。考虑一个只有两个参数 w 1 w 2 的模型,其损失函数曲面如图2所示。
这里写图片描述

图2 L2规范化对目标函数曲面的影响

  图2a是一个目标函数,可以看到,最小值所在是一条线,整个曲面像一条山岭倒过来一样。这样的曲面对应无数个参数组合,单纯用梯度下降法是难以得到确定解的,可以看做是一个典型的病态问题。但是加上一项 0.1 ( w 1 2 + w 2 2 ) ,则曲面 变成了如图2b所示的样子。最小值所在从倒过来的“岭”变成了一个“谷”。需要注意的是“谷”所在的位置并不是规范项的中心(0,0),而是根据规范化系数的大小和原来损失函数曲面共同决定的。当规范化系数 α 时,原来的损失函数可以忽略,则“谷”的位置趋近于(0,0);当 α 0 时,“谷”的位置趋近于原损失函数曲面中“岭”所在的位置。总之加上这一项之后,梯度下降法就能够解决了。并且通过这个例子可以看出,L2规范项还起到了帮助收敛的作用。统计学里这个方法常用来处理多重线性下的最小二乘法问题,并且有个形象的名字叫做岭回归(ridge regression)。

L1规范化(L1 Regularization)

  除了L2规范化,L1规范化也是最常见的规范化方法之一,形式如下:
          这里写图片描述
  其实在图1所示的例子中已经见过,和L2的区别主要是L2项的等高线不同,二维情况的等高线画在了图1c中,是个旋转 45 的正方形。这个性质让L1规范化后的参数更趋向于某些维度为0,也就是稀疏性。关于这个性质的形象理解,还是来看一个二维的例子,如图3所示。
  图3中虚线代表的是元损失函数的等高线,实线代表的是规范化项的等高线,左边a图是L2的情况,右边b图是L1的情况。当整体函数达到最小值的时候,如图a中点所示的位置,所以能够很清楚看出,L2项让整体参数都有变小的趋势。二L1则会让参数的方向朝着某个轴靠近,比如图3b中,因为原始损失函数等高线的形状,无论L1项的系数怎么变,最终最小值一定是在横轴上。这样的约束可以让有效特征的数量变少,从而获得稀疏性。因为这个性质,L1规范化经常被用在降噪声和图像重建中。在统计学里L1规范化也有另外一个名字叫做LASSO,即Least Absolute Shrinkage and Selection Operator,是对L1规范化的一个简短概括。
这里写图片描述

图3 L2规范化和L1规范化的区别

猜你喜欢

转载自blog.csdn.net/qq_36427732/article/details/81260110