线性模型常用来处理回归和分类任务,为了防止模型处于过拟合状态,需要用L1正则化和L2正则化降低模型的复杂度
# 什么是过拟合
假设我们要根据特征分类{男人X,女人O},如图:
![](leanote://file/getImage?fileId=5ed2ffb2d03c9950f2000000)
- 图1欠拟合,分类有明显欠缺,很多“男人”被分类成“女人”
- 图2正常,虽然有两个点分类错误,但是能够理解,毕竟现实世界有噪音干扰
- 图3过拟合,分类全部是正确的,但是明显感觉过了
## 如何去规避过拟合的风险呢?
我们知道线性分类模型一般表示为:
$f(x) = w_0x_0+w_1x_1+\cdots+w_ix_i$
根据泰勒展开式,任何函数都可以用多项式的方式去趋近,所以线性模型函数都可以表示为多项式
我们知道拟合函数f(x)涉及到的特征项有N个,如果想防止过拟合首先想到的就是控制N的数量让N最小化,其实就是让W中项的个数最小化(如果导致过拟合的特征x的权重w为0,那么就不影响结果,从而降低过拟合)
## 如何求解“让W向量中项的个数最小化”呢?
首先了解下范数的概念:
- 0范数$|W|_0$,向量中非零元素个数
- 1范数$|W|_1$,向量绝对值之和
- 2范数$|W|_2$,向量的模
所以为了防止过拟合,需要让算法的经验风险最小并且结构风险最小,其中“结构风险 = 经验风险+正则化项”,公式表示为:
## 经验风险
经验风险是模型关于训练样本集的平均损失,对所有训练样本都求一次损失函数再累加求平均。即模型f(x)对训练样本中所有样本的平均预测能力。
$ R_{emp}(f) = \frac{1}{N}\sum\limits_{i=0}^{N}L(y_i, f(x_i))$
经验风险最小化的策略认为,经验风险最小的模型是最优的模型。根据这一策略,按照经验风险最小化求最优模型就是求解最优化问题:
$ min \frac{1}{N}\sum\limits_{i=0}^{N}L(y_i,f(x_i))$
## L1和L2正则化
正则化,就是在原来的经验风险的基础上,加上了一些正则化项或者称为模型复杂度惩罚项。线性回归策略使用的损失函数是平方损失函数即$L(y_i,f(x_i)) = (y_i,f(x_i))^2$
- 优化目标 $min \frac{1}{N}\sum\limits_{i=0}^{N}L(y_i,f(x_i))$
- L1正则项 $min \frac{1}{N}\sum\limits_{i=0}^{N}L(y_i,f(x_i)) + C||w||_1$
- L2正则项$min \frac{1}{N}\sum\limits_{i=0}^{N}L(y_i,f(x_i)) + C||w||_2^2$
## 结构风险
结构风险在经验风险最小化的基础上(也就是训练误差最小化),尽可能采用简单的模型(多项式项的个数最少),以此提高泛化预测精度。加上了L1正则化和L2正则化(惩罚项)之后,可以简化模型。
假设X为一个二维样本,那么要求解参数(权重w)也是二维,如同:
- 原函数曲线等高线(同颜色曲线上,每一组 $w_1, w_2$ 带入输出结果值(函数值)都相同)
![](leanote://file/getImage?fileId=5ed30e1dd03c9950f2000001)
- 1和L2加入后的函数图像
![](leanote://file/getImage?fileId=5ed30f26d03c9950f2000002)
从上边两幅图中我们可以看出:
- 如果不加L1和L2正则化的时候,对于线性回归这种目标函数凸函数的话,我们最终的结果就是最里边的紫色的小圈圈等高线上的点(损失函数结果最小)
- 当加入L1正则化的时候,我们先画出|w1|+|w2|=F 的图像也就是一个菱形,代表这些曲线上的点算出来的 1范数|w1|+|w2|都为F。我们的目标是不仅是原曲线算得值要小(越来越接近中心的紫色圈圈),还要使得这个菱形越小越好(F越小越好),因此我们要取到一个恰好的值。如图,等值线和正则项图形
![](leanote://file/getImage?fileId=5ed3401fd03c9950f2000003)
首先正则项的菱形是向外无限扩展,等值线图形也是无限扩展,两个图型产生无数交叉,以最外圈的红色等高线为例,于红色曲线上的每个点都可以与正则项的菱形(无数个)相交,但是只有菱形与红色等高线相切(一个交点)的点才满足菱形最小。公式描述如下:
$\frac{1}{N}\sum\limits_{i=0}^{N}L(y_i,f(x_i))$ 相同时由于相切的$C||w||_1$最小能够使损失函数最小。因此加入L1范数得到的某个解,一定是某个菱形和某条原函数等高线相切的点。 通过观察我们可以看到,菱形和等高线相切的点都是在坐标轴上,这样解的某些属性权重极其容易是0,所以说L1范式更容易得到权重稀疏解(解中权重部分为0),如同上图解为w=(0,x),这样最终模型就会变简单(因为权重为0所以权重和输入特征的乘积为0)。
- 当加入L2正则项时,分析过程和L1正则化类似。L2正则项的图形是圆形,我们找到某等高线和某圆形相切的点就是该等高线下损失函数的最小值点就是最终解。与L1范数比相切点不容易交在坐标轴上,但是比较靠近坐标轴。因此L2范数能让解比较小(靠近0),但是比较平滑(不等于0)
**因此加入正则化项,在最小化经验误差的情况下,可以让我们选择解更简单(趋向于0)的解结。**
在经验风险最小化的基础上(也就是训练误差最小化),尽可能采用简单的模型,以此提高泛化预测精度。因此,加正则化项就是结构风险最小化的一种实现。