流形的概念与应用

根据百度百科的解释,流形是局部具有欧几里得空间性质的空间,在数学中用于描述几何形体。物理上,经典力学的相空间和构造广义相对论的时空模型的四维伪黎曼流形都是流形的实例。

但是流形在深度学习中有什么应用呢?这是我的一大疑虑~~

周志华的西瓜书第十章里有关于流形学习的概念——流形学习(manifold learning)是一类借鉴了拓扑流形概念的降维方法。“流形”是在局部与欧式空间同胚的空间,换言之,它在局部具有欧式空间的性质,能用欧氏距离来进行距离计算。这给降维方法带来了很大的启发:若低维流形嵌入到高维空间中,则数据样本在高维空间的分布虽然看上去非常复杂,但是在局部上仍具有欧式空间的性质,因此,可以容易地在局部建立姜维映射关系,然后在设法将局部映射关系推广到全局。当维数被将至二维或三维时,能对数据进行可视化展示,因此流行学习也可以被用于可视化。

简而言之,流形学习是用来进行降维和帮助我们进行数据可视化的。

常见的流形学习方法主要分两大类:等度量映射和局部线性嵌入。

数据降维是一个比较通用的数据处理方法,所以在图像处理方面,它的应用也是方方面面的:人脸识别、姿势、手型、数字书别等,通过流形学习,可以将高维人脸图像映射至二维空间,包括表情和角度等特征,并可以利用内在的自由度来估计观测数据之间的实际的序关系,将手写字符视作由像素构成,其可视化原理与人脸可视化相同,可以认为不同字体不同风格的相同字符位于具有相同概念的嵌套流形中。另外,基于流形学习也可以应用与视频序列分析以及单词的语义分析中。

最初接触到“流形”这么令人捉摸不透的词是在我读《深度学习》这本书的时候,没错就是那本花书。

p99中有流形学习的章节,我个人认为比西瓜书解释地要好得多:

“流形是指连接在一起的区域。数学上,它是指一组点,且每个点都有其领域。”“日常生活中,我们讲地球视为二维平面,但实际上它是三维空间中的球状流形。”这一讲不就清楚了么,就像地球上的所有原子,组成了地球这个流形,每个原子都是有“邻居”的~~

“在机器学习中,我们允许流形的维度从一个点到另一个点有所变化。这经常发生于流形和自身相交的情况中。例如,数字8形状的流形在大多数位置是一维,到那时在中心的相交处有两维。”  这么说来,只要能想象得出的形状,皆可为流形~~

“流形学习最初用于连续数值和无监督学习的环境,也可用于离散数据和监督学习下,但关键假设依然是:概率质量高度集中”。

扫描二维码关注公众号,回复: 3163236 查看本文章

以图像为例子解释流形,如果一个图像,随机抽取图像中的某点像素,赋予到另一个随机像素上,那我们会得到噪声图像,同理,文本。声音也如此,因为他们的概率分布是高度集中的。

p304,13.5PCA的流形解释中写道:

“线性因子模型,包括PCA和因子分析,可以理解为学习一个流形(hinton et al,1997)。我们可以讲概率PCA定义为高概率的薄饼状区域,即一个高斯分布,沿着某些周非常窄,就像薄饼沿着其垂直轴非常平坦,但沿着其他轴是细长的,正如薄饼在其水平轴方向是很宽的一样。”并附上一张确实很像薄饼的图片来解释这个现象。

其中“高概率的薄饼状区域”就是一个流形。没错,流形就是形象化地去解释模型~~

p314、使用自编码器学习流形

这里真正带我们实操流形学习~

首先要理解自编码器,它”利用了数据集中在一个低维流形或者一小组这样的流形的思想。其中一些机器学习算法仅能学习到在流形上表现良好单给定不在流形上的输入会导致异常的函数。自编码器进一步借此想法,只在学习流形的结构。

过程有点复杂,等一下次专门写个博客来分析~

参考:百度百科流形学习在图像中的应用

猜你喜欢

转载自blog.csdn.net/u011935830/article/details/80929770