过拟合现象,原因,以及降低过拟合的方法
一、什么是过拟合,为什么要避免过拟合
图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)简单理解就是训练样本的得到的输出和期望输出基本一致,但是样本输出和测试样本的期望输出相差却很大 .2)为了得到一致假设而使假设变得过度复杂称为过拟合. ...
- 模型发生过拟合现象时,通常可以采取哪些方法避免或者缓解该问题?
过拟合 在进行数据挖掘或者机器学习模型建立的时候,因为在统计学习中,假设数据满足独立同分布,即当前已产生的数据可以对未来的数据进行推测与模拟,因此都是使用历史数据建立模型,即使用已经产生的数据去训 ...
- 什么是过拟合、欠拟合现象以及如何缓解?
前言:在讲解之前,小编必须先陈述这样一个客观事实,就是在模型训练过程中,过拟合或者欠拟合现象基本上可以看作是一个必然会发生的事件,因为我们将不同算法模型应用在同一种数据上构建某一类策略时,最终会挑出表 ...
- 什么是欠拟合现象_在模型评估过程中,过拟合和欠拟合具体指什么现象?能否说出几种降低过拟合和欠拟合风险的方法?...
在模型评估过程中,过拟合和欠拟合具体指什么现象? 过拟合是指模型在训练数据拟合呈过当的情况,反应到评估指标上,就是模型在训练集上的表现很好,但在测试集和新数据上的表现很差.欠拟合指的是模型在训练和预测 ...
- 过拟合的原因以及解决办法(深度学习)
过拟合:模型在训练集上表现的非常好,但在测试集的数据下表现很差. 具体观察loss函数就是,train loss一直降低,而test loss先降低,而后随着epoach的增加,而不断增加. 这张图可 ...
- 谁来救救过拟合?透过现象看本质,如何利用正则化方法解决过拟合问题
前言 声明:后期原力计划活动期间的博文都会转入到对应的收费专栏. 博主后续会不断更新该领域的知识: 人工智能AI实战系列代码全解析 手把手教你ML机器学习算法源码全解析 有需要的小伙伴赶紧订阅吧. 在 ...
- 【深度学习】模型过拟合的原因以及解决办法
[深度学习]模型过拟合的原因以及解决办法 1.背景 2.模型拟合 3.简述原因 4.欠拟合解决办法 5.过拟合解决办法 1.背景 所谓模型过拟合现象: 在训练网络模型的时候,会发现模型在训练集上表现很 ...
- 神经网络中的过拟合的原因及解决方法、泛化能力、L2正则化
过拟合:训练好的神经网络对训练数据以及验证数据拟合的很好,accuracy很高,loss很低,但是在测试数据上效果很差,即出现了过拟合现象. 过拟合产生的原因: (1)数据集有噪声 (2)训练数据不足 ...
- 欠拟合、过拟合现象,及解决办法
@创建于:2022.05.27 @修改于:2022.05.27 文章目录 1.过拟合与欠拟合 2.欠拟合 2.1 出现的原因 2.2 解决的办法 3.过拟合 3.1 出现的原因 3.2 解决的办法 4 ...
最新文章
- 修改普通用户加入域的次数
- sprytabbedpanels.js库之在页面中插入Tabbed Panels
- 2020 年最全 Python 面试题汇总 (二)
- 父亲节,来认识一下这几位“爸爸”
- 软件工程网络15个人阅读作业2(201521123111 陈伟泽)
- oracle中的ROLLUP函数
- 儿童车内滞留监测控制系统的设计
- APP拉新的五种方法,找准目标用户,转为注册用户
- 快速搞懂MD5解密原理,了解常用的MD5在线解密网站
- ABAP编程中对内表的定义,后面接一个OCCURS (n)是代表什么意思。
- 兼容微信字体变大,页面错乱问题
- 华为朗读屏幕怎么关闭
- 服务器常见错误代码500、501、502、503、504、505
- 冷冻大脑、量产蟋蟀...全球最聪明的人一起开脑洞是什么样?
- 肇庆学院"菜鸟杯"程序设计竞赛2019(同步赛)(回顾补题)
- Microsoft c++ Speech 识别接口快速入门
- 教育部拔尖计划计算机专业的高校,教育部:拔尖计划2.0致力寻找天才、怪才
- 硅谷中关村人脉网络(柳传志、胡昭广、张景安、许成钢 倾力推荐!)
- thinkphp实现微信分享朋友圈自定义图片和文字
- 小米2.3系统手机桌面壁纸不随着屏幕滑动设置方法