论文阅读|BOAT

BOAT: Bilateral Local Attention Vision Transformer

代码

目录

Abstract

Introduction

Method

Patch embedding

Hierarchical pyramid structure

3.1 Bilateral Local Attention Block

3.2 Feature-Space Local Attention

Balanced hierarchical clustering

Balanced binary clustering

Local attention within cluster

Experiments

Image Classification

Semantic Segmentation

Object Detection

Conclusion 

Abstract

vision transformer在许多计算机视觉任务中都取得了优异的表现。早期的Vision transformer,如ViT和DeiT,采用全局自我关注,当patch数量很大时,这种方法的计算成本很高。为了提高效率,最近的Vision transformer采用了局部自我注意机制,其中self-attention是在局部窗口内计算的。尽管基于窗口的局部自我注意显著提高了效率,但它不能捕捉图像平面上距离较远但相似的patch之间的关系。(因为一个 token 很可能与空间上邻近的 token 相关联。因此,局限于局部窗口的自注意力很可能不会显著降低性能,但是可以显著降低计算量)。为了克服图像空间局部注意的局限性,本文进一步利用特征空间中的局部性。我们利用patch的特性将其分组成多个group,在每个group内进行自我关注计算。这种基于特征空间局部关注有效地捕获了跨不同本地窗口的patch之间的连接,但仍然是相关的。

我们提出了一种双边局部注意vison transformer( Bilateral lOcal Attention vision Transformer BOAT),它集成了特征空间的局部注意图像空间的局部注意。我们进一步将BOAT与Swin和CSWin模型集成,在几个基准数据集上的广泛实验表明,我们的BOAT-CSWin模型清楚且始终优于现有的最先进的CNN模型和vision transformer。

Introduction

继Transformer在自然语言处理任务方面取得巨大成功后,研究人员最近提出了Vision Transformer,在许多计算机视觉任务,包括图像识别、检测和分割中取得了出色的表现。作为Vision Transformer的早期版本,ViT和DeiT将图像统一划分为16 × 16个patches(tokens),并将一堆标准Transformer层应用于使用这些patch形成的token序列。

原始的自注意力机制是全局的,即 ViT 和 DeiT 中的一个patch的感受野覆盖了图像的所有patch,这对于模拟patch之间的远程交互至关重要。 另一方面,self-attention 的全局性对效率提出了很大的挑战。 具体来说,self-attention 的计算复杂度是补丁数量的二次方。 由于当输入图像的大小固定时,补丁的数量与补丁大小成反比,计算成本迫使 ViT 和 DeiT 采用中等大小的补丁,这可能不如小的patch生成更高分辨率特征图有效,尤其适用于分割等密集预测任务。

为了保持更高分辨率的特征图,同时实现高效率,一些方法利用图像空间局部注意。它们将一幅图像分成多个局部窗口,每个窗口都包含一些patch。自我注意操作只对同一本地窗口内的patch执行。这是一种合理的设计,因为一个patch很可能与同一本地窗口中的其他patch关联,但与其他窗口中的patch的相关性不高。因此,减少来自不同窗口的patch之间的关注可能不会显著降低性能。同时,基于窗口的自我注意算法在整个图像上的计算成本远低于原始的自我注意算法。Swin Transformer和Twins就是这样的例子。Swin Transformer在本地窗口中执行自我注意。为了方便来自不同窗口的patch之间的通信,Swin Transformer有两个互补的窗口划分方案,一个方案中的一个窗口与第二个方案中的多个窗口重叠。Twins在局部窗口内执行自我注意,并通过使用规则子抽样模式对从整个图像稀疏采样的特征向量执行(全局)自我注意,在不同窗口之间建立连接。

在这项工作中,我们重新思考local attention,从更广阔的视角探索局部性。具体来说,我们除了图像空间对应物外,还研究了特征空间局部注意力。特征空间局部注意力不是在图像空间中计算局部自注意力,而是利用特征空间中的局部性。 它基于这样一个事实,即在特征空间中彼此接近的patch特征向量在计算的自注意力结果中往往对彼此有更大的影响。这是因为一个特征向量对另一个特征向量的自注意力结果的实际贡献是由这两个特征向量之间的相似性控制的。特征空间局部注意仅利用特征空间最近的特征向量计算自我注意的结果,而将较远的特征向量的贡献值设为零。这本质上定义了一个分段相似函数,它将相距很远的特征向量之间的相似性限制为零。与前面提到的图像空间局部注意相比,特征空间局部注意在vision transformer中很少被利用。如图1所示,特征空间local attention计算的是图像平面上可能相距不太近的相关patch之间的注意力。因此,这是对图像空间局部关注的一种自然补偿,它可能会错过驻留在不同本地窗口中的patch之间的有意义的连接。

在本文中,我们提出了一种新颖的vision transformer结构:双边局部注意vision transformer (BOAT),以利用特征空间和图像空间局部注意之间的互补性。在我们的网络结构中,双边局部注意块是必不可少的组成部分,它由特征空间局部注意模块和图像空间局部注意模块组成。图像空间局部注意模块将一幅图像划分为多个局部窗口,分别为Swin和CSWin,在每个局部窗口内计算自我注意。而特征空间局部注意则将所有patch分成多个簇,在每个簇内进行自我注意计算。利用K-means聚类可以直接实现特征空间的局部注意。然而,K-means聚类不能确保生成的聚类大小均匀,这使得高效的并行实现变得具有挑战性。 此外,大小不均的集群也可能对自我注意的整体有效性产生负面影响。 为了克服这个障碍,我们提出了一种层次平衡的聚类方法,它将patch分组为大小相等的集群。

我们在多个计算机视觉任务上进行实验,包括图像分类、语义分割和目标检测。在几个公共基准上的系统实验表明,所提出的BOAT清晰且持续地改善了现有的图像空间局部注意vision transformer,包括Swin和CSWin在这些任务上。

Method

如图2所示,本文提出的BOAT体系结构由一个patch embedding模块和L个Bilateral Local Attention blocks组成。同时,我们采用了分层金字塔结构。下面我们只简要介绍一下patch embedding模块和分层金字塔结构,关于我们提出的双边局部注意块(Bilateral Local Attention block)的细节请参见3.1和3.2节。

Patch embedding

输入图像大小为H×W,我们遵从Swin和CSwin,利用卷积token embedding(7×7卷积层,stride= 4)得到H/4×W/4的patch tokens,每个token的维度为C。

Hierarchical pyramid structure

与Swin和CSWin Transformer类似,我们也构建了一个层次金字塔结构。整个结构由四个阶段组成,在相邻的两个阶段之间使用一个卷积层(3 × 3, stride=2)来合并patch。它减少了令牌的数量,并使通道的数量增加了一倍。因此,在第i阶段,feature map包含个\frac{H}{2^{i+1}}\times \frac{W}{2^{i+1}}个tokens和2^{i-1}\times C通道。

3.1 Bilateral Local Attention Block

如图3所示,一个双边局部注意(BLA)块由一个图像空间局部注意(image-space local-attention, ISLA)模块、一个特征空间(基于内容)局部注意(feature-space local-attention, FSLA)模块、一个MLP模块和几层归一化(LN)模块组成。

 用\tau _{in}=\left \{ t_{i} \right \}_{i=1}^{N}表示输入的一系列tokens,t_{i}\in \mathbb{R}^{C},C代表通道数,N代表token数目。输入token经过一个归一化层,然后是一个图像空间局部注意(ISLA)模块,该模块有一个shortcut连接: 

Image-space局部注意只在同一个本地窗口内的token之间计算自我注意。我们采用现有的基于窗口的本地关注模块,例如Swin Transformer和CSWin Transformer 中的模块作为ISLA模块,因为它们具有出色的性能。直观地说,同一个本地窗口中的patch很可能是彼此密切相关的。然而,图像空间中的一些遥远的patch也可能揭示重要的联系,比如类似的内容,这可能有助于视觉理解。简单地丢弃图像空间中距离遥远的patch之间的这种连接可能会降低图像识别性能。为了恢复image-space局部注意力丢失的有用信息,我们开发了一个feature-space局部注意力(FSLA)模块。 ISLA 模块的输出\tau _{ISLA},被送入另一个归一化层,然后是feature-space(基于内容的)局部注意力(FSLA)模块,该模块也有一个shortcut连接:

FSLA模块计算feature-space中接近的token之间的自我注意,与ISLA模块互补。同时,由于只考虑feature-space中的局部注意,FSLA比原来的(全局)自我注意更有效。我们将在第3.2节中介绍FSLA的细节。和CSWin类似,我们还向模型位置的每个特征空间局部注意层添加了局部增强的位置编码

最后,FSLA模块的输出\tau _{ISLA}由另一个归一化层和一个MLP模块处理,生成一个双边局部注意块:

遵循现有的Vision Transformer,MLP模块由两个全连接层组成。第一个函数将特征维数从C增加到rC,第二个函数将特征维数从rC减少到C。我们默认设置r = 4。 

3.2 Feature-Space Local Attention

与image-space局部注意力根据其在图像平面中的空间位置对tokens进行分组不同,feature-space局部注意力寻求根据token的内容(即特征)对令牌进行分组。 我们可以简单地对token特征执行 K-means 聚类来实现这一目标。 然而,K-means 聚类不能确保生成的聚类大小相同,这使得在 GPU平台上难以有效地并行实现,并且还可能对self-attention 的整体有效性产生负面影响,这将在我们的消融研究中得到证明。

Balanced hierarchical clustering

为了克服K-means聚类的不平衡问题,我们提出了一种均衡的分层聚类,它执行K级聚类。在每个级别上,它执行一个平衡的二进制集群,将一组token平均地分成两个集群。 用\tau _{in}=\left \{ t_{i} \right \}_{i=1}^{N}表示输入的一系列tokens,在第一层,它将T中的N个tokens分为两个子集,每个自己中有N/2个tokens。在第k层,它将上一级的两个相同子集中的N/2^{k-1}tokens分为两个更小的大小为N/2^{k}的子集。最后,我们从最后一层获得2^{k}个均匀大小的子集\left \{ \tau _{i} \right \}_{i=1}^{2^{k}},每个子集的大小\left | \tau _{i} \right |等于N/2^{k},因此我们要求N能被2^{k}整除,这在现有的vision transformer很容易满足。我们在图4中可视化了均衡层次集群的过程。均衡层次聚类的核心操作是我们设计的均衡二进制聚类,我们将在下文中详细阐述。

Balanced binary clustering

给定一组2m个tokens\left \{ t_{i} \right \}_{i=1}^{2^{m}},平衡二值聚类将其分为两组,每组的大小为m。与K-means聚类类似,我们的平衡二值聚类依赖于簇心。为了确定每个样本的聚类分配,K-means聚类只考虑样本与所有质心之间的距离。相比之下,我们的平衡二元聚类进一步要求两个结果聚类具有相同的大小。 让我们将两个簇质心表示为 c1 和 c2。 对于每个令牌 ti,我们计算距离比 ri,作为确定其集群分配的指标:

S(x,y)表示x与y的余弦相似度。2m个tokens\left \{ t_{i} \right \}_{i=1}^{2^{m}}根据他们的距离比\left \{ r_{i} \right \}_{i=1}^{2^{m}}递减的顺序排序。我们将排序列表的前一半中的标记分配给第一个集群C1,将排序列表的后一半中的标记分配给第二个集群C2,其中C1和C2的大小都是m。来自每个集群的token的平均值用于更新集群的质心。与K-means相似,我们的平衡二值聚类以迭代的方式更新每个样本的簇心和簇成员。算法1给出了所提出的均衡二值聚类的详细步骤。

在上述平衡二值集群中,产生的两个集群没有共享token,即C1∩C2 =∅。非重叠设置的一个主要缺点是,排序列表中间部分的标记在一个集群中有一些特性空间邻居,而其他邻居在另一个集群中。无论这个token最终被分配到哪个集群,该token与其部分特征空间邻居之间的连接都将被切断。例如,排序列表第m个位置的token在注意力计算期间无法与第m+1个位置的token通信,因为它们被分配到不同的集群。

重叠平衡二元聚类通过将排序列表中的前m+n个标记分配给第一个群集来克服这个缺点,即\hat{C_{1}}=\left \{ t_{j1} \right \}_{i=1}^{m+n},排序列表中的最后m+n个标记分配给第二个簇,即 \hat{C_{2}}=\left \{ t_{j1} \right \}_{i=m-n+1}^{2m}。因此,产生的两个集群会有共同的2n个tokens,\hat{C_{1}}\cap \hat{C_{2}}=\left \{ t_{j1} \right \}_{i=m-n+1}^{m+n}。默认情况下,我们仅在提出的平衡层次聚类的最后一层采用重叠二元聚类,而在其他层次使用非重叠版本。 我们在重叠二元聚类的所有实验中设置 n = 20。

Local attention within cluster

通过以上介绍的均衡层次聚类,token集合T被分为2^{k}个子集\left \{ \tau _{i} \right \}_{i=1}^{2^{k}}\left | \tau _{i} \right |=\frac{N}{2^{k}}。在每个子集中进行标准的self-attention(SA):

输出\hat{\tau }是所有参与子集的并集:

按照Transformer中的多头配置,我们还设计了多头特征空间局部注意力。 在我们的多头特征空间局部注意力中,我们实现了多个头,不仅用于计算方程式5中的自注意力作为标准的Transformer,也用于执行平衡的层次聚类。 也就是说,平衡的层次聚类是在每个头中独立执行的。 因此,对于一个特定的token,在不同的heads中,它可能会对不同的token进行基于特征的本地关注。 这种配置比多个头共享同一个本地窗口的Swin更灵活。

Experiments

为了证明我们的BOAT作为通用视觉主干的有效性,我们进行了图像分类、语义分割和目标检测的实验。在百度开发的Paddle平台上进行开发。我们基于最近的两个本地关注的Vision transformer:  Swin和CSWin构建了BOAT。我们把建立在Swin之上的BOAT称为BOAT-Swin。在BOAT-Swin中,图像空间局部注意(ISLA)模块采用了Swin中的移位窗口注意。相比之下,BOAT-CSWin 中的 ISLA 模块在CSWin中使用了十字形窗口注意力。在附录中提供了BOAT-Swin和BOAT-CSWin的规格。 我们将在以下部分介绍主要的实验结果,更多消融研究见附录部分。

Image Classification

如表1所示,随着参数和FLOP数量的轻微增加,我们的 BOAT-Swin 模型在 tiny、small 和 base 设置下不断改进vanilla Swin模型。 具体来说,我们的模型将Swin-Tiny的top-1准确率从 81.3 提高到 82.3,将Swin-Small从83.0提高到83.6,将Swin-Base从83.5提高到83.8。 同时,我们的BOAT-CSWin模型在tiny、small和base设置下也对CSWin模型进行了类似程度的改进。 对Swin和CSWin 的这些改进证明了特征空间局部注意力的有效性。 请注意,我们的 BOAT-CSWin 模型优于现有的 CNN模型和视觉Transformer。 

Semantic Segmentation

如表2所示,随着参数和FLOPs数量的略微增加,我们的BOAT-Swin模型在微小、较小和基本设置下不断提高了Swin模型的语义分割性能。具体来说,Swin-Tiny实现了44.5%的mIoU,而我们的BOAT-SwinTiny实现了46.0%的mIoU。同时,我们的BOAT CSWin模型在tiny、small和base设置下也不断获得比CSWin模型更高的分割 mIoU。 与表 2 中的其他vision transformer相比,我们的 BOAT-CSWin模型在语义分割方面实现了最先进的性能。

Object Detection

我们还评估了提出的BOAT在目标检测方面的应用。使用Mask R-CNN框架在MS-COCO数据集上进行了实验。 我们加载在ImageNet-1K上预训练的 BOAT 模型,以对下游目标检测任务进行微调。 由于CSWin没有发布物体检测的代码,我们只为这个任务实现了BOAT-Swin。 我们采用与 Swin相同的3× 学习率计划。在表3中比较了我们的BOAT-Swin和原始Swin的性能。评估是在 MSCOCO val2017拆分上进行的。由于Swin在使用Mask R-CNN框架时只报告了Swin-Tiny和 Swin-Small模型的性能,因此我们也只报告了我们的BOAT-Swin-Tiny和BOATSwin-Small的性能。 如表 3 所示,随着参数和FLOP数量的轻微增加,我们的BOAT-Swin在tiny和small设置下都优于 Swin。

Conclusion

在本文中,我们提出了一种名为 Bilateral local Attention Transformer (BOAT) 的新 Vision Transformer 架构,它在特征空间和图像空间中执行多头局部自注意力。 为了计算特征空间局部注意力,我们提出了一种分层平衡聚类方法,将patch分组到多个大小均匀的集群中,并在每个集群内计算自注意力。 我们已将BOAT应用于多个计算机视觉任务,包括图像分类、语义分割和对象检测。我们在几个基准数据集上的系统实验表明,BOAT 可以清晰且持续地提高现有图像空间局部注意力视觉 Transformer(包括 Swin 和 CSWin)在这些任务上的性能。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值