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. ECharts展示后台数据

    /** * Created by Administrator on 2015/11/10 010. */ var home = function () { //项目预警分析 var getProAla ...

  2. webstrom 2019 注册码(可用 2019年10月14日08:59:18)

    K6IXATEF43-eyJsaWNlbnNlSWQiOiJLNklYQVRFRjQzIiwibGljZW5zZWVOYW1lIjoi5o6I5p2D5Luj55CG5ZWGOiBodHRwOi8va ...

  3. C++文件处理(一):读/写txt文件

    C++文件处理与C语言不同,C++文件处理使用的是:流(stream) C++头文件fstream定义了三个类型来支持文件IO

  4. 剑指offer-面试题32-之字形打印二叉树-二叉树栈

    /* 题目: 分行按层自上向下呈之字形打印二叉树.第一行从左到右,第二行从右到左,第三行从左到右... */ /* 思路: 使用两个栈stack1和stack2. stack1存储从左向右打印的节点, ...

  5. xshell远程打开Linux图形界面加速方法:

    https://blog.csdn.net/zyy247796143/article/details/82143832 服务器安装: yum install Xvfb    :在安装完谷歌浏览器后,安 ...

  6. python全栈学习 day03

    换行符: \n 制表符: \t 字符串截取:顾头不顾尾 s[首:尾:步长] 首--->尾走向 和 步长方向一致 s[0:4:2] s[4:0:-2] a = "qwertyui&quo ...

  7. Java基础汇总2019

    1.事务的ACID性: (1)原子性:要么做,要么都不做.程序操作执行未成功,则所做的更改会被撤销: (2)一致性:比如转账,a转给b一百元,则a的账户少100,b的账户多100,前后数据要一致: ( ...

  8. Runtime.addShutdownHook用法

    一.什么是ShutdownHook? 在Java程序中可以通过添加关闭钩子,实现在程序退出时关闭资源.平滑退出的功能. 使用Runtime.addShutdownHook(Thread hook)方法 ...

  9. npx是什么

    npx是一个执行npm软件包的二进制文件,通俗的讲,他可以执行npm的一些指令 在npm>5.2.0 的时候npm里面就集成了npx 比如npx webpack 他会执行node_modules ...

  10. eclipse将项目打包成jar在linux中运行

    最近因为项目需要,做了几个外挂程序做数据传输,涉及到项目打包操作,在此记录一下打包步骤和其中出现的问题. 1.首先右键项目文件夹,点击export,弹出如下选择框,在其中输入jar搜索,并选择JAR ...