流形(manifold)介绍

最近一直再看属性选择和聚类方向的论文,其中一直有提到manifold这个概念,从网络上学习一波,将学习结果记录下来给大家分享


流形是一种空间,一个流形好比是一个 d 维的空间,在一个 m 维的空间中 (m > d) 被扭曲之后的结果(一般维度压缩的方法中都会提到这个词,谱聚类中就有涉及这个思想,稍后再说),可以类似于地球,地球的表面是一个球面。

流形的距离度量方法不能简单地使用欧式距离求任意两点地距离。假设现在需要求从北极到达南极距离,不可能把地球打穿直线到达,根据实际情况可以知道,北极到达南极的距离应该是半个圆周的长度。举个例子如下(引用qrlhl 的图片)

流形(manifold)介绍

这是一个三维的平面,图中有很多点,其中有两个重点标注的数据点,要求这两个数据点的距离,如果用欧式距离来计算,得到的距离值会很小,明显小于图中红线地长度。这个时候应该怎么求流形中数据点之间地距离呢?


方法有很多,在这里我们介绍一种比较常用地流形距离度量方法Laplacian Eigenmaps (谱聚类)

在谱聚类地算法思想中求解出拉普拉斯矩阵L,通过求解L对应的最小的K个特征值对应的k个特征向量(相当于是得到了k个新的空间?维度),可以将m*n(m指的是m个数据,n指的是数据的属性个数)的原数据矩阵压缩成m*k的数据矩阵,此时新的数据矩阵的第i行第j列代表的就是原始数据i在第j个维度上的值,此时再用欧式距离的方法去求解新数据矩阵的某两行的距离(任意两个数据点的距离),就可以避免出现上图的错误(直接套欧式距离的度量公式)


总结,流体是一种扭曲的空间,他的距离度量公式比较复杂,但是已经有很多处理这个问题的方法,如Locally Linear Embedding 、Laplacian Eigenmaps 、Hessian Eigenmaps 、Local Tangent Space Alignment、Semidefinite Embedding (Maximum Variance Unfolding) 等等等等,