存根 什么是过拟合? - 联合人工智能
关注我们.

AI 101

什么是过拟合?

mm
更新 on

什么是过拟合?

当你训练神经网络时,必须避免过度拟合。 过度拟合 是机器学习和统计学中的一个问题,其中模型很好地学习了训练数据集的模式,完美地解释了训练数据集,但未能将其预测能力推广到其他数据集。

换句话说,在过度拟合模型的情况下,它通常会在训练数据集上显示出极高的准确性,但在未来收集和运行模型的数据上显示出较低的准确性。 这是过度拟合的快速定义,但让我们更详细地讨论一下过度拟合的概念。 让我们看看过度拟合是如何发生的以及如何避免它。

了解“拟合”和欠拟合

了解一下欠拟合和“适合通常在讨论过度拟合时。当我们训练模型时,我们试图开发一个框架,能够根据描述数据集中项目的特征来预测这些项目的性质或类别。模型应该能够解释数据集中的模式,并根据该模式预测未来数据点的类别。模型越能解释训练集特征之间的关系,我们的模型就越“适合”。

蓝线表示拟合不足的模型的预测,而绿线表示拟合效果更好的模型。 照片:Pep Roca,来自 Wikimedia Commons,CC BY SA 3.0,(https://commons.wikimedia.org/wiki/File:Reg_ls_curvil%C3%ADnia.svg)

一个模型不能很好地解释训练数据特征之间的关系,从而无法准确地对未来的数据示例进行分类。 不合身 训练数据。 如果您要将欠拟合模型的预测关系与特征和标签的实际交集绘制成图表,则预测将偏离目标。 如果我们有一个带有标记的训练集实际值的图表,那么严重欠拟合的模型将严重丢失大部分数据点。 拟合效果更好的模型可能会在数据点中心切出一条路径,其中各个数据点仅偏离预测值一点点。

当没有足够的数据来创建准确的模型时,或者尝试使用非线性数据设计线性模型时,经常会发生欠拟合。 更多的训练数据或更多的特征通常有助于减少欠拟合。

那么我们为什么不创建一个模型来完美解释训练数据中的每个点呢? 完美的准确性确实是可取的吗? 创建一个已经很好地学习了训练数据模式的模型是导致过度拟合的原因。 训练数据集和您通过模型运行的其他未来数据集将不完全相同。 它们在许多方面可能非常相似,但在关键方面也有所不同。 因此,设计一个能够完美解释训练数据集的模型意味着您最终会得到一个关于特征之间关系的理论,但该理论不能很好地推广到其他数据集。

了解过度拟合

当模型对训练数据集中的细节学习得很好时,就会发生过度拟合,从而导致模型在对外部数据进行预测时受到影响。当模型不仅学习数据集的特征,还学习随机波动或 噪声 在数据集中,重视这些随机/不重要的事件。

使用非线性模型时更容易发生过拟合,因为非线性模型在学习数据特征时更灵活。 非参数机器学习算法通常具有各种参数和技术,可用于约束模型对数据的敏感性,从而减少过度拟合。 举个例子, 决策树模型 对过度拟合高度敏感,但是可以使用一种称为修剪的技术来随机删除模型学到的一些细节。

如果您要在 X 轴和 Y 轴上绘制模型的预测,您将得到一条来回曲折的预测线,这反映了模型过于努力地将数据集中的所有点拟合到其中的事实它的解释。

控制过度拟合

当我们训练模型时,理想情况下我们希望模型不出错。 当模型的性能趋于对训练数据集中的所有数据点做出正确的预测时,拟合就会变得更好。 具有良好拟合度的模型能够解释几乎所有训练数据集而不会过度拟合。

随着模型的训练,其性能会随着时间的推移而提高。 模型的错误率会随着训练时间的推移而降低,但只会降低到某个点。 模型在测试集上的性能开始再次上升的点通常是发生过度拟合的点。 为了获得模型的最佳拟合,我们希望在误差再次开始增加之前,在训练集上损失最低的点停止训练模型。 可以通过绘制模型在整个训练时间内的性能图表并在损失最低时停止训练来确定最佳停止点。 然而,这种控制过度拟合的方法的一个风险是,根据测试性能指定训练终点意味着测试数据在某种程度上包含在训练过程中,并且失去了纯粹“未触及”数据的状态。

有几种不同的方法可以对抗过度拟合。 减少过度拟合的一种方法是使用重采样策略,该策略通过估计模型的准确性来进行操作。 您还可以使用 验证 除测试集之外的数据集,并针对验证集而不是测试数据集绘制训练准确性。 这会使您的测试数据集不可见。 一种流行的重采样方法是 K 折交叉验证。 该技术使您能够将数据划分为模型训练的子集,然后分析模型在子集上的性能,以估计模型在外部数据上的性能。

利用交叉验证是估计模型对未见过的数据的准确性的最佳方法之一,并且与验证数据集结合使用时,过度拟合通常可以保持在最低限度。

博主和程序员,擅长 机器学习 深度学习 主题。 丹尼尔希望帮助其他人利用人工智能的力量造福社会。