如何使用学习曲线诊断机器学习模型的性能

学习曲线是模型学习性能随经验或时间变化的曲线图。

学习曲线是机器学习中广泛使用的诊断工具,用于从训练数据集增量学习的算法。在训练期间的每次更新之后,可以在训练数据集和坚持验证数据集上评估该模型,并且可以创建测量的性能的曲线图来显示学习曲线。

在训练期间查看模型的学习曲线可用于诊断学习问题,例如模型拟合不足或过拟合,以及训练和验证数据集是否具有适当的代表性。

在这篇文章中,你将发现学习曲线,以及如何使用它们来诊断机器学习模型的学习和泛化行为,并用示例图显示常见的学习问题。

读完这篇文章,你就会知道:

  • 学习曲线是根据经验显示学习成绩随时间变化的曲线图。
  • 训练和验证数据集上模型性能的学习曲线可用于诊断拟合不足、拟合过高或拟合良好的模型。
  • 模型性能的学习曲线可用于诊断训练或验证数据集是否相对不能代表问题领域。

我们开始吧。

概述

本教程分为三个部分;它们是:

  • 学习曲线。
  • 诊断模型行为。
  • 诊断不具代表性的数据集。

机器学习中的学习曲线

一般来说,学习曲线是在x轴上显示时间或经验,在y轴上显示学习或改进的曲线图。

学习曲线(LCS)被认为是监测面对新任务的员工表现的有效工具。LC提供了随着任务重复发生而发生的学习过程的数学表示。

例如,如果你正在学习一种乐器,你的乐器技能可以被评估,并在一年的时间里每周给你一个数字分数。52周的分数曲线图是一条学习曲线,它将显示你对乐器的学习是如何随着时间的推移而变化的。

  • 学习曲线:学习(y轴)与经验(x轴)之间的线状图。

学习曲线被广泛用于机器学习中,用于随时间递增学习(优化其内部参数)的算法,例如深度学习神经网络。

用来评估学习的指标可以是最大化的,这意味着分数越高(数字越大)表明学习越多。分类准确性就是一个例子。

更常见的是使用最小化的分数,例如丢失或错误,分数越高(数字越小)表示学习越多,值0.0表示训练数据集学习得很好,没有出错。

在机器学习模型的训练期间,可以评估模型在训练算法的每一步的当前状态。可以根据训练数据集对其进行评估,以了解模型的“学习”情况。也可以对不属于训练数据集的坚持验证数据集进行评估。对验证数据集的评估可以了解模型的“泛化”程度。

  • 训练学习曲线(Train Learning Curve):从训练数据集计算出的学习曲线,它给出了模型学习情况的概念。
  • 验证学习曲线(Validation Learning Curve):从坚持验证数据集计算出的学习曲线,它给出了模型泛化程度的概念。

在训练和验证数据集上的训练期间,为机器学习模型创建对偶学习曲线是很常见的。

在一些情况下,为多个度量创建学习曲线也是常见的,例如在分类预测建模问题的情况下,其中可以根据交叉熵损失来优化模型,并且使用分类精度来评估模型性能。在这种情况下,将创建两个曲线图,一个用于每个指标的学习曲线,每个曲线图可以显示两个学习曲线,每个学习曲线分别用于训练和验证数据集。

  • 优化学习曲线:根据模型参数进行优化的度量(例如损失)计算的学习曲线。
  • 性能学习曲线(Performance Learning Curves):根据评估和选择模型的指标(例如准确性)计算的学习曲线。

既然我们已经熟悉了学习曲线在机器学习中的使用,让我们来看一下在学习曲线图中观察到的一些常见形状。

诊断模型行为

学习曲线的形状和动态可用于诊断机器学习模型的行为,并且进而可能建议可以进行的配置改变的类型,以改善学习和/或性能。

在学习曲线中,你可能会观察到三种常见的动态;它们是:

  • 欠拟合
  • 过拟合
  • 良好拟合

我们将通过示例更仔细地了解每种情况。这些示例将假设我们正在查看一个最小化的度量,这意味着y轴上的相对分数越小,表示学习越多或越好。

欠拟合学习曲线

欠拟合是指不能学习训练数据集的模型。

当模型不能在训练集上获得足够低的误差值时,发生欠拟合。

仅从训练损失的学习曲线可以识别出欠拟合模型。

它可能显示相对较高的损失值的平坦线条或噪声值,表明该模型根本无法学习训练数据集。

下面提供了一个这样的示例,当模型没有合适的容量来处理数据集的复杂性时,这种情况很常见。

显示容量不足的欠拟合模型的训练学习曲线示例
显示容量不足的欠拟合模型的训练学习曲线示例

不适合的模型也可以通过训练损失来识别,该训练损失正在减少,并且在曲线图结束时继续减少。

这表明该模型能够进一步学习和可能进一步改进,而且训练过程过早停止。

显示需要进一步培训的欠拟合模型的训练学习曲线示例
显示需要进一步培训的欠拟合模型的训练学习曲线示例

如果满足以下条件,学习曲线图将显示拟合不足:

  • 无论培训如何,培训损失都是持平的。
  • 训练损失持续减少,直至训练结束。

过拟合学习曲线

过拟合是指对训练数据集学习得太好的模型,包括训练数据集中的统计噪声或随机波动。

… 拟合更灵活的模型需要估计更多的参数。这些更复杂的模型可能会导致一种被称为数据过度拟合的现象,这实质上意味着它们过于密切地跟踪错误或噪声。

过拟合的问题是,模型对训练数据的专门化程度越高,就越不能很好地推广到新数据,从而导致推广误差增加。这种泛化误差的增加可以通过模型在验证数据集上的性能来测量。

这是一个数据过度拟合的例子,[…]。。这是一种不希望出现的情况,因为所获得的拟合将不会产生对不属于原始训练数据集的新观测的响应的准确估计。

如果模型的容量超过了问题所需的容量,进而灵活性过高,则通常会出现这种情况。如果模型训练时间过长,也可能发生这种情况。

如果满足以下条件,学习曲线图将显示过拟合:

  • 训练损失的情节随着经验的增加而持续减少。
  • 验证损失的曲线图减少到一个点,然后再次开始增加。

验证损失的转折点可能是训练可以停止的点,因为在这一点之后的经验表明了过度适应的动态。

下面的样例绘图演示了一种过度拟合的情况。

显示过拟合模型的训练和验证学习曲线示例
显示过拟合模型的训练和验证学习曲线示例

良好拟合学习曲线

良好的拟合是学习算法的目标,并且存在于过拟合和欠拟合模型之间。

良好的拟合是通过训练和验证损失来识别的,该损失降低到一个稳定点,两个最终损失值之间的差距最小。

训练数据集上的模型损失几乎总是低于验证数据集。这意味着我们应该预料到训练和验证损失学习曲线之间会有一些差距。这个鸿沟被称为“泛化鸿沟”。

如果满足以下条件,学习曲线图将显示出很好的拟合效果:

  • 训练损失的曲线图下降到一个稳定点。
  • 验证损失曲线下降到一个稳定点,与训练损失相差不大。

持续训练适合度好的人很可能会导致过度适合度。

下面的示例曲线图演示了一个很好的拟合情况。

显示良好拟合的训练和验证学习曲线示例
显示良好拟合的训练和验证学习曲线示例

诊断不具代表性的数据集

学习曲线还可以用于诊断数据集的属性以及它是否具有相对代表性。

不具代表性的数据集是指相对于从相同域中提取的另一数据集(例如在列车和验证数据集之间)可能不捕获统计特性的数据集。如果一个数据集中的采样数相对于另一个数据集太小,则通常会发生这种情况。

可以观察到两种常见情况;它们是:

  • 训练数据集相对不具有代表性。
  • 验证数据集相对不具代表性。

不具代表性的训练数据集

不具有代表性的训练数据集意味着相对于用于评估问题的验证数据集,训练数据集没有提供足够的信息来了解问题。

如果与验证数据集相比,训练数据集具有太少的示例,则可能会发生这种情况。

这种情况可以通过表示改进的训练损失的学习曲线和类似地表示改进的验证损失的学习曲线来识别,但是这两条曲线之间仍然存在很大的差距。

显示相对于验证数据集可能太小的训练数据集的训练和验证学习曲线示例
显示相对于验证数据集可能太小的训练数据集的训练和验证学习曲线示例

不具代表性的验证数据集

不具代表性的验证数据集意味着验证数据集没有提供足够的信息来评估模型的泛化能力。

如果与训练数据集相比,验证数据集具有太少的示例,则可能会发生这种情况。

这种情况可以通过训练损失的学习曲线和验证损失的学习曲线来识别,训练损失的学习曲线看起来像是很好的拟合(或其他拟合),验证损失的学习曲线显示了围绕训练损失的嘈杂的运动。

显示相对于训练数据集可能太小的验证数据集的训练和验证学习曲线示例
显示相对于训练数据集可能太小的验证数据集的训练和验证学习曲线示例

它也可以通过低于训练损失的验证损失来识别。在这种情况下,它表明验证数据集可能比训练数据集更容易被模型预测。

显示比训练数据集更容易预测的验证数据集的训练和验证学习曲线示例
显示比训练数据集更容易预测的验证数据集的训练和验证学习曲线示例

进一步阅读

如果你想深入了解,本节提供了更多关于该主题的资源。

书籍

论文

文章

文章

摘要

在这篇文章中,你发现了学习曲线,以及如何使用它们来诊断机器学习模型的学习和泛化行为。

具体地说,你了解到:

  • 学习曲线是根据经验显示学习成绩随时间变化的曲线图。
  • 训练和验证数据集上模型性能的学习曲线可用于诊断拟合不足、拟合过高或拟合良好的模型。
  • 模型性能的学习曲线可用于诊断训练或验证数据集是否相对不能代表问题领域。

41

Python

发表评论

邮箱地址不会被公开。 必填项已用*标注

什么阻碍了你实现迈入机器学习领域的目标?

什么阻碍了你实现迈入机器学习领域的目标?

2020-04-22 机器学习

如果你在为进入机器学习领域而挣扎,感觉到有什么东西阻止了自己的开始,那么你应该看看这篇文章。 在这篇文章中,我们会讨论阻止进入机器学习领域的自我限制的信念,让你明白面临的问题。 几乎总是一种自我限制的信念阻碍了你们的进步。 也许你会在一个或多个这样的信念中看到自己。如果是这样的话, [......]

了解详情

R语言机器学习迷你课程

R语言机器学习迷你课程

2020-08-12 机器学习

在这个迷你课程中,你将发现如何开始,构建精确的模型,并自信地完成在14天内使用R预测建模机器学习项目。 这是一个重要而重要的文章。你可能想把它书签。 了解如何准备数据,拟合机器学习模型,并用我的新书评估他们在r上的预测,包括14步教程、3个项目和完整源代码。 我们开始吧。 [......]

了解详情

关于机器学习的几点思考

关于机器学习的几点思考

2020-04-26 机器学习

机器学习是一个大的、跨学科的研究领域。 你可以通过机器学习获得令人印象深刻的结果,并找到非常具有挑战性的问题的解决方案。但这只是更广泛的机器学习领域的一小部分,通常被称为预测建模或预测分析。 在这篇文章中,你将发现如何改变你对机器学习的思考方式,以便更好地为你提供机器学习实践者的服务。 [......]

了解详情

找到你的机器学习部落

找到你的机器学习部落

2020-04-26 机器学习

机器学习是一个充满算法和数据的迷人而强大的研究领域。 问题是,有这么多不同类型的人对机器学习感兴趣,每个人都有不同的需求。重要的是要了解你想要从机器学习中得到什么,并根据这些需求调整你的自学。 如果你不这样做,你很容易就会陷入困境,迷失方向,失去兴趣,得不到你想要的东西。 找到 [......]

了解详情

应用机器学习过程

应用机器学习过程

2020-04-26 机器学习

随着时间的推移,在处理应用机器学习问题时,你会开发出一种模式或流程,以快速获得良好的正常结果。 一旦开发完成,你就可以在一个又一个项目上反复使用此过程。你的流程越健壮、越发达,你就能越快地获得可靠的结果。 在这篇文章中,我想与你分享我解决机器学习问题的过程框架。 你可以将其用作下一 [......]

了解详情