机器学习基石13:过拟合风险(Hazard of Overfitting)

本文详细介绍了过拟合的概念,造成过拟合的原因以及过拟合的解决方案。



13. Hazard of Overfitting

上节课介绍了非线性分类模型,通过非线性变换 Φ \Phi 将输入空间 X X 映射到线性空间 Z Z ,从而可以使用常用的线性模型进行分类,分类完成后,再反变换回原来的空间。最后讲到了非线性变换使计算复杂度增加的问题。本节课介绍这种模型复杂度增加带来的问题:过拟合(overfitting)。

13.1 What is Overfitting?

直观地讲,泛化能力(generalization)比较好,即在训练集上表现良好,在新的样本上也表现良好。那么泛化能力不好意味着什么呢?通过本课程所学知识进行说明,假设输入空间 X X 是一维的,包含5个样本,目标函数 f ( x ) f(x) 为二阶多项式,目标函数(期望输出)为 y n = f ( x n ) + n o i s e y_n = f(x_n) + noise 。从图中可以看到,五个样本基本都落在目标函数上,只有一个离群点,如果假设函数(预测输出)与目标函数很接近,则此时的 E i n E_{in} 比较小。如果使用四阶的假设函数拟合,这五个样本点都在假设和函数上,此时 E i n E_{in} 很小 。虽然四阶假设函数的 E i n E_{in} 比二阶假设函数的 E i n E_{in} 要好,但四阶假设函数的 E o u t E_{out} 很大。因为有 VC Bound 理论可知,假设函数的阶数越大,即 VC Dimension 越大,会使得模型复杂度越高。这种 E i n E_{in} 很小 , E o u t E_{out} 很大的情况即为泛化能力差(Bad Generalization)

在这里插入图片描述

接下来,通过VC Dimention 和 Error 曲线来说明过拟合和欠拟合的概念:

在这里插入图片描述

随着假设函数的阶数增高,VC Dimention 也随之增大。首先看蓝色的线,模型在训练样本上的误差逐渐减小,即 E i n E_{in} 一直在减小。然后看紫色的线,在测试样本上的误差呈现先下降后上升的趋势,即 E o u t E_{out} 先减小后增大,在 d v c d^*_{vc} 处,达到最小。当从 d v c d^*_{vc} d v c = 1 d_{vc} =1 (逐渐减小)的过程中, E i n E_{in} E o u t E_{out} 都在增大,这种情况称为欠拟合(underfitting);当 d v c d^*_{vc} d v c = 1126 d_{vc} = 1126 (逐渐增大)的过程中, E i n E_{in} 不断下降, E o u t E_{out} 不断上升,这种情况称为过拟合(overfitting)。

实际应用过程中,训练模型时,经常通过查看训练集的损失曲线和验证集的损失曲线判断模型的拟合情况。欠拟合对应的曲线为训练损失和验证损失都在下降,但还没有到达最低点;过拟合对应的曲线为训练损失不断下降,验证损失先下降后上升。

泛化能力差与过拟合的关系可以描述为:过拟合是导致泛化能力差的原因。

一个好的模型,应该具有良好的拟合能力,即 E i n E_{in} E o u t E_{out} 都比较小。下图是比较直观的理解。

在这里插入图片描述

下面通过一个形象的例子说明导致过拟合的原因:

机器学习 开车(不是去幼儿园的车)
过拟合 发生车祸
使用过大的 VC-Dimention 开得太快
噪声 崎岖不平的路面
样本数量 N N 的多少 路况观察能力的大小

通过上例可知,VC Dimension、样本噪声、样本数量是影响模型拟合能力的关键因素。


习题1:
在这里插入图片描述


13.2 The Role of Noise and Data Size

为了更直观的解释产生过拟合的因素,设计两个目标函数,一个为10次多项式,另一个为50次多项式,前者加上噪声,后者无噪声。下图中,离散的圆圈是样本点,蓝色的曲线是目标函数。数据没有完全
落在曲线上,是因为加入了噪声(noise)。
在这里插入图片描述

接下来,使用两个学习模型(假设函数),分别对以上的问题进行建模。其中一个为二次多项式 (假设空间为 H 2 H_2 ),另一个为十次多项式 (假设空间为 H 10 H_{10} )。两种模型对两个问题的拟合结果如下图所示:
在这里插入图片描述

其中绿色线表示二次模型学习到的假设函数 g 2 g_2 ,红色线表示十次模型学习到的假设函数 g 10 g_{10}

E i n E_{in} E o u t E_{out} 的结果可以看出,二次模型的 E i n E_{in} E o u t E_{out} 都比较小,基本在同一个数量级;而十次模型的 E i n E_{in} 虽然很小,并且能拟合几乎所有的样本点,但是 E o u t E_{out} 很大,与其 E i n E_{in} 的数量级相差数倍。即上图中针对两个不同问题的十次模型(假设函数)均发生了过拟合;但二次模型却表现良好。难道在该问题中二次模型的学习能力比十次模型的好吗?答案是肯定的。

先看一下学习曲线:
在这里插入图片描述

在学习曲线中,横轴是样本数量N,纵轴是误差Error。 E i n E_{in} E o u t E_{out} 可以表示为:

E i n = n o i s e   l e v e l   ( 1 d + 1 N ) E_{in} = noise \ level \ * (1-\frac{d+1}{N})

E o u t = n o i s e   l e v e l   ( 1 + d + 1 N ) E_{out} = noise \ level \ * (1+\frac{d+1}{N})

其中 d d 为模型阶次(数据集的特征数量)。

上例中,数据量N比较小,即对应于上图中的灰色区域。左图的灰色区域中,因为 d = 2 d=2 E i n E_{in} E o u t E_{out} 比较接近;右图中的灰色区域中, d = 10 d=10 ,根据 E i n E_{in} E o u t E_{out} 的表达式, E i n E_{in} 很小,而 E o u t E_{out} 很大,这就印证了:二阶模型的 E i n E_{in} 更接近 E o u t E_{out} ,因此泛化能力更好。

如果数据量N很大的时候,上面两图中 E i n E_{in} E o u t E_{out} 都比较接近。但是,对于高阶模型, Z Z 域中的特征很多的时候,需要的样本数量N很大,且容易发生维度灾难。
在这里插入图片描述

上面阐释了在含有噪声的情况下,低次多项式假设比和目标函数同次的多项式假设表现更好。另一个例子中,在目标函数为50阶多项式(期望输出)且没有加入噪声的情况下,仍然是二阶的模型拟合的效果更好,为什么会这样?

实际上,当模型很复杂的时候,即50阶多项式的目标函数,无论是二阶模型还是十阶模型,都不能学习的很好,这种复杂度本身就会引入一种噪声。所以,这种高阶无噪声的问题,也可以类似于10阶多项式的目标函数加上噪声的情况,只是两者的噪声不同, 下一小节会详细解释。


习题2:
在这里插入图片描述


13.3 Deterministic Noise

本小节通过更细节的实验来说明什么时候要考虑过拟合。

假设产生的数据分布由两部分组成:第一部分是目标函数 f ( x ) f(x) , 使用复杂度 Q f Q_f 表示,即为 Q f Q_f 阶多项式;第二部分是噪声 ,服从高斯分布,噪声强度为 σ 2 \sigma ^2 。接下来分析噪声的强度不同对过拟合有什么样影响,数据量为N。
在这里插入图片描述

不难看出,过拟合与噪声强度 σ 2 \sigma ^2 ,目标函数复杂度 Q f Q_f 以及数据量N都有密切关系,以下通过固定某一参数对比其它两个参数的方式,观察每个参数对过拟合的影响,分为 ( N , σ 2 ) (N,\sigma^2) ( N , Q f ) (N,Q_f) 两种情况讨论。


使用与上一小节相同的学习模型,即二阶模型和十阶模型。作如下约定:

  • 最优假设函数分别表示为: g 2 H 2 , g 10 H 10 g_{2} \in H_{2},g_{10} \in H_{10}
  • 错误率满足 E i n ( g 10 ) E i n ( g 2 ) E_{in}(g_{10}) \le E_{in}(g_2)
  • 使用 E o u t ( g 10 ) E o u t ( g 2 ) E_{out}(g_{10}) - E_{out}(g_2) 作为过拟合的衡量。
    在这里插入图片描述

上图中,左图表示固定模型复杂度(模型阶数) Q f = 20 Q_f = 20 时,噪声强度 σ 2 \sigma ^2 和数据量 N 对模型拟合的影响。右图表示固定噪声强度 σ 2 = 0.1 \sigma ^2 = 0.1 时, 模型复杂度(模型阶数) $Q_f $ 与数据量 N 对模型拟合的影响。

图中的颜色表示过拟合程度,深红色的部分表示过拟合,蓝色表示表现好。即红色越深,过拟合程度越高;蓝色越深,过拟程度越低。

左图中,红色区域集中在数据量N很小或者噪声强度 σ 2 \sigma ^2 很大的时候。也就是说,模型复杂度 Q f Q_f 固定时,数据量N越大,噪声强度 σ 2 \sigma ^2 越小,越不容易发生过拟合。

右图中,红色区域集中在数据量N很小或者模型复杂度 Q f Q_f 很大的时候。也就是说,噪声强度 σ 2 \sigma ^2 固定时,数据量N越大,模型复杂度 Q f Q_f 越小,越不容易发生过拟合。

由以上分析可知,噪声强度 σ 2 \sigma ^2 和模型复杂度 Q f Q_f 对模型拟合程度有很大影响,这类由高斯噪声产生的噪声称为 随机噪声(stochastic noise);这类由模型复杂度导致的噪声称为 确定性噪声(deterministic noise)

总结一下,总共有四个原因导致过拟合:
在这里插入图片描述

  • 数据量 N 不足;(训练样本不足)
  • 随机噪声 σ 2 \sigma ^2 的大小;(数据收集过程中引入的误差)
  • 确定性噪声 Q f Q_f 的大小;(模型复杂度,比如网络层数)
  • 过量的 VC Dimention;(样本中的特征数量过多)

上文解释了目标函数 f ( x ) f(x) 的模型复杂度 Q f Q_f 很高的时候,数据中有无噪声对最后结果影响不大。因为目标函数的模型过于复杂,再好的假设函数(Hypothesis)也会与它有差距,这种差距就是上文提到的确定性噪声。确定性噪声与随机噪声不同,但是都会导致过拟合。确定性噪声的大小与假设函数有关,并且固定点 x 的确定性噪声是一定的。
在这里插入图片描述


习题3:
在这里插入图片描述


13.4 Dealing with Overfitting

回顾第一小节提到的导致过拟合的原因:

机器学习 开车(不是去幼儿园的车)
过拟合 发生车祸
使用过大的 VC-Dimention 开得太快
噪声 崎岖不平的路面
样本数量 N N 的多少 路况观察能力的大小

使用同样的类比,总结一下过拟合解决方案:

从简单的模型出发 慢点开(去幼儿园的车)
数据清洗(data cleaning/pruning) 获取更精确的路况信息
数据增强(data hinting) 获取更多的路况信息
使用正则化(regularization) 及时踩刹车
使用验证集(validation) 安装仪表盘

数据清洗举例:
在这里插入图片描述

数据增强举例:
在这里插入图片描述


习题4:
在这里插入图片描述


Summary

本节课介绍了以下内容:

  • 过拟合的概念:当 E i n E_{in} 很小 E o u t E_{out} 很大的时候,会出现过拟合。
  • 过拟合的原因:数据量 N,随机噪声,确定性噪声以及过量的样本特征。
  • 过拟合的解决:本节课通过简单示例介绍了数据清洗和数据增强;后两节课会专门介绍正则化和验证。

参考:
https://www.cnblogs.com/ymingjingr/p/4306666.html
https://github.com/RedstoneWill/HsuanTienLin_MachineLearning


发布了167 篇原创文章 · 获赞 686 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/weixin_39653948/article/details/105595711
今日推荐