一、过拟合问题(Overfitting)
我们知道,机器学习训练的目的是为了让模型更好的拟合实际情况,从而指导我们进行预测。评价一个模型拟合度是否优良的参考之一是它与实际数据集的偏差程度,我们用代价函数来定量,一般代价函数越小越好。那么,是否会有一些意外情况出现呢?
1、线性回归的情况:
对于图中的数据集,分别使用了不同次数的多项式进行拟合:线性回归模型下,模型预测与数据集有一些差距,但是大方向是不错的(欠拟合,underfit/high bias);二次多项式模型下,模型与数据集的偏差更小了,模型曲线光滑平整(ok);四次多项式模型下,模型与数据集完全对应上,没有偏差,但是曲线歪曲,在大方向上似乎并不是特别准(过度拟合Overfit/high variance)。
PS:Overfitting: if we have too many features, the learned hypothesis may fit the training set very well(代价函数=0), but fail to generalize(泛化) to new examples.
2、逻辑回归:
同样的,对于图中的数据集拟合,一次多项式简单地划分了两个类型,但是有对应不上的;二次多项式的拟合度更好,但是仍有偏差;四次多项式通过歪曲的形状,成功地拟合了数据集中的数据。
3、那么,为什么会出现这样的情况呢?表象地看,原因可能是:
对于一个模型,理想的情况下,修正项越多的越精确(对于多项式来说,可以用级数展开来理解)。可是实际上拟合时,修正项越多,我们就需要越多的数据集进行训练,否则没法限制住θ的范围(举个极端的例子,想象一下你只有一个数据点,此时即使是最简单的线性拟合也有无数种可能)。
由上述分析,我们可以由两种解决方案:
人为地或者通过模型选择则算法来减少特征量(修正项),虽然这会损失一些我们看来是“有作用”的特征量。
正则化,这种方法能保留住所有的特征量。
对于第一种方案,之后的课程中会学习,我们本章学习的是第二种。
二、正则化和代价函数
为了避免过拟合问题,且又想保留所有的特征量,这里引入了正则化算法。
首先来看一个例子:
通过降低三次项和四次项权重,即令θ3和θ4很小,使得拟合模型在大方向上是“二次多项式”在发挥影响,这样就取得了较好的效果。
因此,正则化的思想是:small values for parameters θ.
因为一个较小的θ值说明这是一个更简单的假设模型,也就更不容易过拟合。
实际应用中,我们无法知道哪一项需要惩罚,因此我们将每一项都加入优化中,得到新的代价函数,在原有的代价函数基础上加入一个正则化项,λ是正则化参数:
PS:这里求和是从θ1开始的,因为θ0 对应的特征量是1。
三、线性回归的正则化
1、梯度下降法的正则化:
PS:将θ0单独分开是因为其对应的特征量是1,约定俗成不必正则化
整理后可得:
2、正规方程的正则化:
一般的,L是一个n+1维度的矩阵。
四、逻辑回归的正则化
梯度下降法的正则化
首先,逻辑回归的正则化代价函数如下:
因此: