2019-05-26 22:41:38
几何深度学习是一个非常令人兴奋的新领域,但它的数学正在慢慢地进入代数拓扑和理论物理领域。
本文使用规范理论的语言,它处于物理学中任何喜欢同时使用"量子"和"场"这两个词的中心。它有望直观地理解规范理论的基础知识。
我想在这里做的是给出纯粹直观的理解,没有数学。
在下文中,我将假设你知道卷积神经网络(CNN)是如何工作的,但不知道它们与流形有什么关系。
流形
一个流形是一件简单的事情。你看到的每个二维表面都可以被认为是一个流形。球体表面,立方体表面,所有流形。但它不仅限于二维,哎呀,它甚至不限于可以想象的东西。曲线是一种流形。4-D时空是一个多方面。它很一般,描述了一个空间。但是让我们关注二维表面。最简单的表面是平面,例如计算机屏幕。当我们与CNN进行卷积时,我们通常会在这些平面图像上进行卷积。
比方说,我们想用CNN来预测天气。对于一个国家,这很容易:使用当地的天气数据作为输入和keras-keras-boom,你有一个训练有素的模型。如果我们想对整个星球的天气进行分类怎么办?你如何将它融入单个图像?
但有一个问题。实际上,左边和右边是相同的位置。此外,整个顶部边缘对应于单个点,下边缘也是如此。整件事都是扭曲的。曾经试过压扁乒乓球吗?是的,那不顺利。当我们尝试应用卷积时,我们会得到奇怪的结果。不实际的事情可能发生在边缘。它可以预测图像最右侧的强烈东风,但图像左侧没有任何东西,即使它们代表相同的位置。CNN只是不明白地球环绕。
或者,我们可以为地球创建多个重叠地图,并拥有对其进行操作的CNN。这组地图也称为地图集。在所有这些单独的地图上移动 CNN,确保在它们重叠的同一点上继续在下一个地图上,然后应该使它能够理解地球是圆的。这是几何深度学习背后的基本思想:直接将深度学习应用于曲面或流形以保持其几何结构。
去新加坡
现在,让我们忘记一秒钟的天气并取出指南针。假设你在新加坡。向北,经过泰国,经过中国,蒙古到达北极。并且不改变方向,继续前进。你要经过加拿大,美国,直到你到达中美洲的某个地方。停在那里,开始在太平洋游泳,不改变方向!几百万招后,你应该回到新加坡。可是等等。你从来没有改变方向,你为什么要向南看?
让我们再说一遍,但是这次我们到达北极时我们会向左侧走。我们最终会在尼日拉附近开始向后走,再也不会改变我们的方向。一旦我们回到新加坡,这次我们向西看?奇怪......别相信我?自己尝试一下,只需拿一个指南针开始游泳......
这个问题是由于球体的曲率造成的,我们称之为"在不改变方向的情况下移动"作为平行传输。你看到并行传输非常依赖于球体上的路径。然而,在二维飞机上,无关紧要。一旦你回来,你可以走在每条路径而不改变方向,并有相同的方向。因此,我们说平面是可并行化的(一旦你回来你的方向向量保持平行),而球体不是。
你可以看到这对我们在球体上的CNN来说是一个问题。如果我们以不同的方式将CNN转移到我们所有的地图上,那么方向似乎会改变。我们需要找到一种方法来确保这种古怪不会影响我们的结果!或者,至少我们应该知道如何处理它。
毛茸茸的毛球
在找到解决方案之前,我们必须引入更多的数学概念。指南针可以被视为指向某个方向的飞机上的矢量,主要是北方。针旋转的这个平面与地球表面相切,我们将它称为地球在这个地方的切线空间。即使地球是圆的,切线空间也是完全平坦的。它的作用就像一个局部坐标系,北面和东面是它的坐标向量。而且,由于我们可以在地球上的任何地方取出指南针,每个地点都有自己的切线空间。但我们也可以将40°和130°定义为我们的坐标向量。北方和其他方向在这种情况下并不特别,选择是任意的。
现在,让我们选择切线空间中的任何方向,然后向前迈进一小步。我们确保采用最短的路径(测地线)并最终达到一个新的点。你可以称之为"前进",但是为了让每个人感到困惑,我们将这个过程称为指数映射(这是因为所有这些微小步骤神奇地类似于指数函数的系列扩展......但现在这并不重要) 。
让我们再看看我们的指南针。罗盘将矢量分配给地球上的"每个"点的事实称为(切线)矢量场。风也可以看作矢量场,因为它为每个点指定方向。当你直接站在磁北或磁南时,我特意将"每一个"放在引号中,因为罗盘针出了问题。事实上,对于球体上的每个非零连续矢量场都是错误的。我们必须在球体上的磁场中有极点。这种现象被称为毛球定理,因为它类似于无法梳理毛球,而不会产生旋转:
矢量场不需要与切线空间具有相同的尺寸。相反,它们可以在每个点上拥有自己的任意维度的向量空间。这很重要,因为我们还希望能够为地球上的每个点分配3-D或99-D矢量而不仅仅是2-D方向。在场的每个点处的该向量空间也被称为光纤。
(一种特殊类型的场是标量场。它只有一个维度,温度可以看作是这样一个标量场)
规
各地的温度测量方法不同。在德国,我们使用Celsius。在美国,他们使用华氏温度。这种选择称为量规。是的,这个词来自测量仪器。现在,当我从美国读到天气预报时,我必须计算出华氏温度在摄氏温度下的含义。我们有不同的参考框架。该计算称为规范变换。请注意,实际温度没有变化,只是我们用来理解它的值,变换是一个简单的线性函数。
如果我们看一下矢量场,比如风向,事情会变得更加复杂。为了达到极限,让我们假装一些国家,Gaugeland,它并不真正关心北方和南方,并且有自己的方向系统,基于星座或刺猬恐惧时的方向。当这些人描述风时,我们必须进行规范转换以了解他们所谈论的方向。现在,规范变换成为可逆矩阵的乘法(它必须明显地两种方式)。这一组矩阵的被称为 的一般线性群或GL。
对于理论上的扁平地球,风的选择可以是全局的。但在一个领域,我们遇到了问题。我们无法定义单个全局仪表,但必须依赖多个仪表和地图。根据我们在球体上的并行化问题和毛球定理,我们应该有一些直觉,为什么必须如此。
这自动意味着我们需要多个风图。然而,我们不再允许所有Gaugeland的shenaniganz,并要求至少他们使用的矢量(风速)的幅度必须与我们的相同。我们只允许他们使用不同的方向。因此,每个规格变换减少为旋转。这些变换也形成一组,即特殊正交组或SO,它是GL的子组。通过选择不同的结构组,我们有效地减少了我们的规范理论可能具有的允许变换。
回到深度学习
我们回到原来的问题,想要在风向矢量场上进行卷积。这里,风代表输入特征。假设我们想要找龙卷风方向作为输出。我们可以对"小补丁"执行卷积以从风向提取这些输出特征。(注意:我不知道这是否具有气象意义......输出向量到输出向量......这就是我们需要知道的全部)
但"小补丁"是一个非常模糊的描述。在二维平面上,它是直截了当的,我们可以把一些球内的所有东西都放在补丁的中心周围。这在某种程度上也适用于完美的球体。但在任意多方面?事情变得棘手。看看这个时髦的流形:
它被称为Klein瓶,我们可以看到,点之间的原始距离是......有问题的。我们可能永远不会需要Klein瓶进行深度学习,但我们希望尽可能保持一般性。
我们需要的是在拓扑意义上仅包括在流形附近的卷积中的点的方法。我们确实有办法做到这一点。回想一下,指数图在我们的流形上做了微小的步骤来找到附近的点。所以让我们用它。从中心开始,我们向切线空间允许的每个方向迈出一步,并将这一点包含在我们的卷积中。
我们现在需要的是一些与卷积相关的函数。因此,我们定义了一个内核,为每个指针分配一个矩阵......等待,不,我们用指数映射的切线空间的每个方向。这有点奇怪,但是当你看到经典的2-D卷积时,它实际上也是如此。它不是那么明显,因为它在飞机上。
该矩阵乘以输入矢量并产生输出矢量。在这里,作者确定了第一个问题。该矩阵仅针对中心定义。但是我们将它应用于附近点的场矢量,它们有自己奇怪的属性。在一个平面上,这不是问题,但在我们的领域,它们略有不同,我们不能只应用内核。
让我们解决这个问题并将这些点上的向量传输回我们小补丁的中心。在这里,我们可以应用我们的矩阵,而不必担心奇怪的曲率问题。
Gauge Equivariance
到目前为止我们定义的卷积似乎是明智的。我们应用我们的内核来获取数据并得到一个很好的结果:龙卷风向东移动。但不知何故,与Gaugeland相比,我们仍然得到不同的结果?他们预测龙卷风正在移动刺猬左派?
啊,是的:我们需要衡量将他们的结果转化为我们的框架aaa和voila:他们预测龙卷风会向西走。还是错的......
发生了什么?我们忘了让我们的卷积规范变得相同。简而言之,内核的结果必须依赖于所选择的规格并且等效地变换。如果没有,我们只会得到无法相互关联或相互比较的奇怪结果。
但是输出矢量可能是一个不同的维度,或者与输入有不同的解释,我们如何将输入的规范变换与输出的等变"规范变换"联系起来?那么,作为结构组只作用于输入,这个想法是要找到一个表示作用在输出向量相同的基团。
例如,具有旋转组作为其结构组的2-D输入矢量的变换可以由围绕单个轴旋转的3-D输出矢量表示。当2-D矢量旋转时,3-D输出也围绕固定轴旋转。通常,可以存在许多表示,例如在3D中可以存在许多不同的旋转轴。关键是,它做了代表相同动作的事情。
有了表示的概念,我们可以使卷积规范变得相同。我们只需要确保输入向量的规范变换导致输出向量的等变变换(即,相同的变换,但在适当的表示中)。
现在,使用规范等效,当我们在不同的地图上执行卷积时,我们得到不同的结果,但它们对于该特定地图是有意义的。这是我们定义卷积以在整个范围内有意义的最佳方式。
二十面体?
我们基本上涵盖了论文的第2部分。作者现在转向二十面体,它与拓扑结构非常相似,但更好。它们更好,我们可以比球体更容易离散它们。
就像我们用多个地图覆盖地球时一样,让我们用五个重叠的地图覆盖二十面体(重叠用小的全白三角形表示):
美丽,地图甚至大小相同。难怪他们选择了这种多样性。我们也可以将其视为图表。注意,每个节点,即每个交叉点,是具有输入特征向量的歧管上的点(在上图中不可见)。每个小三角形都有3个角,每个角都是这些节点之一。他们是我们感兴趣的。
那么,让我们做卷积!
首先,我们需要看看我们的指数地图是什么样的。好吧,在我们的离散歧管上,这很容易。我们只是从节点开始向任何方向迈出一步。方向在上图中可见为连接节点的线。因此,大多数节点有6个邻居,除了在二十面体的角落有5个邻居。
接下来,我们需要一个内核函数。但我们很懒,不想重新发明轮子。因此,我们只使用标准2D卷积的3 x 3滤波器。这些3 x 3滤波器具有中心点和8个邻居。这比我们需要的还要多。所以,让我们忽略3 x 3网格中的右上角和左下角邻居,并假装它只有6个邻居。
剩下的就是让这个东西变得规范。那么,让我们来看看我们的二十面体的结构组。我们已经注意到,我们只能进入6个不同的方向。如果我们在这个结构上描述风,我们将只有6个不同的离散风向。因此,我们的仪表变换限于60°旋转,其也可以表示为6阶或C6的循环群。
最后,我提到我们的地图是重叠的。因此,如果我们想要在具有重叠的区域上移动卷积滤波器,我们基本上使用来自不同映射的值。我们如何处理这些价值观?在我们使用它们之前,我们会测量它们到正确的帧。瞧,我们正在对二十面体进行卷积。
结论
在我看来,本文为几何深度学习领域提供了基本的结果。在进行卷积时理解仪表等效性的总体思路和重要性是这里的主要内容。