机器学习之过拟合与欠拟合以及偏差-方差分解
1、过拟合
所谓过拟合就是:把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质,这样就会导致训练出的模型其泛化能力降低,这就是过拟合。
如何解决?
1)Early stopping
Early stopping便是一种通过提前截断迭代次数来防止过拟合的方法,即在模型对训练数据集迭代收敛之前停止迭代来防止过拟合。
Early stopping方法的具体做法是,在每一个Epoch结束时(一个Epoch集为对所有的训练数据的一轮遍历)计算validation data的accuracy,当accuracy不再提高时,就停止训练。这种做法很符合直观感受,因为accurary都不再提高了,在继续训练也是无益的,只会提高训练的时间。那么该做法的一个重点便是怎样才认为validation accurary不再提高了呢?并不是说validation accuracy一降下来便认为不再提高了,因为可能经过这个Epoch后,accuracy降低了,但是随后的Epoch又让accuracy又上去了,所以不能根据一两次的连续降低就判断不再提高。一般的做法是,在训练的过程中,记录到目前为止最好的validation accuracy,当连续10次Epoch(或者更多次)没达到最佳accuracy时,则可以认为accuracy不再提高了。此时便可以停止迭代了(Early Stopping)。这种策略也称为“No-improvement-in-n”,n即Epoch的次数,可以根据实际情况取,如10、20、30……
简单来说就是训练时设定一个训练轮的次数,每一轮训练结束后计算一次准确率,纪录最高准确率,若又经过多轮训练准确率不再提高,则说明原来最高准确率那轮可以提前停止修改总训练轮数。
2)数据集扩增
通俗得讲,数据机扩增即需要得到更多的符合要求的数据,即和已有的数据是独立同分布的,或者近似独立同分布的。一般有以下方法:
- 从数据源头采集更多数据
- 复制原有数据并加上随机噪声
- 重采样
- 根据当前数据集估计数据分布参数,使用该分布产生更多数据等
3)正则化
即在对模型的代价函数(cost function)加上正则项从而形成目标函数(objective function)。
描述正则化及其能预防过拟合原因很好的总结
http://blog.csdn.net/heyongluoyao8/article/details/49429629
加入正则化项相当于对权重系数的更新添加了约束,所以说正则化项相当于模型的先验概率(相当于一个约束)。
参考以上网址分析L1以及L2正则化为什么能够防止过拟合
L1正则化为什么可以防止过拟合?
L1正则(即为在代价函数后面加上L1范数组成目标函数。L1范数为求各个元素的绝对值之和)
L1正则是基于L1范数,即在目标函数后面加上参数的L1范数和项,即参数绝对值和与参数的积项,即
其中C0代表原始的代价函数,n是样本的个数,λ就是正则项系数,权衡正则项与C0项的比重。后面那一项即为L1正则项。
在计算梯度时,w的梯度变为:
其中,sgn是符号函数
其中sgn是一个符号函数,其中,梯度下降算法中,α<0,β<0,而在梯度上升算法中则相反。
从上式可以看出,当w为正时,更新后w会变小;当w为负时,更新后w会变大;因此L1正则项是为了使得那些原先处于零(即|w|≈0)附近的参数w往零移动,使得部分参数为零,从而降低模型的复杂度(模型的复杂度由参数决定。同时权重系数w≈0说明此特征和最终结果关系不大,可能是某一样本本身的特征而不是训练集中的数据普遍具有的特性,故不应加入整体模型的训练中,所以把其设为0可以提高模型的泛化能力),从而防止过拟合,提高模型的泛化能力。
L2正则化为什么可以防止过拟合?
L2正则(即为在代价函数后面加上L2范数组成目标函数。L2范数为)
L2正则是基于L2范数,即在目标函数后面加上参数的L2范数和项,即参数的平方和与参数的积项,即:
其中C0代表原始的代价函数,n是样本的个数,与L1正则化项前面的参数不同的是,L2项的参数乘了1/2,是为了便于计算以及公式的美感性,因为平方项求导有个2,λ就是正则项系数,权衡正则项与C0项的比重。后面那一项即为L2正则项。
其中,梯度下降算法中,α<0,β<0,而在梯度上升算法中则相反。注意这里后的W实际是||w||即为w的L2范数
L2正则项起到使得参数w变小加剧的效果,更小的参数值w意味着模型的复杂度更低,对训练数据的拟合刚刚好(奥卡姆剃刀),不会过分拟合训练数据,从而使得不会过拟合,以提高模型的泛化能力。
4)Dropout
深度学习中用,随机的使隐藏层中的节点失活
2、欠拟合
所谓欠拟合:就是模型没有很好地捕捉到数据特征,不能够很好地拟合数据。
如何解决?
1)添加其他特征项
有时候我们模型出现欠拟合的时候是因为特征项不够导致的,可以添加其他特征项来很好地解决。例如,“组合”、“泛化”、“相关性”三类特征是特征添加的重要手段
2)减少正则化参数
正则化的目的是用来防止过拟合的,但是现在模型出现了欠拟合,则需要减少正则化参数。
- 什么是偏差-方差分解,与欠拟合与过拟合有什么联系?
3、偏差-方差分解是解释学习算法泛化性能的一种重要工具,它试图对学习算法的期望泛化错误率进行分解。
泛化误差=偏差+方差+噪声
一般偏差与方差是有冲突的,这称为偏差-方差窘境。当训练不足时,学习器的拟合能力不强,训练数据的扰动不足以使学习器产生显著的变化,这时候偏差较大,偏差主导了泛化错误率,同时会导致欠拟合。随着训练程度的加深,学习器的拟合能力逐渐增强,训练数据发生的扰动逐渐能被学习器学到,方差变大,逐渐主导了泛化错误率,一定程度上会导致过拟合。
即为通过偏差-方差分解后,偏差主导泛化错误率时会导致欠拟合,方差主导泛化错误率时会导致过拟合。
偏差度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力;方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响。噪声则表达了当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度。
转载于:https://www.cnblogs.com/dyl222/p/11000882.html
机器学习之过拟合与欠拟合以及偏差-方差分解相关推荐
- 机器学习中过拟合、欠拟合与方差、偏差的关系是什么?
机器学习中过拟合.欠拟合与方差.偏差的关系是什么? 过拟合(overfitting)与欠拟合(underfitting)是统计学中的一组现象.过拟合是在统计模型中,由于使用的参数过多而导致模型对观测数 ...
- 机器学习回归算法—性能评估欠拟合与过拟合
机器学习中的泛化,泛化即是,模型学习到的概念在它处于学习的过程中时模型没有遇见过的样本时候的表现.在机器学习领域中,当我们讨论一个机器学习模型学习和泛化的好坏时,我们通常使用术语:过拟合和欠拟合.我们 ...
- 百面机器学习 #2 模型评估:07 过拟合和欠拟合及其常用解决方法
如何有效地识别"过拟合"和"欠拟合"现象,并有针对性地进行模型调整,是不断改进机器学习模型的关键. 过拟合 模型对于训练数据拟合呈过当的情况 反映到评估指标上, ...
- 机器学习算法中的过拟合与欠拟合(转载)
在机器学习表现不佳的原因要么是过度拟合或欠拟合数据. 1.机器学习中的逼近目标函数过程 监督式机器学习通常理解为逼近一个目标函数(f)(f),此函数映射输入变量(X)到输出变量(Y). Y=f(X)Y ...
- 机器学习笔记(通俗易懂)---监督学习介绍:分类与回归,泛化~过拟合与欠拟合(2)
机器学习笔记-监督学习介绍:分类与回归,泛化~过拟合与欠拟合(2) 明天开始就打数模美赛了,今天简单地介绍一下监督学习 以下都是本人在学习机器学习过程中的一些心得和笔记,仅供参考 文章目录 机器学习笔 ...
- 机器学习中的过拟合与欠拟合
目录 一.什么是过拟合与欠拟合 二.原因及解决方法 三.正则化类别 四.拓展-原理 问题:训练数据训练的很好啊,误差也不大,为什么在测试集上面有 问题呢? 当算法在某个数据集当中出现这种情况,可能就出 ...
- 【机器学习】过拟合与欠拟合
我们在训练机器学习模型或者深度学习神经网络中经常会遇到过拟合与欠拟合的问题,接下来就对这两个问题进行简单介绍,并举出几种相应的解决办法. 1.过拟合与欠拟合 过拟合是指训练数据上能够获得比其他假设更好 ...
- 机器学习基础概念——过拟合和欠拟合
欢迎关注,敬请点赞! 机器学习基础概念--过拟合和欠拟合 1. 基本概念 1.1 偏差和方差 2. 欠拟合和过拟合 2.1 学习曲线 2.2 复杂程度曲线 2.3 支持向量机的过拟合和欠拟合 2.4 ...
- 机器学习之过拟合和欠拟合
文章目录 前言 什麽是过拟合和欠拟合? 过拟合和欠拟合产生的原因: 欠拟合(underfitting): 过拟合(overfitting): 解决欠拟合(高偏差)的方法 1.模型复杂化 2.增加更多的 ...
最新文章
- [云炬创业学笔记]第一章创业是什么测试6
- sklearn、theano、TensorFlow 以及 theras 的理解
- pythonmysql部署_详解centos7+django+python3+mysql+阿里云部署项目全流程
- IDEA配置JUnit进行单元测试
- 西安后宰门小学_【云端论坛】走向未来的墙中老校 ——后宰门小学“名校+”教育集团云论坛精彩绽放...
- 继承ActionSupport例子展示
- 旅游网之后台管理系统
- 043_Unicode对照表九
- [PTA] 7-11 计算平均分
- 今日头条2018年1月8日面试
- 高斯滤波/高斯模糊(Gaussian blur)和高斯噪声(Gaussian noise)
- 相关性扫描匹配CSM与分支限界
- java 判断图片否旋转,Java实现图片任意角度旋转
- Shell 掐头去尾法
- 通过USGS批量下载Sentinel2数据
- matlab串口陀螺仪,matlab通过串口接收ARM7外设陀螺仪数据并绘图有困难急求解答...
- 2021年安全员-A证考试内容及安全员-A证模拟考试
- utrack调试 艾肯icon_艾肯(iCON)Utrack声卡K歌设置图文教程
- 斩获技术向善奖,云开发上榜 2020 中国技术品牌影响力企业
- 5G Massive MIMO的基础知识