How to represent part-whole hierarchies in a neural network
Hinton44页的长文-GLOM分析
https://zhuanlan.zhihu.com/p/365735990
Authors: Geoffrey Hinton
本文不描述工作系统。取而代之的是,它提出了一个关于表征的单一想法,允许几个不同群体的进步结合成一个称为GLOM的想象系统。这些进步包括Transformers、神经领域、对比表征学习、蒸馏和胶囊。GLOM回答了这样一个问题:一个具有固定结构的神经网络如何将一幅图像解析为一个局部-整体层次结构,而该层次结构对每幅图像都有不同的结构?其思想是简单地使用相同向量的孤岛来表示解析树中的节点。如果GLOM能够发挥作用,当应用于视觉或语言时,它将显著提高Transformers式系统产生的表示的可解释性
1.想法概述
有强有力的心理学证据表明,人们将视觉场景解析为部分-整体层次结构,并将部分和整体之间视点不变的空间关系建模为他们指定给部分和整体的内在坐标系之间的坐标变换[Hinton,1979]。如果我们想让神经网络以与人类相同的方式理解图像,我们需要弄清楚神经网络如何代表部分-整体层次结构。这很困难,因为真正的神经网络无法动态分配一组神经元来表示解析树2中的一个节点。神经网络无法动态分配神经元是使用“胶囊”的一系列模型的动机[Sabour等人,2017年,Hinton等人,2018年,Kosiorek等人,2019年]。这些模型假设一组称为胶囊的神经元将永久性地用于图像特定区域中发生的特定类型的一部分。然后,可以通过激活这些预先存在的特定于类型的胶囊的子集以及它们之间的适当连接来创建解析树。本文描述了一种非常不同的方法,使用胶囊来表示神经网络中的部分-整体层次结构。
尽管本文主要关注单个静态图像的感知,但GLOM最容易理解为处理帧序列的管道,因此静态图像将被视为相同帧序列。
GLOM架构由大量列4组成,这些列使用完全相同的权重。每一列都是一组空间局部自动编码器,用于学习小图像块中发生的事情的多个表示级别。每个自动编码器使用多层自下而上编码器和多层自上而下解码器将一个级别的嵌入转换为相邻级别的嵌入。这些级别对应于部分-整体层次结构中的级别。例如,当显示人脸图像时,单个列可能会聚在表示鼻孔、鼻子、人脸和人的嵌入向量5上。图1显示了不同级别的嵌入如何在单个列中交互。
图1没有显示不同列中相同级别的嵌入之间的交互。它们比列中的交互简单得多,因为它们不需要实现部分-整体坐标变换。它们就像多头Transformers中表示不同单词片段的列之间的注意力加权交互[Devlin等人,2018],但它们更简单,因为查询、键和值向量都与嵌入向量相同。柱间相互作用的作用是通过使该级别的每个嵌入向量回归到附近位置的其他类似向量,在该级别生成相同嵌入的孤岛。这创建了多个局部“回音室”,其中某一级别的嵌入主要关注其他志同道合的嵌入。
在每个离散时间和每个列中,一个级别的嵌入更新为四个贡献的加权平均值:
1.由自底向上的神经网络在上一次作用于下一级的嵌入所产生的预测。
2.由自顶向下的神经网络在上一时刻作用于上一层次的嵌入所产生的预测。
3.上一时间步的嵌入向量。
4.上一次相邻柱中同一水平嵌入的注意加权平均值。
对于静态图像,某一级别的嵌入应该随着时间的推移而稳定下来,以产生几乎相同向量的不同孤岛。如图2所示,这些岛屿在更高的层次上应该更大。使用相似性孤岛来表示图像的解析,避免了动态分配神经元组来表示解析树的节点,或者预先为所有可能的节点留出神经元组。GLOM没有分配神经硬件来表示解析树中的节点,并将节点指针提供给其祖先和后代,而是分配适当的活动向量来表示节点,并对属于节点6的所有位置使用相同的活动向量。访问节点的祖先和后代的能力是通过自底向上和自顶向下的神经网络实现的,而不是通过使用RAM进行表查找。
与BERT[Devlin et al.,2018]一样,整体系统可以从头到尾进行训练,以便在最后一个时间步从缺少区域的输入图像重建图像,但目标函数还包括两个正则化器,它们鼓励在每个级别上形成近似相同向量的孤岛。正则化器只是在某个级别上的新嵌入与自底向上和自顶向下预测之间的一致性。增加这一协议有助于当地岛屿的形成。
2导言
本文提出了使用相似向量的孤岛来表示图像的解析树的想法,然后通过描述一个称为GLOM的虚拟系统来探索这种想法的一些分支。文章最后对大脑如何实现GLOM的某些方面进行了一些推测。但首先是一些免责声明:
免责声明1:
人类视觉是一个采样过程,在此过程中,智能选择的固定点用于获取执行任务所需的信息,使用固定点周围分辨率更高的视网膜。相同的神经回路在每次新固定中重复使用。出于本文的目的,我假设一个单一的视网膜或照相机具有统一的分辨率,并且只考虑第一次固定发生的情况。
免责声明2:
为了避免像“子部件”这样繁琐的术语,我将经常谈论部件和整体,就好像在部件-整体层次结构中只有两个级别一样。但当考虑L-1和L时,完整嵌入向量的一部分称为整体,当考虑L和L+1时,该部分也称为部分。
在具有通用随机存取内存的计算机中,表示特定图像的部分-整体层次结构的明显方法是,通过动态地将内存块分配给图形中的节点,并为每个节点指向其连接的节点,为该特定图像创建图形结构。将这种动态创建的图形与神经网络学习技术相结合最近显示出巨大的前景[Bear等人,2020],但是如果整体计算机是一个神经网络,如果我们希望所有图像的神经网络结构都相同,那么如何表示每个图像不同的部分-整体层次结构就不那么明显了。如果我们允许一个神经元的活动控制另两个神经元之间的连接的三向交互[Hinton,1981c],很容易使连接动态化,但仍不清楚如何动态创建图形结构,而不具备动态分配神经元的能力。这在实际的神经网络中尤其困难,因为知识位于连接权重中,不容易复制。
这个问题的一个相当麻烦的解决方案是为图像7的每个区域中的每种可能类型的对象或部分留出一组称为胶囊的神经元,并使用路由算法将活动胶囊的一小部分动态连接到表示手头图像解析的图中。胶囊内神经元的活动可以表示某个部位的特性,如特定嘴或脸的姿势或变形。
经过大量努力,使用胶囊的模型在小数据集的监督和非监督学习方面取得了一些成功[Sabour等人,2017年,Hinton等人,2018年,Kosiorek等人,2019年],但它们没有很好地扩展到更大的数据集[Barham和Isard,2019年]。太空舱没有真正实用的想法,比如随机梯度下降或只是想工作的Transformers。胶囊的基本缺点是它们使用一种混合物来模拟一组可能的部件。这就迫使人们做出一个艰难的决定,即汽车前照灯和眼睛是否真的是不同的部分。如果它们是由同一个胶囊模拟的,那么胶囊无法预测整体的特性。如果它们是由不同的胶囊模拟的,那么它们与整体的关系中的相似性就无法捕捉到。
避免使用混合物对不同类型的部分进行建模的一种方法是使用一组相同的“通用”胶囊,其中每个胶囊都包含足够的知识来对任何类型的部分进行建模[Locatello等人,2020年,Srivastava等人,2019年,Sun等人,2020b]。这允许部分标识具有分布式表示,从而允许相似部分之间更好地共享知识。在神经科学术语中,身份是值编码而不是位置编码。但是,在决定每个部分应该路由到哪个通用对象级别胶囊时,它会产生对称性破坏问题
.
通用胶囊的一个更激进的版本,它避免了对称性破坏和路由,是为图像中的每个位置预先分配一个通用胶囊。这些无处不在的通用胶囊可以用来代表在那个位置发生的任何事情。一个更为奢侈的版本是为每个位置提供几个不同级别的无处不在的通用胶囊,这样一个位置就可以同时属于一个场景、一个对象、一个部分和一个子部分。本文探讨了这种表示部分-整体层次结构的挥霍方式。它的灵感来源于生物学类比、数学类比和最近关于神经场景表示的研究[Ha,2016,Sitzmann等人,2019]。
2.1生物学类比
人体内的所有细胞都有整体基因组的拷贝。对于脑细胞来说,包含肝细胞行为的指令似乎是浪费,但它很方便,因为它让每个细胞都有自己的私人途径来获取它可能选择表达的任何DNA。每个细胞对于每个基因都有一个表达强度9,对于构成同一器官一部分的细胞,表达强度的载体是相似的。
与神经网络的类比是这样的:图像中的每个位置对应一个生物细胞。一个位置的完整嵌入载体类似于细胞的基因表达强度载体。前向传递类似于发育过程,允许新的基因表达强度载体由先前的表达强度载体决定。对象就像器官:它们是一组位置的集合,其嵌入向量在较高级别上都非常相似。在一个对象中,嵌入向量可能在对应于对象部分的较低级别上有所不同(见图2)。
2.2数学类比
Kolmogorov-Arnold叠加定理指出,每个多元连续函数都可以表示为一元连续函数的叠加10。例如,乘法可以表示为各个参数的日志之和,后跟幂运算。在机器学习术语中,当涉及到多参数函数时,加法就是您所需要的。当然,这假设您可以找到正确的单参数函数来编码要表示的多元函数的参数,然后找到正确的函数来解码和。Kolmogorov证明了这一点,但用于证明的编码器函数非常奇怪,与神经网络没有实际关联。
然而,该定理确实提出了一种有趣的方法来组合来自许多不同位置的信息。也许我们可以学习如何在每个位置编码信息,这样简单地平均不同位置的编码是我们需要的唯一交互形式11。这一思想已经在集合变换器中使用[Lee等人,2019],用于组合来自集合不同成员的信息。如果我们稍微修改这个建议,使用注意加权局部平均值,我们会得到一个特别简单的Transformers形式,其中键、查询和值都与嵌入本身相同,位置之间的唯一交互是每个级别的注意加权平滑。所有的自适应都发生在每个位置的自下而上和自上而下的神经网络中,如图1中的蓝色和红色箭头所示。这些网络在所有位置和所有时间步长上共享,但可能不在部分-整体层次结构的所有级别上共享。
2.3神经领域
假设我们想要表示图像中每个点的标量变量的值,例如深度或强度。一种简单的方法是将图像位置量化为像素,并使用一个数组指定每个像素处的标量变量。如果不同像素的值相关,则使用将表示图像的码向量作为输入并输出像素值数组的神经网络可能更有效。这就是自动编码器的解码器所做的。或者,我们可以使用一个神经网络,将表示图像的代码向量加上表示图像位置的附加输入作为输入,并在该位置输出预测值。这被称为神经场12,这种使用神经网络的方法最近非常流行[Ha,2016,Sitzmann等人,2020,Mildenhall等人,2020]。图3显示了一个非常简单的示例,其中一组位置的强度都可以从相同的代码重建,即使强度不同。
对于复杂的图像,神经网络可以将表示整体图像的代码向量加上表示图像位置的向量转换为该位置的值。但是,如果图像是由熟悉的对象组成的,而对象是由熟悉的部分组成的,那么使用神经场的层次结构13会更有效。在GLOM中,场景级自上而下的神经网络将场景向量加上图像位置转换为该位置的适当对象向量。该向量包含有关对象相对于摄影机的三维姿势的信息。属于同一对象的所有位置都被赋予完全相同的对象级别向量。然后,对象级自上而下神经网络将对象向量加上位置转换为适合该位置的部分向量,依此类推。例如,作用于完全相同的人脸向量的完全相同的自顶向下网络能够预测某些位置的鼻子向量和其他位置的嘴向量。
2.4部分-整体层次结构的明确与紧急表示
在部分-整体层次结构的符号AI表示中,每个节点都有一个唯一的符号或内存地址,并且该符号或地址与内容具有任意关系。在GLOM中,特定级别上的嵌入向量由该级别上孤岛中的所有位置共享,其作用与图中节点的地址相同,但该向量不是任意的。自顶向下的神经网络必须从L+1级对象的嵌入向量预测L级部分的嵌入向量。这涉及到使用相对于在L+1级别编码的相机的姿势和图像位置的表示来计算位置在对象固有坐标系内的位置。这将确定该位置所属的L级部分。
使用地址总线跟踪指向已知对象的一部分表示的指针和使用自顶向下的神经网络计算部分向量之间有一个非常重要的区别。与表格查找不同,自顶向下的神经网络发现处理部分之间对称的形状要容易得多。复制的部分,例如蜈蚣的腿,给神经网络增加的复杂性很小,即使腿沿着蜈蚣的方向变化,只要它们以可预测的方式变化,这一点仍然是正确的。与对象固有坐标系对齐的双边对称性将自顶向下神经网络所需的容量减少了近两倍。
然而,对于神经网络来说,利用与坐标系14不一致的对称性要困难得多,而且人们通常不知道这种对称性。例如,大多数人完全不知道立方体的三重旋转对称性,尽管其名称如此,直到他们被迫使用穿过立方体中心的对角线作为其固有的上下轴[Hinton,1979]。然后,他们不再注意立方体中的任何直角,因为这些角度不再与新的内在坐标系对齐
.
3.一些设计决策
本节讨论了在指定GLOM架构时需要做出的一些决策。
3.1有多少个级别?
GLOM假定部分-整体层次结构具有固定的深度。人们可以处理非常深层的层次结构,即顶部有恒星,底部有原子核。处理如此巨大范围的方法是在世界实体和GLOM级别之间建立灵活的映射[Hinton,1990]。这使得同样的神经元可以在一个时间用于恒星,在另一个时间用于原子核,这有助于在太阳系和原子等不同尺度的结构之间进行类比。神经硬件的递归重复使用引发了许多关于临时存储和控制流的有趣问题[Ba等人,2016年],这些问题将在这里稍纵即逝地讨论。
合理数量的嵌入级别大约为5。这允许瞳孔和眼睛的白色成为场景中最低级别的子部分,该场景由对象组成,对象是人,部分是脸,子部分是眼睛。如果需要更精细的细节,如虹膜的放大,人们可能需要将世界重新映射到硬件上,以便(例如)面部成为场景。
一个有趣的问题是,自下而上和自上而下的神经网络是否可以跨层次和跨位置共享。这不适用于较低级别的语言处理,不同级别的实体,如音素或单词,具有非常不同的属性,但视觉更具分形。跨级别共享的一大优势是,当特定面位于对象级别时,用于该面的向量表示将被迫与其位于部分级别时的表示保持一致。这将使得通过简单地向上或向下复制几个级别的所有向量,将视觉世界重新映射到硬件上变得更加容易。在使用眼睛的精细细节提取眼睛在对象层级时的高度知情的向量表示后,该向量可用于在子部分层级时表示眼睛。
3.2位置的粒度有多细?
位置可以像像素一样精细,也可以对应更大的图像块[Dosovitskiy等人,2020]。为了避免在解释本文的基本思想时增加复杂性,我将假设位置网格在所有级别上都保持不变,但这可能不是最佳选择。
粒度可能在不同的嵌入级别发生变化。如果部分-整体层次结构中的较高级别使用较大的步长,则自上而下的神经网络将需要为属于一个较高级别位置的多个较低级别位置输出多个不同的预测。类似地,自底向上的神经网络将需要查看所有在下一级合并的较低级别位置。
一种方便的方法是,在对大空间环境敏感的同时,也能够看到细微的细节,即使用多个不同空间分辨率的图像,所有这些图像都具有相同数量的像素。最粗糙的图像传达了一个大的空间背景,但缺乏精细的细节,而最精细的图像传达了精细的细节,但仅适用于一个小区域。如果视觉输入以这种方式被构造成多个图像,那么让外围位置覆盖更大的区域是有意义的,但本文将忽略这个问题,因为这会使一切变得更加复杂。
3.3自下而上的网络是否查看附近的位置?
即使不同级别的粒度保持不变,自底向上的神经网络也可以查看附近位置的嵌入向量。这是一个不太纯粹的GLOM版本,它允许位置之间的交互比平均更复杂。纯自底向上的路径类似于卷积神经网络,但下一级的预测是由多层神经网络实现的,其实现的功能远比矩阵乘法后的标量非线性复杂得多。
允许自底向上网络查看其他位置的缺点是,在部分级别具有相同表示的两个位置可能具有不同的空间上下文。然后,我们将失去GLOM纯版本的一个非常好的特性:在部分级别具有相同表示的位置在对象级别做出完全相同的自底向上预测。
通过查看其他位置,自下而上的网络可以在预测下一级别的分布之前减少不确定性,这似乎是一件好事。但是,当注意力加权平滑将来自一个位置的不确定自底向上预测与来自附近位置的不确定自底向上预测相结合时,在进行预测之后,不确定性应该有可能得到类似的降低。当然,这假设自底向上的网络可以表示其预测中的不确定性,并且不同位置的不确定性可以通过注意加权平滑正确组合。第9节讨论了这个问题。
3.4注意力是如何工作的?
位置x处L层嵌入更新的贡献因素之一是上一时间步附近位置处L层嵌入的注意力加权平均值。GLOM假设注意权重的最简单形式,其中位置x给予位置y处嵌入的权重wxy由下式给出
哪里是两个嵌入向量的标量积,z为位置x在L级所关注的所有位置编制索引,β是一个“逆温度”参数,它决定了注意力的锐度。随着GLOM对图像的稳定解释,β可能增加。注意力在GLOM中的作用方式已经成功地应用于一个名为“ACNe”的系统中【Sun等人,2020a】。
关于使用马尔可夫随机场进行图像分割的开创性工作[Geman和Geman,1984]利用像素x和像素y之间存在的边界来防止x影响y。边界不仅仅是x和y之间的强度差,因为它的存在取决于其他位置的强度。类似地,关于学习图像空间相干特性的早期工作使用边界的存在来选择使用哪个专家插值器[Becker和Hinton,1993]。就像海边一样,边界也有着自己丰富的生活,需要做更多的工作才能将它们整合到GLOM中,尤其是它的注意力机制中。
3.5视觉输入
在大多数神经网络中,视觉输入到达底层。在GLOM中,原始视觉输入的补丁可以通过对图像补丁中的强度进行矢量化来定义某个位置的底层嵌入,但首先应用可以看到更大图像区域的卷积神经网络可能更明智。这个卷积网络的输出将是每个位置的主要的、最低级别的嵌入。
卷积网络是一种开环方法,用于解决以下推理问题:该位置的哪种最低级别嵌入能够使用所有位置共享的学习神经场重建像素强度。一旦初始化了最低级别的嵌入,就可以通过神经场反向传播重建误差,在闭环中对其进行细化[Williams等人,1995]。
无需将直接视觉输入限制在主嵌入层。在低分辨率图像上运行的粗尺度卷积网络可以提供关于更高级别嵌入的有用提示。例如,一个浅色的垂直椭圆和一个略高于一半的较暗的水平带表示一种脸[Viola和Jones,2004],因此在粗糙像素上运行的卷积网络可以提供有用的信息来直接初始化更高级别的嵌入。
4颜色和纹理
考虑一个物体,它的每一个部分都是完全苍白或完全淡紫色。部分的颜色很简单,但整体对象是什么颜色?GLOM的动机之一是,整体对象具有一种复合颜色,可以称为“淡绿色或淡紫色”,在对象级别上,属于对象的每个位置都具有完全相同的复合颜色。这件东西是淡绿色的,全身都是淡紫色。在决定对象级别上的其他位置时,将优先考虑具有类似复合颜色的位置。
类似的想法也适用于纹理。各个纹理元素都有自己的形状、姿势和空间关系,但具有纹理曲面的对象在对象级别的所有位置都具有完全相同的纹理。GLOM将这一思想扩展到形状。一个对象可能有彼此非常不同的部分,但在对象级别上,它在其占据的所有位置都具有完全相同的复合形状。
5簇发现与簇形成
EM胶囊模型[Hinton et al.,2018]试图通过寻找整体姿势的类似向量投票簇来激活代表整体(如面部)的胶囊。这些向量投票来自已经确定的部分(例如鼻子或嘴巴),尽管这些投票的权重可以通过迭代路由程序进行修改,但向量投票本身保持不变。如果其中一个部分的姿势未确定,则这一问题相当严重。例如,代表眼睛的圆没有特定的方向,它在脸上的位置取决于它是左眼还是右眼。然而,它确实提供了一些关于面部比例的信息,并且在与两眼之间的未知线正交的方向上对面部位置进行了单峰预测
在GLOM中,L-1级位置的嵌入向量不会对L级的嵌入投不可变的向量票。相反,它为该嵌入提供了自底向上的向量贡献,该向量贡献与来自L+1级的向量贡献以及来自其他位置的L级嵌入的注意加权贡献相结合,以确定更新的L级嵌入向量。自下而上的贡献一开始可能非常模糊,随着自上而下和横向上下文信息逐步细化位置的L-1级嵌入,自下而上的贡献可能会随着时间的推移而变得更加清晰。在一个层次上相似嵌入向量的孤岛可以看作集群,但这些集群在不变的数据中并没有被发现。它们是由支持相似孤岛的层内过程和来自相邻层位置嵌入的动态变化建议之间的交互作用形成的。
6在位置上复制嵌入向量
乍一看,将对象级嵌入向量的副本提供给属于对象的每个位置似乎效率很低。从使用随机访问内存编程的计算机得出的令人信服的直觉表明,为对象提供数据结构的单个副本会更好。这些直觉可能会误导没有RAM的神经网络,即使RAM可用,在岛上复制嵌入向量也有两个很好的理由。
每个层面的岛屿生长过程最终可能会形成几个几乎相同的载体岛屿,但是,对这些岛屿的搜索需要能够考虑到岛屿的位置的替代聚类,它还需要允许在岛上的位置之间的协商关于在每个级别上相同的向量。这些协商是非常重要的,因为每个位置还试图满足来自其上一级和下一级的嵌入向量的层间约束,并且这些嵌入也在每个时间步骤中被细化。在搜索过程中,每个位置在每个级别都有自己版本的嵌入向量非常有用。聚类中的不确定性可以通过使某个位置的嵌入向量是它可能决定加入的不同聚类的向量的混合来表示。这种混合可以随着时间的推移而细化,而且它生活在一个高维连续空间中的事实应该使优化更容易。
直观地说,两个完全不同的嵌入向量的混合与这两个向量都不相似。这在低维向量空间中是正确的,但在处理高维空间时,来自低维空间的直觉是不可信的。与随机向量相比,两个高维向量的平均值更接近这些向量中的每一个。这可以通过考虑向量的分量与其平均值的分量与其他随机向量之间的相关性来理解。如果向量是高维的,这种相关性将非常显著。
近同一性孤岛的另一个优点是,它允许在一个级别内进行稀疏的远程交互。如果在更高的层次上有更多的稀疏性,那么在不增加计算量的情况下,相互作用的范围可以更长。对于属于较远岛屿的位置,有关该岛屿的所有对象级别信息都包含在其每个位置中,因此只需对其中一个位置进行采样,即可使该遥远岛屿与其他较近岛屿争夺位置的注意力。当然,这意味着远岛对注意力softmax的贡献比近岛少,但注意力softmax中使用的指数意味着,一个高度相关的远岛的一个logit可以超过一个更近但相关性更小的岛的多个logit。
选择允许哪些其他位置竞争位置x的注意力的一种简单方法是从以x为中心的高斯分布中取样,而不进行替换。更高级别的嵌入可以对相同数量的其他位置进行采样,但采样范围更大。采样只能进行一次,因此它是网络架构的一部分。或者,通过在每个时间步独立采样,可以大大减少采样中的缺陷。
7学习岛
假设GLOM经过训练,能够在其输出端重建图像的未损坏版本,其中一些区域已被删除。这一目标应确保有关输入的信息在向前传播过程中得以保留,如果区域足够大,还应确保识别熟悉的物体有助于填充缺失的区域。为了鼓励接近身份的岛屿,我们需要添加一个正则化器,经验表明,一个简单地鼓励附近位置的嵌入之间的相似性的正则化器可能会导致表示崩溃:所有的嵌入向量可能会变得非常小,以至于它们都非常相似,然后重建将使用非常大的权重来处理非常复杂的问题小规模。为了防止崩溃,对比学习[Becker和Hinton,1992年,Paccanaro和Hinton,2001年,van den Oord等人,2018年]使用负面例子,试图使应该一致的陈述接近,同时保持不应该一致的陈述之间的分离21。
对比学习已经非常成功地应用于学习图像裁剪的表征[Chen等人,2020a,Bachman等人,2019年,He等人,2020年,Chen等人,2020b,Tejankar等人,2020年]它学习使同一图像中两种不同裁剪的表示一致,而使不同图像中两种裁剪的表示不一致。但如果我们的目标是识别物体,那么这样做是不明智的。如果裁剪1包含对象A和B,而来自同一图像的裁剪2包含对象B和C,则要求两种裁剪的表示在对象级别相同是没有意义的。然而,这在场景级别是有意义的。对于包含一个突出对象的场景,可以使用设计用于识别场景的表示来识别对象,但是,一旦我们区分了不同的嵌入级别,就可以清楚地看出,最好使用对比损失函数,仅当L级的两个位置属于L级的同一实体时,才鼓励对其进行非常相似的表示。如果它们属于不同的L级实体,则应使用L级嵌入明显不同。
从位置的角度来看,除了顶层,它需要决定其L级嵌入应该与哪些其他位置相似。然后,它可以学习类似于这些嵌入,并从属于同一图像或其他图像中不同对象的位置嵌入中排除。最近的工作利用可能的物体轨迹上的图块相似性来影响对比学习是否应该尝试使它们更相似,这项工作在发现视频序列中图块之间的对应关系方面表现出了令人印象深刻的表现[Jabri等人,2020]。
显而易见的解决方案是通过鼓励自下而上和自上而下的神经网络预测一致意见来规范它们。这是来自自上而下和自底向上网络的预测的加权几何平均值,是在前一时间步附近位置嵌入的注意力加权平均值,即嵌入的前一状态。训练层间预测,使其与共识一致,显然会使前馈推理过程中发现的孤岛更加一致。
一个重要的问题是,如果这种类型的培训没有伴随着培训,那么对于使用一致意见的不相关空间上下文的负面示例,级别间预测是否会不同,那么这种培训是否一定会导致崩溃。使用层或批处理规范化应该减少崩溃的趋势,但更重要的考虑可能是目标的可实现性。
当对比学习中的实证被用来尝试为同一幅图像的不同面片提取非常相似的表示时,目标通常是无法实现的,并且巨大的残余误差总是试图使表示崩溃。但是,如果一个位置的嵌入可以自由选择它应该类似于其他位置的嵌入,那么通过学习形成相同向量的孤岛并几乎完全关注同一个孤岛中的其他位置,几乎可以完美地实现该目标。这将大大减少崩溃的趋势,当与深度去噪自动编码器目标函数和其他最新技巧结合使用时[Grill等人,2020年,Chen和He,2020年],可能不需要负面示例。
8表示坐标变换
当使用神经网络表示形状时,如果它们表示形状相对于其固有坐标框架的细节,而不是相对于基于相机或世界的框架的细节,则它们通常工作得更好【Taylor等人,2007年,Deng等人,2020年】。
关于使用神经场生成图像的工作已经证明,与使用两个标量表示x和y坐标相比,有更好的方法来表示位置[Sitzmann等人,2020年,Mildenhall等人,2020年]。在不同频率的水平和垂直正弦波和余弦波的位置,三角函数的乘积工作良好。在《Transformers》中,一个词片段在句子中的位置也使用了类似的表示法。
位置的高度冗余表示的成功表明,坐标变换的非平移自由度也可能存在高度冗余表示,这种表示在神经网络中的效果要比计算机图形学中常用的矩阵或四元数好得多部分(即视网膜和部分固有参考框架之间的坐标变换)由一个向量表示,该向量是表示该部分的嵌入向量的一个子部分。一个多层神经网络,其权值捕捉部分和整体之间的视点不变坐标变换,然后可以对部分的姿势向量进行操作,以预测整体的姿势向量。如果我们简单地将姿势的4x4矩阵表示展平为一个向量,就很容易手工设计一个多层神经网络,该网络将该向量作为输入,并生成一个向量作为输出,该向量对应于矩阵矩阵乘法的展平结果,前提是我们知道乘以哪个矩阵,这取决于部分的标识。这种对部分标识的依赖是早期胶囊模型中为每种类型部分分配单独胶囊的原因。不幸的是,平坦4x4矩阵的向量空间不便于表示姿势某些方面的不确定性和其他方面的确定性。这可能需要更高维度的姿势表示。
手工设计这种表示可能不如使用随机梯度下降的端到端学习。尽管如此,第9节讨论了一种在神经网络中表示不确定性的方法,只是为了证明它不是一个主要问题。
在通用胶囊中,部分标识由活动向量表示,而不是通过选择激活哪个胶囊来表示,因此实现适当部分-整体坐标变换的神经网络需要将其权重调节在部分标识向量23上。因此,需要将位置的整体部分级向量作为输入提供给自底向上的神经网络,该神经网络计算部分-整体坐标变换。这使得计算更加复杂,但大大简化了架构的设计。这意味着我们不需要在某一级别指定嵌入向量的一部分来表示姿势,而在该级别指定其余部分来表示实体的其他方面。我们所需要做的就是确保神经网络从下面(或上面)的嵌入中预测一个层次的嵌入具有足够的表达能力,可以对表示姿势的嵌入向量的组件应用坐标变换,并使该坐标变换取决于表示部分标识的向量组件。由于该神经网络将通过随机梯度下降进行学习,我们甚至不需要将表示姿势的嵌入向量的组件与表示该级别实体其他属性的组件分开:单个组件可以调整为姿势、身份、变形、纹理等的组合。
将身份和姿势的表现纠缠在一起似乎是个坏主意,但从对角线自下而上的预测如何表达整体是倾斜的正方形或直立的钻石的观点呢?为了使用基函数的活动来表示这种分布,我们需要调整到身份和姿势组合的基函数。
使用一个小矩阵或四元数来表示姿势,可以很容易地使用线性操作对视点更改的效果进行建模。乍一看,放弃这些姿势的显式表示似乎可能会损害胶囊在不同视角下的泛化能力。如果每个胶囊只处理一种类型的物体,这将是正确的,但通用胶囊将从许多不同的角度看到许多不同类型的物体,任何新类型的物体都将通过熟悉类型的加权平均值很好地近似,所有这些类型的物体都学会了对视点的效果进行建模。此外,此平均值中的权重对于所有视点都是相同的。因此,如果一个新的物体只能从一个角度看,宇宙飞船很可能能够从完全不同的角度识别它。
关于泛化的相同论点也适用于CNN,但有一个细微的区别:GLOM被迫正确地模拟部分和整体之间的坐标变换,以便能够通过在整体层面上使用简单的平均操作,利用一个部分和另一个部分之间的空间关系。正是由于这些局部和整体空间关系的视点不变性,才有可能推广到全新的视点。
9代表不确定性
很容易想象,嵌入向量的各个分量对应于有意义的变量,例如相对于相机或对象类别的对象姿势的六个自由度。这将使表示更容易理解,但有一个很好的理由使物理上有意义的变量和神经活动之间的关系不那么直接:为了正确组合多个信息源,必须考虑每个信息源的不确定性。
假设我们希望以这样一种方式来表示M维实体,即不同的信息源可以在M维空间上贡献概率分布,而不仅仅是点估计。我们可以使用N>>M个神经元群体,每个神经元在M维空间中被调谐到高斯分布[Williams和Agakov,2002]。如果我们取对数,则神经元对应对数概率中的抛物线凹凸。这个凸起在某些方向上可能非常宽,而在其他方向上可能非常窄。它甚至可能是一个在某些方向上无限宽的水平脊。我们将一个神经元的活动视为其抛物线凸起的垂直缩放,简单地将所有缩放凸起相加,得到一个抛物线凸起,它表示由N个神经元的总体表示的非标准化高斯分布的对数。
信息源现在可以贡献概率分布,这些概率分布将通过简单地对N个神经元的活动进行相加而相乘。如果我们想保持N相对较小,那么可以表示的概率分布将受到限制,但是,给定N个神经元的预算,学习应该能够很好地利用它们来近似数据所证明的预测分布。例如,如果一个部分可以预测一个整体的水平位置,而不使该预测取决于整体姿势或身份的其他方面,这将有助于将少数N个神经元调整为代表底层M维空间中整体水平位置的维度上的间隔良好的值。然后,该部分可以通过对这一小撮神经元做出适当的贡献,沿着这个水平维度贡献一个高斯分布。贡献的相对大小决定了高斯分布的平均值,它们的总体尺度决定了高斯分布的逆方差。
假设神经元在潜在实体的M维空间中具有高斯调谐,这只是一种简化,以表明神经网络在表示高斯概率分布和适当组合它们方面没有问题。一种更灵活的调节神经元的方法是混合使用高斯分布和均匀分布[Hinton,2002]。此分布的日志是一个局部凹凸,称为unibump。当我们离平均值足够远,以至于均匀分布完全支配高斯分布时,单凸包的边向外展开并最终变成水平。与抛物线凹凸不同,抛物线凹凸具有远离其最大值的二次大梯度,而单凹凸具有远离其最大值的零梯度,因此它对远离其平均值的非规范化分布的形状没有贡献。这允许单凸点表示多模态概率分布。一组相邻的单凸点之和可以表示一种模式,另一组彼此接近但远离第一组的单凸点之和可以表示另一种模式。使用对应于单凸点垂直缩放的神经活动,可以分别控制每个模式的位置和清晰度。
假设单个神经元被调谐到高斯分布和均匀分布的混合,只是为了表明神经网络可以表示多模态分布。神经元为表示潜在空间中的多模态对数概率分布而实际学习的基函数不需要在该空间中是局部的。
表示不确定性的需要阻止了最简单的表示,即单个神经元中的活动表示多维实体的一维,但它仍然允许神经元在多维空间中具有调谐曲线。对于试图理解表象的人来说,是否有可能联合推断潜在的潜在空间和该空间中神经元的调谐曲线是一个非常有趣的开放问题。但即使很难弄清楚单个神经元在做什么,找到几乎相同向量的孤岛也应该很容易,因此应该很容易看到GLOM是如何解析图像的,或者应用于语言的类似模型是如何解析句子的。
在考虑如何表示部分姿势或身份的不确定性时,必须认识到,每个位置都假定在层次结构的每个级别上最多只占用一个部分24。这意味着嵌入向量中某一级别的所有神经活动都指向同一部分:不存在绑定问题,因为绑定是通过位置完成的。因此,一个位置可以使用两个不同的神经元,它们在底层M维空间中的调谐曲线重叠很多,而不会造成任何混乱。如果我们不首先将不同的神经元子集分配到不同的位置,那么表示不确定性所需的M维底层空间中的宽调谐曲线将导致不同对象属性之间的混淆。这就是为什么粗编码,即使用单一群体的广泛调谐神经元同时对多个不同实体建模[Hinton,1981a]无法有效地对不确定性建模。
9.1更新嵌入时合并不同的信息源
每个级别的嵌入都使用相邻级别和同一级别上其他位置的上一时间步的信息进行更新。这些源远非独立的,尤其是当图像是静态的,因此视觉输入在多个时间步是相同的时。高级嵌入明显依赖于早期的低级嵌入。此外,对注意力加权局部平均值有贡献的同一级别嵌入将受到注意力加权平均值试图更新的嵌入的早期状态的影响。为了避免过于自信,最好将不同的信息源视为从视觉输入计算嵌入向量的替代路径。这就证明了采用单个来源预测的分布25的加权几何平均值,而不是这些分布的简单乘积是合理的,如果它们是独立的。为了解释没有时间背景的静态图像,用于此加权几何平均值的权重需要在新固定后发生的迭代期间改变。最初,自下而上的震源应该是最可靠的,但后来,自上而下和侧向震源将得到改进。深度信念网的实验[Hinton,2006]表明,逐渐增加自上而下相对于自底向上的权重会导致以后更合理的重建,这表明,当GLOM被训练为端到端深度去噪自动编码器时,这一点很重要。
10与其他神经网络模型的比较
本节将GLOM与影响其设计的一些神经网络模型进行比较。
10.1与胶囊模型的比较
与胶囊模型26相比,GLOM的主要优势在于,它避免了将神经元预先分配到每个级别的一组离散的可能部分的需要。部分的标识成为特征活动连续空间中的向量。这使得类似部件(如手臂和腿)之间的知识共享更大,并且在属于特定类型对象的部件数量和类型方面具有更大的灵活性。
GLOM的第二个优点是它不需要动态路由。部分占用的每个位置都构造了其自身的整体向量表示,而不是将信息从部分胶囊路由到包含相关整体类型知识的特定胶囊。一个位置上的一个部分只属于一个整体的约束是由于该位置上的替代整体是同一组神经元上的替代活动向量这一事实的必然结果。关于几个整体中哪一个是部分的正确父级的不确定性仍然可以通过使用活动向量的混合来捕获。
GLOM的第三个优点是,用于形成岛屿的集群形成程序比用于胶囊模型的集群形成程序要好得多。为了使EM等方法在集群数量未知时能很好地工作,引入拆分和合并操作是有帮助的[Ueda等人,2000],但这些操作会在岛屿形成过程中自动发生。通过从每个位置一个孤岛开始,然后通过使嵌入向量一致来减少明显不同的孤岛的数量,解决了关于在嵌入级别找到正确数量的聚类的分层贝叶斯问题。这种减少发生在一个连续的空间中,不需要离散地改变簇的数量。
与大多数胶囊模型相比,GLOM的主要缺点是关于特定类型物体形状的知识不局限于一小群神经元(可能在相当大的区域复制)。相反,必须在每个位置复制自下而上和自上而下的神经网络(对于每对相邻的层级可能不同)。对于计算机实现来说,跨位置复制是一个很大的优势,因为它允许每次从内存中检索权重时使用多次,但对于生物神经网络来说,它似乎非常浪费突触。与基因类比的要点是生物学可以承受浪费,因此这种反对可能不像看上去那么严重。然而,对于生物版的GLOM来说,还有一个更严重的问题:无处不在的通用胶囊需要在每个不同的位置分别学习相同的知识,这在统计上是非常低效的。幸运的是,第12节展示了位置如何在不共享任何权重的情况下共享其自底向上和自顶向下模型所学到的知识。
GLOM通过将神经元分配到位置而不是对象或部分的类型,消除了胶囊模型的一个主要缺点,但保留了这些模型的大部分优点:
•正确处理视点的影响:自下而上和自上而下神经网络的权重捕获部分和整体之间视点不变的空间关系,神经活动捕获关于对象或部分姿势的视点等变信息符合过滤:通过使用来自其部分的高维预测之间的一致性来识别对象。在GLOM中,使用协议的想法更进一步,因为它还用于将对象和部分表示为标识岛。
•无神经元动态分配:无需将神经元动态分配到解析树中的节点,即可表示部分-整体层次结构。
10.2与Transformers型号的比较
通过将图1中的垂直时间片视为图4中的层,可以重新排列图1中所示的GLOM架构。GLOM的这种重新排列相当于Transformers的标准版本【Vaswani等人,2017年】,但有以下变化:
•各层的权重相同,因为GLOM是一个循环网络,我们已将时间片转换为各层。
•通过在某一级别使用嵌入向量作为查询、键和值,注意力机制大大简化。因此,通常由注意实现的不同位置之间的复杂交互被简化为一个简单的、注意加权的平滑操作。
•在大多数Transformers中,用于提供更多表达能力的多个磁头被重新设计为实现一个部分-整体层次结构的多个级别,并且一个位置的磁头之间的交互是高度结构化的,因此一个级别仅与相邻级别交互。
•计算相邻层级之间交互作用的自下而上和自上而下神经网络在部分和整体姿势的分布式表示之间执行坐标变换,这些坐标变换取决于部分和整体类型的分布式表示。
消除查询、密钥、值和嵌入本身的区别的理由如下:试着尝试用一个潜在的嘴巴来验证一个Transformers中潜在的鼻子。嘴巴需要问“有没有人和我有着合适的空间关系,可能是鼻子?”。如果是这样,请告诉我要更像嘴巴。这似乎需要嘴发送一个鼻子查询(包括相对于嘴的适当姿势),该查询将匹配鼻子的关键点。然后,鼻子需要发回类似嘴巴的值(包括相对于鼻子的适当姿势)。
但是嘴巴也可以被眼睛证实,所以它需要发出一个不同的查询来匹配眼睛的键。这可以通过使用不同的头来处理,用嘴来找鼻子,用嘴来找眼睛(如在范畴语法中),但这看起来很笨拙。
一个更优雅的解决方案(继承自胶囊模型)是使用一种形式的霍夫变换。潜在的嘴预测它可能是其中一部分的脸的向量。潜在的鼻子和眼睛也会这样做。现在您所需要的是在面级别上的预测一致性,因此query=key=value=embedding。然后,面级别可以为其部分提供自上而下的支持,而不是使用特定于两个部分的标识的坐标变换,从一个部分发送到另一个部分的值向量提供支持。
10.3与卷积神经网络的比较
胶囊最初是由三种感知到的CNN缺陷引起的:
1.CNN中的池操作旨在在下一级实现活动向量中的平移的局部不变性。要求权重的不变性,而要求活动的等变性似乎更好。
2.CNN试图通过使用大量不同视点的示例来概括不同的视点,这些不同视点可能是通过使用变换后的图像扩充数据集而产生的。计算机图形学通过明确表示相对于摄影机的对象或部分的姿势来概括各个视点。视点的变化,即使是非常大的变化,也可以通过对这些显式姿势的线性操作来完美地建模。使用部分姿势和整体姿势之间的视点不变关系似乎是推广到全新视点的非常有效的方法。CNN似乎没有这样做,但外表可能具有欺骗性。
3.在CNN中,神经元的活动由权重向量与活动向量的标量积决定。这不是一个很好的方法来建模在视觉中非常重要的协方差结构。将一个活动向量与另一个活动向量的标量积相结合,可以更轻松地执行符合检测和注意等功能强大的操作。高维嵌入空间中的一致性是过滤由遮挡或缺失部分引起的噪声的一种好方法,因为与总和不同,它们对缺少某些一致预测非常鲁棒。
第一个缺陷很明显。这取决于对CNN如何表示部分位置的常见误解。网格点处的通道活动向量可以具有部分位置的速率编码表示,其精度远远高于网格点之间的跨距。因此,当步幅在下一个级别通过合并增加时,并不意味着部分的位置编码不太准确。更大的步幅不会产生更具平移不变性的表示。网格点用于分配不代表位置的神经硬件。它们的间距受到这样一个事实的限制,即网格点处的神经硬件假设它永远不会代表它所代表的任何东西中的一个以上,而不受位置需要表示的精度的限制。
试图处理第二个感知缺陷导致了一些有趣的模型。变换自动编码器[Hinton et al.,2011]通过坚持重建图像应为原始图像的变换版本,并将该变换指定为乘以编码器提取的任何矩阵元素的矩阵,迫使编码器提取每个胶囊中姿势的显式表示。同样,当EM胶囊模型被迫使用矩阵来表示一个部分与一个整体的关系时,它可以更好地外推到新的视点。
不幸的是,perception必须处理计算机图形27中不存在的不确定性,并且它需要能够在其姿态预测中表示相关的不确定性,以便能够正确组合多个信息源。这排除了姿势的简单矩阵表示。一旦我们接受一个实体的可能姿势上的分布将由对数概率空间中分配给基函数的尺度表示,CNN实际上很可能学会这样做。这可能使它们能够近似Hough变换,但如果不采用活动向量的标量积,这是很难做到的。
第三个缺陷可以通过使用活动向量的标量积来调节注意力的Transformers式结构来纠正。
如果您喜欢CNN,GLOM可以被视为一种特殊类型的CNN,与标准CNN有以下不同:
•它仅使用1x1卷积(前端除外)。
•位置之间的交互通过无参数平均实现,该平均实现了重合滤波器,允许使用Hough变换激活单位,而不是仅使用匹配滤波器。
•它通过迭代来实现由神经场实现的自上而下的影响,而不是在表示层中使用单个前馈传递。
•它包括对比自监督学习,并将分层分割作为识别的一部分,而不是作为单独的任务。没有更多的盒子了。
10.4代表ISA层次结构
传统人工智能(GOFAI)的一个重要思想是财产继承。没有必要明确表示大象哺乳它们的幼仔,因为大象是哺乳动物,除非另有说明,否则大象从更一般的类型继承了这一特性。在神经网络中实现属性继承的一种简单方法是使不同的实体对应于同一组神经元上的不同活动向量。
假设表示一个概念的向量的分量是从非常一般到非常具体的顺序排列的。哺乳动物对于更一般的成分都有相似的值,而对于不太一般的成分则有不同的值。印度象和非洲象只在相当具体的成分上有所不同。当神经网络学习使概念向量对其他向量产生因果效应时,所有哺乳动物的效应应相同,但对所有脊椎动物的效应不相同,这自然会通过神经元的输出权重来实现,这些神经元对所有哺乳动物都是活跃的,但对所有脊椎动物都是活跃的。这种实现属性继承的方法使添加异常变得容易。鸟类共有的向量分量将学习权重,以获取鸟类飞行的知识,而将企鹅与其他鸟类区分开来的更具体的分量将学习更强大的权重,从而推翻该属
10.4代表ISA层次结构
传统人工智能(GOFAI)的一个重要思想是财产继承。没有必要明确表示大象哺乳它们的幼仔,因为大象是哺乳动物,除非另有说明,否则大象从更一般的类型继承了这一特性。在神经网络中实现属性继承的一种简单方法是使不同的实体对应于同一组神经元上的不同活动向量。
假设表示一个概念的向量的分量是从非常一般到非常具体的顺序排列的。哺乳动物对于更一般的成分都有相似的值,而对于不太一般的成分则有不同的值。印度象和非洲象只在相当具体的成分上有所不同。当神经网络学习使概念向量对其他向量产生因果效应时,所有哺乳动物的效应应相同,但对所有脊椎动物的效应不相同,这自然会通过神经元的输出权重来实现,这些神经元对所有哺乳动物都是活跃的,但对所有脊椎动物都是活跃的。这种实现属性继承的方法使添加异常变得容易。鸟类共有的向量分量将学习捕获鸟类飞行知识的权重,将企鹅与其他鸟类区分开来的更具体分量将学习推翻一般情况的更强权重[Hinton,1981b]。
这种实现属性继承的方法还有一个额外的优点,即类型不需要形成树。狗从犬科动物(如狼)身上继承了许多特性,但它们也从宠物(如猫)身上继承了许多特性。无法保证从这些更一般、部分重叠的类继承的属性是一致的,但与逻辑不同,神经网络在处理相互冲突的证据方面没有困难。
乍一看,使用概念向量表示的不同部分来捕获ISA层次结构中的不同级别的想法与使用不同部分来捕获部分-整体层次结构中的不同级别的想法相冲突。这似乎有问题,因为钩嘴是鸟类的一部分,但它也定义了一种鸟类。这两个想法可以通过以下方式协调:首先将位置的嵌入向量划分为表示PartTour层次结构中不同级别的部分,然后将每个部分划分为表示类型层次结构中不同级别的子部分。
10.5与二维伊辛模型的关系
对于每个位置,上一时间步的L-1和L+1级嵌入向量分别向表示L级当前嵌入向量的神经元提供输入。这就像条件马尔可夫随机场中的条件输入:它影响迭代的当前步骤,岛屿形成过程,试图使L层位置的嵌入与L层其他位置的嵌入一致。
在二维伊辛模型中,二值自旋的二维阵列进入一种附近自旋趋于一致的状态,从而最小化有利于相邻自旋一致的能量函数。此处提出的模型类似于二维伊辛模型,因为它使用图像位置的二维网格,但它通过以下方式概括了该模型:
1.它用高维实值向量替换二进制自旋。事实上,这些存在于一个连续的空间应该有助于寻找协议的岛屿。
2.它将单个旋转场替换为多个级别的场,并允许相同位置的相邻级别嵌入相互作用[He等人,2004年,Saremi和Sejnowski,2013年]。层次之间的相互作用相当复杂,因为它们涉及到部分和整体之间的坐标变换。因此,对于每对相邻的嵌入层,每个位置的自上而下和自下而上交互作用必须由多层神经网络计算,而不是由简单的权重矩阵计算。
10.6与其他消除冗余方法的比较
主成分分析等方法通过限制表示中可用维度的数量来消除数据中的冗余。相比之下,一台具有大量隐藏单元的受限玻尔兹曼机器通过使几乎所有指数级的隐藏单元的可能二进制配置都具有如此高的能量,以至于它们实际上不可用,从而挤出冗余。这是一种更加灵活的消除冗余的方法[Shi和Zhu,2007]。它可以模拟具有不同内在维度的多个fat歧管28,甚至在fat歧管内,它可以模拟歧管不同部分中有效维度的变化。岛屿形成目标属于第二类方法。在每一级,如果数据需要,它允许大量小岛屿,但如果可能,它努力使用少量小岛屿。
11视频
本文重点介绍了使用GLOM架构处理静态图像的单一固定,但该架构的动机是处理视频,从视频中学习通常比从静态图像中学习容易得多[Sabour等人,2021],因此,我将简要讨论最简单的时间扩展,即对时变图像的单一固定。
为避免混淆,区分三种不同类型的时间可能会有所帮助:
•事件时间:这是事件发生的实际时间。
表示时间:这是神经网络中事件的特定表示发生的实际时间。如果自下而上的神经网络使用预测模型,事件的表示可以与事件本身同步,甚至可以先于事件,这将使接球更容易。
•参考时间:这是内部表示所指的实际时间。例如,当检索内存时,构造的表示的参考时间通常早于表示时间。如果内存不正确,参考时间也可能与事件时间相差很大。
对于表示静态图像的帧序列,可以使用多个时间步来确定每个级别上的一组适当孤岛。但在动态图像中,也必须使用相同的时间步长来处理这样一个事实,即每层位置的居住者都可以随时间变化。
使用相同向量的孤岛来表示对象的一个优点是,与对象的大小相比较小的连续帧之间的运动只需要对对象级别的位置的一小部分进行较大的更改。保留在对象内的所有位置只需稍微改变,以表示对象相对于摄影机的姿势的轻微变化。
如果图像中的变化很小且可预测,则固定点变化后的时间步长可用于允许所有级别的嵌入在缓慢变化的一致岛上,以跟踪动态图像中的变化。最低级别的嵌入可能变化非常快,但它们应该从上述级别更稳定的嵌入中得到良好的自上而下预测。一旦嵌入形成了可感知的孤岛,那么使用相同的时间步长来改进每个帧的解释并保持嵌入锁定在动态图像上就没有问题了。
如果变化很快,就没有时间迭代地确定用于解释特定帧的一组好的嵌入向量。这意味着,如果图像变化迅速,GLOM架构无法正确解释复杂的形状。试着把一个形状不规则的土豆扔到空中,使它以每秒一到两个周期的速度旋转。即使你顺利地跟踪土豆,你也看不到它是什么形状。
GLOM在生物学上是否合理?
虽然GLOM是受生物学启发的,但它的几个特点似乎使它作为一个生物学模型非常不可信。这里介绍了其中的三个特性。
•不同列中自下而上或自上而下模型之间的权重分配。
•需要在不中断视频管道的情况下,处理对比学习中的负面示例对。
•使用反向传播学习自上而下和自下而上模型的隐藏层。
12.1新皮层是一个巨大的酿酒厂吗?
DNA在每个细胞中的复制都是无问题的:这就是DNA擅长的。但生物学家经常反对使用重量共享的模型,声称没有明显的方法复制重量[Lillicrap等人,2020]。然而,GLOM提出了一种通过使用上下文监督来解决这个问题的相当简单的方法。在真实的大脑中,我们想要的是一种有效的方法,在某个位置训练自下而上和自上而下的网络,以便它们计算出与其他位置对应网络相同的函数。只要相应的网络在功能上相同,权重就不需要相同。我们可以通过知识提炼来实现这一点[Buciluˇa等人,2006年,Hinton等人,2014年]。对于每个级别,每个位置的两个学生分别是自下而上和自上而下的神经网络。教师是一致意见,即两名学生的意见、先前嵌入状态和其他位置的注意力加权嵌入的加权几何平均值29。
将学生的预测回归到共识,可以通过注意力加权平均将其他位置的神经网络中的知识传递给学生。它不如与其他神经网络共享权重那样有效,但效果相当好[Hinton et al.,2014],从长远来看,如果数据分布是平移不变的,所有网络都将收敛到非常相似的函数。然而,从长远来看,我们都已经30岁了。因此,有趣的是,在局部模型完全不同的情况下,考虑在收敛之前会发生什么。假设构成鼻子的所有位置在部分级别具有相同的嵌入向量。如果它们都有完全相同的自底向上模型,那么它们都会在对象级别对人脸做出完全相同的预测。但是,如果不同位置的自底向上模型有所不同,我们将在对象级别上获得强大的整体效应:对于不同位置的同一对象,所有同时进行的自底向上预测的平均值将比单个预测好得多。
通过蒸馏而不是复制权重在不同位置共享知识的一个优点是,不同位置的自底向上模型的输入不需要具有相同的结构。这使得视网膜的感受野在离中央凹较远的地方逐渐变大变得很容易,而在卷积网中使用重量分担是很难处理的。许多其他方面,如离中心凹较远的色差增加也很容易处理。位于不同位置的两个对应网络应学会计算光学阵列的相同功能,即使该阵列在呈现给两个网络之前通过成像过程进行了不同的预处理。共蒸馏还意味着自上而下的模型不需要接收它们的位置作为输入,因为对于任何给定的模型它总是相同的。
最后,使用蒸馏在特定位置的神经网络之间共享知识解决了一个难题,即视觉系统中的突触数量(约1013个)与我们头十年的固定数量(约109个)之间存在差异。出于对过度拟合的担忧,保守的统计学家倾向于将这些数据反过来计算31。如果我们在不同的位置使用104个列,那么在一个位置的自底向上和自顶向下模型之间只有大约109个突触。相反,用于学习在104个地点的集合中共享的知识的培训示例数量约为1013个,尽管其中许多示例具有高度相关性。
与当前使用的一些高度过参数化的网络相比,训练案例多于参数的神经网络没有那么神奇,但当呈现在其训练分布之外的数据时,它们可能会以更可预测的方式进行推广,因为它们计算的函数更受参数的高度约束数据
12.2睡眠在对比学习中的作用?
如果需要否定的例子,GLOM作为一个生物学模型可能看起来不太可信,因为发现和处理一对相似的图像会增加复杂性,而这些图像不应该是相似的。然而,在1983年和2020年与Terry Sejnowski的对话中出现了一种有趣的可能性。
当使用对比学习来获得与相邻视频帧相似的表示时,最有效的负面示例是同一视频中相邻但不直接相邻的帧。我们可以通过在夜间使GLOM离线来进行负面学习,以防止表示崩溃,从而避免影响GLOM的实时性能。如果最高级别的嵌入能够在最高级别生成序列,则可以使用自顶向下的网络在每个列的每个级别生成嵌入序列。这个过程不需要在列之间引起任何注意,因为它不需要执行感知推理,因此它可能能够以比正常速度快得多的速度生成合理的序列。然后,我们只需使用与清醒时相同的实时窗口长度,对自底向上模型进行负学习。有证据表明,高速、自上而下的序列生成发生在睡眠的纺锤体阶段[Lee和Wilson,2002年,N'adasdy等人,1999年]。
睡眠被用来分隔不应混淆的表征的想法并不新鲜[Crick和Mitchison,1983]。Hinton和Sejnowski[Hinton和Sejnowski,1986]甚至提出,睡眠可以用于在Boltzmann机器学习的负阶段遵循规范化项的导数。但这种想法的转世比玻尔兹曼机器有两大优势。首先,对比无监督学习比Boltzmann机器学习更好,其次,它更能容忍正负阶段之间的时间分离。
使用MNIST数字对比学习的初步实验表明,如果在大量正面更新之后紧接着大量负面更新,那么这种学习仍然有效。在纯正面学习过程中,表征崩溃相当缓慢,表征可以收缩一个显著因素,而不会对性能产生太大影响。因此,可能一些应该很好地分开的嵌入件在白天靠得太近,然后在晚上再次被推开。这就解释了为什么完全剥夺几天的睡眠会导致如此严重的精神混乱32。MNIST的实验还表明,经过大量的纯正面学习后,性能会下降,但通过少量的负面学习会迅速恢复。
为了避免长时间的纯消极学习,建议从睡眠的消极阶段开始,将表征分开,然后使用从顶层生成的输入序列,甚至从靠近感觉输入的循环网络生成的输入序列,与积极阶段交替。这与克里克·米奇森(Crick Mitchison)关于快速眼动睡眠是为了忘却学习的理论相冲突,但如果情景记忆提取依赖于顶层,顶层根本无法在快速眼动睡眠中学习,因为这些事件根本没有发生,那么这仍然与我们无法记住几乎所有的梦相一致。
12.3大脑中的沟通错误衍生物
训练GLOM的直接方法是要求它填充图像的缺失区域,并使用时间反向传播在整体时间确定过程中反向传播重建误差。每个层次的对比表征学习都可以看作是一个额外的正则化过程。不幸的是,很难看出大脑是如何通过多个时间步反向传播的。然而,如果每个层面的一致意见都能为预测该层面嵌入向量的自下而上和自上而下模型提供足够的教学信号,那么在大脑中实现就变得更加可行。
如果我们能够确保这些陈述随着时间的推移而得到改进,神经活动的时间导数可能代表误差导数,局部学习过程将是棘波时间依赖性可塑性,其中突触强度的增加与突触前活动与突触后活动增加率的乘积成正比。33假设棘波是由作为一个潜在的速率变量,我们可以通过对突触后尖峰序列应用导数滤波器,得到这个潜在速率变量变化率的一个有噪声但无偏的估计34,这正是STDP所做的。
最近的一篇综述论文[Lillicrap et al.,2020]详细讨论了如何将时间导数用作误差导数,以近似前馈网络中的反向传播35。审查文件假设了一个单独的阶段,在该阶段中,以活动扰动形式存在的衍生品可以从较高的水平流回到较低的水平。对于视频管道来说,这个过程似乎不合理。相比之下,GLOM的确定过程将学习所需的导数传播为各级活动的时间导数,并且该传播所需的时间步长可以与用于视频帧的时间步长完全相同。
对于动态图像而言,其表现形式不断改善似乎有些自相矛盾,但这并不比一个冲浪者在不改变海拔高度的情况下不断下山更为自相矛盾。冲浪者下山的表面不是同一个表面。类似地,现实的时间片(代表性永远在改善)也不是同一个时间片。大脑浏览现实。
不幸的是,这并不能解释如何获得学习自下而上和自上而下神经网络隐藏层所需的导数。它也没有解释如何通过自下而上或自上而下的网络反向传播每个级别的误差信号导数,从而对相邻级别的导数做出适当的贡献。这些棘手的问题将在另一份正在编写的文件中讨论。
13讨论
本文一开始是作为一个实现的设计文档,但很快就被证明设计决策正确性的需要所劫持。我使用了想象中的GLOM架构作为载体,传达了一组关于神经网络视觉系统如何组织的相互关联的想法。由于缺乏有效的实施,更容易集中精力清晰地表达想法,避免了混淆想法质量和实施质量的问题,但也造成了严重的信誉问题。科学和哲学的区别在于,实验可以表明,极为合理的想法是错误的,而极为不合理的想法,就像通过端到端的梯度学习整体复杂系统一样,是正确的。我目前正在合作进行一个项目,以测试GLOM架构将形状识别推广到全新视角的能力,我希望其他小组也能测试这里提出的想法。这篇论文已经写得够长了,所以我将在结束时做一些简短的哲学评论。
解析树中的节点由相似向量的孤岛表示的思想统一了理解感知的两种截然不同的方法。第一种方法是古典格式塔心理学,它试图通过吸引领域来模拟感知,并被整体不同于部分总和的观点所困扰36。在GLOM中,感知实际上是一个场,表示整体的共享嵌入向量与表示部分的共享嵌入向量非常不同。第二种方法是经典人工智能,它通过结构描述对感知进行建模。GLOM确实有结构描述,解析树中的每个节点都有自己的“地址”,但地址存在于可能嵌入的连续空间中,而不是硬件位置的离散空间中。
一些对深度学习持批评态度的人认为,神经网络无法处理成分层次结构,需要有一个“神经符号”接口,允许神经网络前端和后端将更高层次的推理交给一个更具符号性的系统37。我相信我们的主要推理模式是使用类比,而类比是通过学习到的高维向量之间的相似性实现的,一位汽车制造商花了五十年的时间阐述电动机的不足之处,但最终还是愿意用电动机将汽油注入发动机,这是一个很好的类比。
BERT[Devlin et al.,2018]取得了惊人的成功,再加上早期的研究表明,如果任务需要,神经网络可以输出解析树[Vinyals et al.,2014],这清楚地表明,如果需要,神经网络可以解析句子。通过构建BERT中多个头部之间的交互,使其对应于表示的级别,并通过添加对比学习的正则化器来鼓励每个级别上多个单词片段的局部一致性岛,可以证明GLOMBERT确实解析句子。
致谢
许多人帮助我得出了本文中描述的一系列想法。Terry Sejnowski、Ilya Sutskever、Andrea Tagliasacchi、Jay McClelland、Chris Williams、Rich Zemel、Sue Becker、Ruslan Salakhutdinov、Nitish Srivastava、Tijmen Tieleman、Taco Cohen、Vincent Sitzmann、Adam Kosoriek、Sara Sabour、Simon Kornbrith、Ting Chen、Boyang Deng和Lala Li特别有帮助。帮助我改进想法表达的人包括大卫·弗利特、大卫·哈、迈克尔·伊萨德、基思·奥特利、西蒙·科恩布里斯、劳伦斯·索尔、蒂姆·沙利克、乔恩·什伦斯、安德里亚·塔格里亚萨基、阿什·瓦斯瓦尼和其他一些人。我要特别感谢杰夫·迪恩和大卫·弗利特,感谢他们为谷歌创造了环境,使这项研究成为可能。可能有很多非常相关的论文我应该读,但我没有读,我期待着了解它们。