使用学习曲线诊断机器学习模型性能
学习曲线是模型学习性能随经验或时间变化的曲线。
学习曲线是机器学习中广泛使用的诊断工具,用于从训练数据集中增量学习算法。该模型可以在训练数据集和每次训练更新后的验证数据集上进行评估,并可以创建测试性能的曲线图来显示学习曲线。
在训练过程中回顾模型的学习曲线,可以用来诊断学习中的问题,例如模型的过拟合或欠拟合,以及训练和验证数据集是否具有适当的代表性。
在本文中,您将发现学习曲线,以及如何使用它们来诊断机器学习模型的学习和泛化行为,并通过示例图展示常见的学习问题。
读完这篇文章,你会知道:
学习曲线是显示学习性能随时间变化的经验曲线。
通过训练数据集和验证数据集训练得到模型的学习曲线可用于诊断模型的欠拟合、超拟合或拟合良好。
模型性能的学习曲线可用于诊断训练或验证数据集是否相对不能代表问题域。
让我们开始吧。
概述
本教程分为三个部分;它们是:
学习曲线
诊断模型的行为
诊断不典型的数据集
机器学习中的学习曲线
一般来说,学习曲线是在x轴上显示时间或经验,在y轴上显示学习或改进的曲线。
学习曲线(LCs)被认为是有效的工具,以监测工人的表现,暴露在一个新的任务。LCs提供了任务重复时学习过程的数学表示。
例如,如果你正在学习一种乐器,你的乐器技能可以被评估,并在一年内每周分配一个数字分数。52周的成绩图表是一个学习曲线,可以显示你对乐器的学习是如何随着时间发生变化的。
学习曲线:学习(y轴) 经验(x轴)的直线图
学习曲线广泛应用于机器学习中,用于学习(优化其内部参数)随时间递增的算法,如深度学习神经网络。
用于评估学习的指标可以是最大化,这意味着更好的分数(更大的数字)意味着更多的学习。分类精度就是一个例子。
更常见的情况是使用最小化的分数,例如丢失或错误,更好的分数(较小的数字)表示学习更多,0.0的值表示训练数据集学习得很好,没有出现错误。
在机器学习模型的训练过程中,可以对训练算法的每一步模型的当前状态进行评估。它可以在训练数据集上进行评估,从而了解模型的“学习”情况。它也可以在不属于训练数据集的保留验证数据集上进行评估。对验证数据集的评估可以让我们了解模型“泛化”的程度。
训练学习曲线:从训练数据集中计算出的学习曲线,它给出了模型学习效果的一个概念。
验证学习曲线:从一个保留的验证数据集计算的学习曲线,它给出了模型泛化的一个概念。
在对训练和验证数据集进行训练期间,通常会为机器学习模型创建双重学习曲线。
在某些情况下,为多个指标创建学习曲线也很常见,例如在分类预测建模问题中,可以根据交叉熵损失对模型进行优化,并使用分类精度评估模型性能。在本例中,创建了两个图,一个用于每个度量的学习曲线,每个图可以显示两个学习曲线,一个用于每个训练和验证数据集。
优化学习曲线:在优化模型参数的度量上计算的学习曲线,如损耗。
性能学习曲线:根据评价和选择模型的度量标准计算的学习曲线,如精度。
现在我们已经熟悉了学习曲线在机器学习中的应用,让我们来看看学习曲线图中观察到的一些常见形状。
诊断模型的行为
学习曲线的形状和动态可用于诊断机器学习模型的行为,进而可能建议可能进行的配置更改类型,以改进学习和/或性能。
在学习曲线中,你可能会观察到三种常见的动态;它们是:
Underfit。
Overfit。
Good Fit.
我们将通过示例仔细研究每一种方法。这些例子将假设我们正在查看一个最小化度量,这意味着y轴上的相对分数越小,表示学习得越多或更好。
Underfit学习曲线
欠拟合是指无法学习训练数据集的模型。
当模型不能在训练集上获得足够低的误差值时,就会发生欠拟合。
仅从训练损失的学习曲线即可确定欠拟合模型。
它可能会显示出一条相对高损耗的直线或噪声值,表明模型根本无法学习训练数据集。
下面提供了一个这样的例子,当模型没有合适的能力来处理数据集的复杂性时,这种情况很常见。
一个欠拟合的模型也可以通过训练损失的减少来确定,训练损失在训练的最后不断减少。
这表明该模型能够进行进一步的学习和可能的进一步改进,并且培训过程过早地停止了。
学习曲线图显示,如果:
无论训练如何,训练损失都是持平的。
训练损失持续下降,直至训练结束。
Overfit学习曲线
过拟合是指对训练数据集的学习过深的模型,包括训练数据集的统计噪声或随机波动。
拟合一个更灵活的模型需要估计更多的参数。这些更复杂的模型可能导致一种被称为数据过拟合的现象,这基本上意味着它们过于接近误差或噪声。
过度拟合的问题在于,模型对训练数据的专门化程度越高,对新数据的泛化能力就越差,导致泛化误差增加。这种泛化误差的增加可以通过模型在验证数据集上的性能来测量。
这是数据过度拟合的一个例子,[…]。这是一种不受欢迎的情况,因为所获得的拟合不能准确估计原始训练数据集之外的新观测值的响应。
如果模型的容量大于问题所需的容量,并且相应地具有太多的灵活性,就会出现这种情况。如果模型训练时间过长,也会发生这种情况。
学习曲线图显示,如果:
随着经验的增加,训练损失的情况继续减少。
验证损失的图减小到某个点并开始再次增加。
验证损失的拐点可能是训练可以停止的拐点,在这个拐点之后,经验显示出过度拟合的动态。
下面的示例图演示了一种过度拟合的情况。
良好的拟合学习曲线
良好的拟合是学习算法的目标,存在于超拟合和欠拟合模型之间。
良好的匹配是通过训练和验证损失确定的,该损失减小到稳定点,在两个最终损失值之间有最小的差距。
在训练数据集上,模型的损失几乎总是比验证数据集要小。这意味着我们应该期望在训练和验证损失学习曲线之间存在一些差距。这种差距被称为“泛化差距”。
诊断不典型的数据集
学习曲线还可以用来诊断数据集的属性以及它是否具有相对代表性。
非代表性数据集是指与来自同一领域的另一个数据集(例如训练和验证数据集之间的数据集)相比,可能无法捕获统计特征的数据集。如果一个数据集中的样本数量相对于另一个数据集中太少,通常会发生这种情况。
可以观察到两种常见的情况;它们是:
训练数据集相对不具有代表性。
验证数据集相对不具有代表性。
非代表性的训练数据集
非代表性的训练数据集意味着训练数据集相对于用于评估该问题的验证数据集,不能提供足够的信息来学习该问题。
如果训练数据集与验证数据集相比示例太少,则可能会发生这种情况。
这种情况可以通过表示改进的训练损失的学习曲线和表示改进的验证损失的学习曲线来确定,但是这两条曲线之间仍然有很大的差距。
不典型的验证数据集
非代表性验证数据集意味着验证数据集不能提供足够的信息来评估模型的泛化能力。
如果与训练数据集相比,验证数据集的示例太少,可能会发生这种情况。
这种情况可以通过一个训练损失的学习曲线来识别,这个学习曲线看起来像是一个很好的拟合(或其他拟合),以及一个验证损失的学习曲线来识别,该学习曲线显示了围绕训练损失的嘈杂运动。
它也可以通过比训练损失更低的验证损失来识别。在这种情况下,它表明验证数据集可能比训练数据集更容易被模型预测。
总结
在本文中,您了解了学习曲线,以及如何使用它们来诊断机器学习模型的学习和泛化行为。
具体来说,你学会了:
学习曲线是显示学习成绩随时间变化的经验曲线。
训练模型性能的学习曲线和验证数据集可用于诊断模型的欠拟合、过拟合或拟合良好。
模型性能的学习曲线可用于诊断训练或验证数据集是否相对不能代表问题域。
原文出处
使用学习曲线诊断机器学习模型性能相关推荐
- 机器学习 模型性能评估_如何评估机器学习模型的性能
机器学习 模型性能评估 Table of contents: 目录: Why evaluation is necessary?为什么需要评估? Confusion Matrix混淆矩阵 Accurac ...
- 提高机器学习模型性能的五个关键方法
提高机器学习模型性能的五个关键方法 1. 数据预处理 2. 特征工程 3. 机器学习算法 4. 模型集成与融合 5. 数据增强 以下是各个方面的具体分析和方法: [ 说明:1.这里主要是各个关键方法的 ...
- R使用交叉验证(cross validation)进行机器学习模型性能评估
R使用交叉验证(cross validation)进行机器学习模型性能评估 目录 R使用交叉验证(cross validation)进行机器学习模型性能评估
- 机器学习模型性能评估(二):P-R曲线和ROC曲线
上文简要介绍了机器学习模型性能评估的四种方法以及应用场景,并详细介绍了错误率与精度的性能评估方法.本文承接上文,继续介绍模型性能评估方法:P-R曲线和ROC曲线. ...
- 机器学习模型性能提升技巧:指数加权平均(EMA)
主要内容 什么是EMA? 为什么EMA在测试过程中使用通常能提升模型表现? Tensorflow实现 PyTorch实现 Refercences 什么是EMA? 滑动平均(exponential mo ...
- 【机器学习基础】机器学习模型评估教程!
译者:追风者,Datawhale成员 如何在投入生产前评估机器学习模型性能? 想象一下,你训练了一个机器学习模型.也许,可以从中选几个候选方案. 你在测试集上运行它,得到了一些质量评估.模型没有过度拟 ...
- 如何评估机器学习模型的性能
您可以整天训练有监督的机器学习模型,但是除非您评估其性能,否则您永远无法知道模型是否有用.这个详细的讨论回顾了您必须考虑的各种性能指标,并对它们的含义和工作方式提供了直观的解释. 为什么需要评估? 让 ...
- 深入理解机器学习——机器学习模型的性能度量
分类目录:<深入理解机器学习>总目录 对学习器的泛化性能进行评估,不仅需要有效可行的实验估计方法,还需要有衡量模型泛化能力的评价标准,这就是性能度量(Performance Measure ...
- 7000 字精华总结,Pandas/Sklearn 进行机器学习之特征筛选,有效提升模型性能
作者 | 俊欣 来源 | 关于数据分析与可视化 今天小编来说说如何通过pandas以及sklearn这两个模块来对数据集进行特征筛选,毕竟有时候我们拿到手的数据集是非常庞大的,有着非常多的特征,减少这 ...
最新文章
- MSC Apex 2020中文版
- InfoQ宣布成立CNUT容器技术俱乐部 欲连接中国容器社区
- 关于protege的dot error的问题
- 【转】JAVA 调用Web Service的方法
- 南华桌面计算机,南华大学计算机应用基础试题题.doc
- 【激光雷达3D】【论文翻译】PointPillars: Fast Encoders for Object Detection from Point Clouds
- 【python 类】【部分转发】设计模式 -- 责任链模式 (类之间的联动)
- 微软去年安全业务收入150亿美元、新勒索软件以威联通设备为目标|1月27日全球网络安全热点
- 查看计算机屏幕颜色软件是什么,显示器颜色校正软件,详细教您显示器颜色校正软件...
- 一种基于JSON语法的JSON数据转换器
- 分享“消防图纸”识图方法,让你一眼秒懂!
- KL散度、JS散度和交叉熵
- WEB安全-ESAPI
- Python报错集合篇7-KeyError: 1
- 聊聊那些年遇到过的奇葩代码
- 电台、手台用语黑话集锦
- 免费直播 | Three.js 实现粒子雷雨特效,走入前端 3D 世界!
- 借助云开发实现小程序朋友圈的发布与展示
- 量子计算机、康威扭结、奥数AI,这是2020年计算机、数学的重大突破
- Win32_PhysicalMemory 内存条 参数说明
热门文章
- linux体验服务器,LINUX架设服务器的初级体验
- 【Kevin Learn 小程序】-->camera
- 树莓派 不连显示器 开启SSH 并连接到WIFI网络(Raspberry Pi Buster版本)
- voltdb mysql_voltdb的一些文档
- QLineEdit实现可显示密码可隐藏密码
- 迫于生活压力,刚毕业转行3D游戏建模能不能行
- 计算机软件盘怎么打开,如何打开软键盘,教您电脑怎么打开软键盘
- linux shell命令对时间的处理(精确到秒、毫秒、纳秒)——筑梦之路
- linux 清屏命令(3种方式)
- html+js做一个照片墙,有四种样子。