Perceiver: General Perception with Iterative Attention

Perceiver: General Perception with Iterative Attention

作者:elfin   参考资料来源:Perceiver

带有输出的论文Perceiver IO


摘要

​ 生物系统通过同时处理来自视觉、听觉、触觉、本体感觉等多种模式的高维输入来感知世界。然而深度学习中使用的感知模型是为单模式设计的,通常依赖于特定领域的假设,例如几乎所有现有的视觉模型所利用的局部网格结构。这些先验引入了有用的归纳偏差,但也将模型锁定到了单个模式。在本文中,我们将介绍Perceiver:一个建立在transform基础上的模型,因此对其输入之间的关系几乎不做架构性假设,但它也可以像ConvNet扩展到数十万个输入。该模型利用非对称注意机制,循环地将输入提取到一个紧密的潜在瓶颈中,允许其扩展以处理非常大的输入。研究表明,这种体系结构在各种模式的分类任务上与强大的专业模型具有竞争力,或优于这些模型:图像、点云、音频、视频和视频+音频。通过直接处理5万个像素,Perceiver可以在没有2D卷积的情况下获得与ImageNet上的ResNet-50和ViT相当的性能。它在音频的所有模式中都具有竞争力。


Top --- Bottom

1、介绍

​ 早期视觉中的空间局部性等归纳偏见显然很有价值,并以显著提高感知模型的学习效率而闻名。但是,考虑到大型数据集的可用性越来越高,在我们的模型中采用硬架构决策是否正确?还是我们最好尽可能提高灵活性,鼓励数据为自己说话(LeCun等人,2015年)?

​ 强烈架构优先的一个突出问题是,它们通常是特定于模态的。例如,如果我们假设输入是单个图像,我们可以利用其二维网格结构的知识,构建一个依赖于二维卷积运算的高效体系结构。但如果我们转向立体对,我们必须决定如何修改该结构,以联合处理来自两个传感器的像素:我们应该使用早期或晚期融合架构(Karpath等人,2014),还是应该对特征进行汇总或串联?如果我们转向音频,那么2D网格的优点就不再那么明显,可能需要一种不同类型的模型,例如1D卷积或LSTM(Hochreiter&Schmidhuber,1997;Graves等人,2013)。如果我们想要处理点云——这是配备激光雷达传感器的自动驾驶汽车的常见问题——那么我们就可以不再依赖于最适合固定、低分辨率网格的模型。简而言之,使用标准工具,我们不得不在每次输入发生变化时重新设计我们使用的架构。

​ 在本文中,我们介绍了Perceiver,一个使用基于单个transform的架构来处理不同模式的任意配置的模型。transform(Vaswani et al.,2017)是一种非常灵活的结构块,对其输入几乎不做任何假设,但在内存和计算方面,它也与输入的数量成二次比例。最近在图像上使用transform的工作已经令人印象深刻,但这项工作依赖于像素的网格结构,通过使用2D卷积的第一处理像素(DOOVITSKYY等人,2021;TAU VRON等人,2020),将图像分解成列和行(Ho等人,2019;子等人,2019),或者通过积极的二次抽样(Chen等人,2020a),以减少计算复杂度。相反,我们提出了一种机制,可以处理高维输入,同时保留处理任意输入配置所需的表达能力和灵活性。

​ 我们的核心思想是引入一小部分潜在单位,这些单位形成了一个注意力瓶颈,输入必须通过这个瓶颈(图1)。这消除了经典transform全神贯注的二次复杂度问题,并将网络深度与输入大小解耦,从而允许我们构建非常深的模型。通过反复关注输入,Perceiver可以将其有限的容量引导到由前面的步骤通知的最相关的输入。但是,空间或时间信息对许多模态至关重要,在多模态环境中,区分输入与一种模态或另一种模态往往至关重要。我们可以通过将特定于位置和模态的特征与每个输入元素(例如,每个像素或每个音频样本)相关联来弥补架构中缺乏明确结构的缺陷——这些特征可以使用高保真傅立叶特征来学习或构建(米登哈尔等,2020年;坦契克等,2020年;瓦斯瓦尼等,2017年)。这是一种用位置和形态的高保真表示对输入单元进行标记的方法,类似于通过将特定单元的活动与语义或空间位置相关联,在生物神经网络中构建地形图和交叉感觉图所用的标记线策略(Kandel et al.2012,第21章)。

​ 在ImageNet上进行分类训练时,我们展示了与ResNet-50和ViT等强大模型相当的性能;与在AudioSet声音事件分类基准上的竞争性表现(使用原始音频、视频或两者);与ModelNet-40点云分类的可比方法相比,该方法具有很强的性能。


Top --- Bottom

2、相关工作

​ ConvNets由于其良好的性能和可扩展性,近整整十年来一直是感知任务的主导体系。它们可以处理高分辨率图像,同时使用相对较少的参数和相对较少的计算,通过使用卷积来共享2D中的权重,并将每个单元的计算限制在局部2D邻域。然而,正如前一节所讨论的,它们在组合多个信号时提供的灵活性有限,这与语言中占主导地位的基于注意力的模型不同,例如Transformers(Vaswani et al.,2017)。

高效的注意力架构。transform具有惊人的灵活性,但因为所有的自我关注层都有相同数量的输入,所以其与输入尺度变化的适应性很差,标准的自我关注将每个输入与所有层上的每个其他输入进行比较。然而,卷积模型的自我关注已经迅速渗透到感知中,例如,作为图像(Bello等人,2019年;Cordonnier等人,2020年;Srinivas等人,2021年)和视频(Wang等人,2018年;Girdhar等人,2019年)的卷积模型。大量策略被提出用来减小transform输入的大小,以便可以在其他领域上可以很好使用,包括对输入进行二次采样(Chen等人,2020a)或首先使用卷积对输入进行预处理(例如Wu等人,2020)。Vision Transformer(ViT)使用2D卷积层首先将输入大小减少到∼ 200(在该工作中称为“扁平面片的线性投影”),然后在产生的输入上应用transform以及类似bert的token标记(Devlin等人,2019)。ViT在ImageNet上产生了令人印象深刻的结果,但这种预处理策略将其限制在具有网格样采样模式的类图像域。

​ 有几个团体提议修改transform自我注意模块的内部结构,以获得更高的效率(讨论见附录A节)。与我们的工作最密切相关的是Set Transformer。Set Transformer使用交叉注意将大的输入数组投影到较小的数组,以减少模块内的计算,或将输入投影到目标输出形状(例如,将输入集映射到logits)。像这项工作一样,Perceiver在辅助低维数组上使用交叉注意,以减少输入大小从二次注意到线性注意的复杂性。类似地(但不使用交叉注意),Linformer(Wang et al.,2020b)通过将键和值输入投射到比输入更小的数组中,生成线性复杂度的自我注意模块。与之前的工作不同,Perceiver使用交叉注意力不仅可以获得线性复杂度层,还可以将网络深度与输入大小解耦。如第2节所述。第三节会讲述这种解耦,且不仅仅是线性扩展,使我们能够构建非常深入的体系结构,这似乎对于在一系列领域的挑战性任务中获得良好性能至关重要。我们在附录A第二节中详细讨论了Perceiver和Set Transformer及相关模型之间的关系。

多模态架构。在当前的多模态处理方法中,每种模式都使用单独的特征提取器(Kaiser等人,2017年;Arandjelovic&Zisserman,2018年;Wang等人,2020c;Chen等人,2020b;Alayrac等人,2020年;Lee等人,2020年;Xiao等人,2020年)——将音频频谱图或原始音频波形与图像连接并通过ConvNet通常是不明智的。这种方法带来了各种架构选择——比如何时融合模式——需要为每个应用程序重新调整。由于这种情况,vision的最佳实践架构无法移植到所有领域,已经开发出专门的模型来处理点云等领域(Qi等人,2017年;Guo等人,2020年)。Perceiver被设计为非常灵活地处理各种各样的即时输入,即使它们来自非常不同的模式,包括高带宽的模式,例如图像和音频。


Top --- Bottom

3、方法论

3.1 Perceiver架构

概述:我们的架构由两部分组成:(i)将字节数组(例如像素数组)和潜在数组映射到潜在数组的交叉注意模块,以及(ii)将潜在数组映射到潜在数组的transform。字节数组的大小由输入数据决定,通常较大(例如,分辨率为224的ImageNet图像有50176个像素),而潜在数组的大小是一个超参数,通常小得多(例如,我们在ImageNet上使用512个隐状态)。我们的模型交替使用交叉注意模块和transform。这相当于在使用深度transform处理高维字节数组之前,先通过低维注意瓶颈投射高维字节数组,然后使用结果表示再次查询输入。该模型还可以被视为利用高度不对称的交叉注意层,对以潜在位置为聚类中心的输入进行完全端到端的聚类。因为我们可以选择在变压器塔的每个实例之间(以及交叉注意模块的所有实例之间,但第一个实例除外)共享权重,所以我们的模型可以解释为一个递归神经网络(RNN),但使用相同的输入深入展开,而不是在时间上展开。Perceiver的所有注意力模块都是非因果性的:我们不使用masks。图1中示出了Perceiver架构。

用交叉注意力驯服二次复杂度。我们围绕注意力构建我们的体系结构,因为它既具有普遍适用性(对输入数据的结构做出的限制性假设比convnet更少;这就是您所需要的),又在实践中具有强大的功能。我们的架构设计解决的主要挑战是将注意力架构扩展到非常大的通用输入。交叉注意力模块和transform模块都是围绕查询键值(QKV)注意力的使用而构建的(Graves等人,2014年;Weston等人,2015年;Bahdanaau等人,2015年)。QKV attention将三个网络(查询、键和值网络,通常是多层感知器(MLP))应用于输入数组的每个元素,生成三个保留其输入的索引维度(或序列长度)M的数组。在像图像这样的大规模输入上使用转换器的主要困难在于,QKV自我注意的复杂性在输入维度上是二次的,但图像的索引维度M通常非常大(对于224×224 ImageNet图像,M=50176)。音频面临的挑战类似:标准采样率下1秒的音频对应于大约50000个原始音频样本。对于多模态输入,这个问题会急剧加剧。

​ 因此,之前使用注意力处理图像的工作避免了直接将标准QKV注意力应用于输入像素阵列(见第2节和附录A节的概述)。在这里,我们通过在注意操作中引入不对称性,将注意力直接应用于输入。要了解这是如何工作的,首先请注意对于Q∈ RM×D,K∈ RM×C和V∈ RM×C(其中C和D是通道维度)QKV注意力操作的复杂性——本质上,softmax(QKT)V——是\(O(M2)\),因为它涉及两个矩阵与大维度M.1的矩阵相乘。因此我们引入了不对称性:当K和V是输入字节数组的投影时,Q是一个指数维数为\(N \times M\)的学习潜数组的投影,其中潜数组的指数维数N是一个超参数。由此产生的交叉注意操作的复杂性为O(MN)。

latent transform的深度解耦。交叉注意模块的输出采用Q网络输入的形式:即交叉注意层导致瓶颈。我们利用这一瓶颈,在潜在空间中建造深层(因此具有表现力)变压器:它们以\(O(N2)\)的低成本提供。这种设计允许基于Perceiver的体系结构使用比使用线性复杂层的高效转换器更深的转换器,而不依赖于特定于领域的组件。这是因为在字节上构建的转换器具有复杂性\(O(LM2)\),而潜在转换器具有复杂性\(O(LN2)\)(其中\(N \ll M\)),当被视为除索引维度外的层数\(L\)的函数时。

​ 这形成了一个复杂度为\(O(MN+LN2)\)的架构,这是关键:通过解耦输入大小和深度,我们可以以独立于输入大小的成本添加额外的transform层。这使我们能够在大规模数据上构建非常大的网络。例如,我们的最佳ImageNet结果使用了一个包含48个latent transform块的网络,这对于耦合输入大小和深度的网络是不可行的(例如,请参见表5)。

​ 我们的潜在变压器使用GPT-2架构(Radford等人,2019),其本身基于原始transform架构的解码器(Vaswani等人,2017)。在我们的实验中,我们使用N的值≤ 1024,这使得我们的潜在转换器在输入大小上与语言中广泛使用的模型相当。潜伏期阵列本身使用学习的位置编码进行初始化(Gehring等人,2017年)(详情见附录C节)。

​ 反复交叉注意力和权重分享。潜在阵列的大小允许我们直接对像素建模,并构建更深层次的变压器,但瓶颈的严重性可能会限制网络从输入信号捕获所有必要细节的能力。为了避免这种影响,Perceiver可以用多个交叉层构成,这允许潜在阵列根据需要从输入图像中自动提取信息。这使我们能够调整模型,以平衡昂贵但信息丰富的交叉注意力与廉价但潜在冗余的latent 自我注意力。如附录所示,更多的交叉注意力会带来更好的性能,但会增加模型的计算要求,因为它会增加与输入大小成线性关系的层数。

​ 最后,由于最终架构是迭代结构,我们可以通过在每个latent transform的相应块之间和/或交叉模块之间共享权重来提高模型的参数效率。如果只使用一次交叉注意力,潜在的自我注意障碍仍然可以共享。在我们的ImageNet实验中,权重共享导致参数数量减少约10倍,同时减少过度拟合并提高验证性能。由此产生的体系结构具有RNN的功能形式,具有交叉注意输入投影、瓶颈潜在维度和潜在核心。我们注意到,重量分担已用于transform的类似目标(Dehghani等人,2019年;Lan等人,2020年)。


Top --- Bottom

3.2 位置编码

排列不变性和位置信息 注意力机制是一种置换不变操作,Perceiver和相关模型保留了这一属性(Lee等人,2019)。一个纯粹的注意力模型将返回相同的输出,而不管其输入顺序如何,在其输出上不留下输入顺序的痕迹。这一特性使得基于注意的体系结构非常适合于多种类型的数据,因为它们不假设要优先考虑哪些空间关系或对称性。相比之下,通常用于图像处理的convnet——如残余网络(resnet)(He等人,2016)——以多种方式烘焙2D空间结构,包括使用只查看空间局部区域的过滤器(这使得捕捉附近像素之间的关系比捕捉远处像素之间的关系更容易),通过在两个空间维度上共享权重(这有助于使用平移不变的统计数据对数据建模),以及重复应用小过滤器(这有助于使用缩放不变的统计数据对数据建模)。

​ 但排列不变性意味着Perceiver的结构本身无法利用输入数据中的空间关系。空间关系对于感官推理至关重要(康德,1781年),而这种局限性显然不能令人满意。在注意力文献中,位置信息通常通过在输入特征上标记位置编码来注入(Vaswani等人,2017);我们在这里也奉行这一战略。虽然位置信息通常用于编码语言上下文中的序列位置,但它也可以用于编码空间、时间和模态身份。

可扩展的傅立叶特性。在这里,我们使用了一种最近在语言和视觉方面重新获得重视的策略:傅立叶特征位置编码(Stanley,2007;Vaswani等人,2017;Parmar等人,2018;Tancik等人,2020;Mildenhall等人,2020)。我们使用傅里叶特征的参数化,使我们能够

  • (i)直接表示输入数据的位置结构(分别为音频或图像保留1D时间或2D空间结构,或为视频保留3D时空结构),
  • (ii)独立于截止频率控制位置编码中的频带数,
  • (iii)对所有频率进行均匀采样,直至达到目标分辨率。

​ 我们对频率编码进行参数化,以获取值[sin(fkπxd),cos(fkπxd)],其中频率fk是在1和\(\frac{µ}{2}\)之间等距分布的一组频率的第k频带。\(\frac{µ}{2}\)可以自然地解释为对应于µ的目标采样率的Nyquist频率(Nyquist,1928)。通过允许网络解析输入数组中的所有位置,我们可以鼓励它学习比较输入数组中任何位置的字节值。xd是沿第d维度的输入位置值(例如,对于图像d=2和视频d=3)。xd接受值[−1,1]用于每个维度。我们连接原始位置值xd以生成位置的最终表示。这导致位置编码的大小为d(2K+1)。

​ 该参数化与NeRF位置编码方案(Mildenhall等人,2020年)有关,该方案围绕两次幂递增的频带(第k频带的频率为2k)构建。这导致即使是少量的频带也会出现非常高的频率,在一些实验中,我们在k=15频带以外使用此参数化时遇到了数值不稳定性。

​ 在语言建模中,transformer输入通常是通过在输入编码中添加位置编码来产生的(位置编码的大小根据所使用的编码进行调整)。我们发现,在将位置和输入特征传递给Perceiver之前,将它们连接起来是有益的。这种差异可能是因为语言中的输入特征往往比这里考虑的模式更大、更稀疏。

位置编码通常适用。位置编码的使用是否破坏了我们的说法?即从利用2D结构构建的更特定于领域的体系结构转变为更通用的体系结构?不,有三个原因。

  • 首先,虽然位置信息的体系结构强制要求硬编码特定的位置先验,但基于特征的方法允许网络学习如何使用(或忽略)位置结构。这符合这样一种观点,即尽可能多地使系统可学习,从而产生更大的通用性(Sutton,2019)。
  • 其次,可以为具有不同结构的数据域重新设计架构优先级,例如视频(Tran等人,2015)或音频(Ford等人,2019),或线性翻译组以外的组(例如Cohen&Welling 2016;Bronstein等人,2017;Esteves等人,2018));然而,这通常需要大量的研究人员时间和专业知识。相比之下,位置编码可以很容易地适应一个新的领域:只要输入维度相对较小且已知,傅立叶特征就很难适应。在更广泛的变压器文献中,简单的学习位置编码已被证明足以在许多情况下取得良好的效果。我们发现,类似的策略在ImageNet上产生了合理的结果(见表2,底行),尽管它对输入2D结构一无所知。
  • 第三,位置编码可以自然地扩展到多模态数据:每个域都可以使用具有正确维度的位置编码,使用学习的编码来区分域(我们对多模态音频集使用这种策略,见第4.2节)。

Top --- Bottom

完!

posted @ 2022-01-28 17:37  巴蜀秀才  阅读(801)  评论(0编辑  收藏  举报