论文阅读|MoA-Transformer

Aggregating Global Features into Local VisionTransformer

代码 

目录

Abstract

Introduction

contributions

Related Work

Convolutional Neural Networks

Self Attention in CNN

Vision Transformers

Method

A.Patch embedding layer

B. Patch merging layer

C. Local Transformer Block

D. Multi-resolution Overlapped Attention Block

E. Relative Position Index

F. Architecture Detail

Experiments

A. CIFAR-10/100 Results

B. ImageNet Results

Ablation Study

A.Window-size

B. Overlapped Portion

C. Reduction

D. Effect of Overlapped Key-Value

Conclusion

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,其中W=\frac{W}{2},\frac{W}{4},\frac{W}{8}H=\frac{H}{2},\frac{H}{4},\frac{H}{8},hid-dim=96,192,384。从输入直接计算q,k,v计算量很大,例如,在 ImageNet 数据集的上下文中,第一阶段后 MOA 块的输入的特征图大小为 56 × 56 × 96。直接ptach大小的14的输入特征图导出query embedding将会导致维度为14×14×96=18816的输出特征维度。因此我们首先应用1×1卷积来减少因子R的hidden dimension,这将会减少计算成本。应用了卷积后的结果特征图的维度为H\times W\times \frac{hiddendim}{R},这会使在每一个query patch上的特征大小是14\times14\times \frac{hiddendim}{R},并将其投影到大小为1\times1\times{hiddendim}的一维向量。query的总数量是\frac{H}{14}\times \frac{W}{14}

相似的是,如图3所示key和value向量也被投影,但是patch大小稍微大于query 。在我们的模型中,我们设置key-value的patch大小为16.因此,key-value的数量将会通过公式(\frac{H-16+(2\times padding)}{stride}+1,\frac{W-16+(2\times padding)}{stride}+1)计算得到。MHA被应用到query,key和value embedding中,然后是两层MLP,其中有非线性GELU。类似于Transformer block,在每个MOA模块后应用带有残差连接的LN层。最后在输出特征图上进行1×1卷积,然后将j结果特征与包含局部信息的前一个transformer块的输出进行广播相加。

E. Relative Position Index

在相似性计算过程中,我们在局部和全局注意力的头部中使用相对位置偏差B\in \mathbb{R}^{M^{2}\times N^{2}}

 query矩阵Q\in \mathbb{R}^{M^{2}\times d},key和value矩阵K,V\in\mathbb{R}^{N^{2}\times d},d是hidden dimension,M^{2}是queue中patch的总数,N^{2}是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。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值