入门机器学习(五)--正则化

1. 过拟合问题(The Problem of Overfitting)

线性回归的例子:

以下图像是用不同的假设函数来拟合相同的数据集:

入门机器学习(五)--正则化

拟合结果如下:

入门机器学习(五)--正则化

第一张图用一阶多项式来拟合,效果不好,不能很好的表达数据之间的特征,这被称为“欠拟合”;第二张图用二阶多项式拟合,效果很好,虽然不能穿透每一个数据,但是能将数据的整体趋势表达出来;第三张图用四阶多项式拟合,其对于每一个数据点都拟合的好,但是如果换了其他的数据集,效果就会比较差,这被称为“过拟合”

逻辑回归的例子:

以下图像是用不同的假设函数来分类相同的数据集:

入门机器学习(五)--正则化

拟合结果如下:

入门机器学习(五)--正则化

第一张图用一阶多项式来拟合,效果不好,不能很好对数据进行分类,这被称为“欠拟合”;第二张图用二阶多项式拟合,分类效果很好,虽然不能正确分类每一个数据,但是能将数据的整体趋势表达出来;第三张图用高阶多项式拟合,其对于每一个数据点都分类的好,但是如果换了其他的数据集,效果就会比较差,这被称为“过拟合”。

过拟合的原因:

有多余的特征

特征的数量大于样本的数量

解决过拟合的方法:

①尽量减少选取变量的数量,即减少特征变量的数目,比如可以人工检查变量清单来决定哪些变量更为重要,去取舍相关的变变量。有些算法可以自己选择哪些模型可以舍弃,哪些可以留住。

② 正则化。保留所有的特征,并减少参数θ的大小。这种方法很有效果,当我们有很多特征并且每个特征对输出结果都有影响的情况。

2. 代价函数(Cost Function)

如第一节所述,下面右图是“过拟合”的结果,左图的假设函数是二阶,右图是四阶,如果要改善右图的过拟合,该怎么做呢?

答案就是使参数θ3和θ4尽可能的小,尽可能的接近0,这样四阶的假设函数的三次高阶项和四次高阶项近乎可以忽略,这样过拟合的程度会大大消减,

入门机器学习(五)--正则化

怎么做到减小参数θ3和θ4呢?对于线性回归来说,要求代价函数的最小值,如下所示

入门机器学习(五)--正则化

如果在该式子后面对θ3和θ4加上惩罚项

入门机器学习(五)--正则化

这样得出的最优参数会使θ3和θ4特别小,近乎为0, (注意:1000只是一个比较大的数,不是固定的,具体的大小要根据实际情况而定). 这种方法的思想就是正则化的思想即如果我们的参数值较小,假设模型就更简单(比如如果θ3和θ4都约等于0,那么假设模型就是一个二次函数),得到的曲线就越平滑,因此也不容易出现过拟合的问题。

举例:

入门机器学习(五)--正则化

如上图所示,在预测房价的问题上,如果我们有100个特征,相应的参数由101个,但是在一开始我们并不知道那个特征对结果的影响是最小的,所以我们在假设函数的后面加上一个惩罚项,也叫做正则化项

入门机器学习(五)--正则化

其中的正则化项的作用是减小参数θ的大小,防止过拟合。在代价函数中,第一项的作用是更好的拟合数据第二项(正则化项)的作用是尽可能的使参数小。λ的作用是平衡两项更倾向于拟合训练集还是更倾向于将参数控制得更小的目标从而保持假设模型的相对简单

任何事情都是相对的,如果我们将λ设置的过大(比如10^10),那么所有的参数都会很小,接近于0,那么假设函数就倾向于一条直线,如下图所示,这样的话就会出现欠拟合的情况。

入门机器学习(五)--正则化

3. 线性回归的正则化(Regularized Linear Regression)

3.1 梯度下降法的正则化

根据第二节的代价函数公式,带正则化项的梯度下降法的迭代公式可以表示为:

入门机器学习(五)--正则化

入门机器学习(五)--正则化

第二个式子可以化为:

入门机器学习(五)--正则化

其中,因为m比较大而且阿尔法远远小于1,所以:

入门机器学习(五)--正则化

所以迭代公式的意义是每一次迭代,将参数θ乘以一个小于1的数来减小θ的大小。

3.2 正规方程的正则化

正规方程求解最优参数的公式为:

入门机器学习(五)--正则化

其带有正则化项的正规方程求解最优参数的公式为:

入门机器学习(五)--正则化

只要λ是大于0的,那么上图所示的正规方程是一定可逆的(即非奇异)。

4.Logistic回归的正则化(Regularized Logistic Regresssion)

逻辑回归的代价函数如下所示:

入门机器学习(五)--正则化

在其后面加上正则化项后,可以表示为:

入门机器学习(五)--正则化

根据代价函数,其梯度下降法的迭代公式可以表示为:

入门机器学习(五)--正则化

入门机器学习(五)--正则化

注意:该公式虽然看起来和线性回归的迭代公式相同,但是由于h(x)不同(逻辑回归的假设函数是sigmoid函数),所以其本质上是不同的。