《机器学习基石》第13节课学习笔记

第13节课 Hazard  of  Overfitting

  • 本节课主要介绍了overfitting的概念,即当Ein很小,Eout很大的时候,会出现overfitting。详细介绍了overfitting发生的四个常见原因以及学习了解决overfitting的两种简单点的方法。这节课学习中涉及到了噪音,VC维等前面学到的知识。总之过拟合这个知识点要好好把握!也是一个难点,多回顾几遍视频。

(一)什么是过拟合

1.简单的说就是这样一种学习现象:

Ein 很小,Eout 却很大。而Ein 和 Eout 都很大的情况叫做 underfitting。这是机器学习中两种常见的问题。

我们回过头来看一下VC曲线:

上图中,竖直的虚线左侧是"underfitting", 左侧是"overfitting”。

bad generation和overfitting的关系可以理解为:overfitting是VC Dimension过大的一个过程,bad generation是overfitting的结果。

2.发生overfitting 的主要原因是:(1)使用过于复杂的模型(dvc 很大);(2)数据噪音;(3)有限的训练数据。

(二)噪音与数据规模

1.引例:为了尽可能详细地解释overfitting,我们进行这样一个实验,试验中的数据集不是很大。首先,在二维平面上,一个模型的分布由目标函数f(x)(x的10阶多项式)加上一些noise构成,下图中,离散的圆圈是数据集,目标函数是蓝色的曲线。数据没有完全落在曲线上,是因为加入了noise。

然后,同样在二维平面上,另一个模型的分布由目标函数f(x)(x的50阶多项式)构成,没有加入noise。下图中,离散的圆圈是数据集,目标函数是蓝色的曲线。可以看出由于没有noise,数据集完全落在曲线上。

现在,有两个学习模型,一个是2阶多项式,另一个是10阶多项式,分别对上面两个问题进行建模。首先,对于第一个目标函数是10阶多项式包含noise的问题,这两个学习模型的效果如下图所示:

由上图可知,虽然10阶模型的Ein比2阶的小,但是其Eout要比2阶的大得多,而2阶的Ein和Eout相差不大,很明显用10阶的模型发生了过拟合。

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

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

(三)随机噪音与确定性噪音

1.之前说的噪音一般指随机噪音(stochastic noise),服从高斯分布;还有另一种“噪音”,就是前面提到的由未知的复杂函数f(X) 产生的数据,对于我们的假设也是噪音,这种是确定性噪音。

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

2.下图左右两边分别表示了随机噪音和确定性噪音对于Overfitting 的影响。

上图解释:红色越深,代表overfit程度越高,蓝色越深,代表overfit程度越低。先看左边的图,左图中阶数Qf固定为20,横坐标代表样本数量N,纵坐标代表噪声水平σ^2。红色区域集中在N很小或者σ^2很大的时候,也就是说N越大,σ^2越小,越不容易发生overfit。右边图中σ^2=0.1,横坐标代表样本数量N,纵坐标代表目标函数阶数Qf。红色区域集中在N很小或者Qf很大的时候,也就是说N越大,Qf越小,越不容易发生overfit。上面两图基本相似。(参考的资料)

可见,数据规模一定时,随机噪音越大,或者确定性噪音越大(即目标函数越复杂),越容易发生overfitting。

总之,容易导致overfitting 的因素是:

 ①data size N ↓   数据过少;

  ②stochastic noise σ^2↑ 随机噪音过多;

  ③deterministic noise Qf↑  确定性噪音过多

  ④excessive power ↑  假设过于复杂。

 如果我们的假设空间不包含真正的目标函数f(X)(未知的),那么无论如何H 无法描述f(X) 的全部特征。这时就会发生确定性噪音。它与随机噪音是不同的。

我们可以类比的理解它:在计算机中随机数实际上是“伪随机数”,是通过某个复杂的伪随机数算法产生的,因为它对于一般的程序都是杂乱无章的,我们可以把伪随机数当做随机数来使用。
(四)解决过拟合问题

1.避免overfitting的方法主要包括:

①start from simple model

②data cleaning/pruning

③data hinting

④regularization

⑤validataion

这几种方法类比于之前举的开车的例子,对应如下:

2.主要介绍以下两种:

(1)数据清洗(data ckeaning/Pruning)
将错误的label 纠正或者删除错误的数据。

(2) Data Hinting: “伪造”更多数据, add "virtual examples"
例如,在数字识别的学习中,将已有的数字通过平移、旋转等,变换出更多的数据。

转载于:https://www.cnblogs.com/lxx0/p/lxx_learning-notes-13.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值