如何处理欠拟合、过拟合?

在我们机器学习和深度学习的训练过程中,经常会出现过拟合和欠拟合的现象。训练一开始,模型通常会欠拟合,所以会对模型进行优化,然而等到训练到一定程度的时候,就需要解决过拟合的问题了。

如何判断过拟合呢?我们在训练过程中会定义训练误差,验证集误差,测试集误差(泛化误差)。训练误差总是减少的,而泛化误差一开始会减少,但到一定程序后不减反而增加,这时候便出现了过拟合的现象。

如下图所示,从直观上理解,欠拟合就是还没有学习到数据的特征,还有待继续学习,而过拟合则是学习进行的太彻底,以至于把数据的一些局部特征或者噪声带来的特征都给学到了,所以在进行测试的时候泛化误差也不佳。

如何处理欠拟合

欠拟合是由于学习不足,可以考虑添加特征,从数据中挖掘出更多的特征,有时候还需要对特征进行变换,使用组合特征和高次特征。

模型简单也会导致欠拟合,例如线性模型只能拟合一次函数的数据。尝试使用更高级的模型有助于解决欠拟合,如使用SVM,神经网络等。

正则化参数是用来防止过拟合的,出现欠拟合的情况就要考虑减少正则化参数。

如何处理过拟合

过拟合是由于学习的太彻底,这可能是由于训练数据量太少的缘故。可以增大数据的训练量,训练数据要足够大才能使得数据中的特征被模型学习到。还需要清洗数据,尽量减少数据中的噪声,以防止这些噪声被模型学习到。

正则化方法也常用来处理过拟合,正则化包括L1正则化和L2正则化,正则项通常是一个范数。L1范数是指向量中各个元素绝对值之和,也叫“稀疏规则算子”,通常可以用来做特征选择,在嵌入式特征选择使用的就是L1范数。L2范数是指向量各元素的平方和然后求平方根,通常的结果会使权重参数变小,使得模型的复杂度变低,符合奥卡姆剃刀原则,以防止过拟合。

在神经网络中经常使用Dropout方法,或者称之为随机失活,每次训练的时候随机去掉一部分隐藏层的神经元,可以理解为每个神经元随机参与,相当于多个模型集成。

提前终止(early stoppping)也是神经网络常使用的方法,可以防止模型复杂度过于增加,从而防止过拟合。采用交叉验证提前终止,当交叉验证错误率最小时认为泛化性能最好,这时即使训练集错误率仍然下降,也终止训练。

逐层归一化(batch normalization),给每层的输出做归一化(相当于加了一个线性变换层),这样使得下一层的输入相当于高斯分布(正态分布),这个方法相当于下一层的权重参数训练时避免了其输入以偏概全, 因而泛化效果也比较好。

不过,数据在训练过程中始终是最重要的,有时候往往拥有更多的数据胜过一个好的模型,这要求得到更多独立同分布的数据来进行训练。

如何处理欠拟合、过拟合相关推荐

  1. 欠拟合和过拟合学习笔记

    欠拟合和过拟合学习笔记 https://www.cnblogs.com/DicksonJYL/p/9620464.html 在建模的过程中会经常出现1.模型的效果,但是泛化能力弱,2.模型的结果很差的 ...

  2. 1.8 欠拟合和过拟合-机器学习笔记-斯坦福吴恩达教授

    欠拟合和过拟合 问题 在上一节中,我们利用多项式回归获得更加准确的拟合曲线,实现了对训练数据更好的拟合.然而,我们也发现,过渡地对训练数据拟合也会丢失信息规律.首先,引出两个概念: 欠拟合(under ...

  3. [pytorch、学习] - 3.11 模型选择、欠拟合和过拟合

    参考 3.11 模型选择.欠拟合和过拟合 3.11.1 训练误差和泛化误差 在解释上述现象之前,我们需要区分训练误差(training error)和泛化误差(generalization error ...

  4. 欠拟合和过拟合以及如何选择模型

    模型选择.欠拟合和过拟合 在前几节基于Fashion-MNIST数据集的实验中,我们评价了机器学习模型在训练数据集和测试数据集上的表现.如果你改变过实验中的模型结构或者超参数,你也许发现了:当模型在训 ...

  5. 从零开始学Pytorch(五)之欠拟合和过拟合

    本文首发于微信公众号"计算机视觉cv" 模型选择.过拟合和欠拟合 训练误差和泛化误差 训练误差(training error)指模型在训练数据集上表现出的误差,泛化误差(gener ...

  6. 机器学习:什么是欠拟合和过拟合

    https://blog.csdn.net/u011630575/article/details/71158656 1. 什么是欠拟合和过拟合 先看三张图片,这三张图片是线性回归模型 拟合的函数和训练 ...

  7. 欠拟合和过拟合的一般解决方法

    欠拟合和过拟合的一般解决方法 参考文章: (1)欠拟合和过拟合的一般解决方法 (2)https://www.cnblogs.com/excellent-ship/p/9090949.html 备忘一下 ...

  8. 1.5 欠拟合和过拟合

    1.5 欠拟合和过拟合 欠拟合(Underfitting):选择的模型过于简单,以致于模型对训练集和未知数据的预测都很差的现象. 过拟合(Overfitting):选择的模型过于复杂(所包含的参数过多 ...

  9. 线性回归;欠拟合和过拟合

    线性回归 定义:线性回归通过一个或者多个自变量与因变量之间之间进行建模的回归分析.其中特点为一个或多个称为回归系数的模型参数的线性组合. 线性回归的误差大小通过损失函数来计算–最小二乘法,目的是去寻找 ...

最新文章

  1. 如何使用Coded UI Test对Webpage进行自动化测试
  2. AtCoder AGC039F Min Product Sum (容斥原理、组合计数、DP)
  3. 【小白学PyTorch】扩展之Tensorflow2.0 | 21 Keras的API详解(下)池化、Normalization
  4. C++11 POD类型
  5. 依赖注入的细节_value子标签_特殊字符的注入
  6. 使用 DotNet CLI 创建自定义的 WPF 项目模板
  7. 1319. 连通网络的操作次数
  8. 用c语言ipv6组播,闲谈IPv6-组播和广播
  9. 初步了解Java内部类
  10. java double 丢精度_Java中double类型精度丢失的问题
  11. erlang web服务器性能,100万并发连接服务器笔记之Erlang完成1M并发连接目标
  12. C盘文件分析(如何减小C盘容量)
  13. Android ~ 国际化(多语言)
  14. 看图四级作文 快速技术的发展计算机,【英语四级看图作文范文11篇】_英语四级看图作文范文大全_2021年英语四级看图作文范文_东城教研...
  15. php输出跳转下一页,tp5页面输出时,搜索后跳转下一页的处理
  16. 目标检测 | YOLO系列超全讲解v1,v2,v3
  17. 【图解】AC97、HD音效卡前置音频线的接法
  18. WiFi 基础(二)—— BSS、ESS、BSSID、ESSID、SSID
  19. python 外星人游戏下载大全_【Python】Python制作外星人入侵小游戏
  20. android脸萌3

热门文章

  1. [Wiki].NET框架
  2. 个人博客模板 html5
  3. 什么蓝牙耳机听歌音质好?四款公认结实耐用的音质耳机
  4. electron之asar加密打包
  5. 《半小时漫画预防常见病》读书摘记
  6. H5 CSS适配手机刘海屏高度
  7. OpenCV进阶(11)使用 OpenCV实现哈哈镜
  8. 苹果手机群控 手机投屏 电脑控制手机鼠标键盘操控
  9. 四个月某机构前端培训JS(五)
  10. 硬盘容量越大 计算机整体性能越好,是不是硬盘空间越大,内存越高,电脑性能就越好?...