维度诅咒及manifold Learning

The Curse of  Dimensionality

在大数据时代,大量的数据,例如图片,音频等数据都是高维的。一个32*32的图像,可以看做是一个维度为1024(32*32)的实例。从某种程度来说,维数的增多有利于进行分类,这意味着增加了更多的信息。但是当维度增大到一定的程度,就会产生所谓的维度诅咒,即在深度学习领域,随着数据特征的维度增多,训练所需要的数据呈指数型增加的现象。随着维度的增加,有限的训练数据变得稀疏,数据之间的相似性降低,使得寻找到的分类超平面往往不是最优超平面。这样找到的超平面,映射在低维上,往往会学习到数据的特殊点,即产生过拟合问题(overfitting),导致在测试集上的效果变差。图1显示了随着特征数,及特征维度的增加,分类效果的好坏。

维度诅咒及manifold Learning_第1张图片

维度诅咒的另一个影响在于,稀疏的数据在搜索空间上并非均匀分布。随着维度的增加,大比例的数据将会位于以训练数据均值为圆心的单位圆以外,增大了分类的难度。详细参照:https://blog.csdn.net/u010182633/article/details/45895493

事实上,SVM及神经网络都可以看做是寻找一个合适的特征维度的过程。当数据的维度过小的时候,数据分布过于稠密,不能很好的进行区分,这时候可以通过带有核函数的SVM将低纬度的数据映射到高纬度。当样本的维度过大时,受限于样本的多少及计算机的计算能力,需要利用神经网络对样本的维度进行压缩,便于分类。两者目的都在于使得数据的维度达到一个合适的稠密程度,从而更方便找到分类超平面。这也决定了SVM适用于低维小样本数据,而神经网络适合于大规模高维数据。

manifold learning

PCA是目前最流行的线性降维方法,但是对于非线性的数据,却很难得到理想的降维效果。降维的目的在于寻找数据的“内在变量”。如图2所示,考虑一个由“A”图片构成的数据集,这些图片中"A"的尺寸、旋转角度都各不相同。每张图片都是32*32大小,即1024维向量。但实际上,这些图片内部的实际维度应当是2,即缩放尺度和旋转角度。“A”这个图形并不影响这批数据的实际尺寸,因为在所有的图片中,“A”的形状并没有发生变化。降维的目的就在于丢弃掉数据之间你的公共信息(“A”的形状),发掘数据之间的变化信息(缩放尺度及旋转角度)。由于缩放尺度与旋转角度并非是线性分布的,因此更适合采用非线性降维方法。

维度诅咒及manifold Learning_第2张图片


流形学习(manifold learning)是非线性学习的重要领域。流形可以看做是一个d维的空间在m维的空间(m>d)被扭曲后的结果,可以想象一张纸被揉烂又展开的样子。上面关于“A”的例子也可以看做是一个嵌入到1024维空间中的2维流形,同样的地球表面也可以看做是一个嵌入三维空间的二维流形。这时候,不能采用欧式距离度量两点之间的距离(南北极之间的距离不是穿过地心的直线距离,而是经过地球表面的距离)。

在流形学习中,首先假设所有处于高维空间的数据点都分布在一个低维的流形上。流形学习的目的就在于寻找一种映射,从高维空间中恢复出低维流形来,从而利用流形的低维坐标表示高位空间的数据点,实现数据降维的目的。常用的算法有Isomap, LLE(Locally Linear Embedding), LE(Laplacian Eigenmaps),LLP(Locality Preserving Projection)等。

参考:

https://en.wikipedia.org/wiki/Nonlinear_dimensionality_reduction

https://blog.csdn.net/u010182633/article/details/45895493

http://blog.pluskid.org/?p=533

你可能感兴趣的:(机器学习)