机器学习:过拟合

过拟合

通俗来讲过拟合就是,选用的模型过于复杂。 d v c d_{vc} dvc过大,模型在训练集上有很好的表现。但是在真实预测过程中的表现和训练集上的差别过大。也就是没有做到机器学习的两个核心要打求之一的 E i n ≈ E o u t E_{in}\approx{E_{out}} EinEout

过拟合详细分析

在这里插入图片描述
假如有五个点是通过二次抛物线 f ( x ) f(x) f(x)产生的,产生之后加入少量的误差 f ( x ) = f ( x ) + n o i s e f(x)=f(x)+noise f(x)=f(x)+noise。如上图中的五个点。我们的理想曲线是一条抛物线,左图中红色的线就和目标函数非常的接近,虽然会产生误差,但是这条线是相对而言比较好的,可以很好的预测其他数据。

右图中,我们用一条复杂的三次曲线来拟合这五个点。他的误差基本上接近0.但是,这条在训练集上几乎没有误差的线和目标函数相差非常大。由VC Bound理论可以知道:假设函数的阶数越大,VC dimension也就随之增大,模型的复杂度就会越高。就很容造成 E i n ≠ E o u t E_{in}\neq{E_{out}} Ein=Eout的情况。模型的泛化能力也会较差。
在这里插入图片描述
上图中的很好的反应了 d v c d_{vc} dvc和误差之间关系:当 d v c d_{vc} dvc过大的时候模型会比较复杂,样本误差和输出误差的差距就会增大。模型的泛化能力机会很差。

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

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

通过一个开车的列子进行对比说明:
在这里插入图片描述

噪声和数据集对过拟合影响

设计两个数据集,一个由10次多项式加误差产生。另一个由50次多项式不包含误差产生。
在这里插入图片描述
接下来,使用两个学习模型(假设函数),分别对以上的问题进行建模。其中一个为二次多项式 (假设空间为 H 2 H _2 H2),另一个为十次多项式 (假设空间为 H 10 H _{10} H10)。两种模型对两个问题的拟合结果如下图所示:
在这里插入图片描述
绿色的线表示二次多项式的模型,红色的线表示10次多项式的学习模型。从结果来看,在训练集上二次多项式的结果不如十次多项式,但是从最终的预测结果来看,二次多项式是优于十次多项式的。也就是说十次多项式发生了过拟合问题。来观察二者的学习曲线:
在这里插入图片描述
在学习曲线中,横轴是样本数量N,纵轴是误差Error。 E i n E_{in} Ein E o u t E_{out} EoutE 可以表示为:
E i n = n o i s e ∗ ( 1 − d + 1 N ) E_{in}=noise*(1-\frac{d+1}{N}) Ein=noise(1Nd+1)
E i n = n o i s e ∗ ( 1 + d + 1 N ) E_{in}=noise*(1+\frac{d+1}{N}) Ein=noise(1+Nd+1)
其中d为模型的阶次,也就是数据集的特征数量。

从图中可以看出,当数据集的样本数量比较小的时候, H 2 H_2 H2 E i n ≈ E o u t E_{in}\approx{E_{out}} EinEout,也就是说模型的泛化能力比较好。而右边 H 10 H_{10} H10当样本数量足够大的时候,能够做到 E i n ≈ E o u t E_{in}\approx{E_{out}} EinEout并且误差还小于 H 2 H_2 H2的。然而当样本数量比较小的时候, H 10 H_{10} H10 E i n ≠ E o u t E_{in}\neq{E_{out}} Ein=Eout泛化能力较差。这个分析告诉我们对于高阶模型,Z域中的特征很多的时候,需要的样本数量就必须足够的大,否则容易造成维度灾难。

确定性噪声

这次详细的分析一下什么时候考虑过拟合。

假设产生的数据分由两个部分组成:第一部分是目标函数 f ( x ) f(x) f(x),使用复杂度 Q f Q_f Qf表示,也就是 Q f Q_f Qf阶多项式;第二部分是噪声,服从高斯分布,噪声轻度为 σ 2 \sigma{^2} σ2。接下来分析噪声的强度不同对过拟合有什么样影响,数据量为N。
在这里插入图片描述
可以得出过拟合与噪声强度、目标函数复杂度、样本数量都有一定的关系,固定一个参数,观察其他两个参数对模型的影响。
在这里插入图片描述
上图中,左图表示固定模型复杂度(模型阶数) Q f = 20 Q_f=20 Qf=20样本数量和噪声对过拟合的影响。右图固定噪声 σ 2 = 0.1 \sigma{^2}=0.1 σ2=0.1时样本数量和目标函数复杂度对过拟合的影响。

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

左图中红色区域集中在样本数量很小,或者噪声过大时。也就是说:模型复杂度固定时,样本数量越小,噪声越大,越容易发生过拟合

右图中红色区域集中在样本数量很小,模型复杂度很高的部分。同理:噪声固定,样本数量小,模型复杂度高,越容易发生过拟合

通过以上分析可以得出:噪声强度和模型复杂度都对过拟合程度产生了很大影响。由高斯噪声产生的噪声称为随机噪声,由模型复杂度产生的噪声为确定性噪声

总结一下产生噪声的几个因素:

  • 数据量N不足
  • 随机噪声过大(数据集引入过程中产生的误差,如标记错误)
  • 确定性噪声过大(模型复杂度过高)
  • 过量的VC Dimension(样本的特征数量过多)

确定性噪声:模型复杂度很高的时候,再好的假设函数都会与他有差距,这种差距就是确定性噪声确定性噪声与随机噪声不同,但是都会导致过拟合。确定性噪声的大小与假设函数有关,并且固定点 x 的确定性噪声是一定的。
在这里插入图片描述

解决过拟合

在这里插入图片描述
数据清洗:
在这里插入图片描述
所谓的数据清洗就是对那些比较异常的点进行处理,比如上图总的左边第一个数字。看起来不是5,但是系统把他识别为5很影响模型的最终参数。所以我们可以将这个异常的点给删掉。

数据增强:
在这里插入图片描述
还是手写识别的列子,当我们的样本数量过小的时候,可以通过一些方式将样本空间扩大。比如可以将一些数字进行平移,或者进行轻微的旋转操作。这样就能增大样本数量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值