机器学习基石HOW BETTER部分(1)


标签:机器学习基石

第十三章

overfitting happens with excessive power, stochastic/deterministic noise, and limited data

underfitting:EIN和Eout都很大。
overfitting:EIN很小,但是Eout很大。

上图中,竖直的虚线左侧是underfitting,右侧是overfitting。
发生overfitting 的主要原因是:
1. 使用过于复杂的模型(dvc很大);
2. 数据噪音;
3. 有限的训练数据。

把机器学习和开车进行比较吧,这样更加形象。

机器学习 开车
过拟合 出车祸
使用过于复杂的模型 开得太快
数据噪音 道路情况不好
有限的训练数据 对道路的了解不足

噪音和数据规模造成过拟合

我们可以理解地简单些:有噪音时,更复杂的模型会尽量去覆盖噪音点,即对数据过拟合!
这样,即使训练误差Ein很小(接近于零),由于没有描绘真实的数据趋势,Eout反而会更大。
即噪音严重误导了我们的假设。

还有一种情况,如果数据是由我们不知道的某个非常非常复杂的模型产生的,实际上有限的数据很难去“代表”这个复杂模型曲线。我们采用不恰当的假设去尽量拟合这些数据,效果一样会很差,因为部分数据对于我们不恰当的复杂假设就像是“噪音”,误导我们进行过拟合。所以还不如用简单的模型去解决。
如下面的例子,假设数据是由50次幂的曲线产生的(下图右边),与其通过10次幂的假设曲线去拟合它们,还不如采用简单的2次幂曲线来描绘它的趋势。


从图中可以看出,数据量少时,尽管2次假设的比10次函数的大很多,但是2次假设中和的差距比10次假设小的多,因此在样本点不多时,低次假设的学习泛化能力更强,即在灰色区域(样本不多的情况下)中,高次假设函数发生了过拟合。

上述阐述了在含有噪音的情况下,低次多项式假设比和目标函数同次的多项式假设表现更好,那如何解释在50次多项式函数中也是二次式表现好的现象呢?因为50次目标函数对于不论是2次假设还是10次假设都相当于一种含有噪音的情况(两者都无法做到50次的目标函数,因此相当于含有噪音,复杂的50次目标函数产生的数据对于2次假设和10次假设而言是含有噪音的)。

随机噪音与确定性噪音 (stochastic noise and deterministic noise)

噪音一般指随机噪音(stochastic noise),服从高斯分布,,称作高斯噪音,其强度为σ2;还有另一种“噪音”,就是前面提到的由未知的复杂函数f(X)产生的数据,对于我们的假设也是噪音,这种是确定性噪音(Deterministic Noise)

上图是关于2次曲线和10次曲线对数据的拟合情况,我们将overfit measure 表示为Eout(g10)−Eout(g2)。

数据样本由两个部分组成,一是目标函数产生,和在此之上夹杂的噪音。函数使用复杂度Qf表示,即Qf次多项式函数。
分别固定复杂度Qf和噪音强度/sigma2得到下面的两幅图。

左图是随机噪音对于overfitting的影响,右图是确定性噪音。
* 左图表示在固定复杂度Qf=20时,噪音强度/sigma2与样本数据量N对拟合度的影响,图中的颜色表示过拟合程度,深红色的部分表示过拟合,蓝色表示表现好,从图中得知在噪音强度越大与样本数据量N越小时,过拟合越严重。
* 右图表示在固定噪音强度/sigma2时,复杂度Qf=20与样本数据量N对拟合度的影响,从图中得知在复杂度Qf=20越大且样本数据量N越小时,过拟合越严重。
* 两图共同表示数据规模一定时,随机噪音越大,或者确定性噪音越大(即目标函数越复杂),越容易发生overfitting。

总之,导致overfitting 的因素是:
1. 数据过少;
2. 随机噪音过多;
3. 确定性噪音过多;
4. 假设过于复杂(excessive power)。

确定性噪音的图表示:

其中蓝色曲线表示目标函数,红色曲线表示2次式函数模型学习到的曲线,其中蓝色曲线的弯曲的形状使用2次函数是不可能模仿的,因此就相当于一种噪音(灰色部分)。为什么使用低次函数学习效果却好呢?;这类似于教小孩学习学习简单的问题反而有助于成长。

解决过拟合问题

对应导致过拟合发生的几种条件,我们可以想办法来避免过拟合。

过拟合发生的原因 避免过拟合的方法
使用过于复杂的模型 从简单的模型开始
数据噪音 数据清洗/裁剪(data cleaning/pruning)
有限的训练数据 收集更多数据(data hinting)

正规化(regularization)和确认(validation)在下一讲介绍。

数据清洗/裁剪(data ckeaning/Pruning)

以手写数字数据为例,介绍数据清理和数据裁剪,图为手写数字为1的使用O表示;手写数字为5的使用X表示。其中在数字1中存在一个数字5的样本点,即图中左上角中的,查看该样本的原图很难看出是数字5,类似这种离不同类别很近,离相同类别很远的样本,可以认为是噪音或者是离群点(outlier)。应对该种情况,有两种措施可用:纠正标识号,即数据清理(data cleaning)的方式处理该情况;删除错误样本,即数据裁剪(data pruning)的方式处理。处理措施很简单,但是发现样本是噪音或离群点却比较困难。

Data Hinting:

“伪造”更多数据, add “virtual examples”
手写数字集略作修改产生更多的手写数字样本,达到增加数据量N的目的。如将手写数字略作旋转(rotating)和平移(shifting),但要注意旋转和平移的幅度都不能太大,如6转180°就成了9。还需注意这种方式产生的虚拟样本(virtual examples),不在符合独立同分布,因此产生的虚拟样本与实际样本差距一定不宜太大。

转载于:https://www.cnblogs.com/huang22/p/5401160.html

机器学习基石HOW BETTER部分(1)相关推荐

  1. 太赞了!NumPy 手写所有主流 ML 模型,由普林斯顿博士后 David Bourgin打造的史上最强机器学习基石项目!...

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 用 NumPy 手写所有主流 ML 模型,普林斯顿博士后 David Bourgi ...

  2. NumPy 手写所有主流 ML 模型,由普林斯顿博士后 David Bourgin打造的史上最强机器学习基石项目!...

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 用 NumPy 手写所有主流 ML 模型,普林斯顿博士后 David Bourgi ...

  3. 台湾大学林轩田机器学习基石课程学习笔记1 -- The Learning Problem

    红色石头的个人网站:redstonewill.com 最近在看NTU林轩田的<机器学习基石>课程,个人感觉讲的非常好.整个基石课程分成四个部分: When Can Machine Lear ...

  4. 台湾大学林轩田机器学习基石课程学习笔记15 -- Validation

    红色石头的个人网站:redstonewill.com 上节课我们主要讲了为了避免overfitting,可以使用regularization方法来解决.在之前的EinEinE_{in}上加上一个reg ...

  5. 台湾大学林轩田机器学习基石课程学习笔记14 -- Regularization

    红色石头的个人网站:redstonewill.com 上节课我们介绍了过拟合发生的原因:excessive power, stochastic/deterministic noise 和limited ...

  6. 台湾大学林轩田机器学习基石课程学习笔记13 -- Hazard of Overfitting

    红色石头的个人网站:redstonewill.com 上节课我们主要介绍了非线性分类模型,通过非线性变换,将非线性模型映射到另一个空间,转换为线性模型,再来进行分类,分析了非线性变换可能会使计算复杂度 ...

  7. 台湾大学林轩田机器学习基石课程学习笔记12 -- Nonlinear Transformation

    红色石头的个人网站:redstonewill.com 上一节课,我们介绍了分类问题的三种线性模型,可以用来解决binary classification和multiclass classificati ...

  8. 台湾大学林轩田机器学习基石课程学习笔记11 -- Linear Models for Classification

    红色石头的个人网站:redstonewill.com 上一节课,我们介绍了Logistic Regression问题,建立cross-entropy error,并提出使用梯度下降算法gradient ...

  9. 台湾大学林轩田机器学习基石课程学习笔记10 -- Logistic Regression

    红色石头的个人网站:redstonewill.com 上一节课,我们介绍了Linear Regression线性回归,以及用平方错误来寻找最佳的权重向量w,获得最好的线性预测.本节课将介绍Logist ...

  10. 台湾大学林轩田机器学习基石课程学习笔记8 -- Noise and Error

    红色石头的个人网站:redstonewill.com 上一节课,我们主要介绍了VC Dimension的概念.如果Hypotheses set的VC Dimension是有限的,且有足够多N的资料,同 ...

最新文章

  1. Maven国内源设置 - OSChina国内源失效了,别更新了
  2. 关于C语言中字符串操作的几个函数的总结
  3. 贝叶斯推断及其互联网应用(一)
  4. python培训班学费-南京Python培训班学费贵吗怎么收费
  5. python函数应用_Python 函数及其应用
  6. Day12 CSS简单用法
  7. java jdk 类加载机制_JDK源码阅读之类加载
  8. oracle百分之0.01就成了.01,遭遇ORA-01200错误的原因及解决方法
  9. 自定义ViewGroup (3) 与子View之间 Touch Event的拦截与处理
  10. 【编程语言】正则表达式快速上手
  11. android之普通蓝牙通信
  12. C++ windows网络编程系列1—各种通信模型对比
  13. Java毕设_小区停车管理系统
  14. Unity adb环境变量配置
  15. 结合读取opml ,把数据链接到treeview
  16. java中的implement怎么用?
  17. 【案例4-8】模拟物流快递系统
  18. 1106: [POI2007]立方体大作战tet
  19. Vue项目中常见问题(23)动态展示Floor组件
  20. 叶史瓦大学计算机专业,叶史瓦的大学排名

热门文章

  1. Autodesk Map 3D 2012 新功能介绍
  2. C++新标准——C++1x
  3. ubuntu下用postfix搭建邮件服务器
  4. Mac 下安装RabbitMQ及配置RabbitMQ可远程访问
  5. 一文看懂阿里、京东、滴滴大数据架构变迁
  6. 离职补偿的N、N+1、2N、2N+1,到底都有什么区别?
  7. 广州线下见面会,来了!
  8. 推荐一些优质原创公众号
  9. 看小龙哥演讲之感悟!
  10. 我是如何获取新知识的?