机器学习中的“泛化”:模型过拟合与欠拟合,到底怎么回事?

“现实世界永远不会组成一个类分布均衡、没有噪声和异常值、数据分布均匀的完美数据集。”这是任何数据科学家都不想听到的话,但事实确是如此。

人们训练机器时,最常出现的错误即是模型过拟合与欠拟合,这是机器学习难以逃脱的陷阱。

而想知晓拟合不佳的缘由,就不得不提及一个新词汇“泛化”。

什么是泛化?

举个例子,小A与小B一同要参加高考,A在做题过程中积极总结思路,活学活用,而B则大量刷题,没有总结思考的过程,高考分数下来,A超出B一百多分,同样的学习时间,为什么差距这么大?

原来高考是全新的题目,A总结了大量题型规律,利用举一反三的技能,出色完成了考试。这种摸清本质规律的过程便是泛化,总结得越好,泛化也就越高。

机器学习中的泛化用于衡量模型对未见过数据样本的分类能力。如果一个模型可以从不同的集合中预测数据样本,便是具备良好的泛化性。所以,上述例子中,A的泛化能力好,而B的泛化力差。

机器学习的目的是得到良好的泛化,但泛化难以自身操控,只能基于训练数据调节模型。

于是,困扰模型的过拟合与欠拟合便出现了。

过拟合

过拟合指模型在训练时表现较好,但在已知数据以外的数据集上表现较差,泛化力较弱。这正如高考时的小B,只记住自己做过的所有题型,只会做重复的事情,当遇到稍有变化或者全新题目时,就无从下手了。因此,模型只有进入测试阶段才能检测出过拟合。

造成过拟合的原因也是显而易见:

【1】样本错误,常见为选取样本数量少、选样方法不当、样本范围过窄、样本标签错误等。

【2】参数太多,模型复杂度过高。

【3】样本噪音干扰过大,使得机器将部分噪音认为是特征从而扰乱了预设的分类规则

从性能角度讲,过度拟合会导致协方差过大(variance is large),在测试集上的损失函数(cost function)也会加大。(损失函数越小,模型的鲁棒性越好。)

过度拟合的迹象

检测过拟合最“原始”的方法便是划分数据集,以便单独检查模型在每组数据上的性能。

但随着技术进步,人们找到了更系统的方法——

K折交叉验证是检测过拟合最常用的技术之一。在这里,我们在 K-folds 交叉验证中将数据拆分成 k 个大小相等的子集,并将一个拆分子集用作测试集,其余用于训练模型。具体做法如下:

此过程将重复K次,每一轮测试,选取一个数据集作为该模型的测试集,剩下K-1个数据作为训练集,并对这K次训练误差和验证误差分别求取平均数,以评估整个模型的性能。

因此,如果发现机器过度记住之前的训练数据特征,而没有掌握正确的识别经验,此模型即是失败品。

欠拟合

与过拟合相反,欠拟合的成因是训练数据不足,即在训练集上的性能表现很差,测试集的表现同样很差。

欠拟合往往伴随着高偏差。偏差反映的是预测值的期望与真实值之差,偏差越高,模型在训练集上的错误率越高,误差也就越大。

K折交叉验证

因此,当模型出现高偏差时,以下方法可利于降低误差,达到拟合状态;

【1】提高模型复杂度:丰富算法模型,如可巧用神经网路、随机森林,添加更多高次项;

【2】参数适调:调整参数与超参数至合适位置,如学习率、学习衰减率、隐藏层数、隐藏层的单元数等;

【3】赋予更多特征:深入挖掘数据,为其赋予更多细化特征,对数据本身及具体应用场景理解越深刻,越易找到强代表性的数据特征。

注:需要注意,盲目添加数据集是无用的,欠拟合指模型的学习能力弱,大量的数据集无法改变拟合状态,只有提升学习能力,模型才会更加稳定。

数据标注

细心的伙伴会发现,上文中反复提及了两个词汇即“训练数据与测试数据”。在传统机器学习中,训练数据与测试数据贯穿了模型的始终,直接决定模型拟合状态的优良。

而用于训练与测试模型的数据集从何而来?

准确来说,此类数据集是人类利用专业技术将采集数据转义为机器可理解的语言,该数据处理技术被称为数据标注。

人们利用标注好的数据喂养机器。在训练集方面,数据标注不仅决定了训练数据质量,也是模型构建的重要桥梁。

而在测试集方面,数据标注扮演着检验机器学习优良的角色。标注完成的测试数据最终会与机器完成的测试集进行对比,以判定模型成功与否。

因此,数据标注是除算法外对模型起决定作用的另一重要因素。标注质量越高,机器学习力越强。

而随着数据标注地位的提升,大量标注公司涌入行业市场,曼孚科技也是其中之一。作为行业头部企业,曼孚科技选择自研平台的创新技术型道路,截至目前已推出第三代智能数据服务平台——MindFlow SEED平台。

MindFlow SEED平台 点云语义分割展示


MindFlow SEED平台提供计算机视觉(2D标注、语义分割、3D点云标注、融合标注、关键点标注、线标注)、语音交互(语音切割、语音情绪判定、ASR语音转写)、自然语言处理(OCR转写、文本信息抽取)等多类型数据标注。

在具体标注模式上,MindFlow SEED平台通过AI人机协同标注模式,结合18种不同类型AI预标注辅助工具,全面覆盖各类垂直标注场景,将部分AI标注工具准确率升至99%、数据标注效率10倍以上,以涵盖智能驾驶、智慧城市、智能安防等具体领域,满足人工智能多样性、丰富性的数据标注需求,推动人工智能在更多场景下落地应用。

MindFlow SEED平台 数据集管理展示


而除专业的标注工具外,MindFlow SEED平台也包含项目、供应链、数据安全等管理类目。通过整合不同工作环节,该平台旨在打破数据孤岛模式,实现对数据全生命周期的统一管理,提升执行效率,满足人工智能多样性、丰富性的数据标注需求,推动人工智能在更多场景下落地应用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340