7.1过拟合的问题
过拟合问题简单来说就是泛化能力差:所建的机器学习模型在训练样本中准确率很高,在验证数据集中准确率低——也就是说模型难以推广到新的数据。
下图是一个回归问题的例子:
第一个模型是一个线性模型,欠拟合,不能很好地适应我们的训练集;第三个模型是一个四次方的模型,过于强调拟合原始数据,而丢失了算法的本质:预测新数据。我们可以看出,若给出一个新的值使之预测,它将表现的很差,是过拟合,虽然能非常好地适应我们的训练集但在新输入变量进行预测时可能会效果不好;而中间的模型似乎最合适,它能很好地给出一条判定边界。
分类问题中也存在这样的问题:
就以多项式理解,𝑥 的次数越高,拟合的越好,但相应的预测的能力就可能变差。
问题是,如果我们发现了过拟合问题,应该如何处理?
1.丢弃一些不能帮助我们正确预测的特征。可以是手工选择保留哪些特征,或者使用一
些模型选择的算法来帮忙(例如 PCA)
2.正则化。 保留所有的特征,但是减少参数的大小(magnitude)
该章节主要是从以上两点入手讨论,其实也还有其他方法如数据增强、多模型结合(集成学习思想)、dropout等,在这里主要介绍章节内的两点。
7.2代价函数
上面的回归问题中如果我们的模型是:
我们可以从之前的事例中看出,正是那些高次项导致了过拟合的产生,所以如果我们能让这些高次项的系数接近于0的话,我们就能很好的拟合了。(主要思想就是增大系数来减小它们的贡献)
所以我们要做的就是在一定程度上减小这些参数𝜃 的值,这就是正则化的基本方法。我
们决定要减少𝜃3和𝜃4的大小,我们要做的便是修改代价函数,在其中𝜃3和𝜃4 设置一点惩罚。
这样做的话,我们在尝试最小化代价时也需要将这个惩罚纳入考虑中,并最终导致选择较小
一些的𝜃3和𝜃4。
修改后的代价函数如下: