究竟什么是过拟合?

机器算法验证 过拟合 定义
2022-04-12 06:35:09

许多人(包括我)正在或曾经认为过拟合模型是训练错误>>验证错误的模型。但是在阅读了@Firebug这个非常有趣的评论后,我突然意识到这不是真的。随机森林就是一个很好的例子,训练误差往往接近于0,样本外往往远小于后者但接近于测试样本。

另一个例子如下:

在此处输入图像描述

人们常将绿色曲线称为过拟合,黑色曲线更好,因为绿色曲线的测试误差低于训练集。但是可能会发生即使绿色曲线的测试误差低于训练误差,但在另一个盲测中,绿色曲线仍然优于黑色曲线。

所以我的问题是:

  1. 黑色曲线比绿色曲线好吗?
  2. 究竟什么是过拟合,识别过拟合模型的正确方法是什么?
  3. 不是说过度拟合的模型比非过度拟合的模型差吗?
4个回答
  1. 您无法通过盯着它们来确定哪条曲线更好。我所说的“凝视”是指根据这个特定样本的纯统计特征来分析它们。

例如,如果从蓝色区域伸出到红色区域的蓝点是纯偶然的,即随机的,则黑色曲线比绿色曲线好。如果你再拿一个样本,红色区域的蓝点消失了,而其他的蓝点出现了,这意味着黑色曲线真正捕捉到了分离,偏差是随机的。但是,您如何通过查看此 ONE 样本知道这一点?!你不能。

因此,在缺乏上下文的情况下,仅仅盯着这个样本和上面的曲线是不可能说出哪条曲线更好的。您需要外生信息,可能是其他样本或您对该领域的了解。

  1. 过度拟合是一个概念,没有一种正确的方法可以确定适用于任何领域和任何样本的问题。这是逐案的。

就像你写的那样,训练和测试样本中的误差减少动态是一种方法。它与我在上面写的相同的想法:检测与模型的偏差是随机的。例如,如果您获得另一个样本,它在红色区域呈现不同的蓝点,但这些新点非常接近旧点 - 这意味着与黑线的偏差是系统性的。在这种情况下,您自然会倾向于蓝线。

因此,在我的世界中,过度拟合将随机偏差视为系统性的。

  1. 在其他情况下,过拟合模型比非过拟合模型差。但是,当过拟合模型具有非过拟合模型所没有的一些其他特征时,您当然可以构建一个示例,并争辩说它使前者比后者更好。

过度拟合的主要问题(将随机视为系统性)会打乱它的预测。它在数学上这样做是因为它对那些不重要的输入变得非常敏感。它将输入中的噪声转换为响应中的虚假信号,而非过拟合忽略噪声并产生更平滑的响应,因此输出中的信噪比更高。

来自维基百科:

在过拟合中,统计模型描述的是随机误差或噪声,而不是潜在的关系。当模型过于复杂时会发生过拟合,例如相对于观察次数而言参数过多。过度拟合的模型的预测性能很差,因为它对训练数据的微小波动反应过度。

所以基本上在训练数据模型时,你既要拟合噪声又要拟合结构。噪音来自采样错误,作为机器学习设计师,您的工作是设计算法,使其尽可能适合结构,而不会产生太多噪音,从而导致性能下降。因此,从边缘的角度来看,假设您在模型中添加了一个复杂单位。现在,边际性能变化由您正在拟合的附加结构的偏差减少项和您正在拟合的噪声的方差项组成。当边际方差效应大于边际偏差效应时,您就会过度拟合。下面是偏差和方差的标准说明。

在此处输入图像描述

顺便说一下,随机森林分类的​​渐近训练误差为 0(至少在不同类别的观察结果不相同的情况下)。这是正确的,因为平均 62% 的估计器中存在所有预测,并且这些估计器中的每一个都有正确的预测。因此,给定足够多的树,大数定律将确保正确的类别至少有 0.62 的分数,无论在不使用观察值拟合估计器时的预测如何。

过度拟合是指您最终对数据中的噪声进行建模,这会导致训练数据的分类错误降低,但会降低未见(验证数据)的准确性。

假设您有 10 对: 与您一起绘制,其中 e 作为一个小的随机误差。您绝对可以使用 9 度多项式完美地对此进行建模。但这会过度拟合,因为这大多不是正确的模型。正确的模型是 y = 2x。从这个角度来看,您甚至可以看到这个问题的两个最流行的解决方案是 1. 获取更多数据 2. 保持模型更简单(更少的参数)(x,2x+e)

ELI5 版本:考虑一个具有 1M 参数的神经网络,用于分类猫狗。我们可以将 1M 的每个参数假设为一条线性线,拟合一个是/否问题,例如 img 是否有尾巴、爪子等。这里发生的情况是,我们有足够多的问题/参数来推断给定的 img 是否是 cat/狗和我们学习额外的信息,包括背景等,这些信息可能在训练分布中,可能不在验证分布中。