欧式空间到双曲空间

摘要:表示学习(Representation Learning)是人工智能领域一直在探讨的话题,也是走向强人工智能的路上必须要解决的一道难题。目前为止,大多数表示学习方法停留在了欧式空间(Euclidean Space),但事实上除了简单的欧式空间,还存在很多其他的非欧式空间可以用来构建AI模型,并且我们也发现了近两年越来越多的学者也开始在这个领域做出了一些有意思的工作。在本文中,我们通俗易懂地讲解了欧式空间与其他非欧式空间比如双曲空间(Hyperbolic Space)的区别,以及使用这类空间来建模的背后的动机。阅读本文不需要双曲空间相关知识。

1. 什么是好的表示(Good Representation)?

表示学习(Representation Learning)是当今机器学习领域经常被讨论的话题,尤其深度学习的崛起,让很多学者加入到了表示学习的研究当中。那什么是表示学习? 通俗易懂的解释就是用数字(向量、矩阵...)来表达现实世界中的物体(object),而且这种表达方式有利于后续的分类或者其他决策问题。跟表示学习有紧密关联的是特征工程(feature engineering),但工业界的特征工程更多的是利用人为的经验去设计一套适合某个特定领域特征的过程,整个时间成本很高,而且一个领域的特征通常很难去解决其他类似的问题。相反,在表示学习中,我们希望通过算法自动从给定的数据中学出合理的特征或者表示。

比如在下面这幅图中,给定一个输入input, 我们希望通过一层层的模型参数来学出一个表示,并且这个表示可以很好地支持上层应用 A,B,C。

图片来自于[1]

在图像识别领域,CNN已经成为最主流的算法,通过一层层的卷积层,Pooling层来对原始的图片数据(看成是像素)做非线性转换,整个过程其实可以看做是表示学习的过程,我们希望通过这样一层层的转换,能够学出代表每个图像的“最好的表达方法”,同时这种表达有利于后续的分类或者其他的任务。类似的,在自然语言处理领域,词嵌入(word embedding)必然是近几年最重要的成果之一,通俗来讲就是用一个低维的向量来表达每一个单词,也称作分布式表示法(distributed representation)[2]。在单词的表示学习过程中我们经常会用到 Skip-Gram[4], CBOW[3], Glove[5]等算法,找到能够用来表达每一个单词的最合理的向量。最后,在语音识别领域,端到端的模型也逐渐成为主流,通过原始语音信号的表示学习,是否能够学习出比传统语音特征(比如MFCCs),更加有效的表示也是很多人研究的话题。

说到这里,给定一个问题,我们可以尝试着用各类算法来去学习不同的表示方法,那这里的关键问题是我们怎么去判断哪些表示是好的,哪些表示是不好的? 比如我们设计了一套CNN架构,怎么判断从图片里学出来的表示(representation)是好是坏的? 最简单的评估标准,也是很多人目前使用的是,针对于一个任务(task)的准确率-这种“终极”指标,所以很多人会误认为准确率高的就是好的表示,或者根本不去关心除了准确率之外的事情。包括在学术界,这种缺乏本质思考的研究也导致了近几年低质量论文的“泛滥”,形成了比拼准确率的“竞赛”,但在本质层面上并没有给科学的发展带来了较大的影响。

事实上,准确率仅仅是其中一个方面,其实还有很多其他的因素需要考虑进去。Bengio等学者在[1] 提出了好的表示所需要具备的一些特性。首先, 一个好的表示可以学出Disentangle Factors,而且这些factor可以泛化(generalize)到其他类似的任务中。比如给定一个有人物的图片,我们可以想象每一张图片由 “图片中的人物”,“人物的角度”, “表情”, “有没有带眼镜” 这些不同因素来组成,而且可以看作这些因素是具有相互独立性的。

比如在下面的图片中,有些图片主要用来描述角度、有些主要用来描述发型和表情。举个简单的例子,假设我们用神经网络对图片进行了学习,而且最后用一个四维的向量来表达这幅图片。那这时候,我们希望第一个hidden unit可用来控制角度、第二个unit可以用来控制是否带眼镜,以此类推。

那这样的结果是,假设我们知道哪部分表示针对的是图片中的人物,则只需要在这部分表示中添加分类算法则可以达到分类人物的目的。其实,这种思维方式跟人类去看世界是类似的,人类是有能力从复杂的信息中把每一个独立的信号抽取出来。比如一个美食爱好者,每次去新的城市可能只会关注当地的美食,而不是其他不需要关注的信息。

另外,具有类似层次结构(hierachical representation)的表示也是我们重要的关注点。在现实世界的很多场景下,物体是有层次结构的。比如对于上面提到的单词的表示,“苹果”,“葡萄”和“水果”并不是平行的关系,而是具有“属于”这种关系。类似的,“北京”,“上海” 均属于 “城市”。那我们的问题是,通过词嵌入算法(word embedding)学出来的表示是否能够复现这种层次关系? 我们都知道类似于Skip-gram这些算法更多的是依赖单词之间语义的相似度,但不一定是这些单词之间的层次关系。 另外,很多网络也是具有层次结构的,比如网络中的意见领袖通常位于层次结构中的最顶层。那对于网络中的节点来说,什么样的表示能够还原原始数据中应有的层次结构呢?

除了这两个特性,Bengio在[1]中也提到了其他需要考虑的特性,感兴趣的读者可以查阅相关文档。到此为止,都是一些背景知识,只是用来说明为什么有时候需要考虑双曲空间的一个动机(motivation)。

2. 目前绝大多数表示学习方法论依赖于欧式空间

欧式空间是大家最熟悉不过的概念,从小学开始学的数学里面基本都是在跟欧式空间打交道。比如我们很清楚“给定两个点,只能找到一条直线通过这两个点”, “给定一个点和一条直线,我们只能找到一个平行的直线”。而且我们知道怎么做两个向量的加法、减法,甚至向量的线性变换。对于欧式空间,一个最简单的理解就是它是“平”的,比如二维空间就是一个平面。相反,那是否存在一些空间是“弯”的?这是接下来我们讨论的重点。

在机器学习领域,我们目前所讨论的绝大部分模型都是依赖于欧式空间中的运算。从我们所熟悉的线性回归、逻辑回归到深度学习中的CNN, RNN, LSTM, Word2Vec 这些都依赖于欧式空间。实际上,除了欧式空间这种“平”的空间,在有些问题上我们也会去面对其他“弯”的空间,比如这篇文章要讨论的双曲空间(hyperbolic space)。举个例子,假设给定了两个城市的坐标,我们都知道在一个2D地图上计算出这两个城市之间的距离,其实就是欧式距离。但如果我们考虑“地球是圆的”,那计算两个城市之间的距离不再是直线距离了,而是类似于一个曲线的距离。所以对这类问题,欧式距离公式不再直接适合。类似的,宇宙空间也是弯曲的,所以也需要依赖于非欧式空间的性质。

本文章主要讨论非欧式空间家族中的一个重要空间,叫做双曲空间(hyperbolic space),以及它在常见机器学习建模中的应用。 双曲空间可以看做是一个空间,但它的曲率是负的(constant negative curvature),也是常曲率黎曼空间(Riemannian space of constant curvature)的特例(当然,欧式空间也属于常曲率黎曼空间,但曲率是0)。本文主要围绕2017年NIPS一篇Spotlight论文“Poincaré Embeddings for Learning Hierarchical Representations”来展开讨论。据我的了解,这应该算是第一篇在计算机领域出现的聚焦于应用场景的、讨论双曲空间的文章,预测会带来一定的影响力。美国东北大学的Dmitri等学者也尝试过把双曲空间的理论应用到复杂网络分析上,但局限于二维空间[6]。

具体了解细节之前,我们先来看一个Demo,来理解双曲空间具体做了什么样的工作。在这里我们使用了WordNet数据集,它包含了很多概念以及概念之间的层次关系,如下图所示。

WordNet数据集[7]

下面的Demo展示的是当我们把双曲空间模型应用到此类数据集时表示变化的过程。可以看到,一开始每个点均匀分散在整个空间里,但随着学习过程的进行,这些点的分布在空间里明显呈现出一种类似于树状结构,也就是层次结构。

  
Demo 来自于 [8]

通过一段时间的学习过程,最终可以生成类似如下图的表示。这是二维空间中的可视化结果。我们可以看到一个有趣的现象,比如WordNet里面“Entity”这种位于偏向于Root的概念在双曲空间里位于离中心比较近的地方。相反,很细节性的概念比如“tiger”就会位于空间中边缘的地方,而且具有类似含义的概念也位于相邻的位置上。

图片来自于 [9]

所以,从图中我们可以看出学出来的表示具有一定的层次结构(hierarhical structure)。这就是跟欧式空间的很大的区别,在欧式空间里学出来的表示,只包含相似的信息,但不具备类似的层次结构。

3. 双曲空间的特点

 

双曲空间具有几个比较明显的特点,而且这些特点是欧式空间不具备的。第一个特点是,它具有表达层次结构的能力(如上面我们所讨论的例子一样)。比如我们的数据本身具有一定的层次结构,它则可以在双曲空间里面复原这种层次结构(当然数据稀疏的时候是很难)。第二个重要特点是它本身具备的空间大小(capacity)跟欧式空间很不一样。在生活中,比如我们买一个1升大小的桶,则可以用来装1升的水,当然这是发生在欧式空间的例子。假设我们拥有同样大小的桶,但考虑的是双曲空间则会有什么不一样?

左边的图代表一个双曲空间的可视化,里面包含了很多具有同样文理的图片,每个图片形状相同,但大小不一样(至少在欧式空间里)。但是,一个有趣的现象是,在双曲空间里面,其实这些图片的大小都是一样的,而且随着它们的位置更靠近球的边缘,肉眼看到的图片大小会越来越小,但实际在空间中的大小是一样的。这说明什么现象呢? 也就说,随着往球的边缘走,空间所承载的大小会指数级增大,所以可容纳指数级多的纹理图片。这其实说明,双曲空间的capacity要远远大于欧式空间。比如我们回到一开始的例子,假设同样大小的水桶,在双曲空间里有可能可以装上几万升或者几千万升的水。当然,从数学角度这种例子不算严谨,但至少便于理解。右边的图表示的意思是:在双曲空间里,经过一个点并且跟一个给定的直线平行的直线有无数个。这是从空间特性角度来看,跟欧式空间最大的不同。

空间大小对于表示学习有什么影响呢? 在深度学习里面,我们经常会讨论隐式层(hidden layer),而且每个hidden layer都有一定数量的hidden units,比如64, 128等。一个具有64的hidden units能表示的空间大小有多大呢? 这个问题其实很重要,相当于我们需要对模型的复杂度有个提前认识。假如每一个hidden unit的取值是0或者1(像RBM),那很容易计算出来64个hidden units能表示的所有组合个数是2的64次方,也可以理解成容量或者空间大小(capacity)。类似的,如果在双曲空间考虑这个问题,多少个hidden units可以带来2的64方空间大小呢? 不严谨的答案可能是远远少于64位。所以我们的假设是:我们在双曲空间可以利用更少的参数来表达具有在欧式空间中同样容量(capacity)的模型。

4. 双曲空间的不同表示方法

为了在双曲空间做运算,我们需要基于一些标准化的模型来计算。有几个模型适合用来表达双曲空间比如 Beltrami-Klein  model,  the  hyperboloid  model,   and  the Poincare half-plane  model [1]。其中Pointcare ball model模型是比较适合大数据的场景,因为很多优化理论只需要通过简单的修改就可以用在Pointcare模型上。比如欧式空间里的随机梯度下降法(SGD),通过简单的修改即可以用来优化双曲空间中的优化问题。

5. 例子:利用双曲空间来学习网络的表示

利用这个案例来详细地阐述整个建模的过程,类似的过程可以直接应用到其他的场景。详细的推导过程可以先关注“贪心科技”公众号(本公众号),回复关键词“表示学习”来获得。

5.1 问题定义:

给定一个网络,我们希望学习出每一个网络节点的表示。其实这个问题也叫做网络嵌入(network embedding)。假设网络中有N个节点,以及我们知道所有相连的边。我们用y=1表示两个边相连,y=0表示没有相连。

5.2 目标函数的构建:

对于每一条边(相连或者不相连),我们可以定义一个条件概率:

其中d_ij代表节点i 和 j在双曲空间中的距离,所以d_ij越小,则两个节点相连接的概率越大。r, h是模型的超参数(hyperparameter)。hi, hj 代表节点i, j在双曲空间中的向量表示(vector representation),通常需要经过调参的过程。当我们有了针对于每一条边的条件概率,我们就可以很容易写出整个目标函数:

也就是把所有的边(相连或者不相连)考虑了进去。这种目标函数也称作entropy loss, 在逻辑回归中也会经常提到。

这里面有几个运算需要重新定义,一个是针对于每一个节点在双曲空间的表示,另外是在这里刻画距离的d()函数。因为这些运算我们都需要在双曲空间中重新定义。

5.3 运算符的定义

首先,对于每个节点的表示来说,在pointcare模型下我们定义它必须在半径为1的圆形之内,不能超出这个范围。利用数学,我们可以定义成:

其中||x||<1表示向量x的norm要小于1. 如果在更新过程中发现norm不满足此条件,则可以通过projection方式把它映射到满足的区域里面。 其次,对于两个节点在pointcare模型下的距离是这样定义的:

其中||.||代表欧式空间中的norm。arcosh是inverse hyperbolic cosine function。我们很容易观测到,随着hi,hj的norm趋向于1, 也就是靠近圆形的边缘,arcosh里面的值会不断地变大,而且这种变化是指数级的。这也从另一个层面解释,为什么双曲空间的容量会随着靠近边缘变得越来越大。

到此,我们已经定义好目标函数以及所需要的运算符,接下来就是通过一些优化算法去找到目标函数的最优解(通常局部最优)。

5.4 找出最优解

利用Pointcare模型的一个重要好处是可以把欧式空间中像随机梯度下降法通过简单修改即可以拿来使用。整体的思路就是首先在欧式空间中计算梯度,然后通过一些简单的转换得到双曲空间中的梯度,从而在双曲空间中做随机梯度下降。那这里所提到的转换怎么做呢? 通过所谓的metric tensor我们很容易把计算出来的梯度转换成双曲空间所需的梯度。比如在如下图,表示一个梯度更新的过程,唯一跟常规梯度更新算法的区别在于前面多了一个项,其实就是inverse of metric tensor。

6.  总结

在本文我们只给出了非常基础的描述,目的是让读者能够直观上理解双曲空间的优势以及什么时候需要用双曲空间来建模。当然,这方面的研究目前还处于比较初级的阶段,但相信未来会有更多相关的工作会呈现出来。

很多人认为神经网络是用来模拟大脑的。这句话最多在描述卡通版的大脑,其实即使神经科学家也未必对大脑的机制有很清晰的了解。目前的神经网络大多运行在2D平面,但大脑本身存在三维空间里,而且神经元之间具有一定的几何特性,那会不会结合非欧式空间的神经网络更适合来模拟其内在运行机制呢?只有更多地探索才能给出正确答案。

 

参考:

[1] Bengio, Yoshua, Aaron Courville, and Pascal Vincent. "Representation learning: A review and new perspectives." IEEE transactions on pattern analysis and machine intelligence 35, no. 8 (2013): 1798-1828.

[2] Hinton, Geoffrey E., James L. McClelland, and David E. Rumelhart. Distributed representations. Pittsburgh, PA: Carnegie-Mellon University, 1984.

[3] Mikolov, Tomas, Kai Chen, Greg Corrado, and Jeffrey Dean. "Efficient estimation of word representations in vector space." arXiv preprint arXiv:1301.3781 (2013).

[4] Mikolov, Tomas, Ilya Sutskever, Kai Chen, Greg S. Corrado, and Jeff Dean. "Distributed representations of words and phrases and their compositionality." In Advances in neural information processing systems, pp. 3111-3119. 2013.

[5] Pennington, Jeffrey, Richard Socher, and Christopher Manning. "Glove: Global vectors for word representation." In Proceedings of the 2014 conference on empirical methods in natural language processing (EMNLP), pp. 1532-1543. 2014.

[6] Krioukov, Dmitri, Fragkiskos Papadopoulos, Maksim Kitsak, Amin Vahdat, and Marián Boguná. "Hyperbolic geometry of complex networks." Physical Review E 82, no. 3 (2010): 036106.

[7] Miller, George A., Richard Beckwith, Christiane Fellbaum, Derek Gross, and Katherine J. Miller. "Introduction to WordNet: An on-line lexical database." International journal of lexicography 3, no. 4 (1990): 235-244.

[8] https://www.facebook.com/ceobillionairetv/posts/1599234793466757

[9] https://github.com/facebookresearch/poincare-embeddings

转自:https://www.itcodemonkey.com/article/8616.html,感谢分享

原文地址:https://www.cnblogs.com/baiting/p/11006331.html

时间: 2024-11-13 03:58:52

欧式空间到双曲空间的相关文章

Differential Geometry之第一章欧式空间

书籍:<微分几何>彭家贵 局部微分几何 第一章.欧式空间 1.1向量空间 (1)向量空间 a.向量空间是集合,集合中的元素需要定义加法和乘法运算.向量空间和n维数组空间R^n不是同一个概念. b.欧式向量空间是向量空间的子集,满足有限维,还需要定义内积.同理,n维欧式向量空间与n维内积空间R^n也不是同一个概念. 施密特正交化(Schmidt orthogonalization)(http://jingyan.baidu.com/article/c74d60007ab7500f6a595dcc

欧式空间(我就试一下怎么用Word发文章)

欧式空间 一.欧式空间的定义和性质 1.欧式空间的提出背景 (1)向量的度量性质在线性空间的理论中没有得到反映: (2)向量的度量性质在许多问题中有着特殊的地位: (3)向量的度量性质都可以通过内积来表示: (4)向量的内积有明显的代数性质. 2.基本知识 定义1:内积的定义,内积是定义在线性空间上的一个二元函数.--内积的代数性质1 度量矩阵--内积的代数性质2 度量矩阵是正定矩阵 定义2:用内积来定义长度: 定义3:用内积来定义夹角: 定义4:用内积来定义正交(或垂直). 3.例子 (1)通

欧式空间

从起源来讲,欧式空间是满足欧几里得<几何原本>中几何五公理的空间.维基百科欧几里得几何中给出的解释如下: 1. 从一点向另一点可以引一条直线.2. 任意线段能无限延伸成一条直线.3. 给定任意线段,可以以其一个端点作为圆心,该线段作为半径作一个圆.4. 所有直角都相等.5. 若两条直线都与第三条直线相交,并且在同一边的内角之和小于两个直角,则这两条直线在这一边必定相交. https://www.zhihu.com/question/27903807/answer/38585024 原文地址:h

数学空间/希尔伯特空间

想要理解数学空间和希尔伯特空间,我们的思路是: 现代数学-->集合-->线性空间(向量空间)及基的概念-->赋范空间-->內积空间-->希尔伯特空间 于是,我们想要理解希尔伯特空间,首先需要从距离开始,然后说说线性空间,到范数空间,再到內积空间,最后一直到欧式空间,希尔伯特空间和巴拿赫空间. 现代数学最大的特点就是以集合为研究对象,将不同问题的本质抽取出来,变成同一类问题.而集合分为两种:有线性结构的集合(线性空间/向量空间):以及有度量结构的集合(度量空间).要说欧式空间和

基于位置信息的聚类算法介绍及模型选择

百度百科 聚类:将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类.由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异."物以类聚,人以群分",在自然科学和社会科学中,存在着大量的分类问题.聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法.聚类分析起源于分类学,但是聚类不等于分类.聚类与分类的不同在于,聚类所要求划分的类是未知的. 分类和聚类算法一直以来都是数据挖掘,机器学习领域的热门课题,因此产生了众多的

FaceNet--Google的人脸识别

引入 随着深度学习的出现,CV领域突破很多,甚至掀起了一股CV界的创业浪潮,当次风口浪尖之时,Google岂能缺席.特贡献出FaceNet再次刷新LFW上人脸验证的效果记录. 本文是阅读FaceNet论文的笔记,所有配图均来自于论文. 转载请注明:http://blog.csdn.net/stdcoutzyx/article/details/46687471 FaceNet 与其他的深度学习方法在人脸上的应用不同,FaceNet并没有用传统的softmax的方式去进行分类学习,然后抽取其中某一层

关于高斯-博内公式的一个简单的内蕴证明

关于高斯-博内-陈 平面上任一三角形的三内角之和恒等于π,对于一般曲面上由三条测地线构成的三角形,其内角和等于π加上高斯曲率K在此三角形所围曲面上的积分. 1827年,高斯证明了这一定理.1944年,博内将这一定理推广到一般曲面上,由任一闭曲线C围成的单连通区域,形成了著名的高斯-博内公式.1944年,陈省身给出了高斯-博内公式的内藴证明. 欧拉数虽然神秘有趣,可还是引不起数学家们的强烈兴趣,原因是它太简单了,小学生都可以很快弄懂这些数的来源,那个时代的数学家们总是希望有个积分,微分什么的,以显

统计学习笔记之支持向量机

支持向量机(SVM)是一种二分类模型,跟之前介绍的感知机有联系但也有区别.简单来讲,感知机仅仅是找到了一个平面分离正负类的点,意味着它是没有任何约束性质的,可以有无穷多个解,但是(线性可分)支持向量机和感知机的区别在于,支持向量机有一个约束条件,即利用间隔最大化求最优分离超平面,这时,支持向量机的解就是唯一存在的. 首先来看线性可分的支持向量机,对于给定的数据集,需要学习得到的分离超平面为: 以及对应的分类决策函数: 一般而言,一个点距离分离超平面的远近可以表示分类预测的确信程度.如果超平面确定

PCA数学角度解析

转:http://blog.csdn.net/passball/article/details/24037593 主成分分析(PCA)是多元统计分析中用来分析数据的一种方法,它是用一种较少数量的特征对样本进行描述以达到降低特征空间维数的方法,它的本质实际上是K-L变换.PCA方法最著名的应用应该是在人脸识别中特征提取及数据维,我们知道输入200*200大小的人脸图像,单单提取它的灰度值作为原始特征,则这个原始特征将达到40000维,这给后面分类器的处理将带来极大的难度.著名的人脸识别Eigenf