如何防止我的模型过拟合?这篇文章给出了6大必备要领

正如巴菲特所言:「近似的正确好过精确的错误。」

在机器进修中,过拟合(overfitting)会使模型的预测功能变差,通常发生在模型过于复杂的情况下,如参数过多等。本文对过拟合及其办理要领举行了归纳阐述。

如何防止我的模型过拟合?这篇文章给出了6大必备要领

在机器进修中,如果模型过于专注于特定的训练数据而错过了要点,那么该模型就被认为是过拟合。该模型提供的答案和正确答案相距甚远,即准确率提高。这类模型将无关数据中的噪声视为旌旗灯号,对准确率造成负面影响。即使模型经过很好地训练使损坏很小,也无济于事,它在新数据上的功能仍然很差。欠拟合是指模型未捕获数据的逻辑。因此,欠拟合模型具备较低的准确率和较高的损坏。

如何防止我的模型过拟合?这篇文章给出了6大必备要领

如何确定模型是否过拟合?

建立模型时,数据会被分为 3 类:训练集、考证集和尝试集。训练数据用来训练模型;考证集用于在每一步尝试建立的模型;尝试集用于最后评估模型。通常数据以 80:10:10 或 70:20:10 的比率分配。

在建立模型的过程中,在每个 epoch 中运用考证数据尝试当前已建立的模型,得到模型的损坏和准确率,以及每个 epoch 的考证损坏和考证准确率。模型建立完成后,运用尝试数据对模型举行尝试并得到准确率。如果准确率和考证准确率存在较大的差异,则说明该模型是过拟合的。

如果考证集和尝试集的损坏都很高,那么就说明该模型是欠拟合的。

如何防止过拟合

交织考证

交织考证是防止过拟合的好要领。在交织考证中,我们生成多个训练尝试划分(splits)并调整模型。K-折考证是一种标准的交织考证要领,即将数据分成 k 个子集,用其中一个子集举行考证,其他子集用于训练算法。

交织考证允许调整超参数,功能是所有值的平均值。该要领计算成本较高,但不会浪费太多数据。交织考证过程参见下图:

如何防止我的模型过拟合?这篇文章给出了6大必备要领

用更多数据举行训练

用更多相关数据训练模型有助于更好地识别旌旗灯号,避免将噪声作为旌旗灯号。数据增强是增加训练数据的一种形式,可以通过翻转(flipping)、平移(translation)、旋转(rotation)、缩放(scaling)、更改亮度(changing brightness)等要领来实现。

移除特征

移除特征不妨提高模型的复杂性,并且在一定程度上避免噪声,使模型更高效。为了提高复杂度,我们可以移除层或减少神经元数量,使搜集变小。

早停

对模型举行迭代训练时,我们可以度量每次迭代的功能。当考证损坏开始增加时,我们应该停止训练模型,这样就能阻止过拟合。

下图展示了停止训练模型的时机:

如何防止我的模型过拟合?这篇文章给出了6大必备要领

正则化

正则化可用于提高模型的复杂性。这是通过处分损坏函数完成的,可通过 L1 和 L2 两种形式完成,数学方程式如下:

如何防止我的模型过拟合?这篇文章给出了6大必备要领

L1 处分的目的是优化权重绝对值的总和。它生成一个简单且可解释的模型,且对于异常值是鲁棒的。

如何防止我的模型过拟合?这篇文章给出了6大必备要领

L2 处分权重值的平方和。该模型不妨进修复杂的数据模式,但对于异常值不具备鲁棒性。

这两种正则化要领都有助于办理过拟合问题,读者可以根据需要选择运用。

Dropout

Dropout 是一种正则化要领,用于随机禁用神经搜集单元。它可以在任何隐藏层或输入层上实现,但不能在输出层上实现。该要领可以免除对其他神经元的依赖,进而使搜集进修独立的相关性。该要领不妨提高搜集的密度,如下图所示:

如何防止我的模型过拟合?这篇文章给出了6大必备要领

总结

过拟合是一个需要办理的问题,因为它会让我们无法有效地运用现有数据。有时我们也可以在建立模型之前,预估到会出现过拟合的情况。通过查看数据、收集数据的形式、采样形式,错误的假设,错误表征不妨发现过拟合的预兆。为避免这种情况,请在建模之前先检查数据。但有时在预处理过程中无法检测到过拟合,而是在建立模型后才能检测出来。我们可以运用上述要领办理过拟合问题。

原文链接:https://mahithas.medium.com/overfitting-identify-and-resolve-df3e3fdd2860

给TA打赏
共{{data.count}}人
人已打赏
AI

用C++和空幻引擎开发视频游玩,斯坦福CS193u课程资料公开

2021-1-20 14:40:00

AI

抓取了1400家科技公司的应聘信息,我发现数据工程师比数据迷信家更有市场

2021-1-20 15:04:00

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索