流形学习——Isomap算法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/VictoriaW/article/details/78497316

Isomap算法介绍

Isomap(Isometric Feature Mapping)是流行学习的一种,用于非线性数据降维,是一种无监督算法。

它所采用的核心算法和MDS是一致的,区别在于原始空间中的距离矩阵的计算上。很多数据是非线性结构,不适合直接采用PCA算法和MDS算法。在非线性数据结构中,流形上距离很远(测地线距离)的两个数据点,在高维空间中的距离(欧式距离)可能非常近,如下图所示:

只有测地线距离才反映了流形的真实低维几何结构。Isomap建立在MDS的基础上,保留的是非线性数据的本质几何结构,即任意点对之间的测地线距离。

现在的问题是怎么根据输入空间距离信息估计测地线距离?对于邻居数据点,其输入空间距离可以很好地近似测地线距离。在每个数据点和其邻居点之间添加加权边,得到一个连接图。距离较远的数据点之间的测地线距离可以通过最短路径距离近似。

Isomap算法总共分为三步。首先,为每个数据点确定邻居,有两种方式,一种是把最近的k个作为邻居,一种是把半径ϵ内的所有点作为邻居。可以得到加权图,边上的权重表示两点之间的输入空间距离dX(i,j)

然后,对任意两个点对,计算最短路径距离dG(i,j)作为测地线距离的估计。可以采用Dijkstra算法计算最短路径。

最后,把根据最短路径确定的距离矩阵DG作为MDS算法的输入,得到低维空间中最好地保留流形的本质结构的数据表示。

在计算近邻时,如果邻域范围指定得较大,那么距离较远的点可能被认为是近邻,造成“短路”问题;如果邻域范围指定的小,那么图中某些区域可能和其他区域不连通,出现“断路”问题。短路或者断路都会给后面计算最短路径造成误导。

Python实现

疑问

问1:降维过程中保留距离信息不变,这是不是意味着任意两点在低维空间中的测地线距离应该和高维空间中的测地线距离相同?但是如果用MDS,那么高维空间中的距离度量用的是测地线距离,而低维空间用的是欧氏距离,和目标不一致了怎么办?

答:低维空间中使用欧氏距离,是因为此时欧氏距离是测地线距离的一个近似。就像高维空间中用最短路径距离近似测地线距离一样。

参考

[1] A Global Geometric Framework for Nonlinear Dimensionality Reduction. Joshua B. Tenenbaum, Vin de Silva, John C. Langford. 2000.
[2] THE ISOMAP ALGORITHM
[3] LOW DIMENSION EMBEDDINGS FOR VISUALIZATION

展开阅读全文

没有更多推荐了,返回首页