流形(Manifold)初步
欧几里得几何学(Euclidean Geometry)
两千三百年前,古希腊数学家欧几里得著成了《几何原本》,构建了被后世称为“欧几里得几何学”的研究图形的方法。欧几里得创立了当时颇为独特的公理系统,即首先提出一些显然的、不言自明的公理。
比如,他提出了“三角形的内角和一定等于一百八十度”的定理,他的许多几何计算也是基于此,并且看起来颇为正确。但是后来的数学家对此产生了质疑,认为这个定理是缘于经验而并非真理。那么,把不遵从欧几里德公里系统的几何学,也取了个相对应的名字,叫“非欧几里德几何学”(non-Euclidean Geometry)。
欧几里德几何对空间物体的刻画,是基于某个维度上的内积(Inner Product)。对于空间中的一些点或线,我们感兴趣的是它们的距离、角度等等属性,这可以通过求其内积获得。例如,在二维空间里两个向量X=(x1, x2)和Y=(y1, y2)的距离为x1*y1+x2*y2。也就是等于内积<X, Y>。此公式可以推广到三维空间,甚至是大于三维的空间。因此欧几里德空间也被称为“有限维实内积空间”。
然而,就如同三角形的内角和问题一样,在使用中也发现了欧几里德空间的局限性。这就必须先从拓扑学谈起。
拓扑学(Topology)
“拓扑学家就是不会区分甜甜圈和咖啡杯的人。” -John L. Kelley
“拓扑”这个词在希腊语中的意思是地貌。拓扑学是研究几何体连续形变中保持不变的性质。比如下面链接里介绍的“亏格”。无论怎么变形,亏格不同的对象都无法变成同一个模样。亏格就是一个拓扑不变量。
而连续的变换最后都能变成一样的两个物体,称为同胚(Homeomorphism)。 从这个角度上说,甜甜圈与有一只把手的杯子等价(都只有一个洞)。但是事实上,杯子无法捏成甜甜圈的模样,因为杯子都是瓷或塑料做的,它们都太硬。相对的,在拓扑学中研究的对象,都必须是“柔软”的,从某种意义上说就像可以流动的液体一样。然而,在传统的、基于内基的欧几里德空间(比如笛卡尔坐标系)中,得出甜甜圈等于杯子的结论是不可想象的。相应的,把基于欧几里德空间的几何学称为是“坚硬”的。
所以,在拓扑学中必须定义一个特殊的柔软的概念。
流形(Manifold)
流形这个名字来源于十九世纪德国数学家黎曼(Riemann )。流形的德语原名是Mannigfaltigkeit,意思是“多样性”。
下面一个问题是,该如何精确地描述这种柔软多变的流形呢?
这种灵感来源于地图集(Atlas)。假设你要做一份详细的中国地图, 有两个难点。第一是不可能把所有的地图细节包含在一张纸内,所以不同的城市要画在不同的页(Chart)上。然后,给出比例尺,再告诉读者从天津往西北方向的地图是北京等等。
第二个问题更加棘手,它源自于地图本身的局限性。我们很容易知道从上海往西走可以到乌鲁木齐。但是,假设从上海坐船往东,穿过北美、欧洲大陆,同样可以到达乌鲁木齐。用此逻辑,从任何一个地点出发,往任何方向前进,都可以回到原点,这是地图无法表达的。
把地图和拓扑的问题比较,某一张地图就好像一个笛卡尔坐标系,在局部的讨论中是成立的。就好比拿着北京地图从西直门走到西单,无论如何也是没有歧义的。但是扩大到整个地球(流形)就不成立了。
于是以地图集的概念描述一个流体:把流体的任何一个微小的局部看作是欧几里德空间,称为一个chart。无限多这样的chart拼接起来,就成了地图集atlas。
同时可以看出这样定义的流形,要求在某个任何小的空间里,它必须是"简单"的。试想可以把一个柿子看作一个流形,但某天它发霉了,长了一根毛(看作一条线),就不能看作流形了。因为考虑这个柿子长毛的那个微小区域,无法用一个chart描述。
事实上,地球的经纬度就可以看作一个坐标系。可以看出,在纬度最高的地方(南北极),方向是无法定义的。这也是欧几里德空间对于流体的局限性。
另外必须指出,对于同一个流体,可以通过选取不同的图(或者说是投影)来定义不同的地图集。
同在欧几里德空间里一样,流形也是有维度的,这个维度在局部里定义。如果流形的图是n维的,那么这个图被称为n维流形。比如球面的任意一个细小的局部是一个2维平面,那么球面就是一个2维流形。
从以上例子也可以看出,流形的维度同它在欧几里德空间的个体(3维)比较是下降了。直观来看,因为在曲面上的运动本来就也只有两个自由度。通常对于笛卡儿坐标系的曲面,可以找到对应的低维度流形坐标,这个过程叫做参数化(Parameterization)。
流形(Manifold)初步的更多相关文章
- 流形-Manifold
流形,也就是 Manifold .不知道你有没有为我在本文开头放上的那个地球的图片感到困惑?这是因为球面是一个很典型的流形的例子,而地球就是一个很典型的“球面”啦(姑且当作球面好啦). 有时候经常会在 ...
- FAQ: Machine Learning: What and How
What: 就是将统计学算法作为理论,计算机作为工具,解决问题.statistic Algorithm. How: 如何成为菜鸟一枚? http://www.quora.com/How-can-a-b ...
- [ML] I'm back for Machine Learning
Hi, Long time no see. Briefly, I plan to step into this new area, data analysis. In the past few yea ...
- MIT牛人解说数学体系
https://www.douban.com/group/topic/11115261/ 在过去的一年中,我一直在数学的海洋中游荡,research进展不多,对于数学世界的阅历算是有了一些长进. 为什 ...
- 【zz】MIT牛人解说数学体系
作者:林达华 一.为什么要深入数学的世界 作为计算机的学生,我(原作者)没有任何企图要成为一个数学家.我学习数学的目 的,是要想爬上巨人的肩膀,希望站在更高的高度,能把我自己研究的东西看得更深广一些. ...
- MIT牛人解说数学体系(转载)
原文网址:http://www.guokr.com/post/442622/ 在过去的一年中,我一直在数学的海洋中游荡,research进展不多,对于数学世界的阅历算是有了一些长进. 为什么要深入数学 ...
- MobileNet_v2
研究动机: 神经网络彻底改变了机器智能的许多领域,实现了超人的准确性.然而,提高准确性的驱动力往往需要付出代价:现代先进网络需要高度计算资源,超出许多移动和嵌入式应用的能力. 主要贡献: 发明了一个新 ...
- KNN-笔记(1)
1 - 背景 KNN:k近邻,表示基于k个最近的邻居的一种机器学习方法.该方法原理简单,构造方便.且是一个非参数化模型. KNN是一个"懒学习"方法,也就是其本身没有训练过程.只有 ...
- [数学]MIT牛人解说数学体系
本文内容遵从CC版权协议, 可以随意转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明网址: http://www.penglixun.com/study/science/mit_math ...
- 从零开始一起学习SLAM | 理解图优化,一步步带你看懂g2o代码
首发于公众号:计算机视觉life 旗下知识星球「从零开始学习SLAM」 这可能是最清晰讲解g2o代码框架的文章 理解图优化,一步步带你看懂g2o框架 小白:师兄师兄,最近我在看SLAM的优化算法,有种 ...
随机推荐
- WCF rest 的帮助页面和缓存机制
打开vs2010 在工具选项中选择扩展管理器——联机库 安装WCF REST Service Template 40(CS)模板 安装后新建wcf服务应用程序,删除默认建立的文件. 新建RestWcf ...
- 使用WindowsAPI播放PCM音频
这一篇文章同上一篇<使用WindowsAPI获取录音音频>原理具有相似之处,不再详细介绍函数与结构体的参数 1. waveOutGetNumDevs 2. waveOutGetDevCap ...
- ORACLE SQL 实现IRR的计算
一.IRR计算的原理: 内部收益率(Internal Rate of Return (IRR)),就是资金流入现值总额与资金流出现值总额相等.净现值等于零时的折现率. 用公式 标识:-200+[30/ ...
- http学习笔记(二):URL和资源
2.1浏览因特网资源 ------------总结:方案.主机.路径 方案:http,FTP,SMTP等 http(超文本传输协议)是一个基于请求与响应模式的.无状态的.应用层的协议,常基于TCP的连 ...
- 【密码学】RSA密钥长度、明文长度和密文长度
本文介绍RSA加解密中必须考虑到的密钥长度.明文长度和密文长度问题,对第一次接触RSA的开发人员来说,RSA算是比较复杂的算法,天缘以后还会补充几篇RSA基础知识专题文章,用最简单最通俗的语言描述RS ...
- 工作采坑札记:1. Hadoop中的BytesWritable误区
1. 背景 近日帮外部门的同事处理一个小需求,就是将HDFS中2018年至今所有存储的sequence序列化文件读取出来,重新保存成文本格式,以便于他后续进行处理.由于同事主要做机器学习方向,对had ...
- 打乱式排序的Java版实现
项目中涉及到对大批量的数据进行打乱式排序,大概原理如下: 输入源数据:1,1,2,3,3,3,4,4 输出结果: 1,2,3,4,1,3,4,3 实现代码如下,采用递归的思想: static &l ...
- SWIG 和 Python——c/c++与脚本交互
C 和 C++ 被公认为(理当如此)创建高性能代码的首选平台.对开发人员的一个常见要求是向脚本语言接口公开 C/C++ 代码,这正是 Simplified Wrapper and Interface ...
- linux内核态和用户态小结
一 内核态和用户态的区别 当进程执行系统调用而陷入内核代码中执行时,我们就称进程处于内核状态.此时处理器处于特权级最高的(0级)内核代码.当进程处于内核态时,执行的内核代码会使用当前的内核栈.每个进程 ...
- 拼json对象批量向后台添加数据
网站中如果遇到批量提交格式相同数据,可以使用json来传输 $("#catalogSave").click(function(){ var array=[]; $("[n ...