选自Medium

作者:Mahitha Singirikonda

机器之心编译

编辑:小舟

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

在机器学习中,过拟合(overfitting)会使模型的预测性能变差,通常发生在模型过于复杂的情况下,如参数过多等。本文对过拟合及其解决方法进行了归纳阐述。

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

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

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

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

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

如何防止过拟合

交叉验证

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

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

用更多数据进行训练

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

移除特征

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

早停

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

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

正则化

正则化可用于降低模型的复杂性。这是通过惩罚损失函数完成的,可通过 L1 和 L2 两种方式完成,数学方程式如下:

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

L2 惩罚权重值的平方和。该模型能够学习复杂的数据模式,但对于异常值不具备鲁棒性。

这两种正则化方法都有助于解决过拟合问题,读者可以根据需要选择使用。

Dropout

Dropout 是一种正则化方法,用于随机禁用神经网络单元。它可以在任何隐藏层或输入层上实现,但不能在输出层上实现。该方法可以免除对其他神经元的依赖,进而使网络学习独立的相关性。该方法能够降低网络的密度,如下图所示:

总结

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

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

© THE END

转载请联系 机器之心 公众号获得授权

投稿或寻求报道:content@jiqizhixin.com

点个在看 paper不断!

如何防止我的模型过拟合?这篇文章给出了6大必备方法相关推荐

  1. 使用分层网络模型的两个优点是什么_从零开始学网络|搞懂OSI参考模型和TCP/IP分层模型,看这篇文章就够了...

    从零开始学网络|搞懂OSI参考模型和TCP/IP分层模型,看这篇文章就够了​mp.weixin.qq.com 前言 今天和大家一起谈谈"网络",之前写的文章可能不太通俗易懂,有人就 ...

  2. 从零开始学网络|搞懂OSI参考模型和TCP/IP分层模型,看这篇文章就够了

    来源 | 网络工程师笔记 前言 今天和大家一起谈谈"网络",之前写的文章可能不太通俗易懂,有人就问我可不可以写些比较容易理解的文章,我想了想那就从头说起吧! 那么什么是网络呢? 百 ...

  3. PowerDesigner绘制业务处理模型等时元素的字体太小,调大字体方法

    问题 昨晚绘制这个系统的业务处理模型,创建Entity时,文字太小了,只有8px,看不清,就像这样,粘贴到文档里真的没法看.... 失败方法 百度找方法,说是可以通过Tools->Display ...

  4. 学习《Linux设备模型浅析之设备篇》笔记(一)

    最近在学习Linux设备模型,前面几篇文章也是读这篇的时候遇到问题,然后为了搞清楚先转去摸索才写出来的. 当然了,刚开始是先读到<Linux那些事儿之我是Sysfs>,搞不清楚才去读的&l ...

  5. R语言glmnet交叉验证选择(alpha、lambda)拟合最优elastic回归模型:弹性网络(elasticNet)模型选择最优的alpha值、模型最优的lambda值,最终模型的拟合与评估

    R语言glmnet交叉验证选择(alpha参数和lambda参数)拟合最优elastic回归模型:弹性网络(elasticNet)模型选择最优的alpha值.弹性网络(elasticNet)模型最优的 ...

  6. 【机器学习】一文深层解决模型过拟合

    一.过拟合的本质及现象 过拟合是指模型只过分地匹配特定训练数据集,以至于对训练集外数据无良好地拟合及预测.其本质原因是模型从训练数据中学习到了一些统计噪声,即这部分信息仅是局部数据的统计规律,该信息没 ...

  7. 【机器学习基础】说模型过拟合的时候,说的是什么?

    前言 机器学习中,模型的拟合效果意味着对新数据的预测能力的强弱(泛化能力).而程序员评价模型拟合效果时,常说"过拟合"及"欠拟合",那究竟什么是过/欠拟合呢?什 ...

  8. arima模型怎么拟合_7个统计测试,用于验证和帮助拟合ARIMA模型

    arima模型怎么拟合 什么是ARIMA? (What is ARIMA?) ARIMA models are one of the most classic and most widely used ...

  9. 目标检测——如何让模型过拟合

    1 前言 让模型最好的学会train集数据的第一步,就是首先让模型过拟合: 2 减小学习率 过小的学习率会让模型过拟合,这是我在车道线冠军代码里面看到的, gujingxiao同学是这样说的: 由于测 ...

最新文章

  1. (曲率系列2:)Paper6:Curvature Estimation of 3D Point Cloud Surfaces Through the Fitting of Normal
  2. 心得丨如何快速上手疯狂上涨的Python?
  3. 1.15 Java冒泡排序法
  4. POJ 3614-Sunscreen
  5. Python爬虫进阶三之Scrapy框架安装配置
  6. 复杂电路简化经典例题_【中考物理】电路简化的10大原则和7大步骤
  7. 门槛回归模型_stata15:门槛模型
  8. dell 重装linux系统_U盘装系统开机按哪个键
  9. 按照某列属性拆分Excel文件
  10. C++中的const完全解析
  11. 规范完整APP开发制作流程
  12. k8s pod 污点
  13. 使用spire.doc for java为word添加页码、文字水印、书签(去除警告信息)
  14. 诛仙一直服务器维护,服务器维护《诛仙3》官方致仙友的一封信
  15. 计算机体系结构在线读,计算机体系结构_arch01_intro-c1.pdf
  16. android toast设置背景颜色,android-自定义Toast消息文本颜色
  17. 电大计算机基础应用操作题,2016年电大-电大 网考 计算机应用基础 操作题大全.doc...
  18. 机器人工程毕业设计☞提升突破
  19. 理解软件保护技术之序列号方式
  20. 一款功能强大的代理检查和IP地址轮转工具

热门文章

  1. 【怎样写代码】参数化类型 -- 泛型(七):泛型方法
  2. LSGO代码小组第18周复盘日志
  3. 昇思MindSpore1.6发布 AI开发者体验再升级
  4. 可构建AI的「AI」诞生:几分之一秒内,就能预测新网络的参数
  5. 开发者关心的十个数据库技术问题
  6. 什么?我要对AI礼貌?人机交互面临的道德漏洞
  7. Mendix 披露低代码方法论,解读真实技术趋势
  8. 联邦学习的隐忧:来自梯度的深度泄露
  9. 手把手教你如何制作可视化大屏!
  10. 饿了么交易系统5年演化史