台湾国立大学(林轩田)《机器学习基石》(第13讲)Hazard of Overfitting

课程地址:https://class.coursera.org/ntumlone-001/class
课件讲义:http://download.csdn.net/download/malele4th/10208897
注明:文中图片来自《机器学习基石》课程和部分博客
建议:建议读者学习林轩田老师原课程,本文对原课程有自己的改动和理解

目录

Lecture 13 Hazard of Overfitting

上节课我们主要介绍了非线性分类模型,通过非线性变换,将非线性模型映射到另一个空间,转换为线性模型,再来进行分类,分析了非线性变换可能会使计算复杂度增加。本节课介绍这种模型复杂度增加带来机器学习中一个很重要的问题:过拟合(overfitting)。

1 What is Overfitting

根据VC Bound理论,阶数越大,即VC Dimension越大,就会让模型复杂度更高,Eout更大。我们把这种Ein很小,Eout很大的情况称之为bad generation,即泛化能力差。

我们举个开车的例子,把发生车祸比作成overfitting,那么造成车祸的原因包括:

车速太快(VC Dimension太大);
道路崎岖(noise);
对路况的了解程度(训练样本数量N不够);

也就是说,VC Dimension、noise、N这三个因素是影响过拟合现象的关键
这里写图片描述

2 The Role of Noise and Data Size

为了尽可能详细地解释overfitting,我们进行这样一个实验,试验中的数据集不是很大。首先,在二维平面上,一个模型的分布由目标函数f(x)(x的10阶多项式)加上一些noise构成,下图中,离散的圆圈是数据集,目标函数是蓝色的曲线。数据没有完全落在曲线上,是因为加入了noise。
这里写图片描述
然后,同样在二维平面上,另一个模型的分布由目标函数f(x)(x的50阶多项式)构成,没有加入noise。下图中,离散的圆圈是数据集,目标函数是蓝色的曲线。可以看出由于没有noise,数据集完全落在曲线上。
这里写图片描述
现在,有两个学习模型,一个是2阶多项式,另一个是10阶多项式,分别对上面两个问题进行建模。首先,对于第一个目标函数是10阶多项式包含noise的问题,这两个学习模型的效果如下图所示:
这里写图片描述
由上图可知,2阶多项式的学习模型Ein=0.050,Eout=0.127;10阶多项式的学习模型Ein=0.034,Eout=9.00。虽然10阶模型的Ein比2阶的小,但是其Eout要比2阶的大得多,而2阶的Ein和Eout相差不大,很明显用10阶的模型发生了过拟合。

下面从learning curve来分析一下具体的原因,learning curve描述的是Ein和Eout随着数据量N的变化趋势。下图中左边是2阶学习模型的learning curve,右边是10阶学习模型的learning curve。
这里写图片描述
本节的实验问题中,数据量N不大,即对应于上图中的灰色区域。左图的灰色区域中,因为d=2,Ein和Eout相对来说比较接近;右图中的灰色区域中,d=10,根据Ein和Eout的表达式,Ein很小,而Eout很大。这就解释了之前2阶多项式模型的Ein更接近Eout,泛化能力更好。

值得一提的是,如果数据量N很大的时候,上面两图中Ein和Eout都比较接近,但是对于高阶模型,z域中的特征很多的时候,需要的样本数量N很大,且容易发生维度灾难

维度灾害的详细讲解:
http://blog.csdn.net/red_stone1/article/details/71692444

3 Deterministic Noise(确定性噪声)

下面我们介绍一个更细节的实验来说明 什么时候小心overfit会发生。假设我们产生的数据分布由两部分组成:第一部分是目标函数f(x),Qf阶多项式;第二部分是噪声ϵ,服从Gaussian分布。接下来我们分析的是noise强度不同对overfitting有什么样的影响。总共的数据量是N。
这里写图片描述
那么下面我们分析不同的(N, σ2 )和(N, Qf )对overfit的影响。overfit可以量化为Eout−Ein。结果如下:
这里写图片描述
这里写图片描述

4 Dealing with Overfitting

现在我们知道了什么是overfitting,和overfitting产生的原因,那么如何避免overfitting呢?避免overfitting的方法主要包括:

start from simple model
data cleaning/pruning
data hinting
regularization
validataion

这几种方法类比于之前举的开车的例子,对应如下:
这里写图片描述
regularization和validation我们之后的课程再介绍,本节课主要介绍简单的data cleaning/pruning和data hinting两种方法。

  • data cleaning/pruning就是对训练数据集里label明显错误的样本进行修正(data cleaning),或者对错误的样本看成是noise,进行剔除(data pruning)。data cleaning/pruning关键在于如何准确寻找label错误的点或者是noise的点,而且如果这些点相比训练样本N很小的话,这种处理效果不太明显。

  • data hinting是针对N不够大的情况,如果没有办法获得更多的训练集,那么data hinting就可以对已知的样本进行简单的处理、变换,从而获得更多的样本。举个例子,数字分类问题,可以对已知的数字图片进行轻微的平移或者旋转,从而让N丰富起来,达到扩大训练集的目的。这种额外获得的例子称之为virtual examples。但是要注意一点的就是,新获取的virtual examples可能不再是iid某个distribution。所以新构建的virtual examples要尽量合理,且是独立同分布的。

5 总结

本节课主要介绍了overfitting的概念,即当Ein很小,Eout很大的时候,会出现overfitting。详细介绍了overfitting发生的四个常见原因data size N、stochastic noise、deterministic noise和excessive power。解决overfitting的方法有很多,本节课主要介绍了data cleaning/pruning和data hinting两种简单的方法,之后的课程将会详细介绍regularization和validataion两种更重要的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值