线性回归正则化 regularized linear regression

线性回归正则化regularized linear regression


在前几篇博客中介绍了一元线性回归http://blog.csdn.net/u012328159/article/details/50994095和多元线性回归http://blog.csdn.net/u012328159/article/details/51029695等线性回归的知识,具体请参见本人其他博客。但是线性回归存在一个很重要的问题就是过拟合(overfitting)问题,所谓过拟合简单直白的说就是模型的训练误差极小,而检验误差很大。一个好的学习器不仅能够很好的拟合训练数据,而且能够对未知样本有很强的泛化能力,即低泛化误差。先来看看线性回归中的过拟合现象(自己不想画图了,直接盗用Andrew Ng大神的图吧):
线性回归正则化 regularized linear regression_第1张图片
图中左边的图表示的线性回归模型存在欠拟合现象(underfitting),欠拟合顾名思义就是对训练数据的拟合程度不够好,训练误差大。中间的线性回归模型是个拟合程度很好的模型。右边图表示的就是过拟合现象,能够看出它对训练数据拟合的非常好,但是预测能力很差,泛化能力很差。

因此,处理过拟合问题常用的方法有:
  • 减少特征数量  主要方法有:人工的挑选重要的特征,去除不重要的特征。采用特征选择算法(在后面的博客中会介绍,在这不细说了)  但是这个方法在去除特征的同时,也去除了这部分特征所提供的信息。
  • 正则化(regularization) 保留所有特征,但是减少参数的值。
线性回归正则化通过缩小参数的值,可以使多项式模型更加简单,直接举个例子吧(图片来源:ng machine learning课)



上图左边的二次曲线是我们希望的,右边的更高次的线性回归模型显然是过拟合的,但是如果在它的代价函数后面添加两项 ,如果想让最小,那么的值几乎要接近0,因此,右边的多项式几乎等价于左边的,又能够得到一个正确的线性回归模型。
先来说说为什么增加正则项就能够有效避免过拟合(或者说是引入正则项的动机): 假如对于一个多项式函数,

我们来看看随着多项式阶数的增加系数M是如何剧增的,见下表(来自PRML):

看完这个表应该一目了然,正则项为什么能够惩罚系数了。
因此,正则化线性回归(regularized linear regression)的代价函数(cost function)为:

其中为正则项,为正则系数。如果设置的非常大,会使 ,将会产生欠拟合问题。因此应该选择合适的正则系数
我们的目标是即求得使最小的参数。因此对正则化线性回归使用梯度下降(gradient descent),为:

之所以把单独写出来,是因为我们正则化的时候,不对 进行惩罚。如果上面的的公式中的同类项合并下,则为:

因为  始终为正,因此  一般来说其值比1小一点点,因此相当于把缩小了一点点。

对于线性回归来说,除了通过梯度下降来求解参数,还可以通过正规方程(normal equation)用矩阵运算来直接求解参数。对于样本X和label Y而言,可以如下表达:

那么正则化线性回归的正规方程为:



其中,上式中的对角矩阵维度是(n+1)*(n+1)。在以前的博客讲正规方程的时候讲过当 时, 不存在,幸运的是正规化帮助我们解决了这个问题,即在正则化线性回归中,如果 ,则  

是存在的,也即里面的矩阵是可逆的。

你可能感兴趣的:(machine,learning&deep,learning)