一、什么是过拟合,为什么要避免过拟合

图1.1 Overfit&Normal 上图是一张使用线性回归拟合二维样本数据的matlab输出图片,其中Normal曲线是使用使用了带参数空间限制的最小二乘法进行求解的模型,Overfit曲线是使用最小二乘法直接求解得到的。 可以看到虚线输出的模型可能并不是我们现实生活中所想要的模型,当我们得到Overfit所学的模型后,用于实际回归任务中,可能对于验证集、测试集、预测集效果并不好。它会产生这样一种现象:**一个假设在训练数据上能够获得比其他假设更好的拟合,但是在训练数据外的数据集上却不能很好的拟合数据**。此时我们就叫这个假设出现了**过拟合**的现象。

图1.2 随着多项式维数的增加交叉验证集经验误差的变化 如图1.2所示,以多项式拟合举例,其随着多项式维数的增加,模型在训练集上的表现越来越好,但在交叉验证集上的误差却越来越大,这显然不是我们想要的,因为其泛化能力和鲁棒性也越来越差。

二、过拟合产生的原因

图2.1 Bias/Variance

偏差/方差欠拟合/过拟合有着密不可分的关系,我们现在讨论如图2.1中右下角的低偏差高方差即只有过拟合现象的原因。
1.数据集样本数过少
如图2.1右下图所示,当样本较少且不是簇型的时候,此时的模型可能因四周“对称”带来的误差累积为0,也就是对测试样本拟合的很“完美”,但若再增加一个样本,则可能模型的误差会增加很多,拟合效果会很差。
2.算法模型为了更好的拟合样本集,使其模型的拟合能力超过远远超过了问题复杂度,也就是学习模型过于复杂
对于线性回归问题来说,也就是多项式次数过高的问题;对于神经网络来说,网络结构过于复杂,单层节点数过多等也可能造成过拟合,以做过的一个图像识别项目举例,如图2.2所示,原学习目标是想检测完整的轿车,但分类器训练的结果却是将后视镜部分当作了轿车,原因是当时训练的stage过多,将轿车的细化特征学习过多以至于出现过拟合现象。

图2.2 图像识别中的过拟合现象

3.样本中数据噪声干扰过大,大到模型过分记住了噪声特征,而忽略了真实的输入输出间的关系。

三、如何降低过拟合

1.(针对问题1)解决过拟合的根本方法是增加数据集的规模,理论上只要样本数足够多,即使模型足够复杂,有一定的噪声,模型也会收敛到一个比较好的结果。
实际中由于数据集采集成本过高,通常使用一些退而求其次的方法来制造数据集,比如在图像处理中,可以利用反转、平移、切割、调整光亮,使用不同滤波来扩充数据集。
而在模型的训练阶段,为了节省数据成本,我们会采取诸如留一法、交叉验证法、自助法等用于数据采样。
2.(针对问题2)对于模型过于复杂,我们可以做的事情很多。
2.1使模型本身简单化
对于线性回归我们可以降低多项式的次数,对于神经网络我们可以减少隐藏层层数,节点数等,对于决策树,我们可以进行剪枝操作等。

2.2正则化
正则化是解决过拟合最常用的方法之一,最为常用的用为L1正则化与L2正则化。L0可以最自然的实现“稀疏约束”,但其求解性质不太良好,利用L1范数是L0范数的最优凸近似,又有较好的求解特性(可利用近端梯度下降求解),因此可以得到较为稀疏的解,利用L2范数进行正则化则可以大大降低计算量,拥有计算方便的特性。

图2.3 高斯核模型L2约束的最小二乘学习法运用(改变带宽与正则化参数)

2.3 对于神经网络,我们可以采用增加Drop层(在每层中随机选取一些节点使其不工作),或是添加Batch Normalization来减轻过拟合现象。

2.4进行特征选择与稀疏学习,常见的特征选择可分为分为1)过滤式,2)包裹式,3)嵌入式稀疏表示可以使大多数问题变得线性可分,且稀疏样本可以给存储带来方便,稀疏表示可以通过字典学习等方式得到,它可以将样本转化为合适的稀疏表示,从而使学习任务得以简化,模型复杂度降低。
3.(针对问题三)在进行数据训练进行之前进行数据清洗,即在回归任务中删除异常的噪声点,在分类任务中将错误的label进行纠正。

以上为个人在机器学习、深度学习以及代码实现中关于过拟合现象的一些浅薄认识,如有不妥之处肯请各位包涵指正。

过拟合现象,原因,以及降低过拟合的方法相关推荐

  1. 什么是欠拟合现象_什么是过拟合?什么是欠拟合?

    原标题:什么是过拟合?什么是欠拟合? 过拟合:1)简单理解就是训练样本的得到的输出和期望输出基本一致,但是样本输出和测试样本的期望输出相差却很大 .2)为了得到一致假设而使假设变得过度复杂称为过拟合. ...

  2. 模型发生过拟合现象时,通常可以采取哪些方法避免或者缓解该问题?

    过拟合   在进行数据挖掘或者机器学习模型建立的时候,因为在统计学习中,假设数据满足独立同分布,即当前已产生的数据可以对未来的数据进行推测与模拟,因此都是使用历史数据建立模型,即使用已经产生的数据去训 ...

  3. 什么是过拟合、欠拟合现象以及如何缓解?

    前言:在讲解之前,小编必须先陈述这样一个客观事实,就是在模型训练过程中,过拟合或者欠拟合现象基本上可以看作是一个必然会发生的事件,因为我们将不同算法模型应用在同一种数据上构建某一类策略时,最终会挑出表 ...

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

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

  5. 过拟合的原因以及解决办法(深度学习)

    过拟合:模型在训练集上表现的非常好,但在测试集的数据下表现很差. 具体观察loss函数就是,train loss一直降低,而test loss先降低,而后随着epoach的增加,而不断增加. 这张图可 ...

  6. 谁来救救过拟合?透过现象看本质,如何利用正则化方法解决过拟合问题

    前言 声明:后期原力计划活动期间的博文都会转入到对应的收费专栏. 博主后续会不断更新该领域的知识: 人工智能AI实战系列代码全解析 手把手教你ML机器学习算法源码全解析 有需要的小伙伴赶紧订阅吧. 在 ...

  7. 【深度学习】模型过拟合的原因以及解决办法

    [深度学习]模型过拟合的原因以及解决办法 1.背景 2.模型拟合 3.简述原因 4.欠拟合解决办法 5.过拟合解决办法 1.背景 所谓模型过拟合现象: 在训练网络模型的时候,会发现模型在训练集上表现很 ...

  8. 神经网络中的过拟合的原因及解决方法、泛化能力、L2正则化

    过拟合:训练好的神经网络对训练数据以及验证数据拟合的很好,accuracy很高,loss很低,但是在测试数据上效果很差,即出现了过拟合现象. 过拟合产生的原因: (1)数据集有噪声 (2)训练数据不足 ...

  9. 欠拟合、过拟合现象,及解决办法

    @创建于:2022.05.27 @修改于:2022.05.27 文章目录 1.过拟合与欠拟合 2.欠拟合 2.1 出现的原因 2.2 解决的办法 3.过拟合 3.1 出现的原因 3.2 解决的办法 4 ...

最新文章

  1. 修改普通用户加入域的次数
  2. sprytabbedpanels.js库之在页面中插入Tabbed Panels
  3. 2020 年最全 Python 面试题汇总 (二)
  4. 父亲节,来认识一下这几位“爸爸”
  5. 软件工程网络15个人阅读作业2(201521123111 陈伟泽)
  6. oracle中的ROLLUP函数
  7. 儿童车内滞留监测控制系统的设计
  8. APP拉新的五种方法,找准目标用户,转为注册用户
  9. 快速搞懂MD5解密原理,了解常用的MD5在线解密网站
  10. ABAP编程中对内表的定义,后面接一个OCCURS (n)是代表什么意思。
  11. 兼容微信字体变大,页面错乱问题
  12. 华为朗读屏幕怎么关闭
  13. 服务器常见错误代码500、501、502、503、504、505
  14. 冷冻大脑、量产蟋蟀...全球最聪明的人一起开脑洞是什么样?
  15. 肇庆学院"菜鸟杯"程序设计竞赛2019(同步赛)(回顾补题)
  16. Microsoft c++ Speech 识别接口快速入门
  17. 教育部拔尖计划计算机专业的高校,教育部:拔尖计划2.0致力寻找天才、怪才
  18. 硅谷中关村人脉网络(柳传志、胡昭广、张景安、许成钢 倾力推荐!)
  19. thinkphp实现微信分享朋友圈自定义图片和文字
  20. 小米2.3系统手机桌面壁纸不随着屏幕滑动设置方法

热门文章

  1. C++积累02_隔定时长放炮问题的OOP解决
  2. XMU 1611 刘备闯三国之卖草鞋 【贪心】
  3. Python入门技巧
  4. 被用户满意度坑的经历
  5. 电脑经常自动关机的系统解决方案
  6. 大集中系统的个人所得税解决方案
  7. java学习--装饰器设计模式
  8. 我的世界java版如何装mod_我的世界MOD怎么安装 我的世界mod安装教程
  9. 数据时代的的企业管理 记SAP商业同略会
  10. pandas +re获取pubmed中文献的标题和摘要