简析过拟合与欠拟合

过拟合和欠拟合的形象解释 今天突然被以前同学人问到什么是机器学习中的’过拟合‘? “过拟合就是训练的时候效果很好损失函数值可以降得很低,但是到测试数据集的时候表现就不那么好了,就是过分依赖于现有训练数据集的特征造成的,可以加大数据集来进行训练,比如在图像领域可以通过拉伸旋转变换剪裁等等方式来增加训练数据集然后通过Dropout随机清零参数来避免.......“。巴拉巴拉讲了一堆,虽然我很想解释明白,但是.......总感... 阅读详情

欠拟合与过拟合问题是机器学习中的经典问题,尽管相关的讨论和预防方法非常多,但目前在许多任务中仍经常会出现过拟合等问题,还没有找到一个十分通用、有效的解决方法。不过总体上看,现在人们常用的一些很简洁的方法基本上能够较好地解决欠拟合与过拟合问题,总结如下。

欠拟合与过拟合的概念的成因比较简单,观点统一,这里不再介绍。现在常用的判断方法是从训练集中随机选一部分作为一个验证集,采用K折交叉验证的方式,用训练集训练的同时在验证集上测试算法效果。在缺少有效预防欠拟合和过拟合措施的情况下,随着模型拟合能力的增强,错误率在训练集上逐渐减小,而在验证集上先减小后增大;当两者的误差率都较大时,处于欠拟合状态(high bias, low variance);当验证集误差率达到最低点时,说明拟合效果最好,由最低点增大时,处与过拟合状态(high variance, low bias)。下图的横坐标用拟合函数多项式的阶数笼统地表征模型拟合能力:
这里写图片描述

下面详细介绍预防解决模型欠拟合与过拟合的常用方法及原理:

欠拟合
因为对于给定数据集,欠拟合的成因大多是模型不够复杂、拟合函数的能力不够。
为此可以增加迭代次数继续训练、尝试换用其他算法、增加模型的参数数量和复杂程度,或者采用Boosting等集成方法。

过拟合
过拟合成因是给定的数据集相对过于简单,使得模型在拟合函数时过分地考虑了噪声等不必要的数据间的关联。或者说相对于给定数据集,模型过于复杂、拟合能力过强。方法如下:

1.数据扩增:
人为增加数据量,可以用重采样、上采样、增加随机噪声、GAN、图像数据的空间变换(平移旋转镜像)、尺度变换(缩放裁剪)、颜色变换、增加噪声、改变分辨率、对比度、亮度等。其中增加噪声,可以在原始数据上直接加入随机噪声(更接近真实环境),也可以在权重上增加噪声。

2.直接降低模型复杂度:
即减少模型参数数量。例如:对于LR,减少目标函数的因子数;对于DT,减少树的深度、剪枝等;对于DNN,减少层数和每层权向量长度。

3.针对神经网络,采用dropout方法:
间接减少参数数量,也相当于进行了数据扩增。弱化了各个参数(特征)之间的单一联系,使起作用的特征有更多组合,使从而模型不过分依赖某个特征。

4.提前停止训练:
也就是减少训练的迭代次数。从上面的误差率曲线图可以看出,理论上能够找到一个训练程度,此时验证集误差率最低,视为拟合效果最好的点。

5.多模型投票方法:
类似集成学习方法的思想,不同模型可能会从不同角度去拟合,互相之间取长补短,即使单独使用某个模型已出现过拟合,但综合起来却有可能减低过拟合程度,起到正则作用,提高了泛化效果。特别是使用多个非常简单的模型,更不容易产生过拟合。

以下是一系列常用的正则化方法:

秉承奥卡姆剃刀原理,许多正则化项(惩罚项)的引入,是为了使算法学习到更简单的模型,也就是让最终学习到的参数绝对值变小(即参数长度变短:shrinkage),因为这样可以让模型在较小的参数空间中搜寻最优参数,从而简化了模型。而且若sigmoid作为激活函数,当参数权值较小时,激活函数工作在线性区,此时模型的拟合能力较弱,也降低了过拟合的可能性。

从贝叶斯理论角度看,加入正则项相当于引入了一个参数的先验信息,即人为给参数的选择增加了一些规则(先验),把人们的知识数学化告诉给模型的损失函数,从而缩小了解空间倾向于产生唯一解,使拟合出错的概率变小,同时解决了逆问题的不适定性(多解问题)。不同的正则化项具有不同先验分布,具体介绍如下。

6.L0正则化:
损失函数后面加上在加入L0范数 λ||w||0λ||w||0,也就是权向量中非零参数的个数。
它的特点是可以实现参数的稀疏性,使尽可能多的参数值为0,这与稀疏编码的思想吻合。但它的缺点是在优化时是NP难问题,很难优化。因此实际任务中更常用L1范数。

7.L1正则化:
损失函数L0L0后面加上参数(权向量ww)的L1范数项:λ||w||1=λ∑i=1n||wi||1 , 其中 nn 是权向量 w 的长度(参数数量),λλ 是正则化参数,用来调和L0L0 与正则项,此时损失函数如下:

L=L0+λ||w||1L=L0+λ||w||1

L1正则项等价于先验概率服从拉普拉斯分布;此时若针对线性回归就是Lasso Regression。L1范数是L0范数的最优凸近似,比L0范数容易优化,而且也可以很好地实现参数稀疏性,常别称作“稀疏规则算子”,因此相对L0正则化更常用。同时L1和L0因为具有使参数稀疏的特点,常用于特征选择。

8.L2正则化:
损失函数L0L0后面加上参数L2范数的平方项:λ2n||w||22=λ2n∑ni=1w2iλ2n||w||22=λ2n∑i=1nwi2  ,其大小由参数weight-decay(权值衰减)调节,此时损失函数如下:

L=L0+λ2n||w||22L=L0+λ2n||w||22

其中分母有无nn均可,L2正则项等价于先验概率服从高斯分布;此时针对线性回归就是Ridge Regression,即常说的“岭回归”。与L0,L1不同的是,L2很难使某些参数达到0,它只能使参数接近0。如今在许多问题中,更常用L2正则是因为:一方面我们通常想考虑更多的参数对问题的影响(因此不能让参数稀疏),另一方面在优化时,L2范数有利于解决condition number: k(A)=||A||||A−1||  太大(远大于1)的情况下(此时存在某些参数,对结果有过大的影响)矩阵求逆很困难的问题,这使得优化求解变得更快更稳定。
现在有些任务中会同时使用L1和L2正则项,用各自的两个正则化参数去权衡“部分稀疏”与“整体接近0”这一对trade-off问题。
这里写图片描述
上图可以看出,服从拉普拉斯分布的L1正则项更倾向于产生稀疏参数,而服从高斯分布的L2正则项在0处相对比较平滑,在参数绝对值较大处抑制效果更好,使整体数据的分布更接近0。

9.(针对DNN)batch normalization:即BN,既能够提高泛化能力,又大大提高训练速度,现在被广泛应用在DNN中的激活层之前。BN的提出最初是针对DNN在训练过程中会出现数据内部的协方差偏移现象,导致输出数据分布发生额外的改变,并随着层数的增加偏移加剧,使得模型不得不根据输出分布的改变重新学习,这又导致训练速度减慢。
公式如下:
这里写图片描述
具体过程:首先对某层的输入样本做白化处理,等价于零均值化处理(均值为0,方差为1),使输入样本之间互不相关,且每层的输入服从相同分布,克服了内部协方差偏移的影响。采用分批处理数据的方式,减少了计算量。

主要优势:减小了梯度对参数大小和初始值的依赖,将参数值(特征)缩放在[0,1]区间(若针对Relu还限制了输出的范围),这样反向传播时梯度控制在1左右,使网络即使在较高学习率下也不易发生梯度爆炸或弥散(也预防了在使用sigmoid作为激活函数时训练容易陷入梯度极小饱和或极大的极端情况)。

画图解释机器学习中的过拟合和欠拟合,看不懂你打我 文章目录一张图看懂过拟合和欠拟合过拟合欠拟合最佳拟合过拟合原因以及解决办法欠拟合原因以及解决办法 一张图看懂过拟合和欠拟合 过拟合 通俗解释:对训练的数据支持的非常非常好 定义:一个假设在训练数据上能够获得比其他假设更好的拟合, 但是在测试数据集上却不能很好地拟合数据,此时认为这个假设出现了过拟合的现象。(模型过于复杂) 分类的训练数据: 下一次给你相同的数据,也测试的很好,准确率100% 来... 阅读详情

相关推荐

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

@创建于:2022.05.27 @修改于:2022.05.27 文章目录1、过拟合与欠拟合2、欠拟合2.1 出现的原因2.2 解决的办法3、过拟合3.1 出现的原因3.2 解决的办法4. Early stopping5、Dropout6、L1 和 L2 正则化7、参考资料 1、过拟合与欠拟合 机器学习中模型的泛化能力强的模型才是好模型。对于训练好的模型: 若在训练集表现差,不必说在测试集表现同样会很差,这可能是欠拟合导致; 若模型在训练集表现非常好,却在测试集上差强人意,则这便是过拟合导致的。 过拟合

chenhepg的博客 9455

神经网络优化思路

一,通用优化技巧 二,目标检测优化 2.1 如何更好的检测小目标 常用的方法有: 第一种:图像金字塔(不常用),将输入图片放缩成不同比例,将预测结果融合得到最终输出 第二种:特征融合,融合 Encoder阶段的多尺度特征和Decoder上采样特征以恢复空间分辨率 第三种:在原始模型的顶端叠加额外的模块,以捕捉像素间长距离信息。例如Dense CRF,或者叠加一些其他的...

lqql2012的博客 3001

过拟合/欠拟合、偏差/方差

目录基本概念机器学习的泛化能力过拟合、欠拟合概念模型复杂度↑\uarr↑的变化与【偏差/方差】的关系偏差方差方差和偏差的关系【过/欠拟合】与【方差/偏差】的关系偏差-方差折衷【解决办法】欠拟合【解决办法】过拟合参考 基本概念 偏差:度量了学习算法的期望预测与真实结果的偏离程度, 即刻画了学习算法本身的拟合能力。 方差:度量了同样大小的训练集的变动所导致的学习性能的变化, 即刻画了数据扰动所造成的影响。 噪声:描述了在当前任务上,任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度。 经验误

褚骏逸的学习之路 3283

深度学习神经网络:改善与优化的方法

训练集 验证集 测试集 公认的比较好的比例是3:1:1,在数据量不是特别大的时候 当数据特别大的时候根据情况考虑 注意数据的分布性问题 训练集(train set) —— 用于模型拟合的数据样本。 验证集(development set)—— 是模型训练过程中单独留出的样本集,它可以用于调整模型的超参数和用于对模型的能力进行初步评估。 测试集 —— 用来评估模最终模型的泛化能力。但不能作为调参、选择特征等算法相关的选择的依据。 偏差和方差 偏差大:过度拟合 训练集误差小 验证集误差大 方差大:欠拟合 训练集

weixin_42376458的博客 4231

过拟合/欠拟合

训练集上的误差非常低,而测试集上的误差显著更高,表明模型对训练数据过度拟合。:训练误差较低,测试误差稍高,但没有严重的差距,模型可能过拟合了一些细节,但整体仍有一定的泛化能力。

weixin_42430979的博客 1059

STM8库函数开发手册(3) //UART1、内部EEPROM、FLASH操作库、IIC(硬、软)

STM8S 微控制器家族的通用同步异步收发器(UART1,UART2 或者UART3)提供了一种灵活的方法与使用工业标准NRZ 异步串行数据格式的外部设备之间进行全双工数据交换。STM8 的UART 提供范围的波特率选择,并且支持多处理器通讯。UART 也支持LIN(局部互联网)协议版本1.3,2.0,和2.1 以及在主模式下的J2602。 UART1 和UAR...

finedayforu的博客 2520

过拟合、欠拟合和正则化

很好的拟合训练集,所以代价函数J(θ)非常接近于0或者等于0。但是这样的曲线由于它千方百计地拟合训练集中地数据,就会导致它无法泛化到新的样本中。图1.通过图中的数据可以明显看出随着房子面积增大,住房价格逐渐稳定,因此该算法没有很好的拟合训练集,称为欠拟合或者叫做高偏差(后面会提到),当参数值越小,就意味着更简单的假设函数模型。概括的说过拟合的问题,过拟合将会出现在变量过多的时候,这时候训练出来的假设函数。图2.曲线较好的穿过了每一个点。因此该算法较好的拟合了训练集。新样本:就是那些没有出现在训练集的数据。

分享笔记 522

[RK3399][Android7.1] 调试笔记 --- 编译GSL5680 touch提示错误

Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83 现象: 之前在rk3288平台上使用过GSL5680的Touch,现在移植过来一直报如下错误: make[1]: `include/generated/vdso-offsets.h' is up to date. CHK include/generated/compi...

Kris Fei's blog 1056

过拟合与欠拟合

目录1. 过拟合1.1 过拟合的定义1.2 过拟合的原因1.3 过拟合的解决办法2. 欠拟合2.1 欠拟合的定义2.2 欠拟合的原因2.3 欠拟合的解决办法3. 面试题3.1 从Bagging和正则化的角度理解Dropout? 1. 过拟合 1.1 过拟合的定义 定义1(摘自周志华机器学习):当学习器把训练样本学的“太好”了的时候,很可能已经把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质,这样就会导致泛化性能下降,这种现象称为过拟合。 定义2:具体表现就是最终模型在训练集上效果好;在测试集上效

qq_42012732的博客 2万+

Ubuntu HackRF One、GNU Radio、Gqrx相关环境搭建

本文介绍Ubuntu HackRF One、GNU Radio、Gqrx相关环境搭建方法。

无线通信实验室 1万+

细胞膜电学特性的分数阶微积分建模

分数阶微积分在细胞膜电学特性建模中的应用主要体现在对细胞膜的电容行为和神经元放电活动的更精确描述上。

冰河世纪20的博客 623

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

在讲解之前,小编必须先陈述这样一个客观事实,就是在模型训练过程中,过拟合或者欠拟合现象基本上可以看作是一个必然会发生的事件,因为我们将不同算法模型应用在同一种数据上构建某一类策略时,最终会挑出表现最好的算法模型,无论这个技术复杂与否,这个过程本身就在过拟合。挑出来的算法模型比其它模型更好,很可能是因为它对样本数据内的噪音刻画的更精准,而非发现了一些被其他策略忽视到的真实存在于数据之间的因果关系。总之,过拟合或者欠拟合现象在模型训练过程中是不可避免的,但是可以通过一些方法缓解这种现象的发生。.........

Mike_honor的博客 1万+

Redis TLS 加密传输实战:从证书生成到安全配置

本文详细介绍了为Redis启用TLS加密传输的完整实战流程。从阐述TLS加密的必要性开始,逐步指导读者生成自签名CA和服务器证书,并深入解析Redis服务端的核心安全配置,包括端口设置、认证模式与性能优化。最后,提供了主流客户端连接示例及生产环境下的排错与运维最佳实践,帮助构建安全的Redis通信通道。

weixin_29274969的博客 516

欠拟合、过拟合及其解决方法

在我们机器学习或者训练深度神经网络的时候经常会出现欠拟合和过拟合这两个问题,但是,一开始我们的模型往往是欠拟合的,也正是因为如此才有了优化的空间,我们需要不断的调整算法来使得模型的表达能拿更强。但是优化到了一定程度就需要解决过拟合的问题了,这个问题也在学术界讨论的比较多。(之前搜了很多有的博客,讲的都不太全,因此我重新整理总结了一遍,同时加入了自己的理解,方便自己和后来人查阅) 1. 欠

willduan的博客 13万+

【Unity优化篇】| Unity3D场景 常用优化策略,遮挡剔除、层消隐距离技术 和 LOD多层次细节

本篇文章来简单介绍一下 Unity中几种常用3D场景优化策略 方法 对于整个项目来说,本文中出现的方法也只是冰山一角,慢慢积累学习吧! 内容包括遮挡剔除(Occlusion Culling)、层消隐距离技术 和 LOD多层次细节

努力前行,总会成为自己心中的那道光 1万+

定位分析RCU stall问题

在编译内核时打开或者在启动参数中增加这样统计信息是在采样周期中收集的。其中number行分别是发生stalled的cpu上的硬中断,软中断,和上下文的切换次数cputime行的前三列分别是硬中断,软中断和任务消耗的cpu时间,单位为ms.最后一个数字是统计的周期时间(ms).因为用户态的任务通常不会引起RCU CPU stalls,所以任务通常是内核任务,这也是为什么只统计system cpu的原因.

happyAnger6的专栏 1994

【理解机器学习中的过拟合与欠拟合】

定义:过拟合就是模型“学得太多了”,它不仅学会了数据中的规律,还把噪声和细节当成规律记住了。这就好比一个学生在考试前死记硬背了答案,但稍微换一道题就不会了。过拟合:模型对训练数据“学得太死”,测试数据表现很差。欠拟合:模型对数据“学得太少”,训练和测试表现都不好。

专注技术的博主 5063

基于 MFC 和 C++ 的语音识别客户端实现方案

语音 SDK:[Microsoft Speech SDK](https://learn.microsoft.com/zh-cn/azure/cognitive-services/speech-service/speech-sdk)(建议使用最新版)1. **Azure 语音服务密钥**:需要在 [Azure 门户](https://portal.azure.com/) 中创建语音资源,获取密钥和区域(如 `eastasia`),替换代码中的占位符。

寒寒豆豆软件公司的博客 155

欠拟合、过拟合判断方法

定义 过拟合: 一个假设在训练数据上能够获得比其他假设更好的拟合, 但是在测试数据集上却不能很好地拟合数据,此时认为这个假设出现了过拟合的现象。(模型过于复杂)(高方差) 欠拟合: 一个假设在训练数据上不能获得更好的拟合,并且在测试数据集上也不能很好地拟合数据,此时认为这个假设出现了欠拟合的现象。(模型过于简单)(高偏差) 通过Loss判断 训练集loss 不断下降,验证集loss不断下降:网络正常,仍在学习。 训练集loss 不断下降,验证集loss趋于不变,可能出现过拟合,数据分布不均匀。 训练集los

小新 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

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

1. 什么是欠拟合和过拟合 先看三张图片,这三张图片是线性回归模型 拟合的函数和训练集的关系 第一张图片拟合的函数和训练集误差较大,我们称这种情况为欠拟合 第二张图片拟合的函数和训练集误差较小,我们称这种情况为合适拟合 第三张图片拟合的函数完美的匹配训练集数据,我们称这种情况为过拟合 类似的,对于逻辑回归同样也存在欠拟合和过拟合问题,如下三张图 2. 如何解决欠拟合...

飘过的春风 3万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

欠拟合与过拟合

本文介绍欠拟合与过拟合的原理及其各种情况

逐梦苍穹的博客 5603

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

过拟合和欠拟合

1  什么是过拟合通俗的来讲,过拟合就是对训练集学的太好了。当在训练集上成功率增加而在测试集上成功率减少,那么就认为出现了过拟合。一般来说,出现过拟合是训练样本过少而需要训练的参数过多解决过拟合的办法: 增加训练样本,L1或者L2正则化,dropout2  什么是欠拟合就是学习的不够好,一般出现在训练样本过大而需要训练的参数过少解决欠拟合的办法: 将网络参数整多一些。完整版如下:1. 欠拟合:  ...

一路向北 4894

【机器学习】过拟合与欠拟合

在机器学习模型的训练过程中,**过拟合**和**欠拟合**是两个常见问题。过拟合会导致模型在训练集上表现优异,但在新数据上表现不佳;而欠拟合则使得模型在训练集上也无法充分拟合数据,表现较差。本教程中,我们将从基础概念出发,通过梯度下降算法手写模型拟合过程,逐步实现正则化以防止过拟合,并使用 `numpy` 进行实现,最后展示 `sklearn` 的简便实现。

2303_80346267的博客 1968

怎么解决过拟合与欠拟合

一.过拟合 在训练数据不够多时,或者over-training时,经常会导致over-fitting(过拟合)。其直观的表现如下图所所示。 随着训练过程的进行,模型复杂度,在training data上的error渐渐减小。可是在验证集上的error却反而渐渐增大——由于训练出来的网络过拟合了训练集,对训练集以外的数据却不work。 在机器学习算法中,我们经常将原始数据集分为三部分:训练...

u010899985的博客 6万+
上一篇: 参数随机初始化方法:xavier_init()
下一篇: 正则化原理总结
nini_coded
博客等级 码龄10年 62粉丝 27原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值