MDS, multidimensional scaling, 线性降维方法, 目的就是使得降维之后的点两两之间的距离尽量不变(也就是和在原是空间中对应的两个点之间的距离要差不多)。只是 MDS 是针对欧氏空间设计的,对于距离的计算也是使用欧氏距离来完成的。如果数据分布在一个流形上的话,欧氏距离就不适用了。

1. 所谓 Machine Learning 里的 Learning ,就是在建立一个模型之后,通过给定数据来求解模型参数。

2. Riemannian geometry;

from here.

黎曼空间就是弯曲的空间, 而欧氏空间只算是黎曼空间的一种特例。

在黎曼空间里,坐标线不一定是直的,坐标线的尺规可以不是单位1(可以每个地方都不同),坐标线之间也不一定是垂直的。

流形:流形是啥呢?大家知道足球吧,就那个黑白花纹的,一块一块皮缝出来的球形物体。其实每一块皮基本上都是平的(就是你能理解的那种“平”),但是缝起来就是个足球。流形也是一样,它的比较数学化的表述是,有一个点组成的集合M,M中每一个点的附近都有一个邻域,那个邻域和欧式空间“长”的差不多(数学术语叫同胚,很形象的一个词)。还是刚刚的足球,足球上每一个点都在某块皮上,那块皮扯下来就是个平坦的东西。
直观上来讲,一个流形好比是一个 d 维的空间,在一个 m 维的空间中 (m > d) 被扭曲之后的结果。需要注意的是,流形并不是一个“形状”,而是一个“空间”,如果你觉得“扭曲的空间”难以想象,那么请再回忆之前一块布的例子。
当然,这些都是直观上的概念,其实流形并不需要依靠嵌入在一个“外围空间”而存在,稍微正式一点来说,一个 d 维的流形就是一个在任意点出局部同胚于(简单地说,就是正逆映射都是光滑的一一映射)欧氏空间  。实际上,正是这种局部与欧氏空间的同胚给我们带来了很多好处,这使得我们在日常生活中许许多多的几何问题都可以使用简单的欧氏几何来解决,

度量: 其实度量从它名字来看就能理解,度量度量,就是量一量长度嘛。人类规定了单位米尺的长度,所以我们就可以度量北京到上海的距离,可以度量你一根手指的长度,一根发丝的长度。对于这种规定了怎么量长度的空间,数学上称为度量空间。而我们最熟悉的那种量长度的方式(其实你只知道这一种,相信我),称为欧氏度量。一个例子就是初中的二维的笛卡尔坐标,两个点之间的距离就是他们横纵坐标的差平方和再开方,那就是二维的欧式度量,也是我们认为最自然的度量。但是(凡事都要有个但是),度量并不是唯一的,就是说还存在其他量距离的方式。事实上有无穷多种方式来量,但是它们之中有很多是很无聊的,大家不去研究它们.

事实上,欧氏空间也不过是一种特殊的流形,流形才是最本质的概念。黎曼在一般的流形上定义了一类特殊的度量(就是规定了一种特殊的但是会比较有意思的怎么量距离的方式),我们称为黎曼度量。有了黎曼度量,我们就可以研究这个流形到底是不是弯的?有多弯?我们可以研究上面的“直线”是什么东西,从而我们可以研究怎么才能最短的从一个点到另一个点。

流形没有坐标轴,它的坐标都是局部的。

在流形空间的直线: 测地线。如何测量曲线长度:一条曲线的长度,就是通过它每一点 切向量大小 的积分得到的。

而流形上的“直线”,其实就是这两点间距离最短的那条曲线。既然这么一条曲线是最短的,那我们知道在它周围生活的曲线们都比它长,所以在连接这两个点的所有曲线生活的空间上定义一个函数叫做 求曲线长度函数,那么我们的测地线就是这个 求曲线长度函数 的最小值点。一般来说数学上对于这种最小值,最大值的点,都有办法描述他们,通常是用一些方程来描述。于是,我们的测地线的定义的终极版本粗线了:就是满足某一组特定方程的流形上的曲线。

最短的是测地线,测地线不一定是最短的。

其实很简单,想象一下,你要从北京飞到上海,结果你先从北京飞到了北极,然后越过北极沿着经线继续飞到了南极,再越过南极回到上海。这条路径是大圆上的一段弧,自然是测地线,可是!假如你真这么干……你还说自己走的路最短……我就不做评价了……

测地线是局部最短的。

3. 莫比乌斯环和克莱因瓶

莫比乌斯环是只有一面的曲目。

克莱因瓶:一条边没有,是一个完整的曲面。 克莱因瓶其实在我们的世界里并不存在,存在于四维空间,

References:

Riemannian Geometry:

  1. 浅谈流形学习
  2. Zero谈数学——黎曼几何(1)
  3. Zero谈数学——黎曼几何(2)

  4. Zero谈数学——黎曼几何(3)

  5. 神奇的克莱因瓶和莫比乌斯环

manifold learning的更多相关文章

  1. 流形学习(manifold learning)的一些综述

    流形学习(manifold learning)的一些综述 讨论与进展 issue 26 https://github.com/memect/hao/issues/26 Introduction htt ...

  2. 流形学习(manifold learning)综述

    原文地址:https://blog.csdn.net/dllian/article/details/7472916 假设数据是均匀采样于一个高维欧氏空间中的低维流形,流形学习就是从高维采样数据中恢复低 ...

  3. 转载manifold learning一篇

    我恨自己不干活儿,不过也没辙. 早晚要学习流形的,今天先转一篇文章,以后找不到就尿了. 我真羡慕数学系的人,╮(╯▽╰)╭. 发信人: Kordan (K&M), 信区: AI标  题: do ...

  4. 流形学习 (Manifold Learning)

    流形学习 (manifold learning) zz from prfans............................... dodo:流形学习 (manifold learning) ...

  5. Manifold Learning: ISOMAP

    转:http://hi.baidu.com/chb_seaok/item/faa54786a3ddd1d7d1f8cd0b 在常见的降维方法中,PCA和LDA是最为常用的两种降维方法.PCA是一种无监 ...

  6. Manifold learning 流形学习

    Machine Learning 虽然名字里带了 Learning 一个词,让人乍一看觉得和 Intelligence 相比不过是换了个说法而已,然而事实上这里的 Learning 的意义要朴素得多. ...

  7. sklearn 下的流行学习(Manifold Learning)—— sklearn.manifold

    1. t-SNE from sklearn.manifold import TSNE X_proj = TSNE(random_state=123).fit_transform(X) 2. t_sne ...

  8. 机器学习算法总结(十二)——流形学习(Manifold Learning)

    1.什么是流形 流形学习的观点:认为我们所能观察到的数据实际上是由一个低维流行映射到高维空间的.由于数据内部特征的限制,一些高维中的数据会产生维度上的冗余,实际上这些数据只要比较低的维度就能唯一的表示 ...

  9. [原创] 对于深度学习(deep learning)在工业界的应用现状和突破 [by matthewbai]

    现状: 1. 目前大家对于大部分需求,通常采用multiple layer,units in each layer也是人工订好的(虽然可以做稀疏,但是在same layer范围内竞争). 2. 网络结 ...

随机推荐

  1. Python3标准库:bisect维护有序列表

    1. bisect维护有序列表 bisect模块实现了一个算法来向列表中插入元素,同时仍保持列表有序. 1.1 有序插入 下面给出一个简单的例子,这里使用insort()按有序顺序向一个列表中插入元素 ...

  2. 初识Socket通讯编程(一)

    一.什么是socket? 当两台计算机需要通信的时候,往往我们使用的都是TCP去实现的,但是并不会直接去操作TCP协议,通常是通过Socket进行tcp通信.Socket是操作系统提供给开发者的一个接 ...

  3. 小程序公共模板template与公共js数据utils的引用实例

    在小程序项目开发中,经常会遇到公共模板与公共js数据的调用,这里结合自己的项目为这一需求做一简单介绍 目录截图 现在是有一个评论版块需要在几个页面里共用 先将评论版块的wxml剔出来放在templat ...

  4. 卸载Windows控制面板的程序和功能中找不到的一些软件的方法

    卸载Windows控制面板的程序和功能中找不到的一些软件的方法 找到卸载程序进行卸载即可

  5. PHP0009:PHP基础-mysql

    以管理员省份启动记事本 修改host文件 插入外部sql数据

  6. 42.Pycharm连接数据库出现错误:1045、1044:django.db.utils.OperationalError: (1045, "Access denied for user 'Whois'@'localhost' (using password: YES)”)

    1.在pycharm中设置好数据库的连接信息,连接数据库db01, DATABASES = { 'default': { # 指定所使用的的数据库引擎 'ENGINE': 'django.db.bac ...

  7. mongoose pushall不支持的错误记录

    该错误发生两次,第一次解决以后第二次碰到又没有想起来怎么解决. 因为采用mongoose+node的后端项目.有两个表实现多对多关系,再中间表不做关联,只在两个主表做了 testlist: [{ ty ...

  8. git客户端的常用命令

    注意:仓库只有管理员建的你才有权限上传,不然自己建的也没用,没权限上传 1.远程仓库路径查询 git remote -v 2.添加远程仓库 git remote add origin <你的项目 ...

  9. 问题 B: 基础排序III:归并排序

    #include <cstdio> #include <vector> #include <algorithm> using namespace std; void ...

  10. mac /windows

    1.mac 和 windows 同样的浏览器展示的样式有偏差 考虑:字体的问题,mac/windows 的字体不一样 font-family 用法