在介绍正则化之前,我们先来介绍一下什么是欠拟合和过拟合问题。
欠拟合和过拟合
在线性回归问题中,像下面这个数据集,通过房屋面积去预测房价,我们用一次函数去拟合数据:
发现拟合地并不是很好,我们称它为欠拟合。当我们用二次多项式去拟合时:
我们发现这个拟合的刚刚好。
当我们用高次多项式去拟合时:
发现这个函数图像异常扭曲,虽然数据集全部拟合到图像上了,但是这个函数并不能很好地去预测你想要的结果。我们称这种现象叫过拟合。
对于欠拟合,我们可以增加函数的多项式的次数,但是对于过拟合来说,我们该如何解决这个问题呢?
有两种方法去解决过拟合的问题:
1.减少特征变量的数目:
- 手动选择哪个特征变量要舍弃 ;
- 模型选择算法。
2.正则化:
- 保留所有的特征变量,但是减小量级或参数 θ_ j 的大小。
- 当训练集有许多有用的特征变量时正则化处理会很好。
那么如何进行正则化呢?
正则化
在过拟合问题中,每个特征变量可能都对结果产生影响,例如预测房价,现在有很多特征变量:大小,楼层,卧室数目等等……。这些特征都会对房价的最终结果产生影响,虽然有些特征产生的影响很小,但是要想结果预测准确,我们需要保留所有特征变量,这时候我们就要考虑代价函数。
线性回归的代价函数为:
观察我们训练的模型对数据集拟合的好不好,就要让代价函数最小,同时为了保留所有的特征,那么就可以给参数 θ 增加一个大的惩罚,例如:
这样要使代价函数最小,参数 θ_3 和 θ_4 就应该很小,因为它们的惩罚很大。当参数 θ_3 和 θ_4 很小时,在多项式中它们所在的那些项对整体影响就很小了。这种方法就是正则化(Regularization)解决过拟合问题。
要想正则化所有的参数,就可以按照下列公式:
其中 λ 又称正则化参数(regularization parameter),它的目标是平衡更好地拟合数据和保持参数尽量最小这两者之间的关系。