全文共2306字,预计学习时长5分钟

对机器学习模型而言,最糟糕的两种情况无非是构建无用的知识体系,或是从训练数据集中一无所获。在机器学习理论中,这两种现象分别被称为过拟合和欠拟合,是现代深度学习解决方案中的两大挑战。

深度学习中的过拟合就像人们产生的错觉,是由于算法开始推断不存在于数据集的模式而产生的;欠拟合则更像学习障碍,阻止人们获取相关知识去完成既定任务。

尽管过拟合十分重要,但要解决这一问题并不容易,深度学习应用常采用针对某个算法的技术以避免过拟合。如果考虑到人们也极易发生过拟合,进而转化为对机器学习模型的主观评价,那么这个问题就会变得更加严峻。想想上周你有多少次出于刻板印象来评价事物?一定很多。

今天,本文将提出三种不同的理论,这些理论有助于理解机器学习模型中的过拟合和欠拟合问题。

毫无疑问,我们错觉或幻想的有效性存在于深度学习算法训练所使用的数据集中,由此产生更加混乱的局面。在研究深度学习算法时会本能地考虑数据,而常常遗忘另一个同样重要的元素:知识。

在深度学习算法中,数据通常表示为一个或多个数据库中的持久记录,而知识通常表示为可以在数据中进行验证的逻辑规则。深度学习模型用于推断可应用于同一域的新数据集规则。可惜,对于深度学习者来说,强大的计算能力并不能直接构建知识而产生过拟合。

过拟合和欠拟合问题关系到机器学习模型基于初始训练示例构建相关知识的能力。概念上,欠拟合与机器学习算法无法从初始训练数据中推断出有效知识有关。与此相反,过拟合与创建的假设过于普通或抽象而又不切实际的假设模型有关。简单来说,欠拟合模型过于简单,而过拟合模型往往会产生错觉(想象不存在的东西)。

模型容量:量化机器学习模型中过拟合和欠拟合的主要因素

尝试制定一个简单的方法来理解机器学习算法中的过拟合和欠拟合。

典型的机器学习场景始于一组用于训练和测试算法性能的初始数据集。统计学表明,80%的数据集用作训练模型,剩余的20%用作测试。在训练阶段,输出模型会对训练数据产生一定的偏差,通常将其称为训练误差。同样,在测试阶段产生的偏差被称为测试误差。由此可见,机器学习模型的性能可以根据其完成两个基本事物的能力来判断:

1. 降低训练误差

2 . 缩小训练误差和测试误差差距

这两个简单的规则将有助于理解过拟合和欠拟合。基本上,如果模型无法遵循规则1,不能将训练集的误差降到较低水平,就会发生欠拟合。

如果模型无法遵循规则2,以至于训练误差和和测试误差之间的差距太大,就会发生过拟合。明白了吗?这两个简单的规则可以帮助我们量化机器学习算法中过拟合和欠拟合水平。

另一个有助于机器学习从业者处理欠拟合和过拟合的重要概念是容量。概念上,容量表示机器学习模型可以选择为解决方案的函数集。例如,la线性回归模型可以将形式为y = w * x + b的所有1次多项式作为容量(意味着所有可能的解)。

容量这一概念与机器学习模型高度相关。技术上,机器学习算法在其容量与其任务的复杂性及训练数据集的输入成正比时表现最佳。容量低的机器学习模型在解决复杂任务时是不切实际的,趋于欠拟合。而同时,容量高的模型则趋于过拟合。就此而言,容量表示衡量模型欠拟合或过拟合倾向的度量。

有助于理解机器学习模型中过拟合和欠拟合的三种理论

奥卡姆剃刀原理

奥卡姆剃刀原理是哲学思维在机器学习中的应用。这一古老的哲学理论可以追溯到1287年至1347年间,与托勒密等哲学家有关。奥卡姆的剃刀理论从本质上指出,如果用竞争性的假设来解释已知的观察结果,应该选择最简单的假设。从夏洛克·福尔摩斯到神探阿蒙,世界级的侦探无不运用奥卡姆剃刀原理,遵循最简单、最合乎逻辑的假设来揭开复杂的奥秘。

奥卡姆剃刀原理是日常生活中需要遵循的一个明智的哲学原则,但其在机器学习中的应用充其量只会带来争议。从计算的角度来看,在因资源昂贵而臭名昭着的算法世界中,简单的假设当然是首选。另外,简单的假设更容易在计算上推广。

然而,超简单假设的挑战在于,它们往往过于抽象,无法对复杂场景进行建模。因此,具有足够大的训练集和适当大小的维数模型应该选择足够复杂的假设,以降低训练误差。否则可能会导致欠拟合。

VC维

奥卡姆剃刀原理是一个很好的精简原则,但那些抽象的理想并没有直接转化为生活在数字世界中的机器学习模型。提出量化统计算法容量模型的统计理论的创始人Vapnik和Chervonekis(VC)提出了这一挑战。VC维是m的最大可能值,假设存在m个不同的x点的训练集,机器学习目标函数可以任意地标记该m个不同的x点。

VC维是统计学习的基石之一,也是许多引人关注的理论基础。例如,VC维帮助解释了随着训练集的大小增加,机器学习模型中的泛化误差和训练误差之间的差距减小,但随着模型的容量增长,相同的差距也会增加。换言之,具有大量训练集的模型更有可能选择近似正确的假设,但如果潜在假设太多,那么最终可能会得到错误的假设。

没有免费的午餐定理

没有免费的午餐定理指出,在所有可能的数据生成分布上平均之后,每一个分类算法在未事先观测的点上都有相同的错误率。很多人将没有免费的午餐定理看作是反推数学理论,限制机器学习算法,迫使我们用有限的训练集来生成半绝对知识。

例如,在逻辑中,从有限集合的例子中推断出通用规则是“不合逻辑的”。对机器学习从业者而言,没有免费的午餐定理从另一个方向证明了只要观察足够,就没有比这更好的算法了。换言之,机器学习模型的作用不是找到一个通用的学习函数,而是找到一个能更好适应目标场景的假设。

过拟合和欠拟合仍然是机器学习应用中最严峻的挑战之一。VC维、奥卡姆剃刀原理和没有免费的午餐定理等理论为分析机器学习解决方案中过拟合和欠拟合问题的根源提供了强有力的理论基础。理解和量化机器学习模型的能力仍然是理解其过拟合和欠拟合倾向的基本步骤。

留言 点赞 关注

我们一起分享AI学习与发展的干货

欢迎关注全平台AI垂类自媒体 “读芯术”

过拟合和欠拟合_现代深度学习解决方案中的两大挑战:拟合和欠拟合相关推荐

  1. Dataset:数据集集合(综合性)——机器学习、深度学习算法中常用数据集大集合(建议收藏,持续更新)

    Dataset:数据集集合(综合性)--机器学习.深度学习算法中常用数据集大集合(建议收藏,持续更新) 目录 常规数据集 各大方向分类数据集汇总 具体数据集分类 相关文章 DL:关于深度学习常用数据集 ...

  2. 深度学习:在图像上找到手势_使用深度学习的人类情绪和手势检测器:第2部分

    深度学习:在图像上找到手势 情感手势检测 (Emotion Gesture Detection) Hello everyone! Welcome back to the part-2 of human ...

  3. 深度学习模型建立过程_所有深度学习都是统计模型的建立

    深度学习模型建立过程 Deep learning is often used to make predictions for data driven analysis. But what are th ...

  4. 深度学习:在图像上找到手势_使用深度学习的人类情绪和手势检测器:第1部分

    深度学习:在图像上找到手势 情感手势检测 (Emotion Gesture Detection) Has anyone ever wondered looking at someone and tri ...

  5. 深度学习数据集中数据差异大_使用差异隐私来利用大数据并保留隐私

    深度学习数据集中数据差异大 The modern world runs on "big data," the massive data sets used by governmen ...

  6. 正则化的通俗解释_干货|深度学习中的正则化技术概述(附Python+keras实现代码)...

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 介绍 数据科学研究者们最常遇见的问题之一就是怎样避免过拟合.你也许在训练模型的时候也遇 ...

  7. display函数怎么使用_损失函数—深度学习常见损失函数总结【图像分类|上】

    点击蓝字关注我们 AI研习图书馆,发现不一样的精彩世界 学习 笔记 常见损失函数总结-图像分类篇[上] 一.前言在深度学习中,损失函数扮演着至关重要的角色.通过最小化损失函数,使模型达到收敛状态,减少 ...

  8. 深度学习将灰度图着色_通过深度学习为视频着色

    深度学习将灰度图着色 零本地设置/ DeOldify / Colab笔记本 (Zero Local Setup / DeOldify / Colab Notebook) "Haal Kais ...

  9. 大数据时代下的迁移学习_继深度学习后,下一个热点技术是迁移学习

    最早提出大数据时代到来的是知名咨询公司麦肯锡,麦肯锡称:"数据,已经渗透到当今每一个行业和业务职能领域,成为重要的生产因素.人们对于海量数据的挖掘和运用,预示着新一波生产率增长和消费者盈余浪 ...

最新文章

  1. hdu4278 小想法
  2. mysqldumpslow mysql慢日志分析工具
  3. mall整合RabbitMQ实现延迟消息
  4. python mro c3_Python 19 MRO和C3算法
  5. Flask开发VIP版HttpServer #华为云·寻找黑马程序员#
  6. android程序导入虚拟机,android项目打包成apk应用程序后部署到虚拟机上测试
  7. Python判断是否json是否包含一个key
  8. JS高级程序设计——阅读笔记六
  9. 局域网设置_如何设置局域网
  10. 360浏览器如何拦截java_安全卫士安装了JAVA,但是还是被浏览器拦截。
  11. 日本多城现共享单车 日网友:感受到中国式刺激
  12. BLE 怎样添加 Characteristic
  13. 情人节的自娱自乐——情书事件
  14. Java实现word导出与pdf导出
  15. 表格的应用——日历表
  16. Python爬虫:爬取网页图片
  17. yolov3代码详解(七)
  18. 3.1递归实现逆序输出整数
  19. JAVA后端面经总结
  20. C++ [](){}

热门文章

  1. LightOJ 1096 - nth Term 矩阵快速幂
  2. Openwrt之移动硬盘ext3/ext4格式化工具
  3. Python学习-储存器
  4. JavaScript 调用后台事件和方法
  5. 利用NLB建立双机负载均衡群集
  6. 7-71 爬动的蠕虫 (15 分)
  7. java 路由_RabbitMQ入门:路由(Routing)
  8. cf1114 D. Flood Fill
  9. python之字典方法
  10. NRF24L01使用外部中断读取数据的问题