本文首先说明自注意力可以作为图像识别模型的基本组成部分。 然后旨在探索自注意的变体并评估其对图像识别的有效性。 重点考虑两种形式的自注意力:一个是pairwise自注意力,它主要对标准点积的注意力进行改进,从根本上讲是一个集合运算符;另一个是patchwise自注意力,它比卷积网络的性能更好。本文提出的pairwise自注意力网络匹配或优于它们相应的卷积网络,而patchwise模型则明显优于卷积基线。 同时作者进行一些实验以探讨子注意力对表示学习的鲁棒性,得出结论:自注意力网络在鲁棒性和泛化性方面可能有很大潜力。
1.引言
卷积网络彻底改变了计算机视觉。 在2012年的ImageNet数据集上实现突破性的准确性,大大超越了所有现有方法,并开创了计算机视觉的深度学习时代。 随后的架构的改进产生了更大的规模以及用于图像识别的更精确的卷积网络,如GoogLeNet,VGG,ResNet,DenseNet等。 这些体系结构又可以用作计算机视觉及其他应用程序的模板。
从LeNet开始,所有网络基本上都基于离散卷积。 离散的卷积运算符∗可以定义如下:
其中F是一个离散函数,k是一个离散滤波器。卷积的一个关键特征是它的平移不变性:在图像F上应用相同的滤波器k。尽管在现代图像识别中,卷积是基本算子,但它并非没有缺点。卷积缺少旋转不变性。学习的参数量随内核k空间的增加而增加。滤波器的平稳性可以看作是一个缺点:来自相邻感受野的信息聚合无法适应其内容。在图像识别模型的设计空间中,基于离散卷积的网络是否有可能是局部最优的?设计空间的其他部分能否产生具有有趣新功能的模型?
最近的工作表明自注意力机制可以构成图像识别模型的可行选择。自注意运算符已在自然语言处理中采用。在计算机视觉中自注意力体系结构的发展正在逐渐发现与卷积网络具有不同甚至互补性质的模型。
这项工作探索了自注意力算子的各种形式,评估了它们作为图像识别模型的基本组成部分的有效性。主要探索两种类型的自注意力:首先是pairwise自注意力,它改进了自然语言处理中使用的标准点积注意力;patchwise与卷积不同,它基本上是一个集合运算符,而不是序列运算符。与卷积不同,它不会将固定权重附加到特定位置(等式(1)中的s)。一个结果是可以增加自注意力算符的footprint(例如,从3×3到7×7补丁),或者使其变得不规则,而不会影响参数的数量。本文在保持这些不变性的同时提出了许多变体,pairwise注意力比点乘注意力具有更强的表达能力。特别是权重计算不会使通道尺寸崩溃,并允许特征聚合适应每个通道。
接下来探索另一类运算符,称其为patch wise自注意力。其像卷积一样,具有唯一标识其footprint内特定位置的能力。它们没有pairwise注意力的排列或基数不变性,但比卷积更严格更强大。
实验表明,两种形式的自注意力对于建立图像识别模型都是有效的。构建可以直接与ResNet模型进行比较的自注意网络,并在ImageNet数据集上进行实验。pairwise自注意力网络在参数和FLOP预算相近或更低的情况下,与卷积对等网络相比性能更优。对照实验还表明矢量算符胜过标准的标量注意力。此外,patchwise模型大大优于卷积基线。例如中型SAN15具有出色的注意力性能,胜过更大的ResNet50,SAN15的top-1精度为78%,而ResNet50的精度为76.9%,参数和FLOP计数降低了37%。得出结论,自注意力网络在鲁棒性和泛化性方面具有更好的优势。
2.Self-attention Networks
在用于图像识别的卷积网络中,网络的各层执行两项功能:首先是特征聚合,卷积操作通过组合内核提取的所有位置的特征来执行;第二个功能是特征变换,它是通过连续的线性映射和非线性标量函数执行的:这些连续的映射和非线性运算破坏了特征空间并产生了复杂的分段映射。
本文构建的基础之一是,这两个功能(特征聚合和特征转换)可以分离。如果具有执行特征聚合的机制,则可以通过分别处理每个特征向量(针对每个像素)的感知器层来执行特征转换。感知器层由线性映射和非线性标量函数组成:逐点操作执行特征变换。因此构建的重点在于特征聚合。
卷积运算符通过固定内核执行特征聚合,该内核应用预训练的权重来线性组合一组附近位置的特征值。权重是固定的不适合特征的内容。而且由于每个位置都必须使用专用的权重向量进行处理,因此参数的数量与聚合要素的数量呈线性比例关系。本文提出了许多替代性的聚合方案,并构建了高性能的交错功能聚合(通过自注意力)和功能转换(通过elementwise感知器)的图像识别架构,。
2.1 Pairwise Self-attention
两种类型的自注意力。 第一种,pairwise,具有以下形式:
其中 ⊙ \odot ⊙表示Hadmard乘积,i表示特征向量 x i x_i xi的空间索引(即特征图的位置), R ( i ) R(i) R(i)表示聚合的局部footprint。footprint R ( i ) R(i) R(i)是一组索引,用于指定聚合哪些特征向量以构造新特征 y i y_i yi
函数β生成特征向量 β ( x j ) β(x_j) β(xj),这些特征向量由自适应权重向量 α ( x i , x j ) α(x_i,x_j) α(xi,xj)聚合。这个函数的可能实例化,以及围绕自注意力体系结构中的的特征转换元素,将在后面讨论。
函数α用于组合变换后的特征 β ( x j ) β(x_j) β(xj)的权重 α ( x i , x j ) α(x_i,x_j) α(xi