注:正则化是用来防止过拟合的方法。在最开始学习机器学习的课程时,只是觉得这个方法就像某种魔法一样非常神奇的改变了模型的参数。但是一直也无法对其基本原理有一个透彻、直观的理解。直到最近再次接触到这个概念,经过一番苦思冥想后终于有了我自己的理解。
0. 正则化(Regularization )
前面使用多项式回归,如果多项式最高次项比较大,模型就容易出现过拟合。正则化是一种常见的防止过拟合的方法,一般原理是在代价函数后面加上一个对参数的约束项,这个约束项被叫做正则化项(regularizer)。在线性回归模型中,通常有两种不同的正则化项:
加上所有参数(不包括$\theta_0$)的绝对值之和,即$l1$范数,此时叫做Lasso回归;
加上所有参数(不包括$\theta_0$)的平方和,即$l2$范数,此时叫做岭回归.
看过不少关于正则化原理的解释,但是都没有获得一个比较直观的理解。下面用代价函数的图像以及正则化项的图像来帮助解释正则化之所以起作用的原因。
0.1 代价函数的图像为了可视化,选择直线方程进行优化。假设一个直线方程以及代价函数如下:
$\hat{h}_{\theta} = \theta_0 + \theta_1 x$,该方程只有一个特征$x$,两个参数$\theta_0$和$\theta_1$
$J(\theta) = \frac{1}{m} \sum_{i=1}^{m}{(\theta_0 + \theta_1 x^{(i)} - y^{(i)})^2}$,该代价函数为均方误差函数(MSE),其中$m$表示样本量.
为了保持简单,只取一个样本点$(1, 1)$代入上面的代价函数方程中,可得$J(\theta) = (\theta_0 + \theta_1 - 1)^2$. 该式是一个二元一次方程,可以在3维空间中作图(下面利用网站GeoGebra画出该方程的图像):
图0-1,代入样本点$(1, 1)$后的代价函数MSE的图像
由于多个样本点的代价函数是所有样本点代价函数之和,且不同的样本点只是相当于改变了代价函数中两个变量的参数(此时$\theta_0$和$\theta_1$是变量,样本点的取值时参数)。因此多样本的代价函数MSE的图像只会在图0-1上发生缩放和平移,而不会发生过大的形变。
对于坐标轴,表示如下:
使用$J$轴表示蓝色轴线,上方为正向;
使用$\theta_1$表示红色轴线,左边为正向;
使用$\theta_0$表示绿色轴线,指向屏幕外的方向为正向.
此时的函数图像相当于一条抛物线沿着平面$J = 0$上直线$theta_0 = - \theta_1$平移后形成的图像。
0.2 正则化项的图像这里使用$L1$范数作为正则化项,加上正则化项之后MSE代价函数变成:
$J(\theta) = \frac{1}{m} \sum_{i=1}^{m}{(\theta_0 + \theta_1 x^{(i)} - y^{(i)})^2} + \lambda ||\theta_1||_1$,
上式中$\lambda$是正则化项的参数,为了简化取$\lambda = 1$。由于正则化项中始终不包含截距项$\theta_0$,此时的$L1$范数相当于参数$\theta_1$的绝对值,函数图像如下:
图0-2,$L1$正则化项的图像
此时的函数图像相当于一张对折后,半张开的纸。纸的折痕与平面$J = 0$上$\theta_0$轴重叠。
0.3 代价函数与正则化项图像的叠加直接将这两个图像放在一起的样子:
图0-3,同时显示代价函数与正则化项的图像
将两个方程相加之后,即$J(\theta) = (\theta_0 + \theta_1 - 1)^2 + |\theta_1|$,做图可以得到下面的图像:
图0-4,加入正则化项之后代价函数的图像
此时的图像,就像是一个圆锥体被捏扁了之后,立在坐标原点上。观察添加正则化项前面的图像,我们会发现:
加上正则化项之后,此时损失函数就分成了两部分:第1项为原来的MSE函数,第2项为正则化项,最终的结果是这两部分的线性组合;
在第1项的值非常小但在第2项的值非常大的区域,这些值会受到正则化项的巨大影响,从而使得这些区域的值变的与正则化项近似:例如原来的损失函数沿$\theta_0 = -\theta_1$,$J$轴方向上的值始终为0,但是加入正则化项$J = |\theta_1|$后,该直线上原来为0的点,都变成了$\theta_1$的绝对值。这就像加权平均值一样,哪一项的权重越大,对最终结果产生的影响也越大;