流形学习:传统的机器学习方法中,数据点和数据点之间的距离和映射函数都是定义在欧式空间中的,然而在实际情况中,这些数据点可能不是分布在欧式空间中的,因此传统欧式空间的度量难以用于真实世界的非线性数据,从而需要对数据的分布引入新的假设。流形学习假设所处理的数据点分布在嵌入于外维欧式空间的一个潜在的流形体上,或者说这些数据点可以构成这样一个潜在的流形体。

图1 一个嵌在三维空间的流行体

图1就是一个数据嵌入在流行体的例子,传统的例如PCA和MDS降维方法效果就不是十分理想。此流行体实际上是一个二维分布的平面,在三维空间中流行体上点与点之间的距离不能使用传统的欧式空间的距离来计算,而应该用测地线距离代表这两个点的实际距离。

图2 测地线和欧式距离

图2中蓝色虚线为两个点的欧式距离,蓝色实线为两个点的测地线距离。但是测地线距离也不好测量,因此我们采用另一种路径近似代表测地线距离。

图3 图中两点的最短路径

我们构建一个连通图,其中每个点只和距离这个点最近的k个点直接连接,和其他的点不直接连接。这样我们可以构建邻接矩阵,进而求出图中任意两个点的最短路径,代替测地线距离。

图4 测地线和图中两点的最短路径

在图四中,蓝色点代表两个点之间的测地线距离,红色线代表图中两点的最短路径,两者距离相近,因此我们使用后者替代前者。进而引出isomap算法。

1 基本思想

isomap算法是基于前面所讲的MDS算法,不同之处在于isomap用图中两点的最短路径距离替代了MDS中欧式空间的距离,这样能更好的拟合流行体数据。

2 原理推导

原理和MDS原理基本一致

机器学习算法-MDS降维算法

唯一不同的地方如下:

MDS高维空间中两个点的距离:

而在isomap两个点的距离为图中两点的最短路径。

然后采用内积形式进行推导。

3 算法流程

(1)设置每个点最近邻点数k,构建连通图和邻接矩阵。

(2)通过图的最短路径构建原始空间中的距离矩阵。

(3)计算内积矩阵  。

(4)对矩阵B进行特征值分解,获得特征值矩阵  和特征向量矩阵  。

(5)取特征值矩阵最大的前  项及其对应的特征向量  。

4 举例

(1) 我们先举一个简单的例子,分别对图1利用isomap和MDS算法降维至2维空间。

图5(a)isomap

图5(b)MDS

当我们已知数据嵌在一个高维的流行体时候,使用isomap明显会有更好的效果。

但是大多数情况下,我们不知道高维流行体展开之后的维度,这个就需要我们通过主观来判断。下面是 A Global GEometric Framework for Nonlinear Dimensionality Reduction (提出isomap降维方法的文章)中的几个例子:

(2) 人脸照片

数据集是698个64x64的同一个人的脸部图像,那么每一个图像就相当于4096空间中的一个坐标点,实际上这些人脸照片也是嵌入在一个流行体内,根据主观判断,我们可以得出影响人脸的因素有三个:光照方向、是否上下抬头、是否左右偏头。使用isomap将数据降维到二维空间可得:

图6

图6横坐标指的是人左右偏头的程度、纵坐标是人上下偏头的程度、每一张图片下面的Lighting direction指的是光照的方向。我们可以看出数据点在低维的分布基本可以替代数据点在原始空间的分布,例如想要判断人脸的左右偏头的程度,完全可以在降维之后的点上训练分类器,也可以得到很好的效果。

图7

图7中纵轴是残差方差,其值越小表示和原始数据越相近。横轴表示降维之后的维度。

其中空心三角是PCA对人脸图片降维的残差方差,实心圆圈是isomap对人脸图片进行降维的残差方差。可以看出isomap效果要优于PCA。观察代表isomap的曲线,当维度等于3的时候,方差残差下降非常快,同时在维度高于3之后,残差方差值变化很小。我们可以断定流行体是三维的数据点嵌入到了高维空间。

(3) MINIST手写字体集中数字2

数据集一共有1000个数据项,每个数据项时28x28大小的图片。

图7

将数据降维至2维,我们通过观察低维空间数据点代表的图像,发现有两个明显的特征:

横坐标代表了数字2底部是否有一个环形;纵坐标表示数字2顶部的歪曲角度的大小。

图8

图8中纵轴是残差方差,其值越小表示和原始数据越相近。横轴表示降维之后的维度。

其中空心三角是PCA对数字2降维的残差方差,空心圆圈是MDS对数字2降维的残差方差实心圆圈是isomap对数字2降维进行降维的残差方差。观察代表isomap的曲线,并没有出现快速下降的趋势,因此数字2流行嵌入并不明显。

5 总结

总的来说,高维空间的数据大多数都具有相同的特点,因此会嵌入到一个流行体中,而不是随机分散在高维空间中,高维数据相同特征的数目也就是流行体的维度,也就是我们降维的目标空间维数,这个维度需要一定的人为主观判断。同时,如果数据在高维空间中没有嵌入到一个流行体中。例如高维数据点分为10类,每一类都和其它类分散开,自己成为一簇,此时isomap算法就不太适合。如果数据是分类的,数据基本不会嵌入在一个流行体,isomap降维算法效果就比较差,但是数据是连续的,数据就很有可能嵌入在一个流行空间内,此时isomap算法的效果就会比较好。

机器学习降维算法六——ISOMAP(等距特征映射)相关推荐

  1. {降维} ISOMAP等距特征映射 MDS多维标度法

    首发:https://zhuanlan.zhihu.com/p/60599491 介绍两种降维方法 镇楼_MDS: http://www.utdallas.edu/~herve/Abdi-MDS200 ...

  2. 机器学习 降维算法: isomap MDS

    最近在看论文的时候看到论文中使用isomap算法把3D的人脸project到一个2D的image上.提到降维,我的第一反应就是PCA,然而PCA是典型的线性降维,无法较好的对非线性结构降维.ISOMA ...

  3. 四大机器学习降维算法:PCA、LDA、LLE、Laplacian Eigenmaps

    四大机器学习降维算法:PCA.LDA.LLE.Laplacian Eigenmaps 引言 机器学习领域中所谓的降维就是指采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中.降维的本质是学习 ...

  4. 机器学习-降维算法(MDS算法)

    机器学习-降维算法(MDS算法) 一,介绍 在现实数据中,很多数据都是高纬度的,在高纬度情况下进行数据处理将会有极大的数据处理量.为了,减少计算量,常常需要缓解这种数据维度灾难,这有两种途径:降维和特 ...

  5. 机器学习降维算法四:Laplacian Eigenmaps 拉普拉斯特征映射

    继续写一点经典的降维算法,前面介绍了PCA,LDA,LLE,这里讲一讲Laplacian Eigenmaps. 其实不是说每一个算法都比前面的好,而是每一个算法都是从不同角度去看问题,因此解决问题的思 ...

  6. 机器学习---降维算法

    知其然知其所以然 [写在前面] 主成分分析(PCA) 原理部分 代码部分 可视化部分 线性判别分析(LDA) 原理部分 代码部分 可视化部分 独立成分分析(ICA) 原理部分 代码部分 可视化部分 t ...

  7. 降维算法之Isomap原理推导

    流形学习Manifold Learning 与Isomap 1.Manifold "嵌入在高维空间中的低维流形",最直观的例子通常都会是嵌入在三维空间中的二维或者一维流形.比如说一 ...

  8. 机器学习降维算法二:LDA(Linear Discriminant Analysis)

    Linear Discriminant Analysis (也有叫做Fisher Linear Discriminant)是一种有监督的(supervised)线性降维算法.与PCA保持数据信息不同, ...

  9. 机器学习降维算法三:LLE (Locally Linear Embedding) 局部线性嵌入

    LLE Locally linear embedding(LLE)[1] 是一种非线性降维算法,它能够使降维后的数据较好地保持原有流形结构.LLE可以说是流形学习方法最经典的工作之一.很多后续的流形学 ...

最新文章

  1. f5 2017.09.03故障
  2. 【Android 文件管理】分区存储 ( 创建与查询图片文件 )
  3. PHP草根论之设计模式-訪问者模式
  4. c语言控制台数字键打地鼠,自己用C写的一个简单的打地鼠游戏代码出了个问题(鼠标和循环不能...
  5. ajax mode,DWR的三种Reverse Ajax Mode配置详解
  6. 关于 tomcat启动后无法访问的问题(localhost:8080 (or your port specified))
  7. 2021-02-22 【转载】什么是GCJ-02火星坐标系;为什么天地图没有偏移
  8. 鸿蒙面向开发者语言,华为正式发布鸿蒙OS 面向全球开发者开源!
  9. 腾讯、百度、滴滴最新NLP算法面经
  10. 1g的树莓派4b能做什么_树莓派4B系统安装及配置
  11. We7 从这里开始---we7的功能和特点(3)
  12. 使用STM32的I2S协议读取麦克风INMP441
  13. 低通滤波与RC振荡产生正弦波
  14. oracle+suspend+参数,oracle数据库的挂起(Suspending)和恢复(Resuming)
  15. Python语言程序设计基础_实验1 Python程序设计基础_答案_通识教育必修课程_上海师范大学
  16. 【小说】玻璃碎片-第二章
  17. 云宏携手英特尔基于英特尔® 至强® 可扩展平台全面升级超融合一体机解决方案
  18. 3D 小游戏《欢乐贪吃龙》关键技术盘点 | Cocos 技术派第13期
  19. 2_计算机网络_数据链路层-交换机-以太网-vlan-trunk
  20. 提质信创•协同发展—— 麒麟信安云+操作系统交流会(武汉站)顺利举行

热门文章

  1. 微信中提示在浏览器中打开
  2. QCOM Sensor SEE 分析--初始化
  3. python爬虫系列(2)—— requests和BeautifulSoup
  4. MySQL复制表3种方式
  5. HOG特征提取-python实现
  6. ubantu14.04上安装搜狗输入法出现乱码问题
  7. TCP/IP协议、端口等相关【1】
  8. 如何利用JMeter模拟超过 5 万的并发用户
  9. sql语句给表添加datetime类型列,并设置默认值
  10. 智慧校园,突破信息化管理困境