Aggregating Global Features into Local VisionTransformer
目录
D. Multi-resolution Overlapped Attention Block
D. Effect of Overlapped Key-Value
Abstract
Local Transformer-based分类模型最近以相对较低的计算成本取得了较好的结果。然而,将全局空间信息聚合到Local Transformer-based架构的效果尚不清楚。本文主要研究了在Local window-based Transformer中应用Multi-Resolution Overlapped Attention(MOA) 的结果。MOA在key中使用了 slightly larger and overlapped patches来实现邻域像素信息的传输,从而获得了显著的性能增益。
此外,作者通过大量的实验深入研究了基本架构组件的维度的影响,并发现了一个最优的架构设计。大量的实验结果CIFAR-10、CIFAR-100和ImageNet-1K数据集表明,所提出的方法在相对较少的参数数量下优于以前的Vision Transformers。
Introduction
与单词Token不同,与文章中的单词相比,高分辨率图像包含更多像素。这导致了计算成本的增加,因为transformer中的self-attention具有二次复杂性。为了缓解这一问题,人们提出了各种基于local self-attention的Transformer[Swin,HaloNets,Nested Hierarchical Transforme],它们的计算复杂度都是线性的,但是这些方法都不能建立长期依赖关系,有些方法非常复杂。
为了克服局部变换中的这些问题,我们开发了一个非常简单的模块,称为多分辨率重叠注意力(MOA),以生成全局特征。该模块只包括乘法和加法运算,在下采样运算之前嵌入到Transformer的每一级之后。由于该模块只在每一级之后添加,而不是在每一层transformer后添加,因此不会增加太多的计算成本和参数数量。
我们的实验表明,将这个模块的结果特征聚合到local transformer建立了长期依赖关系,因此与图 1 所示的参数总数相比,显着提高了准确度。
我们提出的 MOA 模块将一组local window-based attention生成的输出作为输入。 它首先将其转换为 2D 特征图,并将其投影到新的低维特征图。 与 ViT [8] 类似,投影的特征图被分成固定数量的patch,除了一些修改。 与 ViT [8] 相比,query和key-value的patch大小不同。 query中patch的分辨率与local transformer层中使用的窗口大小相同。 相比之下,key-value中的patch的分辨率略大于query patch并重叠。 MOA 全局注意力模块的hidden dimmension与之前的 Transformer 层保持相同。 因此,得到的特征直接聚合到前一个transformer层的输出。
广泛的实验表明,由于两个邻域窗口之间的信息交换很小,保持ley-value块稍大并相互重叠会导致显着的性能提升。 简而言之,我们的方法通过将提出的 MOA 机制嵌入到local transformer中,利用所有非本地窗口之间的邻域信息以及全局信息交换。
contributions
- 我们提出了一种多分辨率重叠注意(MOA)模块,该模块可以在local transformer的每个阶段之后插入,以促进与附近窗口和所有非本地窗口的信息交流。
- 利用所提出的MOA模型,深入研究了全局信息对local transformer的影响。
- 我们通过大量的实验研究了基本结构组件的尺寸对图像分类的影响,并找到了用于图像分类的最佳结构。
- 我们在CIFAR-10/CIFAR-100[19]和ImageNet-1K[6]数据集上从头开始训练所提出的模型,并使用local transformer获得最先进的精度
Related Work
Convolutional Neural Networks
在AlexNet[20]的革命性发明之后,卷积神经网络(CNN)已经成为所有计算机视觉任务的标准网络,例如图像分类[25][29]、目标检测[22]、跟踪[47]、分割[13][28]、计数[31]和图像生成[41]。人们已经提出了各种版本的CNN,通过使其更深和/或更广来提高性能,如VGG网络[33]、ResNet[12]、Wide-ResNet[45]、DenseNet[17]等。也有几种工作提出通过修改单个卷积层来提高其效率,如膨胀卷积[42]、深度可分离卷积[4]、组卷积[20]等。在我们的工作中,我们使用卷积层和transformer层来降低特征图的整体维度。我们的实验表明,卷积和多头注意的结合提高了性能。
Self Attention in CNN
自注意力机制在计算机视觉任务领域已经变得无处不在。已经提出了各种工作 [10] [39] [2] [40] [32] [9] [49] [26],它们利用基于通道或基于位置的自注意层来增强卷积网络。 Non-local network [39]和PSANet [49]对特征图中所有像素之间的空间关系进行建模,并在CNN中的每个块之后嵌入注意模块,而Senet[16]通过使用全局平均池化压缩特征来建立卷积网络中的通道关系。CBAM[40]、BAM [27] 和双注意力网络 [9] 分别采用基于通道和位置的注意力机制,然后使用元素相加或连接将两个注意力模块的结果特征组合起来,并将结果特征用于卷积在每个阶段之后输出,而 GCNet [2] 将 SENet [16] 和 non-local network [39] 结合在一起,提出了混合注意力机制,将通道和空间关系的信息聚合在同一注意力模块中。
Vision Transformers
与AlexNet类似,Vision Transformer(VIT)[8]改变了研究人员解决计算机视觉问题的视角。从那时起,许多基于vision transformer的网络被提出以提高精度和效率。VIT需要在大型数据集(如JFT300M[34])上进行预训练,以实现高性能。Deit[35]通过学生-教师设置、子集扩充和正则化技术解决了这一问题。为了从头开始在像ImageNet-1K这样的中型数据集上训练转换器,token到token vision transformer[43]递归地将相邻的tokens(补丁)聚集成一个token(补丁)以减少token的数量。 Cross-VIT[3]提出了一种具有多尺度块大小的双分支方法来产生稳健的图像特征,而金字塔视觉转换器(PVT)[38]引入了一种类似于CNN的FPN[23]的基于多尺度的空间维度设计,并展示了良好的性能。此外,PVT还引入了一种空间归约密钥来降低多头注意的计算量
各种基于局部注意力的transformer已被引入以减轻二次复杂性问题[36][24][48]。HaloNet[36]在局部注意机制中引入了比query稍大的key窗口的概念,并通过各种实验证明了其有效性。在我们的模型中,key 也是使用稍微大一点的 patch 来计算的,但是在 global attention 的背景下,更大 key 的想法与 HaloNet 不同。 一个 swin Transformer [24] 提出了一种基于非重叠窗口的局部自注意机制,以避免二次复杂度并实现可比的性能,并且聚合嵌套 Transformer [48] 在每个之后都带有块聚合机制的多尺度方法阶段。
已经提出了一些基于 Transformer 的作品来利用局部和全局特征 [11] [5]。 (TNT) [11] 进一步将局部块(视觉句子)划分为更小的块(视觉词)。 视觉词嵌入上的 MHA 被计算并聚合到句子嵌入中以建立全局关系。Twin与我们的完全一样。 然而,在每个局部 Transformer 层之后应用全局注意力,显着增加了计算成本。 相比之下,我们在每个阶段之后都应用它,并且我们在多头注意力的关键部分有稍大且重叠的补丁。 所提出的网络有效地利用了局部变压器中的全局信息,并且比上述基于变压器的模型具有更高的精度。
Method
我们的目标是通过增加最小的计算成本和一些参数,在local transformer的所有窗口中提供全局信息交换。 我们提出的模型的概述如图 2 所示,其中显示了每个阶段之后的 MOA 模块。 除第一阶段外,所有阶段都有相似的架构设计,包括patch merging layer和local transformer block。第一阶段由patch partition, linear embedding layer, local transformer block组成。我们的全局MOA模块在patch merging层之前的每个阶段之间应用。
具体来说,该模型将 RGB 图像作为输入并将其拆分为固定数量的patch。 在这里,每个patch都被视为一个token。 在我们对 ImageNet 数据集的实验中,我们将patch大小设置为 4 ×4,这导致每个patch的特征维度为 4 ×4 ×3 =48。 在第一阶段使用patch embedding层将这些行特征投影到特定维度 C。 生成的特征然后通过连续的阶段,包括patch merging层、local transformer块和每个阶段之间的 MOA 模块。 与 swin Transformer [24] 不同,我们的 Transformer 块采用与 ViT [8] 相同的自我注意机制,没有任何移动窗口方法。 与swin Transformer类似,减少了token的数量,并且在每个阶段之后的patch merging layer中输出维度增加了一倍。例如,第一阶段、第二阶段和第三阶段后的分辨率分别为H/2×W/2、H/4×W/4和H/8×W/8。在最后阶段的末尾插入平均池化层,随后插入线性层以生成分类分数。架构的每一个元素的详细解释如下:
A.Patch embedding layer
它是一个基本的线性嵌入层,被应用于patch的行特征,以将其投影到特定维度 C。
B. Patch merging layer
Patch merging层通过连接 2×2 相邻patch的特征来减少token的数量,并通过在连接的4C维特征上应用线性层来使隐藏维度的数量翻倍。
C. Local Transformer Block
局部变换器块由一个基于局部窗口的标准多头注意力模块组成,然后是一个具有 GELU 非线性的两层 MLP。 在每个多头注意力模块之前使用层规范,在每个模块之后使用带有残差连接的 MLP。
D. Multi-resolution Overlapped Attention Block
为了利用局部transformer中全局信息的优势,我们在每个阶段之间应用了一个名为多分辨率重叠注意力(MOA)的全局注意力模块。MOA机制的架构与标准的多头注意力相同,除了 一些修改。与标准 MHA 类似,它首先将特征图划分为固定大小的补丁。 然而,与标准 MHA 不同,用于生成key和value embeddings的patch稍大且重叠,而用于query embedding的patch不重叠,如图 3 所示。
*图3:对于特征图大小 9 × 9 和窗口大小 3 × 3,Query embedding的patch创建以蓝色显示,key/value以红色显示。 蓝色patches 与窗口大小相同,并且彼此不重叠。 相比之下,红色patches更大并且彼此略微重叠。 在创建ley-value patches时应用适当的填充。
如图2所示,MOA块输入的大小是W×H×hidden_dim,其中,
,
。从输入直接计算q,k,v计算量很大,例如,在 ImageNet 数据集的上下文中,第一阶段后 MOA 块的输入的特征图大小为 56 × 56 × 96。直接ptach大小的14的输入特征图导出query embedding将会导致维度为14×14×96=18816的输出特征维度。因此我们首先应用1×1卷积来减少因子R的hidden dimension,这将会减少计算成本。应用了卷积后的结果特征图的维度为
,这会使在每一个query patch上的特征大小是
,并将其投影到大小为
的一维向量。query的总数量是
。
相似的是,如图3所示key和value向量也被投影,但是patch大小稍微大于query 。在我们的模型中,我们设置key-value的patch大小为16.因此,key-value的数量将会通过公式计算得到。MHA被应用到query,key和value embedding中,然后是两层MLP,其中有非线性GELU。类似于Transformer block,在每个MOA模块后应用带有残差连接的LN层。最后在输出特征图上进行1×1卷积,然后将j结果特征与包含局部信息的前一个transformer块的输出进行广播相加。
E. Relative Position Index
在相似性计算过程中,我们在局部和全局注意力的头部中使用相对位置偏差:
query矩阵,key和value矩阵
,d是hidden dimension,
是queue中patch的总数,
是key中patch的总数。
F. Architecture Detail
遵循Swin和Twins中的工作,我们构建了三个版本的模型:用于ImageNet数据集的MOA-T、MOA-S和MOA-B,而只有两个版本的模型:用于CIFAR-10/100数据集的MOA-T和MOA-B,因为它非常小。表I显示了CIFAR和ImageNet数据集的体系结构配置。在基于CIFAR的模型中,MOA-T和MOA-B都包含相同数量的transformer层:12个,但具有不同数量的隐藏维度。在基于ImageNet的模型中,MOA-T和MOA-S的总层数分别为12层和24层,但隐藏维度保持不变,而MOA-S和MOA-B的transformer层数相同:24层,相比之下,隐藏维度分别为96和124。
Experiments
A. CIFAR-10/100 Results
B. ImageNet Results
Ablation Study
在这一部分中,我们进行了消融实验,以了解在我们的模型中,每个组件的维度,如窗口大小,关键值块之间的重叠面积,以及全局注意的减少因子reduction factor。我们使用 Tiny 模型进行所有消融实验,所有实验均在 CIFAR-100 或 ImageNet 数据集上进行。 训练配置与实验部分中报告的相同。
A.Window-size
local-Transformer 的序列长度是计算成本所依赖的重要因素之一。 随着序列长度的增加,自注意力机制中的计算成本也会增加。 在local transformer中,序列长度取决于window_size。 基于序列长度的准确性和计算成本之间总是存在权衡。 我们在我们的模型中对不同的窗口大小进行了实验,发现 4×4 和 14×14 的窗口大小分别在 CIFAR-100 和 ImageNet 数据集上效果很好,如表 IV 所示。 此外,我们删除了窗口大小大于特征图大小的阶段,以显着减少参数数量。
B. Overlapped Portion
为了启动邻域信息传输,我们建议使用稍大且重叠的keys。 为了研究重叠区域部分的影响,我们对key中重叠部分的不同百分比进行了实验,如表 V 所示。从结果中可以看出,随着百分比的降低,性能在准确度方面有所提高, 这意味着只需要在邻域窗口之间进行少量信息交换即可提高性能。 此外,更少的重叠部分会减少序列长度,从而减少参数和 GFLOP 的数量。
C. Reduction
在 MOA 全局注意力之前,减少隐藏维度以减少参数数量和计算成本。 表 VI 显示了我们模型在不同 R 值下的性能。从结果可以看出,与较小的 R 值相比,R = 32 以相对较少的参数数量和计算成本实现了最佳结果。
D. Effect of Overlapped Key-Value
为了验证重叠和较大key-value patch的效果,我们在没有重叠补丁的情况下训练模型并比较结果。 此外,我们还进行了一个实验,在每个阶段之间不应用全局注意力,以验证全局信息交换的重要性。从表VII的结果可以看出,包括全局注意力和重叠的ley-value patch实现了最佳性能
Conclusion
本文研究了在局部Transformer中聚合全局信息在每个阶段和邻域像素信息传输后的效果。 我们还提出了一个多分辨率重叠注意力(MOA)模块,可以在local transformer的每个阶段之后插入,以促进与附近窗口的信息通信。 我们的结果表明,两种类型的特征:全局和局部,对于图像分类都是至关重要的。 因此,利用这两个特征可以显着提高标准分类数据集的性能,例如 CIFAR10/100 和具有相对较少参数的 ImageNet。