0. 前言
之前的课程中讲到,在使用非线性分类器时,我们使用越高阶的特征转换,模型会更复杂,同时得到更高的VC维度。这节课中将会介绍这一行为导致机器学习中一个重要的问题:过拟合。
1. What is Overfitting
什么是过拟合,看一张图就明白了:
可以看到,目标函数是蓝色的线,一共有5个样本可供学习,我们使用一个复杂的分类器将5个样本学的很好,但是得到的结果和蓝色的差很多。这种情况就叫做过拟合。过拟合也可以这么解释: Ein E i n 很小,但是 Eout−Ein E o u t − E i n 很大,导致E_{out}较大。
欠拟合:样本学的不好, Ein E i n 很大,自然 Eout E o u t 也会很大。
2. The Role of Noise and Data Size
产生过拟合的两个因素:noise和目标函数复杂度。
模型1:当存在noise且模型分布函数是10阶多项式,图为:
此时2阶多项式和10阶多项式学得的模型分别为:
可以看到10阶的多项式还不如2阶的多项式,10阶多项式分类器过拟合了!而目标函数就是个十阶多项式,原因就是noise在搞鬼。- 模型2:不存在noise,分布函数是50阶多项式时:
此时2阶和10阶分类模型为:
可以看到高阶的分类模型过拟合了。
3. A Detailed Experiment
本部分探讨过拟合什么时候发生。假设我们产生的数据分布由两部分组成:第一部分是目标函数f(x),
Qf
Q
f
阶多项式;第二部分是噪声
ϵ
ϵ
,服从Gaussian分布。接下来我们分析的是noise强度不同对overfitting有什么样的影响。总共的数据量是N。
- 噪声对过拟合的影响:
可以看到噪声越大,过拟合的概率就越大。
- 目标函数复杂度:
目标模型越复杂时,过拟合的概率也会越大。
- 一共有四种情况发生过拟合:
分别是样本数量过少、噪声过大、目标函数复杂、模型VC维度过高。
4. Driving Analogy Revisited
这一部分讲解如何对付过拟合。
避免过拟合的方法有5种:
- 从简单模型开始学习
- 数据清洗,使用更好的数据
- 拿出更多的数据
- regularization(put the break 后面课程讲)
- validation(monitor the dashboard 后面课程讲)
第一种方法在上一课中讲过,我们可以先用低阶的多项式分类器进行分类,再逐渐的使用更复杂的分类器,不断地减小。
- 第二种方法:处理掉样本中明显错误的点,可以进行修正或者剔除。这种方法在错误样本数量很小时,起到的效果很有限。
- 第三种方法:data hinting是针对N不够大的情况,如果没有办法获得更多的训练集,那么data hinting就可以对已知的样本进行简单的处理、变换,从而获得更多的样本。举个例子,数字分类问题,可以对已知的数字图片进行轻微的平移或者旋转,从而让N丰富起来,达到扩大训练集的目的。这种额外获得的例子称之为virtual examples。但是要注意一点的就是,新获取的virtual examples可能不再是来自于某个distribution。所以新构建的virtual examples要尽量合理,且是独立同分布的。
5. 总结
- 什么是过拟合,当 Ein E i n 和 Eout E o u t 差距很大时。
- 过拟合很容易出现。
- 过拟合出现的四个常见原因。
- 解决过拟合的5种方法。