机器学习中的维数灾难

转载 2016年05月31日 09:08:25

一.引言

这里我们将要讨论所谓的“维数灾难”,同时结合过拟合现象来解释它在分类器学习中的重要性。

举一个分类应用的简单例子,假设我们有一系列的图片,每张图片的内容可能是猫也可能是狗;我们需要构造一个分类器能够对猫、狗自动的分类。首先,要寻找到一些能够描述猫和狗的特征,这样我们的分类算法就可以利用这些特征去识别物体。猫和狗的皮毛颜色可能是一个很好的特征,考虑到红绿蓝构成图像的三基色,因此用图片三基色各自的平均值称得上方便直观。这样就有了一个简单的Fisher分类器:

If  0.5*red + 0.3*green + 0.2*blue > 0.6 : return cat;
    else return dog;

但是,使用颜色特征可能无法得到一个足够准确的分类器,如果是这样的话,我们不妨加入一些诸如图像纹理(图像灰度值在其X、Y方向的导数dx、dy),我们就有5个特征(Red、Blue、Green、dx、dy)来设计我们的分类器了。

接下来,也许分类器准确率依然无法达到要求,我们可以加入更多的特征,比如颜色、纹理的统计信息等等,如此下去,我们也许可能会得到上百个特征。那是不是我们的分类器性能会随着特征数量的增加而逐步提高呢?答案也许有些让人沮丧,事实上,当特征数量达到一定规模后,分类器的性能是在下降的。随着维度(特征数量)的增加,分类器的性能可以用下图来描述:


Figure 1 随着维度的增加,分类器性能逐步上升,到达某点之后,其性能便逐渐下降


接下来,我们简要介绍这种现象发生的原因,进一步讨论如何避免维数灾难的发生:

维数灾难与过拟合:

在上面这个分类的例子中,我们假设猫和狗图片的数量是有限的(实际上也确实如此,样本数量总是有限的),就假设有10张图片吧,接下来我们就用这仅有的10张图片来训练我们的分类器。

首先从一个最为简单的线性分类器开始,这里我们仅仅使用单一特征(1维),比如红色,来进行训练


Figure 2    单一特征的分类器,在训练集上表现并不好

接下来,我们增加一个特征,比如绿色,这样特征维数扩展到了2维:



Figure 3  增加一个特征后,我们依然无法找到一条简单的直线将它们有效分类


为此,我们再增加一个特征,比如蓝色,扩展到3维特征空间后:



Figure 4  增加一个特征形成的3维特征空间及样本分布

在3维特征空间中,我们很容易找到一个分类平面,能够在训练集上有效的将猫和狗进行分类:



Figure 5 在高维空间中,我们似乎能得到更优的分类器性能



从1维到3维,给我们的感觉是:维数越高,分类性能越优。然而,在Figure 1中,我们说维数过高将导致一定的问题:具体来说,在一维特征空间下,我们假设一个维度的宽度为5个单位,这样样本密度为10/5=2;在2维特征空间下,10个样本所分布的空间大小5*5=25,这样样本密度为10/25=0.4;在3维特征空间下,10个样本分布的空间大小为5*5*5=125,样本密度就为10/125=0.08.

如果我们继续增加特征数量,随着维度的增加,样本将变得越来越稀疏,在这种情况下,也更容易找到一个超平面将目标分开。然而,如果我们将高维空间向低维空间投影,高维空间隐藏的问题将会显现出来:


Figure 6  过多的特征导致的过拟合现象:训练集上表现良好,但是对新数据缺乏泛化能力

高维空间训练形成的分类器,相当于在低维空间的一个复杂的非线性分类器,这种分类器过多的强调了训练集的准确率甚至于对一些错误/异常的数据

也进行了学习,而正确的数据却无法覆盖整个特征空间。为此,这样得到的分类器在对新数据进行预测时将会出现错误。这种现象称之为过拟合,同时也是维灾难的直接体现。

下图展示了用2个特征代替三个特征进行分类器的学习:

Figure 7  尽管训练集上分类准确率不如3维下的高,但是具备更好的泛化能力

尽管如图7中所示,一个简单的线性分类器在训练数据上的表现不如非线性分类器,但由于线性分类器的学习过程中对噪声没有对非线性分类器敏感,因此对新数据具备更优的泛化能力。换句话说,通过使用更少的特征,避免了维数灾难的发生(也即避免了高维情况下的过拟合)

在换个角度来解释维数灾难,图8展示了由于高维而带来的数据稀疏性问题:假设有一个特征,它的取值范围D在0到1之间均匀分布,并且对狗和猫来说其值都是唯一的,我们现在利用这个特征来设计分类器。如果我们的训练数据覆盖了取值范围的20%(e.g 0到0.2),那么所使用的训练数据就占总样本量的20%。上升到二维情况下,覆盖二维特征空间20%的面积,则需要在每个维度上取得45%的取值范围。在三维情况下,要覆盖特征空间20%的体积,则需要在每个维度上取得58%的取值范围...在维度接近一定程度时,要取得同样的训练样本数量,则几乎要在每个维度上取得接近100%的取值范围,或者增加总样本数量,但样本数量也总是有限的。



Figure 8  取得相同数量样本需要的空间大小

换句话说,如果一直增加特征维数,由于样本分布越来越稀疏,如果要避免过拟合的出现,就不得不持续增加样本数量。


先翻译到这里,后续还有高维空间的样本分布与如何避免维数灾难的问题。

原文:分类中的维数灾难


接上文:

    在上面的例子中,我们通过演示数据的稀疏性展示了维数灾难,即:在分类中我们使用的特征数量越多,那么由于高维下数据的稀疏性我们不得不需要更多的训练数据来对分类器的参数进行估计(高维数下分类器参数的估计将变得更加困难)。维数灾难造成的另外一个影响是:数据的稀疏性致使数据的分布在空间上是不同(实际上,数据在高维空间的中心比在边缘区域具备更大的稀疏性,数据更倾向于分布在空间的边缘区域)。举个栗子更好理解:

考虑一个二维情况下(即二特征)的单位空间,

相关文章推荐

离散与维数灾难

http://blog.csdn.net/dark_scope/article/details/8252969

机器学习中的维数灾难

一.引言 这里我们将要tao'l

【十七】离散与维数灾难

介绍了《机器学习》第十七讲的内容,针对连续状态的马尔科夫决策过程MDP,提出了模型/模拟器思路和匹配值迭代算法。

离散和维数灾难

零:一些认识 涉及到机器人的操控的时候,很多事情可能并不是supervised和unsupervised learning能够解决的,比如说andrew ng之前一直提到的自动控制直升飞机,另一个例...

机器学习维度灾难(二)

机器学习维度灾难(一)转载了原作者的文章,浅显易懂,于是尝试接着翻译原文没有翻译完的,初学者水平,有理解不对的和翻译错误的欢迎指正 原英文链接:点击打开链接 假设一个正方形代表二维特征空间,特征空间...

机器学习中的维度灾难(一)

作为一个挖掘小白,好不容易有了数据,第一步就死在高维度上了,本以为直接上来观看数据缺失值、数据分布等,但是上千维度肿么看,在网上搜索看到了这篇好文章,感谢原文作者的翻译 原文链接点击打开链接 ...

机器学习中的维度灾难

一、介绍本篇文章,我们将讨论所谓的“维度灾难”,并解释在设计一个分类器时它为何如此重要。在下面几节中我将对这个概念进行直观的解释,并通过一个由于维度灾难导致的过拟合的例子来讲解。考虑这样一个例子,我们...

机器学习基础——降维

  • 2017-03-03 09:55
  • 2.09MB
  • 下载

基于机器学习的智能运维

  • 2016-08-29 14:27
  • 10.44MB
  • 下载

机器学习(7)--VC维数

90年代初,Vapnik and A. Chervonenkis提出了支持向量机(Support vector machines, SVM)和VC(Vapnik-Chervonenkis)维数的概念。...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)