之前在《过拟合和欠拟合(Over fitting & Under fitting)》一文中简要地介绍了过拟合现象,现在来详细地分析一下过拟合产生的原因以及相应的解决办法。

过拟合产生的原因:

第一个原因就是用于训练的数据量太少。这个很好理解,因为理想的训练数据是从所有数据中抽取的无偏差抽样。如果训练数据量较少,那么很有可能训练数据就不能完全反映所有数据的规律。因此模型很可能学习到的是一些特殊的例子,而不是真实的规律。

之前说过,过拟合就是模型把噪音也学习了进去。其中一个噪音就是大家所熟知的随机产生的噪音(stochastic noise),比如说测量误差,记录误差等等,这也是第二个原因。

第三个原因是目标函数的复杂度很高,目标函数和假设函数之间的差距也可以看作是一种噪音,称为确定性噪音(deterministic noise)。在训练数据有限的情况下,如果目标函数很复杂,那么就算假设函数与之很接近,也会产生较大的噪音。

下图展现了在训练数据有限的情况下,目标函数和假设函数之间的差距。

  • 左图:目标函数是一个十次多项式函数,根据目标函数产生了15个数据点,数据产生时加入了一些随机噪音,分别使用二次多项式(绿线)和十次多项式(红线)拟合
  • 右图:目标函数是一个五十次多项式函数,根据目标函数产生了15个数据点,数据产生时不加入噪音,分别使用二次多项式(绿线)和十次多项式(红线)拟合

经过试验,这两个场景都是十次多项式的训练误差小,但是其验证误差要比二次多项式的大很多。这说明十次多项式发生了过拟合现象。

下图是用二次多项式和十次多项式拟合的学习曲线:

可以看出,十次多项式函数的训练误差一直要比二次多项式函数的低,但是当训练数据有限时,十次多项式函数的验证误差要比二次多项式函数的高不少。

一般我们会认为假设函数离目标函数越接近越好,但是显然,在训练数据有限的情况下,这种想法是不正确的。因此,当训练数据有限时,应该用简单的模型来拟合,这样还有可能会取得不错的效果。之前是不是常听到别人说线性回归模型虽然很简单,但是往往会取得不错的预测效果?这也正说明了这个道理。

下图是当目标函数复杂度固定时,样本量与噪音强度对过拟合程度的影响(深红色表示过拟合程度很高):

可以看出,样本量越少,噪音强度越高,过拟合程度也就越高。

下图是当噪音强度固定时,样本量与目标函数复杂度对过拟合程度的影响(深红色表示过拟合程度很高):

可以看出,样本量越少,目标函数复杂度越高,过拟合程度也就越高。

这两张图的区别在于左下角,可以看到,第二张图,当样本量很少,目标函数复杂度很低时,也会产生过拟合现象。这是因为使用了过于复杂的模型来拟合数据,这也带出了第四个原因---模型复杂度比目标函数高。

总结一下过拟合产生的原因:

  • 训练数据太少
  • 数据噪音强度大:随机噪音(stochastic noise),确定性噪音(deterministic noise)
  • 模型复杂度太高

解决办法:

  • 增加训练数据量 --- 一般情况下,由于经济条件的限制,我们没有办法获得更多的训练数据。如果没有办法获得更多的训练数据,那么可以对已有的样本进行简单的变换,从而获得更多的样本。比如识别手写数字时,可以把数字稍作倾斜,又或者识别图像时,可以对图像做翻转,这样特征发生改变,但是目标保持不变,这样就可以当成产生一些新的样本,称为虚拟样本。但是需要注意,这种方法产生的数据不一定符合原有数据的分布,因此新构建的虚拟样本要尽量合理。
  • 减少随机噪音 --- 可以清洗数据(比如:修正不准确的点,删除不准确的点,等),但是如果这些点相比训练数据很少的话,这种处理产生的效果不太明显。
  • 减少确定性噪音,降低模型复杂度 --- 使用简单的模型拟合数据;对现有模型进行正则化。

过拟合产生的原因(Root of Overfitting)的更多相关文章

  1. 机器学习(四)正则化与过拟合问题 Regularization / The Problem of Overfitting

    文章内容均来自斯坦福大学的Andrew Ng教授讲解的Machine Learning课程,本文是针对该课程的个人学习笔记,如有疏漏,请以原课程所讲述内容为准.感谢博主Rachel Zhang 的个人 ...

  2. Ng第七课:正则化与过拟合问题 Regularization/The Problem of Overfitting

    7.1  过拟合的问题 7.2  代价函数 7.3  正则化线性回归 7.4  正则化的逻辑回归模型 7.1  过拟合的问题 如果我们有非常多的特征,我们通过学习得到的假设预测可能能够非常好地适应训练 ...

  3. 过度拟合(overfitting)

    我们之前解决过一个理论问题:机器学习能不能起作用?现在来解决另一个理论问题:过度拟合. 正如之前我们看到的,很多时候我们必须进行nonlinear transform.但是我们又无法确定Q的值.Q过小 ...

  4. AI - TensorFlow - 过拟合(Overfitting)

    过拟合 过拟合(overfitting,过度学习,过度拟合): 过度准确地拟合了历史数据(精确的区分了所有的训练数据),而对新数据适应性较差,预测时会有很大误差. 过拟合是机器学习中常见的问题,解决方 ...

  5. TensorFlow实战第六课(过拟合)

    本节讲的是机器学习中出现的过拟合(overfitting)现象,以及解决过拟合的一些方法. 机器学习模型的自负又表现在哪些方面呢. 这里是一些数据. 如果要你画一条线来描述这些数据, 大多数人都会这么 ...

  6. 防止过拟合的方法 预测鸾凤花(sklearn)

    1. 防止过拟合的方法有哪些? 过拟合(overfitting)是指在模型参数拟合过程中的问题,由于训练数据包含抽样误差,训练时,复杂的模型将抽样误差也考虑在内,将抽样误差也进行了很好的拟合. 产生过 ...

  7. TensorFlow从1到2(八)过拟合和欠拟合的优化

    <从锅炉工到AI专家(6)>一文中,我们把神经网络模型降维,简单的在二维空间中介绍了过拟合和欠拟合的现象和解决方法.但是因为条件所限,在该文中我们只介绍了理论,并没有实际观察现象和应对. ...

  8. matlab函数拟合

    1 函数拟合 函数拟合在工程(如采样校正)和数据分析(如隶属函数确定)中都是非常有用的工具.我这里将函数拟合分为三类:分别是多项式拟合,已知函数类型的拟合和未知函数类型的拟合.matlab中关于函数的 ...

  9. mysql部署后无法远程连接的原因(错误代码10061),服务监听127.0.0.1和0.0.0.0的区别

    在Ubuntu上部署mysql服务并添加了一个非root用户后,发现无法远程连接, Navicat连接mysql出现2003——can't connect to mysql server on loc ...

随机推荐

  1. 笔记:npm常见错误

    常见错误 破坏的npm安装 随机错误 找不到兼容版本 权限错误 Error: ENOENT, stat 'C:\Users\<user>\AppData\Roaming\npm' 在Win ...

  2. Java 随机数生成工具RandomUtils

    RandomUtils /** * <html> * <body> * <P> Copyright 1994 JsonInternational</p> ...

  3. Java跳出多重循环的方法

    我们一般用break和cuntinue来控制单个循环,但是如果遇到有多个循环的情况呢,比如下面这个: for (int i=0; i<10; i++) { for (int j=0; j< ...

  4. Java GC的工作原理详解

    JVM学习笔记之JVM内存管理和JVM垃圾回收的概念,JVM内存结构由堆.栈.本地方法栈.方法区等部分组成,另外JVM分别对新生代下载地址  和旧生代采用不同的垃圾回收机制. 首先来看一下JVM内存结 ...

  5. windows nvlddmkm、DRIVER_POWER_STATE_FAILURE 蓝屏问题的解决资料

    背景与现象描述 博主在最近购买了 机械革命 Z2-R (MECHREVO Z2-R Series GK5CP02) 笔记本电脑后,几乎每天均有不下3次的蓝屏,而且机器热时,更甚,达到每天10次以上,简 ...

  6. js正则表达式【续】(相关字符的解释含义)

    1.字符类[直接量] . (点号,小数点) 匹配任意单个字符,但是行结束符除外\d 匹配一个0-9之间的阿拉伯数字.等价于[0-9]\D    匹配任意一个不是0-9之间阿拉伯数字的字符.等价于[^0 ...

  7. 自旋锁spin_lock、spin_lock_irq 和 spin_lock_irqsave

    自旋锁和互斥锁的区别是,自旋锁不会引起睡眠,所以可用于不能休眠的代码中(如IRQ) 自旋锁保持期间抢占失效,而信号量保持期间可以被抢占 定义 spinlock_t lock; init #define ...

  8. 什么是SAP Intelligent Robitic Process Automation - iRPA

    所谓智慧企业,一个特征就是具备将复杂但低附加值的重复流程通过自动化的方式完成的能力.通过自动化,从而将宝贵的人力资源投入到更高附加值的工作中去,比如提供产品和服务的品质,提升用户体验.SAPGUI时代 ...

  9. 【AIX】3004-314 Password was recently used and is not valid for reuse

    [AIX]3004-314 Password was recently used and is not valid for reuse   一.1  BLOG文档结构图     一.2  前言部分   ...

  10. 【RAC】 RAC For W2K8R2 安装--共享磁盘的配置(三)

    [RAC] RAC For W2K8R2 安装--共享磁盘的配置(三) 一.1  BLOG文档结构图 一.2  前言部分 一.2.1  导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学 ...