↑↑↑关注后"星标"Datawhale

每日干货 & 每月组队学习,不错过

Datawhale干货

作者:Mahitha,来源:机器之心

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

在机器学习中,过拟合(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

“干货学习,三连

防止模型过拟合的必备方法!相关推荐

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

    选自Medium 作者:Mahitha Singirikonda 机器之心编译 编辑:小舟 正如巴菲特所言:「近似的正确好过精确的错误.」 在机器学习中,过拟合(overfitting)会使模型的预测 ...

  2. 防止模型过拟合的方法汇总

    kaggle竞赛宝典 作者:Poll 防止模型过拟合的方法汇总 其实正则化的本质很简单,就是对某一问题加以先验的限制或约束以达到某种特定目的的一种手段或操作.在算法中使用正则化的目的是防止模型出现过拟 ...

  3. 什么是欠拟合现象_在模型评估过程中,过拟合和欠拟合具体指什么现象?能否说出几种降低过拟合和欠拟合风险的方法?...

    在模型评估过程中,过拟合和欠拟合具体指什么现象? 过拟合是指模型在训练数据拟合呈过当的情况,反应到评估指标上,就是模型在训练集上的表现很好,但在测试集和新数据上的表现很差.欠拟合指的是模型在训练和预测 ...

  4. 人工智能算法模型必会之——正则化方法综述

    https://www.toutiao.com/a6718749367164994055/ 什么是正则化? 首先英文原文为regularization,直译应为规则化,简单来说就是对模型加入规则,加入 ...

  5. 机器学习中防止过拟合的处理方法

    原文地址:一只鸟的天空,http://blog.csdn.net/heyongluoyao8/article/details/49429629 防止过拟合的处理方法 过拟合   我们都知道,在进行数据 ...

  6. 防止过拟合的处理方法

    原文地址:一只鸟的天空,http://blog.csdn.net/heyongluoyao8/article/details/49429629 防止过拟合的处理方法 过拟合   我们都知道,在进行数据 ...

  7. 干货︱机器学习中防止过拟合的处理方法

    我们都知道,在进行数据挖掘或者机器学习模型建立的时候,因为在统计学习中,假设数据满足独立同分布(i.i.d,independently and identically distributed),即当前 ...

  8. 【机器学习】算法模型自动超参数优化方法

    什么是超参数? 学习器模型中一般有两类参数,一类是可以从数据中学习估计得到,我们称为参数(Parameter).还有一类参数时无法从数据中估计,只能靠人的经验进行设计指定,我们称为超参数(Hyper ...

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

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

最新文章

  1. javaScript入门之常用事件
  2. 好久没有写了,今天就谈谈微信吧!
  3. python_16(bootstrap)
  4. 计算机中逻辑运算用什么表示逻辑真,计算机逻辑运算和逻辑部.ppt
  5. C++11 std::chrono库详解
  6. 实用软件工程第二版吕云翔课后答案
  7. 跳楼机[DP+spfa]
  8. sklearn实现葡萄酒分类数据集训练朴素贝叶斯算法
  9. php x forwarded for,代码审计树洞X_FORWARDED_FOR注入
  10. 数据库完整性--断言和触发器
  11. AI工程师应聘要具备哪些能力?
  12. 【Python】利用python进行数据分析——以新型冠状病毒疫情为例
  13. 神经网络中偏置的作用
  14. 什么是“ Gacha”视频游戏?
  15. 剧本翻译之メンアットワーク!4 ~ハンター達よ永遠に~猎人们的永远(序章2)...
  16. 1351:面朝大海 春暖花开 [ 数据加强版 ]
  17. 基于 Debian 的 GNU/Linux的Parrot 3.11 已发布
  18. ElastaticSearch----top_hits,es获取聚合的相关文档结果
  19. HTC-VIVE手势识别
  20. 论文笔记—LeGO-LOAM: Lightweight and Ground-Optimized Lidar Odometry and Mapping on Variable Terrain

热门文章

  1. J2EE的13种核心技术规范
  2. MVP Summit 2008 照片纪实(二)- 旧金山,Google总部和Stanford大学
  3. 刻意练习:LeetCode实战 -- Task24. 恢复二叉搜索树
  4. LeetCode实战:反转字符串
  5. html动画怎么隐藏,JQuery操作div隐藏和显示的4种动画
  6. 让线上学习不打折扣,作业帮如何用技术促进课堂高频互动场?
  7. AI新基建如何构建?浪潮给出了一个答案
  8. 达摩院实现自动驾驶核心技术突破,达摩院首次实现3D物体检测精度与速度的兼得
  9. 深度研究自然梯度优化,从入门到放弃 | Deep Reading
  10. 一个小小的AI训练营竟然卧虎藏龙