L1正则化和L2正则化

在这里我们首先需要明白结构风险最小化原理:

在经验风险最小化(训练误差最小化)的基础上,尽可能采用简单的模型,以提高模型泛化预测精度

我们所谓的正则化,就是在原来 Loss Function 的基础上,加了一些正则化项,或者叫做模型复杂度惩罚项。以我们的线性回归为例子。

优化目标(损失函数):

加上L1正则项(lasso回归):

加上L2正则项(Ridge回归):

下面我们需要理解加了正则化项之后,对于目标函数求解的时候,最终解有什么变化。

我们从图像角度来理解:

假设X是一个二维样本,那么要求解的参数也 也是二维的。下图叫做原函数曲线等高线图。目标函数在图中的等高线(同颜色)每一组 , ​ 带入值都想同,这里代表着多组解。


L1正则化和L2正则化_第1张图片
原函数等高线图

下面看L1和L2正则项加入后的函数图像:


L1正则化和L2正则化_第2张图片
加入正则化

对比两幅图我们可以看出来:

  • 如果不加L1和L2正则项,对于线性回归损失函数这样的凸函数,我们的最终结果就是最里面紫色小圈圈等高线上的点。

  • 当加入L1正则化的时候,我们先画出 ​ 的图像,就是这个菱形。此时,我们的目标不仅是原来的曲线值要越小(接近中心紫色圈圈),还要使得这个菱形越小越好(F越小越好)。那么如果和原来的解一样的话,这个菱形明显很大。

L1正则化和L2正则化_第3张图片
L1范数求解图

下面看这几步:

  1. 以同一条原曲线等高线来说,现在用最外面的红色圈圈为例子,对于这个圈圈,过其每个点都可以做一个菱形,如上图易知,当这个菱形与某条等高线相切时候,这个菱形最小,对应的L1范数更小。

    体现在公式上面,在相同的 下,由于相切的时候小,即 小,所以能够使得二者加起来更小,即lasso回归更小。

  2. 我们可以看到,为了得到 lasso回归 的解,一定是某个菱形和某条原函数等高线的切点。观察可以得到,几乎所有的原函数等高曲线,和某个菱形相交的时候容易相交在坐标轴上,也就是说,最终的结果中,某些维度的解是容易等于0的,比如上图的是, 这就是我们所说的加入L1正则化范数之后更容易得到稀疏解(解向量中0比较多)的原因。

  3. 当然,我们可以通过理论来证明。用求导来证明。考虑一维情况下,其中 是 lasso 回归的目标函数,) 是没有正则化之前的损失函数,剩下的是L1正则项,那么要使得0点成为最值可能的点,虽然目标函数在0点不可导,但是我们只需要让0点左右的导函数异号即可,即即可,也就是说 的情况下,0点都是可能的最值点。

L2正则化(岭回归)的证明类似。不过结论是L1正则化比L2正则化更加容易获得稀疏解。

我们总结一下,正则化之所以能够降低的原因在于,正则化是结构风险最小化的一种策略实现。

给 loss function 加上正则项,新得到的目标函数 h = f+normal,需要在 f 和 normal 中做一个 trade-off。如果还是像原来只优化 f,那么normal就比较大, h 就不能得到最优解。因此可以看出加正则项可以让解更加简单,符合奥卡姆剃刀理论;同时也符合在偏差和方差(方差表示模型的复杂度)分析中,通过降低模型复杂度,得到更小的泛化误差,降低过拟合。

看一下L1正则化和L2正则化的区别:

L1正则化就是在 loss function 后面加上L1范数,这样比较容易求到稀疏解。L2 正则化是在 LF 后面加 L2范数 平方,相比L1正则来说,得到的解比较平滑(不是稀疏),但是同样能够保证解中接近于0(不等0)的维度比较多,降低模型的复杂度。

你可能感兴趣的:(L1正则化和L2正则化)