Perceiver: General Perception with Iterative Attention
https://hub.fastgit.org/lucidrains/perceiver-pytorch
ICML 2021
很多星
A Jaegle, F Gimeno, A Brock, A Zisserman, O Vinyals, J Carreira
[DeepMind]
Perceiver:基于迭代注意力的一般感知。生物系统通过同时处理来自视觉、听觉、触觉、本体感觉等不同模态的高维输入来感知世界,而深度学习使用的感知模型是为单模态设计的,通常依赖于特定领域的假设,如几乎所有视觉模型所利用的局部网格结构。这些先验引入了有用的归纳偏差,但也将模型锁定在个别模态上。本文提出Perceiver——一种建立在Transformers基础上的模型,对其输入之间的关系没有什么架构上的假设,但也可以像ConvNets一样扩展到数十万个输入,可以处理任意的传感器配置,在所有层面上实现信息的融合。该模型利用非对称的注意力机制,将输入迭代提炼成一个紧密的潜在瓶颈,使其能够扩展到处理非常大的输入。实验表明,该架构在各种模式的分类任务上与强大的专门模型相竞争,甚至超过了它们:图像、点云、音频、视频和视频+音频。Perceiver通过直接处理50,000个像素,在ImageNet上获得了与ResNet-50和ViT相当的性能。它在AudioSet的所有模式中也有竞争力。
1.导言
早期视觉中的空间局部性等归纳偏置显然是有价值的,并且以显著提高感知模型的学习效率而闻名。但是,考虑到大型数据集的可用性不断增加,在我们的模型中选择硬架构决策是否正确?还是我们最好尽可能地增加灵活性,鼓励数据为自己说话(LeCun等人,2015年)?
强烈的架构优先权的一个突出问题是,它们通常是特定于模态的。例如,如果我们假设输入是单个图像,我们可以利用其二维网格结构的知识,构建一个依赖于二维卷积运算的高效架构。但如果我们转向stereo pair,我们必须决定如何修改该结构,以共同处理来自两个传感器的像素:我们应该使用早期或晚期融合架构(Karpath等人,2014),还是应该对特征进行汇总或串联?如果我们转向音频,那么2D网格的优点就不再那么明显,可能需要一种不同类型的模型,例如1D卷积或LSTM(Hochreiter&Schmidhuber,1997;Graves等人,2013)。如果我们想要处理点云——这是配备激光雷达传感器的自动驾驶汽车的常见问题——那么我们就可以不再依赖于最适合固定低分辨率网格的模型。简而言之,使用标准工具,我们不得不在每次输入发生变化时重新设计我们使用的架构。
在本文中,我们介绍了Perceiver,一个使用基于单个Transformer的架构设计用于处理不同模式的任意配置的模型。Transformer(Vaswani et al.,2017)是一种非常灵活的结构块,对其输入几乎不做任何假设,但在内存和计算方面,它也与输入数量成二次扩展。最近的工作表明,在图像上使用Transformer的性能令人印象深刻,但这项工作依靠像素的网格结构来降低计算复杂性,首先使用二维卷积(Dosovitskiy等人,2021年;Touvron等人,2020年)处理像素,将图像分解为列和行(Ho等人,2019年;Child等人,2019年),或通过积极的二次抽样(Chen等人,2020a)。相反,我们提出了一种机制,可以处理高维输入,同时保留处理任意输入配置所需的表达能力和灵活性。
我们的核心思想是引入一小部分latent 单元,这些单元形成了一个注意力瓶颈,输入必须通过这个瓶颈(图1)。这消除了经典Transformer全神贯注的二次标度问题,并将网络深度与输入大小解耦,使我们能够构建非常深入的模型。通过反复注意输入,Perceiver可以将其有限的容量引导到由前面的步骤通知的最相关的输入。但是,空间或时间信息对于许多模态是至关重要的,在多模态环境中,区分输入与一种模态或另一种模态通常是至关重要的。我们可以通过将特定于位置和模态的特征与每个输入元素(例如,每个像素或每个音频样本)相关联来弥补架构中缺乏明确的结构——这些特征可以使用高保真傅立叶特征来学习或构建(Mildenhall等人,2020年;Tancik等人,2020年;Vaswani等人,2017年)。这是一种通过位置和形态的高保真表示对输入单元进行token的方法,类似于通过将特定单元的活动与语义或空间位置相关联,在生物神经网络中构建地形图和交叉感觉图时使用的token线策略(Kandel et al.2012,第21章)。
在ImageNet上进行分类训练时,我们展示了与强大模型(如ResNet-50和ViT)相当的性能;在AudioSet声音事件分类基准上的竞争性表现(使用原始音频、视频或两者);与ModelNet-40点云分类的可比方法相比,该方法具有很强的性能。
[if !supportLists]2. [endif]相关工作
ConvNets(福岛,1980年;LeCun等人,1998年;Cires¸an等人,2011年;Krizhevsky等人,2012年)由于其良好的性能和可扩展性,近十年来一直是感知任务的主导架构家族。他们可以处理高分辨率图像,同时使用相对较少的参数和相对较少的计算,通过使用卷积来共享2D中的权重,并将每个单元的计算限制在局部2D邻域。然而,如前一节所述,它们在组合多个信号时提供的灵活性有限,这与语言中占主导地位的基于注意力的模型不同,如Transformers(Vaswani et al.,2017)。
高效的注意力架构。
Transformer具有惊人的灵活性,但与输入大小的扩展很差,因为所有的自注意层都有相同数量的输入,标准的自注意会将每个输入与所有层上的每个其他输入进行比较。然而,自注意已经迅速渗透到感知中,例如,作为图像(Bello等人,2019;Cordonnier等人,2020;Srinivas等人,2021)和视频(Wang等人,2018;Girdhar等人,2019)的卷积模型。已经提出了各种策略来减小Transformer输入的大小,以便可以在其他方面过大的域上使用,包括对输入进行二次采样(Chen等人,2020a)或首先使用卷积对输入进行预处理(例如Wu等人,2020)。这是Vision Transformer(ViT)(Dosovitskiy et al.,2021)采取的策略,它首先将输入大小减小到∼ 200使用2D卷积层(在该工作中称为“平坦patch的线性投影”),然后在产生的输入上应用Transformer以及类似于BERT的类token(Devlin等人,2019)。ViT在ImageNet上产生了令人印象深刻的结果,但这种预处理策略将其限制在具有网格样采样模式的类图像域。
几个小组建议修改Transformer自注意模块的内部结构,以获得更高的效率(有关讨论,请参见附录A节)。与我们工作最密切相关的是SetTransformer(Lee等人,2019年)。Set Transformer使用交叉注意将大型输入数组投影到较小的数组,以减少模块内的计算或将输入投影到目标输出形状(例如,将输入集映射到logits)。像这项工作一样,Perceiver在辅助低维数组上使用交叉注意,以减少输入大小从二次注意到线性注意的复杂性。类似地(但不使用交叉注意),Linformer(Wang et al.,2020b)通过将键和值输入投影到大小小于输入的数组,生成线性复杂度的自注意模块。与之前的工作不同,Perceiver使用交叉注意不仅获得线性复杂度层,而且还将网络深度与输入大小解耦。如第节所述。3、正是这种解耦而不仅仅是线性扩展,使我们能够构建非常深入的架构,这对于在一系列领域的挑战性任务中获得良好性能至关重要。我们将在附录第二节更详细地讨论Perceiver和SetTransformer以及相关模型之间的关系。A.
多模式架构。
在当前的多模态处理方法中,每个模态使用单独的特征提取器(Kaiser等人,2017年;Arandjelovic&Zisserman,2018年;Wang等人,2020c;Chen等人,2020b;Alayrac等人,2020年;Lee等人,2020年;Xiao等人,2020年)–将音频频谱图或原始音频波形与图像连接并通过ConvNet通常是不明智的。这种方法导致了各种架构选择——比如何时融合模式——需要为每个应用程序重新调整。由于这种情况,vision的最佳实践架构无法移植到所有领域,已经开发出专门的模型来处理点云等领域(Qi等人,2017年;Guo等人,2020年)。Perceiver被设计成非常灵活地处理各种各样的即时输入,即使它们来自非常不同的模式,包括诸如图像和音频的高带宽模式(如图2所示)。
3.方法
3.1. Perceiver架构
概述
我们从两个组件构建我们的架构:(i)将字节数组(例如像素数组)和潜在数组映射到潜在数组的交叉注意模块,以及(ii)将潜在数组映射到潜在数组的Transformer塔。字节数组的大小由输入数据决定,通常较大(例如,分辨率为224的ImageNet图像具有50176个像素),而潜在数组的大小是一个超参数,通常小得多(例如,我们在ImageNet上使用512个延迟)。我们的模型交替使用交叉注意模块和Transformer。这对应于在使用深度Transformer处理高维字节数组之前,通过低维注意瓶颈投射高维字节数组,然后使用结果表示再次查询输入。该模型还可以被视为利用高度不对称的交叉注意层,对以潜在位置为聚类中心的输入进行完全端到端的聚类。由于我们可以选择在Transformer塔的每个实例之间(以及除第一个实例外的所有交叉注意模块实例之间)共享权重,因此我们的模型可以解释为一个递归神经网络(RNN),但使用相同的输入深入展开,而不是在时间上展开。Perceiver的所有注意力模块都是非因果性的:我们不使用屏蔽。图1中示出了Perceiver架构。
用交叉注意力驯服二次复杂性。
我们围绕注意力构建我们的架构,因为它既适用于一般情况(对输入数据的结构做出比convnet更少的限制性假设;这就是您所需要的),又在实践中功能强大。我们的架构设计所面临的主要挑战是将注意力架构扩展到非常大的通用输入。crossattention和Transformer模块都是围绕查询键值(QKV)注意的使用而构建的(Graves等人,2014年;Weston等人,2015年;Bahdanaau等人,2015年)。QKV attention将三个网络(查询、键和值网络,通常为多层Perceiver(MLP))应用于输入数组的每个元素,生成三个保留其输入的索引维度(或序列长度)M的数组。在大规模输入(如图像)上使用Transformer的主要困难在于,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< 与潜在Transformer的解耦深度。交叉注意模块的输出采用Q网络输入的形式:即交叉注意层导致瓶颈。我们利用这一瓶颈,在潜在空间中建造深层(因此具有表现力)Transformer:它们以O(N2)的低成本提供。这种设计允许基于Perceiver的架构使用比使用线性复合层的高效Transformer更深的Transformer,而不依赖于特定领域的假设。这是因为构建在字节上的Transformer具有复杂度O(LM2),而潜在Transformer具有复杂度O(LN2)(其中N< 这导致架构的复杂性为O(MN+LN2),这是关键:通过解耦输入大小和深度,我们可以以独立于输入大小的成本添加额外的Transformer层。这使我们能够在大规模数据上构建非常大的网络。例如,我们的最佳ImageNet结果使用具有48个潜在Transformer块的网络,这对于耦合输入大小和深度的网络是不可行的(例如,请参见表5)。 我们的潜在Transformer使用GPT-2架构(Radford等人,2019年),其本身基于原始Transformer架构的解码器(Vaswani等人,2017年)。在我们的实验中,我们使用N的值≤ 1024,这使得我们的潜在Transformer在输入大小上与语言中广泛使用的模型相当。潜伏期阵列本身使用学习的位置编码进行初始化(Gehring等人,2017年)(详情见附录C节)。 迭代交叉注意和权重共享。 潜在阵列的大小允许我们直接建模像素并构建更深层次的Transformer,但瓶颈的严重性可能会限制网络从输入信号捕获所有必要细节的能力。为了避免这种影响,Perceiver可以由多个交叉层构成,这允许潜在阵列根据需要从输入图像迭代地提取信息。这使我们能够调整模型,以平衡昂贵但信息丰富的交叉参与与便宜但潜在冗余的潜在自我参与。如附录选项卡所示。6,更多的交叉参与会导致更好的性能,但会增加模型的计算要求,因为它会增加层数,并且与输入大小呈线性关系。 最后,借助所得到的架构的迭代结构,我们可以通过在每个潜在Transformer的相应块之间和/或交叉模块之间共享权重来提高模型的参数效率。如果只使用一个交叉参与,潜在的自注意块仍然可以共享。在我们的ImageNet实验中,权重共享导致参数数量减少约10倍,同时减少过度拟合并提高验证性能。由此产生的架构具有RNN的功能形式,具有交叉注意输入投影、瓶颈潜在维度和潜在Transformer循环核心。我们注意到,权重共享已用于Transformer的类似目标(Dehghani等人,2019年;Lan等人,2020年)。 3.2. 位置编码 排列不变性和位置信息。 注意是一种置换不变操作,Perceiver和相关模型保留了该属性(Lee et al.,2019)。纯注意模型将返回相同的输出,而不管其输入顺序如何,在其输出上不留下输入顺序的痕迹。此属性使基于注意的架构非常适合于多种类型的数据,因为它们不假设要优先考虑哪些空间关系或对称。相比之下,通常用于图像处理的convnet——如残余网络(resnet)(He et al.,2016)——以多种方式烘焙2D空间结构,包括使用只查看局部空间区域的过滤器(这使得更容易捕捉附近像素之间的关系,而不是远处像素之间的关系),通过在两个空间维度上共享权重(这有助于使用平移不变的统计数据对数据建模),以及通过重复应用小过滤器(这有助于使用缩放不变的统计数据对数据建模)。 但是排列不变性意味着Perceiver的结构本身不能利用输入数据中的空间关系。空间关系是感官推理的基本要素(康德,1781年),而这一限制显然不能令人满意。在注意力文献中,位置信息通常通过在输入特征上token位置编码来注入(Vaswani et al.,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和µ2之间的一组频率的第k个频带。µ2可以自然地解释为对应于µ的目标采样率的奈奎斯特频率(奈奎斯特,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));然而,这通常需要大量的研究人员时间和专业知识。相比之下,位置编码可以很容易地适应一个新的领域:只要输入维度相对较小且已知,傅立叶特征就很难适应。在更广泛的Transformer文献中,简单的学习位置编码已被证明足以在许多设置中获得良好的结果。我们发现,类似的策略在ImageNet上产生了合理的结果(见表2,底行),即使它对输入2D结构一无所知。第三,位置编码可以自然地扩展到多模态数据:每个域都可以对其数据使用具有正确维度的位置编码,使用学习的编码来区分域(我们对多模态音频集使用此策略,见第4.2节)。 4.实验 接下来的几个小节由所使用的modalit{y,ies}组织(如图2所示)。我们在补充资料(第B节)中评估了模型配置和超参数对ImageNet分类的影响。作为基线,我们考虑RESNET -50(He等人,2016),一个非常广泛的模型,视觉和音频,可能是最接近的一个普遍的感性架构至今。我们还考虑两个Transformer变型,最近提出的VIT(DOSOVVITKY等人,2021),和一个Transformer堆栈(VasWaWi等人,2017)。所有实验均使用JAX(Bradbury等人,2018年)和DeepMind JAX生态系统(Babuschkin等人,2020年)进行。 4.1. 图像–ImageNet 首先,我们考虑使用IVSRC 2012分割的IMANET数据集的单图像分类任务(邓等人,2009)。ImageNet一直是图像识别架构发展的关键领头羊(Krizhevsky等人,2012年;Simonyan&Zisserman,2015年;Szegedy等人,2015年;He等人,2016年),直到最近,它一直由ConvNet架构主导。ImageNet上的每个图像都有一个标签,因此我们使用softmax输出和交叉熵损失来训练分类任务。按照标准惯例,我们在保留的验证集(测试集不公开)上使用top-1精度评估我们的模型和所有基线。我们使用通过初始风格预处理(Szegedy et al.,2015)采集的图像训练我们的模型,包括标准的224×224像素裁剪。此外,我们在训练时使用RandAugment(Cubuk et al.,2020)增强所有图像。 位置编码。 我们首先使用224×224输入裁剪上的(x,y)位置生成位置编码。(x,y)坐标标准化为裁剪各尺寸的[-1,1](参见附录图4)。在初始样式预处理中,原始裁剪可能具有不均匀的纵横比,这可能导致输入裁剪和用于生成位置编码的(x,y)坐标中的纵横比失真。在早期的实验中,我们尝试使用图像坐标而不是裁剪坐标作为位置编码的基础,但我们发现这会导致模型过度拟合。我们怀疑发生这种情况是因为Perceiver的架构可能允许它通过锁定少量输入像素来记忆训练集图像,如果它们总是与相同的(RGB,位置)特征相关联。通过使用crops,我们有效地在位置和纵横比两个方面引入了增强,这打破了RGB值和位置特征之间的相关性,使图像标签与少量像素关联变得更加困难。 优化和超参数。 虽然使用SGD在ImageNet上训练卷积网络是典型的,但我们发现使用LAMB optimizer(You et al.,2020)更容易优化Perceiver模型,LAMB optimizer是为优化基于Transformer的模型而开发的。我们训练了120个时期的模型,初始学习率为0.004,在[84102114]个时期将其衰减10倍。我们在ImageNet上确定的性能最佳的Perceiver注意输入图像8次,每次使用交叉注意模块和具有6个块的潜在Transformer以及具有每个块的单个头部的一个交叉注意模块处理完整的50176像素输入阵列。我们发现,将最初的交叉注意力与随后的交叉注意力分享会导致训练的不稳定性,因此我们在第一次交叉注意力之后分享所有交叉注意力。每个Transformer块的密集子块不使用瓶颈。我们使用了一个包含512个索引和1024个通道的潜在阵列,以及由64个频带和224个像素的最大分辨率生成的位置编码。在ImageNet上,我们发现这种尺寸的模型在没有权重共享的情况下过度拟合,因此我们使用了一个模型,该模型共享除第一个交叉Transformer和潜在Transformer模块外的所有模块的权重。由此产生的模型∼ 4500万个参数,使其在大小上与ImageNet上使用的卷积模型相当。 标准ImageNet。 标准ImageNet。 如表1所示,我们在ImageNet上训练的Perceiver模型获得的结果与专门为处理图像而设计的模型具有竞争力。我们包括来自(Cubuk等人,2020年)的ResNet-50结果,因为这些数字使用RandAugment,因此更符合我们的训练协议。为了说明Perceiver在输入时使用傅里叶特征,我们也使用该输入训练基准模型的版本,发现其产生的性能与仅在RGB输入上训练的模型相当,甚至稍差。此外,我们还测试了纯Transformer模型的性能。由于Transformers无法处理ImageNet扩展数据,我们首先将输入图像降采样到64×64,然后再将其传递到Transformer(我们使用96x96输入获得了类似的结果,但是该输入的训练速度要慢得多,内存更密集,因此我们无法使用尽可能多的层)。我们考虑的Transformer模型与Perceiver的潜在Transformer具有相同的结构,仅在超参数中不同(我们独立地扫描每个模型),为了更多的细节,请参阅附录。请注意,在未进行预训练的情况下,ImageNet的最新技术在提交时的准确率为86.5%(Brock等人,2021年)。 置换图像网。 为了评估网格结构的特定领域假设对基准测试方法性能的重要性,我们评估了置换ImageNet上的所有方法。为了生成置换,我们对所有图像使用单一的、共享的置换模式。在生成位置特征后执行置换。我们之所以选择此选项,是因为它仍然允许每个网络推断点之间的空间关系(使用位置编码),但防止网络使用架构归纳偏差来推断点之间的空间关系。换句话说,在这些条件下,使用2D卷积的网络无法利用输入的局部邻域结构来推理空间,但必须根据特征进行推理,就像Transformer和Perceiver等结构不可知的架构一样。实验结果如表2所示。由于Transformer和Perceiver有效地将任何输入视为置换输入,因此它们的结果不会受到影响,但我们发现,即使这些模型可以使用位置编码,置换后ViT和ResNet的性能也会显著下降。这两种模型的表现仍远高于偶然性,表明它们能够根据位置特征进行推理。ViT在置换下比ResNet模型更稳定:这可能是因为ViT使用一个二维卷积层,具有相当大的感受野(16×16=256像素),然后是Transformer,而ResNet-50使用具有相对较小感受野(7×7=49像素)的初始卷积一个基本上完全由卷积组成的架构。 Perceiver架构本身对其输入的空间结构不做任何假设,但默认情况下使用的傅立叶特征位置编码会这样做。通过将这些特征替换为完全学习的128维位置编码,我们可以在不了解输入空间结构的情况下评估Perceiver的性能。该实验的结果如表2的底行所示。此处使用的位置编码随网络一起随机初始化并进行端到端训练(使用与潜在阵列位置编码相同的初始化类型,见附录C节)。因为这里使用的位置编码不知道输入的结构,所以在构造位置编码之前还是之后对输入进行排列没有区别。我们发现,当使用学习的位置编码时,具有8个交叉参与的网络存在稳定性问题,因此我们报告了具有单个交叉参与的网络的结果。 从表面上看,这个实验可能是人为的——我们知道网格结构,为什么不使用它呢?但是,排列设置提供了一个方便的模型,用于模拟具有挑战性和大规模的模式(如ImageNet),但不能自然地映射到2D网格(例如点云、嗅觉输入、触摸输入、激光雷达等),或者包括不共享公共网格的模式(例如,图像+语言、视频+音频、体感输入+运动反馈等)。 注意映射。 图3显示了来自ImageNet的样本图像在多个交叉注意模块处的注意图(我们在附录中包括附加结果)。每个注意图都显示了模型512个潜在索引和每个输入像素处QKT操作的输出。我们在softmax之前将注意力图可视化,因为softmax的输出非常稀疏且难以解释。该模型在其初始交叉注意中使用非共享权重,但为所有后续层共享权重。最初和后来的交叉注意层产生了质的不同的注意图:早期模块显示输入图像的清晰痕迹(狗在许多注意图中弹出),而后来模块的注意图显示为高频格子。虽然模块2和模块7的注意力映射显示了类似的结构,但相应映射的具体细节确实有所不同,这表明网络在后续阶段注意不同的像素集。注意力映射的带状、可变频率结构似乎反映了ImageNet上使用的傅里叶特征位置编码的空间频率结构。这种格子图案在完全学习位置编码的网络中并不存在,这表明它至少部分是由于傅里叶特征。 4.2. 音频和视频–音频集 我们使用AudioSet(Gemmeke et al.,2017)对视频中的音频事件分类进行了实验,AudioSet是一个大型数据集,包含170万个10秒长的训练视频和527个课程。视频可能有多个标签,因此我们使用S形交叉熵损失,并使用平均精度(mAP)进行评估。我们使用音频(使用原始音频波形或mel频谱图)、视频和音频+视频作为输入来评估Perceiver。我们在训练中采样32帧剪辑(每秒25帧,1.28秒);为了进行评估,我们将视频分割成16个重叠的32帧剪辑,覆盖整个10秒,并平均分数。我们训练100个epoch的模型。 考虑到数据集的规模,我们使用了更快的ImageNet模型版本,只需2次注意迭代,而不是8次,但每个Transformer块有8个自注意层,而不是6个。为了补偿较小的尺寸,我们省略了重量共享。我们对时间展开进行了短暂的实验——例如,每次交叉参与处理一帧——发现它对视频效果很好,效率很高,但会影响音频性能。音频可能需要更长的注意力。 只有音频。 我们使用48Khz的音频采样,在1.28s的视频中获得61440个音频采样。我们试验了两种设置:第一种是将原始信号分成128个元素的段,总共480个128-d向量,并将其输入到Perceiver;第二种设置使用mel频谱图,一旦变平,将向Perceiver提供4800个输入。作为增强,对于原始音频,我们只需及时采样,与视频采样保持一致。对于光谱图,我们也使用specaugment(Park等人,2019年)。 视频 分辨率为224x224的完整32帧剪辑的像素数超过200万。我们使用尺寸为2x8x8的微小时空patch进行了实验,总共为Perceiver提供了12544个输入。我们计算水平、垂直和时间坐标的傅里叶特征(缩放到[-1,1]),并将它们和RGB值连接起来。我们使用与音频实验相同的模型,但现在将时空patch作为输入,而不是音频。我们执行了颜色增强、初始类型大小调整、随机翻转和裁剪到224x224分辨率。 音频+视频。 在这个实验中,我们将12544个时空patch和480个原始音频向量或4800个频谱图值馈送给Perceiver。由于模式在输入时融合,音频和视频输入需要具有相同数量的通道。我们通过将学习到的特定于模态的编码连接到每个输入来实现这一点。由于视频有更多的通道,我们对视频输入使用大小为4的嵌入,并使音频编码在两个输入阵列之间的输入通道中尽可能大。这种编码兼作特定于模态的位置编码(如第3.2节所述),我们发现它比简单地将音频编码通过线性层匹配视频效果更好。另一件被证明是有用的事情是视频丢失——在训练过程中以一定的概率将视频流完全归零——每批中每个示例30%的概率效果良好。这可能有助于网络不过度适应视频:这些输入在音频设备上提供更大但辨别力更低的信号。我们观察到使用此程序后改善了3%以上;没有它,基于频谱图的模型的mAP得分为39.9%(对43.2%),原始音频模型的mAP得分为39.7%(对43.5%)。在ICML摄像头就绪截止日期之后,我们进一步调整了光谱图模型,并通过关闭specaugment并以10%的概率删除光谱图模式,将结果提高到44.2。 后果 表3显示,Perceiver在纯视频和纯音频实验中都获得了接近最新水平的结果。在原始音频上,Perceiver获得38.4,优于大多数ConvNet模型,但CNN-14(Kong等人,2020年)除外,它使用额外的AugMix(Hendrycks等人,2019年)和类平衡数据-我们希望在未来的工作中纳入这一点。如果没有这些改进,CNN-14模型的性能略差于Perceiver(37.5映射)。以前的大多数方法都使用频谱图作为输入,但我们发现,即使使用原始音频,我们也可以获得类似的性能。与单一模式相比,音频+视频融合带来了坚实的改进(并优于专门的融合优化方法(Wang et al.,2020c)),但仍低于使用单独模型和后期融合的最先进方法(Fayek&Kumar,2020)。我们将在今后的工作中对此进行调查。我们将视频和音频注意力图可视化,见附录二。E 4.3. 点云–ModelNet40 ModelNet40(Wu等人,2015)是一个点云数据集,源于跨越40个对象类别的三维三角网格。任务是预测每个对象的类,给定对象的坐标∼ 三维空间中的2000点。与我们实验中使用的其他数据集相比,ModelNet很小:它有9843个训练示例和2468个测试示例。为了应用我们的模型,我们首先通过将点云归零来预处理它们。为了增强训练,我们采用随机逐点缩放(0.99和1.01之间),然后进行零均值和单元立方体归一化。我们还研究了随机逐点平移(介于-0.02和0.02之间)和随机点云旋转,但我们发现这并没有提高性能。 我们使用了一种架构,每个块有2个交叉注意层和6个自注意层,另外还使用了与ImageNet相同的架构设置。我们使用比图像数据更高的最大频率来解释点云的不规则采样结构-我们使用的最大频率为1120(10×ImageNet上使用的值)。我们使用64个频带获得了最佳结果,并且我们注意到值高于256通常会导致更严重的过度拟合。我们使用512的批量,并以1×10的恒定学习率用羔羊进行训练−3:在50000个训练步骤内,模型表现饱和。请注意,该基准上的最先进方法非常小且专门,通常执行更复杂的数据增强/特征工程程序,包括将曲面拟合到点云,并使用面法线作为附加点(Qi等人,2017)。在这里,我们最感兴趣的是与更通用的模型(如ImageNet基线)进行比较,并评估各种模型如何处理不符合网格的数据。与基线比较的感知结果显示在选项卡中。4.我们将每个点云随机排列到二维网格中,然后将其馈送到每个模型中。对于ViT,我们改变了输入时使用的patch大小。 5.讨论 我们介绍了Perceiver,这是一种基于Transformer的模型,可扩展到十万多个输入。这为一般感知架构开辟了新的途径,该架构对其输入几乎不作假设,可以处理任意传感器配置,同时实现所有级别的信息融合。随着灵活性的提高,会出现过度装配,我们的许多设计决策都是为了缓解这种情况。在未来的工作中,我们希望在超大规模数据上预训练我们的图像分类模型(Dosovitskiy等人,2021年)。我们在大型AudioSet数据集上获得了很好的结果,该数据集有170万个示例,其中,Perceiver在音频、视频以及两者的组合上表现出色,具有很强的竞争力。在IMANET上,模型与RESNET-50和VIT相一致。当在论文中考虑的所有不同模式和组合中比较这些模型时,Perceiver总体表现最好。虽然我们减少了模型中特定于模态的先验知识,但我们仍然使用特定于模态的增强和位置编码。端到端的模式学习仍然是一个有趣的研究方向。 附录 A.扩展的相关工作 高效注意力架构,续。 已经提出了几种策略,通过修改Transformer自注意模块的内部来提高效率,包括使用局部或局部自注意(Parmar等人,2018年;Ramachandran等人,2019年;Zhao等人,2020年;Sukhbatar等人,2019年),使用非局部、非密集注意模式(Ho et al.,2019;Wang et al.,2020a;Beltagy et al.,2020;Child et al.,2019;Correia et al.,2019;Ye et al.,2019;Roy et al.,2020),近似或简化QKV注意中使用的矩阵乘法(Choromanski等人,2021年;Peng等人,2021年;Kitaev等人,2020年;Xiong等人,2021年;Katharopoulos等人,2020年;Tay等人,2021a),或通过在每个模块的计算中引入瓶颈(Lee等人,2019年;Wang等人,2020b).这项工作的主要贡献是一组模块,这些模块具有与Transformer密集连接的自注意块相似的灵活性,但计算成本为次二次方(更多详细审查见Tay等人2020年;2021b年)。我们的工作重点主要是生成一个整体高效且适用于多个领域的架构,而不是提高Transformer的自注意模块本身的复杂性。从这个意义上说,我们的工作是对这一庞大且非常有趣的工作体的补充,其中一些可能橡树可以用来进一步提高Perceiver的效率。 与SetTransformer的关系。 Set Transformer工作(Lee et al.,2019)引入了两个模块(称为ISAB用于“诱导设置注意块”和PMA用于“多头注意池”),其功能类似于我们在这里使用的交叉注意块,但部署方式不同。ISAB用于映射输入阵列(解释为集合)将这些块叠加在一起,就形成了一种在计算/内存中以输入大小线性扩展的架构,就像Perceiver的交叉注意模块一样,但没有Perceiver潜在阵列的优势(这将潜在Transformer的成本与输入大小完全解耦):完全ISAB模型按O(LMN)而不是O(MN+LN2)进行缩放,就像Perceiver一样(其中M是输入的索引维度,N是潜在Transformer的索引维度,L是网络深度).PMA用于将输入数组映射到输出数组,其大小由任务决定(例如,1点用于分类,4点用于四向聚类任务)。它用于映射到目标输出大小,而不是诱导潜在空间。相反,Perceiver的潜在空间大小与任务无关(它是一个超参数,通常比任务输出大得多),专门设计用于促进深层潜在Transformer的高效构造。使用Set TRANSFORM术语,Perceiver直接将其输入馈送到输出尺寸相对较大(例如512)的PMA类块(或ISAB类块的12个)与任务无关,而不是由任务决定;如果按照Set Transformer中的建议使用,则为1(用于分类)。这之后是一个非常深的堆栈(潜在)自注意块和最终平均值以及项目。换句话说,Perceiver利用与集合Transformer相似的原语,但组合方式不同,以构建具有改进的缩放特性的架构。 交叉注意和注意潜伏期。 更广泛地说,交叉注意被用于增强Transformer架构,同时注意过去更长的视界(Rae等人,2020年;Dai等人,2019年),并产生写入和/或读取固定大小阵列或存储器的架构(Santoro等人,2018年;Goyal等人,2021年),同时保持每项操作的成本在输入大小中呈线性。我们使用交叉注意来诱导深层加工的潜在空间。这可以被视为是一种完全专注的、领域无关的模型类似物,该模型将自注意堆叠在卷积特征图的顶部,以在顶部执行廉价但全局的处理,或与其他空间局部卷积特征图结合使用(例如Carion et al.2020;Locatello et al.2020;Wang et al.2021)。 全局、重入式处理。 Perceiver从第一层开始执行全局计算:尽管当代架构通常首先进行局部处理,但使用全局处理构建感知系统的概念由来已久(例如K–ohler 1967;Shi&Malik 2000)。当输入变得非常大时,这可能会导致带宽瓶颈。通过使用多个交叉注意,Perceiver可以通过允许输入的第一次传递处理反馈并影响后续传递中输入的处理方式,使用一种形式的重入处理来减轻这种影响。这种重入式处理(有时称为自上而下处理)在计算机视觉领域有着悠久的历史(Borenstein等人,2004年;Kumar等人,2005年;Carreira等人,2016年;Hu&Ramanan,2016年;Yang等人,2018年;Lin等人,2020年)。有广泛的证据表明,它在人类视觉中起着重要作用(例如Felleman&Essen 1991;Olshausen等人1993;Lollo等人2000),其特点是有限的带宽输入流(Wolfe等人,2006)。在Perceiver中,对全套输入的注意可能会受到模型先前迭代产生的潜在阵列的影响,从而允许模型以软方式注意最有希望的输入子集(Zoran et al.,2020)。 B.烧蚀 为了说明各种网络超参数的影响,我们考虑了一个小的感知模型,并在其周围扫描了许多选项。与ConvNets不同,基于Perceiver的架构中的每个模块都将完整的输入字节数组作为输入。这使得扫描处理超参数(例如深度、容量等)成为可能,而不会降低整个网络的有效接收野大小。基本模型不共享自注意或交叉注意参数,每个自注意模块使用8个头,每个块使用4个自注意模块,每个图像执行2次交叉注意,并且具有索引维度为512和通道维度为512的潜在模型。我们在32个TPU中使用了64个小批量,以确保所有型号都能轻松地放入内存,无论参数有多极端。我们使用与主要论文中类似的优化程序,对所有模型进行了500万步的训练。 以该基础架构为中心的超参数扫描结果如图5所示。所有结果在ImageNet上都显示了顶级精度。与我们的其他实验一致,这些结果表明,增加模型的大小往往会产生更好的结果。这个实验中的例外是潜在维度的数量,因为最大的模型显示出过度拟合的迹象。 同样,我们评估了潜在阵列的初始化规模和傅里叶频率位置编码参数对ImageNet性能的影响。实验结果如图6所示。这些实验使用全尺寸的ImageNet架构,但使用较小的批量(256)和较少的TPU(16)进行训练(出于计算可用性的原因)。这些实验表明,初始化量表的标准值和相对较小的值是最好的(值)≥ 1可能会导致不稳定性),并且通常表明更高数量的傅里叶频带和更高的最大分辨率(高达奈奎斯特)可以提高性能。我们发现1.0的扩展最适合初始化位置编码:该值用于选项卡中报告的模型。2. 对于此处报告的所有翻牌数字,我们报告未使用的乘法和 这里报告的所有触发器都给出了理论上的触发器,并将乘法和累加计算为单独的操作。这是(Kaplan et al.,2020)和其他文献中使用的策略。请注意,文献中的一些其他论文报告了使用融合乘法累加的触发器:使用这种策略将使我们报告的数字大约减少一半。 C.架构细节 Perceiver由两个模块组成:交叉注意模块和Transformer。在交叉注意模块中,输入首先使用层规范(Ba等人,2016)进行处理,然后通过线性层生成QKV交叉注意操作的每个查询、键和值输入。查询、键和值具有与最小输入通道相同数量的通道,通常为键/值输入(即,对于ImageNet为261)。注意力的输出通过附加线性层,以将其投影到查询输入中相同数量的通道(因此可以剩余添加)。 第一交叉注意层(例如,图1中最左侧的潜在阵列)的查询输入被学习,每个元素的权重与潜在阵列具有相同的形状(例如,对于ImageNet,它们是512×1024阵列)。这些函数类似于Transformer文献中的已学习位置编码,或类似于递归神经网络(RNN)文献中的已学习初始状态。使用平均值为0、标准偏差为0.02、截断边界为[-2,2]的截断正态分布随机初始化潜在阵列。网络性能对于该初始化的规模来说相当稳健(见图6,左侧)。 在self-attention块中,输入使用层规范进行处理,并在用于计算QKV self-attention之前通过查询、键和值层。输出通过另一个线性层。 每个交叉注意和自注意块后面都有一个密集(多层Perceiver)块。在密集区块中,输入采用层范数处理,通过线性层,通过GELU非线性激活(Hendrycks&Gimpel,2016),然后通过最终线性层。在早期的实验中,我们在整个网络中使用了掉电,但我们发现这会导致性能下降,因此没有使用掉电。 所有线性层(包括查询、键和值层以及密集块层)保留其输入的维度,并在输入索引维度上平铺(即作为1×1卷积应用)。 为了产生输出逻辑,我们将最终潜在自注意模块在索引维度上的输出平均。这将生成单个全局摘要向量,然后使用单个线性层将其投影到目标类的数量。这是例如Resnet将卷积特征映射转换为logits的过程(He等人,2016)。' 与其他Transformer架构一样,Perceiver的Transformer具有完全剩余的设计,其输入总是添加到其输出以进行进一步处理。这也适用于交叉注意模块:输入的潜在成分被添加到输出中。本文详细介绍了在不同数据集上使用的超参数。 D.位置编码和傅里叶特征 裁剪相对坐标。 如主要论文所述,我们发现使用裁剪数据而不是原始数据生成位置坐标对于防止过度过拟合非常重要。我们在图4中说明了ImageNet上的裁剪过程。 傅立叶特征参数化。 我们选择本文第3.2节中描述的傅里叶特征参数化,以便在输入信号的采样率为规则且已知时,直观地设置最大频带。通过独立设置频带数,我们可以根据计算预算轻松控制频带数:我们通常发现更多频带有助于给定的架构(假设它适合内存)。对于采样不规则或非常精细的信号,如ModelNet40点云,最大频带也可以视为超参数。这与NeRF(Mildenhall et al.,2020)中使用的参数化相反,如果使用中等数量的频带(例如,第64个频带的频率为2 64=1.8e19),NeRF会产生非常高的频率。我们的参数化并没有将最大频率与频带数联系起来,而是随着频带的增加,对频谱进行更密集的采样。我们的参数化与原始Transformer论文中描述的参数化相同,不同之处在于我们用频率而不是波长来表示每个频带(我们发现在像图像这样的信号环境中这更自然),并且我们假设输入位置在[−对于长度为s的序列,为1,1]而不是[0,s]。 E.视听注意图 我们使用2x4x4视频patch和61440个原始音频样本,对在AudioSet上训练的多模态感知模型的第一个和第二个交叉注意模块的视频和音频注意图(分别)进行可视化 我们可视化视频注意图类似于静态图像注意图(图3),但增加了时间维度:每列显示在视频的时间步长对完整图像的注意。由于该音频集Perceiver采用形状时间为2×高4×宽4的时空块,因此对随后的帧对也会给予同样的注意。为了可视化,我们每隔一帧显示一次输入视频和注意图:每个注意图应用于两个视频帧。 该网络的所有注意力映射似乎对输入视频的静态和动态特征都很敏感。一些注意力图显示的时空结构让人想起时空图像处理中的过滤器(Adelson&Bergen,1985;Simoncelli&Heeger,1998)。因为Perceiver使用习得的注意力而不是固定的时空过滤器,所以它可以使注意力适应输入内容。 我们通过将mel谱图和注意图显示为图像来可视化音频注意图。光谱图绘制在x轴上,时间绘制在y轴上,频率绘制在y轴上。尽管它们比图像注意力图更难直观地解释,但它们似乎共享傅里叶频率位置带和内容相关调制的共同结构。 F.对原始版本的更改说明 我们在第一个arXiv版本中的Audioset映射结果有缺陷(不幸的是更高),因此我们重复并扩展了这些实验,现在提供了正确的数字。问题是,当使用sklearn软件包计算AP时,我们传递了转换为函数期望值的类分数矩阵——因此类的数量和示例的数量被切换。 自第一个版本以来,我们已通过(i)移除漏失,(ii)移除最初(无意中)包含在初始潜在阵列之后的线性层,以及(iii)在计算输出对数时在投影之前而不是之后进行平均,略微改进了ImageNet上报告的结果。