Manifold Learning详解

第四十四次写博客,本人数学基础不是太好,如果有幸能得到读者指正,感激不尽,希望能借此机会向大家学习。本文承接上一篇《Low-dimension Embedding详解(附带MDS算法)》,继续介绍某些降维手段。

Manifold Learning(流行学习)

  在《Low-dimension Embedding》这篇文章中,我们介绍了一种称为MDS的降维方法,这种方法需要的输入是原始样本空间的距离矩阵,矩阵中的每个元素代表空间中两点之间的距离,在距离矩阵未知而且欧氏距离在原始空间中无效时,就需要一种新的度量距离的方法。“流行学习”(Manifold Learning)是一种借鉴了拓扑流行概念的降维方法,“流行”是指在“局部”与欧式空间同胚的空间,换言之,他在局部有欧式空间的性质,能用欧式距离来进行距离计算。下面分别介绍两种基于流行学习的降维方法:ISOmap和LLE,他们都使用了“邻域”的概念,但是原理不同。

Isometric Mapping(等度量映射)

  等度量映射(Isometric Mapping,简称ISOmap)认为,将低维空间嵌入到高维空间后,在高维空间中直接使用直线(欧式)距离来代表本真距离会有误差,因为高维空间中的两个样本点之间的直线距离在低维空间中是“不可达的”。如下图所示,图1(a)中的3000个样本点是从图1(b)所示的二维矩形区域(“本真”空间)采样后并以S形曲面嵌入到三维空间中的。图1(a)中的红线被称为“测地线”(geodesic),是高维空间中两个样本点之间的“本真”(Intrinsic)距离,而黑线代表的是这两个点的直线距离,显然这两条线代表的距离并不一致。图1(b)中的红线则是低维空间中两个点的本真距离,黑线是这两点通过近邻点之间的直线连接起来的距离,因此这条黑线可以直接通过欧式距离来计算,可以看出这两条线代表的距离比较相似,ISOmap正是利用了流行在局部上与欧式空间同胚这个性质,来计算样本空间中两个样本点之间的本真距离,因此我们可以认为ISOmap的目标是保持近邻样本间的本真距离。

Manifold Learning详解
图1 高维空间中的距离

  在使用上述方法计算距离之前,需要对近邻连接图进行初始化,这里提供两种初始化的方法,一种是指定近邻点的个数,例如选择欧氏距离最近的kk个点作为近邻点,这种方法构造出来的图称为“kk个近邻图”,另外一种方法是指定距离阈值ε\varepsilon,所有距离小于ε\varepsilon的点被认为是近邻点,这种方法构造出来的图称为“ε\varepsilon近邻图”。不过,无论使用上述哪种方法都会面临如下的问题,如果kkε\varepsilon指定的比较小时,图中两个点之间可能并不存在一条连通的曲线,这被称为“断路”,反之kkε\varepsilon指定的比较大,则有可能使得距离较远的两个点成为近邻,这被称为“短路”。
  在得到近邻图后,计算图上两点之间的最短距离可以采用Dijkstra算法或Floyd算法,在得到任意两点之间的距离后,就可以根据之前介绍过的MDS方法得到这些点在降维后的低维空间中对应的坐标了,ISOmap算法伪代码如下图所示。

Manifold Learning详解
图2 ISOmap算法

  “在得到训练样本在低维空间中的投影后,如何将新读入的样本点也投影到这个空间中呢?”在MDS算法中会面临这么一个问题,解决方法是根据这些训练样本在高维空间中的表示和低维空间中的投影,训练出一个回归模型来对新加入的样本点进行低维投影。

Locally Linear Embedding(局部线性嵌入)

  局部线性嵌入(Locally Linear Embedding,简称LLE)认为假如样本点可以通过他邻域内的近邻样本点的线性组合表示出来,即

(1)xi=wijxj+wikxk+wilxl{{\bf{x}}_{i}}=w_{ij}{\bf{x}}_{j}+w_{ik}{\bf{x}}_{k}+w_{il}{\bf{x}}_{l} \tag{1}

那么这种线性关系仍然会在降维后的低维空间中得到保持,因此可以认为LLE的目标是保持近邻样本间的线性关系,下面对该算法进行详细推导。
  对于样本点xi{\bf{x}}_{i},LLE首先找到其近邻点的下标集合QiQ_{i},然后基于QiQ_{i}中的样本点计算式(1)中的线性组合系数wiw_{i\cdot},该步骤的目标函数可以表示为

(2)minw1,w2,,wmi=1mxijQiwijxj22s.t.jQiwij=1\min_{{\bf{w}}_{1},{\bf{w}}_{2},\dots,{\bf{w}}_{m}}{\sum_{i=1}^{m}{||{\bf{x}}_{i}-\sum_{j\in{Q_{i}}}{w_{ij}{\bf{x}}_{j}}||_{2}^{2}}} \\ s.t.\sum_{j\in{Q_{i}}}{w_{ij}}=1 \tag{2}

其中,x{\bf{x}}_{\cdot}已知,那么wijw_{ij}有如下所示的闭式解,

(3)wij=kQjCjk1l,sQjCls1w_{ij}=\frac{\sum_{k\in{Q_{j}}}{C_{jk}^{-1}}}{\sum_{l,s\in{Q_{j}}}{C_{ls}^{-1}}} \tag{3}

其中Cjk=(xixj)T(xixk)C_{jk}=({\bf{x}}_{i}-{\bf{x}}_{j})^{T}({\bf{x}}_{i}-{\bf{x}}_{k})。在求得线性组合系数后,由于LLE试图在低维空间中保持这种近邻点间的线性关系,因此xi{\bf{x}}_{i}在低维空间中的对应点zi{\bf{z}}_{i}可以通过下式求解

(4)minz1,z2,,zmi=1mzijQiwijzj22s.t.zi×ziT=1,zi×zjT=0(ij(1,2,,m))\min_{{\bf{z}}_{1},{\bf{z}}_{2},\dots,{\bf{z}}_{m}}{\sum_{i=1}^{m}{||{\bf{z}}_{i}-\sum_{j\in{Q_{i}}}{w_{ij}{\bf{z}}_{j}}||^2_2}} \\ s.t.{\bf{z}}_{i}\times{{\bf{z}}_{i}}^{T}=1,{\bf{z}}_{i}\times{{\bf{z}}_{j}}^{T}=0 (i\neq{j}\in{(1,2,\dots,m)}) \tag{4}

与式(2)中的优化目标类似,只不过这里的优化变量是zi{\bf{z}}_{i},采用矩阵的形式表示为

(5)minZtr(ZMZT)s.t.ZZT=I\min_{{\bf{Z}}}{{\rm{tr}}({\bf{Z}}{\bf{M}}{\bf{Z}}^{T})} \\ s.t.{\bf{Z}}{\bf{Z}}^{T}={\bf{I}} \tag{5}

其中Z=(z1,z2,,zm)Rd×m{\bf{Z}}=({\bf{z}}_{1},{\bf{z}}_{2},\dots,{\bf{z}}_{m})\in{\Bbb{R}^{d'\times{m}}}(W)ij=wij({\bf{W}})_{ij}=w_{ij}M=(IW)T(IW){\bf{M}}=({\bf{I}}-{\bf{W}})^{T}({\bf{I}}-{\bf{W}}),上式可以通过特征值分解求解,M{\bf{M}}最小的dd'个特征值对应的特征向量组成的矩阵即为ZT{\bf{Z}}^{T},LLE算法的伪代码如下图所示。

Manifold Learning详解
图3 LLE算法

参考资料

【1】《机器学习》周志华

相关文章: