我们在训练机器学习模型或者深度学习神经网络中经常会遇到过拟合与欠拟合的问题,接下来就对这两个问题进行简单介绍,并举出几种相应的解决办法。

1、过拟合与欠拟合

过拟合是指训练数据上能够获得比其他假设更好的拟合, 但是在训练数据外的数据集上却不能很好地拟合数据,此时认为这个假设出现了过拟合的现象。出现这种现象的主要原因是训练数据中存在噪音或者训练数据太少。
欠拟合就是指我们训练的模型要求过于宽泛无法达到我们预期的效果正确率低表达能力差。
用一个回归问题来说明如下图所示

2、过拟合解决办法

数据清洗

产生过拟合的原因可能是由数据噪声干扰过多导致,所以可选择重新进行数据清洗

增加训练集

模型表达能力过强很可能是由于训练集占比过少导致的,所以增加训练集在一定程度上提高模型的泛化能力

dropout方法

dropout方法在神经网络里面经常使用,随着神经网络参数的增加使得过拟合的可能性变大所以使用dropout会选择性失活n个神经元,削弱神经元之间的联合适应性从而提高泛化能力

正则化

首先举一个过拟合的例子

根据上面的图片我们知道所谓的过拟合就是对于当前可见的数据盲目的自信,如上图所示正常来说我们是希望曲线拟合为蓝色所示的直线能够很好的表达数据的分布泛化能力很好使我们所希望的,但是过拟合了之后就会因为x2与x3x2与x3x^2与x^3完全拟合数据点变得弯来弯去。这个时候我们发现了问题所在要想解决过拟合,就要从这些非线性强的参数入手。

假设我们拟合的曲线是 y=θ0+θ1x+θ2x2+θ3x3+θ4x4y=θ0+θ1x+θ2x2+θ3x3+θ4x4y=\theta_0+\theta_1x+\theta_2x^2+\theta_3x^3+\theta_4x^4
所以假设误差为J(θ)=[yθ(x)−y]2J(θ)=[yθ(x)−y]2J(\theta)=[y_\theta(x)-y]^2因为在通过损失函数减少误差的过程中我们实际改变的是权重θθ\theta,而且非线性影响越大的参数权重改变的越多,所以这个时候我们就可以在损失函数上加上惩罚项去限制那些非线性参数的改变,然而根据惩罚项的程度我们可以分为L1正则化与L2正则化
L1:J(θ)=[yθ(x)−y]2+[|θ1|+|θ2|+|θ3|+|θ4|]J(θ)=[yθ(x)−y]2+[|θ1|+|θ2|+|θ3|+|θ4|]J(\theta)=[y_\theta(x)-y]^2+[|\theta_1|+|\theta_2|+|\theta_3|+|\theta_4|]
L2:J(θ)=[yθ(x)−y]2+[θ21+θ22+θ23+θ24]J(θ)=[yθ(x)−y]2+[θ12+θ22+θ32+θ42]J(\theta)=[y_\theta(x)-y]^2+[\theta_1^2+\theta_2^2+\theta_3^2+\theta_4^2]
此处科普一下L1和L2范数
L0范数是指向量中非0的元素的个数。L1范数是指向量中各个元素绝对值之和,也叫“稀疏规则算子”。L2范数是指向量中个元素的平方求和开平方,这样可以让每个权重都接近于0但不等于0。所以就能起到限制非线性参数改变模型的作用。

可以将L1与L2用图像表示,因为L1是绝对值所以图像就是对称的,L2是平方和所以为圆

蓝色的椭圆为J(θ)J(θ)J(\theta)黄色的线为正则项,二者交点就是误差和最小的地方。因为我们可以看出L1正则化中只保留了θ1θ1\theta_1的特征所以不是很稳定。
最后为了控制正则化的强度会加上一个参数λλ\lambda并且通过交叉验证 cross validation 来选择合适的λλ\lambda
J(θ)=[yθ(x)−y]2+λ∑θpiJ(θ)=[yθ(x)−y]2+λ∑θipJ(\theta)=[y_\theta(x)-y]^2+\lambda\sum\theta_i^p
其中p表示正则化程度

【机器学习】过拟合与欠拟合相关推荐

  1. 机器学习中过拟合、欠拟合与方差、偏差的关系是什么?

    机器学习中过拟合.欠拟合与方差.偏差的关系是什么? 过拟合(overfitting)与欠拟合(underfitting)是统计学中的一组现象.过拟合是在统计模型中,由于使用的参数过多而导致模型对观测数 ...

  2. 百面机器学习 #2 模型评估:07 过拟合和欠拟合及其常用解决方法

    如何有效地识别"过拟合"和"欠拟合"现象,并有针对性地进行模型调整,是不断改进机器学习模型的关键. 过拟合 模型对于训练数据拟合呈过当的情况 反映到评估指标上, ...

  3. 机器学习算法中的过拟合与欠拟合(转载)

    在机器学习表现不佳的原因要么是过度拟合或欠拟合数据. 1.机器学习中的逼近目标函数过程 监督式机器学习通常理解为逼近一个目标函数(f)(f),此函数映射输入变量(X)到输出变量(Y). Y=f(X)Y ...

  4. 机器学习笔记(通俗易懂)---监督学习介绍:分类与回归,泛化~过拟合与欠拟合(2)

    机器学习笔记-监督学习介绍:分类与回归,泛化~过拟合与欠拟合(2) 明天开始就打数模美赛了,今天简单地介绍一下监督学习 以下都是本人在学习机器学习过程中的一些心得和笔记,仅供参考 文章目录 机器学习笔 ...

  5. 机器学习中的过拟合与欠拟合

    目录 一.什么是过拟合与欠拟合 二.原因及解决方法 三.正则化类别 四.拓展-原理 问题:训练数据训练的很好啊,误差也不大,为什么在测试集上面有 问题呢? 当算法在某个数据集当中出现这种情况,可能就出 ...

  6. 机器学习基础概念——过拟合和欠拟合

    欢迎关注,敬请点赞! 机器学习基础概念--过拟合和欠拟合 1. 基本概念 1.1 偏差和方差 2. 欠拟合和过拟合 2.1 学习曲线 2.2 复杂程度曲线 2.3 支持向量机的过拟合和欠拟合 2.4 ...

  7. 机器学习之过拟合和欠拟合

    文章目录 前言 什麽是过拟合和欠拟合? 过拟合和欠拟合产生的原因: 欠拟合(underfitting): 过拟合(overfitting): 解决欠拟合(高偏差)的方法 1.模型复杂化 2.增加更多的 ...

  8. 机器学习考点---过拟合与欠拟合、CNN原理......

    2 . 与数据相关的内容:数据的标注来源.规范化.增广.噪声处理怎么处理?数据有噪声好不好? 测试集.验证集.训练集各自的作用: 训练集:参数调优. 验证集:超参.模型的选择,模型评估,正则化 . 为 ...

  9. 机器学习/算法面试笔记1——损失函数、梯度下降、优化算法、过拟合和欠拟合、正则化与稀疏性、归一化、激活函数

    正值秋招,参考网络资源整理了一些面试笔记,第一篇包括以下7部分. 1.损失函数 2.梯度下降 3.优化算法 4.过拟合和欠拟合 5.正则化与稀疏性 6.归一化 7.激活函数 损失函数 损失函数分为经验 ...

最新文章

  1. mysql plsql 循环_PL/SQL for...loop循环语句
  2. ECharts的简单使用过程
  3. mfc 消息消息队列概念_必看入门秘籍——解密原理:消息中间件之RabbitMQ
  4. 宝山区佳力图服务器空调维修价格,成都佳力图空调维修师傅
  5. 在Windows上面安装多个Memcached
  6. HDU 1231.最大连续子序列-dp+位置标记
  7. [Asp.net]Uploadify上传大文件,Http error 404 解决方案 - wolfy
  8. tensorflow之成品模型
  9. 微信小程序打开另一个小程序
  10. java计算机毕业设计民宿运营管理网站源码+mysql数据库+系统+lw文档+部署
  11. 单例模式只会懒汉饿汉?读完本篇让你面试疯狂加分
  12. cdn缓存及缓存的清理
  13. RGB和YUV视频存储格式
  14. 华中科技大学计算机组成,华中科技大学计算机组成原理.pptx
  15. 走进GBase 8s之高可用功能(二)HAC灾备高可用
  16. 【白帽优化大师】免费分享垃圾站截留别人网站流量技术
  17. Linux安装Redis并且修改端口号,redis-6.2.2
  18. 《穷爸爸富爸爸》良句收录和读后感想
  19. 撕下 Coding iPad 悬赏单的小小感触
  20. ovftool工具的使用,保姆级教程。

热门文章

  1. 键盘右边数字键不能用,只能当方向键使用
  2. 《C++标准库》学习笔记 — STL —流
  3. powershell过滤查询结果
  4. 微信公众平台开发实战
  5. 英特尔深度相机- Python 包装器的示例代码
  6. 微信瑞文智力测试1分_答完瑞文智力测试的题之后,怎样看智商是多少?
  7. 使用vue-cli2.x入门简单demo游戏
  8. Python调用HEG批量转换hdf影像为tiff
  9. jetson-inferenc显示fatal error: connect_parts.hpp
  10. python中and、or、not、in和not in五种运算用法