您的位置:首页 > 其它

台大-林轩田老师-机器学习基石学习笔记13

2018-01-29 01:18 441 查看
上节讲的是非线性分类模型,通过线性与非线性空间之间的变换,将非线性模型映转换为线性模型,再进行分类,分析了非线性变换可能会使计算复杂度增加。强调了纬度和负责度之间的关系。这节中,这种模型复杂度增加带来机器学习中一个很常见的问题——过拟合。

什么是过拟合?

机器学习的终极目标就是为了预测,当然预测前我们要对数据进行训练。用原生数据来直接训练的话,有一个问题就是我们设计的分类器在训练集上会得到很好的表现,但在测试集上的表现却变得非常差。造成过拟合(overfitting)的问题。

随着纬度的上升,有限的样本空间会越来越稀疏,训练样本多少需要随着维度指数增长,每个样本越来越不可能符合所有维度(特征),这使得大部分样本都变成了噪声,训练的时间还会加长。



因此模型出现在训练集上表现良好,但对新数据缺乏泛化能力的现象。

如果训练集可以达到理论上的无限个,那么就不存在维度灾难,我们可以用无限个维度去得到一个完美的分类器。训练集样本越少,越应该用少量的特征,如果N个训练样本足够覆盖一个一维的特征空间(区间大小为一个单位),那么 需要N^2个样本去覆盖一个同样密度的二维的特征空间,需要N^3个样本去覆盖三维的特征空间。



b08d

这些就是过拟合和维度灾难。

老师又提出一个概念叫bad generation

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



如果这样不理解我们看一个现实中的例子:

用开车的例子类比过拟合:

- 开车(学习的过程)

- 出车祸(过拟合)

- 开车开太快(纬度太高)

- 路不好(噪音)

- 对路况不熟悉(数据量大小限制)

现在我们知道了,纬度、噪音和数据大小就是影响过拟合现象的因素。

下面看看噪音和数据大小对这个现象的影响

噪音和数据大小

我们进行这样一个实验,试验中的数据集比较小。首先,在二维平面上,一个模型的分布由目标函数,一个x的10阶多项式,加上一些噪音构成,下图中,离散的圆圈是数据集,目标函数是蓝色的曲线。数据没有完全落在曲线上,是因为加入了噪音。



在来一个x的10阶多项式,但是不加上噪音,下图中,离散的圆圈是数据集,目标函数是蓝色的曲线。可以看出由于没有噪音,数据集完全落在曲线上。



下面用两个学习模型,进行学习,首先第一个目标就是看待多项式中的噪音问题,这两个模型如下:





从这里我们可以看到,上面两个问题中,10阶模型都发生了过拟合,反而2阶的模型却表现得相对不错。这好像违背了我们的第一感觉,比如对于目标函数是10阶多项式,加上noise的模型,按道理来说应该是10阶的模型更能接近于目标函数,因为它们阶数相同。但是,事实却是2阶模型泛化能力更强。这种现象产生的原因,从哲学上来说,就是“以退为进”。有时候,简单的学习模型反而能表现的更好。

下面从学习曲线来分析一下具体的原因,学习曲线描述的是Ein和Eout随着数据量N的变化趋势。下图中左边是2阶学习模型的学习曲线,右边是10阶学习模型的学习曲线。



我们得出一个结论:

纬度越高约有可能造成过拟合,数据越少也越容易造成过拟合,这种情况,纬度越少的学习模型会有更好的Ein和Eout的关系。

确定的噪音

我们接下来将上一部分的模型泛化,第一部分是目标函数f(x),Qf阶多项式;第二部分是噪声ϵ,服从Gaussian分布。

如图:



这个图中,我们进行对噪音强度的不同和数据量的不同进行分析,这边直接给出分析结果(训练步骤不做说明,因为机器学习基石也只是想说明数据学习的过拟合现象)



上图中,红色越深,代表overfiting程度越高,蓝色越深,代表overfiting程度越低。

根据图中的情况:



分别是,数据少,随机噪音多,固定噪音少,纬度更高的模型会有更大的可能产生过拟合。

overfitting ‘easily’ happens

处理过拟合

还记得上面的开车的例子吗,现在我们叙述的就是如何开车,这样不会撞车:

开的慢(从简单模型开始)

用更清晰的道路信息(数据清洗)

探索更多的道路信息(数据提示,提供多一点点额外数据)

刹车(正则化,让他慢一点)

常看仪表板(证实,校验)

其中呢

数据清洗可以理解成改正原先的错误的标签

数据过滤可以理解成删除原先没有用的样例

而适当添加数据也会是很好的选择:

添加合理的补充信息
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: