点击下方卡片,关注「集智书童」公众号

点击加入👉「集智书童」交流群

Vision Transformer(ViT)在各种视觉任务中取得了令人印象深刻的成功。然而,它的计算成本很高,随着Token序列长度的增加呈二次增长,这在处理大型特征图时大大限制了其性能。为了减轻计算成本,先前的研究依赖于要么限制在局部小区域内的细粒度Self-Attention,要么采用全局Self-Attention,但要缩短序列长度,从而导致粗粒度的问题。

在本文中提出了一种新颖的模型,称为 Self-Guided Transformer(SG-Former),以实现具有自适应细粒度的有效全局Self-Attention。本文方法的核心思想是利用一个显著性图,通过混合尺度的Self-Attention估计并在训练过程中自我演化,以根据每个区域的重要性重新分配Token。直观地说,为显著区域分配更多的Token,以实现细粒度的注意力,同时将更少的Token分配给次要区域,以换取效率和全局感知字段。

所提出的SG-Former在性能上优于最先进的模型:基础模型在ImageNet-1K上取得了84.7%的Top-1准确率,在CoCo上取得了51.2的mAP ,在ADE20K上取得了52.7的mIoU,超过了Swin Transformer的+1.3%/+2.7 mAP/+3 mIoU,而计算成本更低,参数更少。

代码:https://github.com/OliverRensu/SG-Former

1、简介

自然语言处理(NLP)领域的Transformer 最近在视觉学习中展示了最先进的性能。Vision Transformer(ViT) 的开创性工作引入了Self-Attention模块,明确地建模了图像Patch之间的远程依赖关系,克服了卷积中局部感受野的固有限制,从而增强了各种任务的性能。

尽管取得了巨大的成功,但Self-Attention的计算成本随着序列长度的增加而呈二次增长,这在很大程度上限制了它对大规模输入的适用性。为了减少计算成本,ViT采用了大步幅的Patch嵌入以缩短序列长度。然而,这种操作不可避免地导致Self-Attention仅适用于具有粗粒度的小尺寸特征图。

为了在高分辨率特征上计算Self-Attention,一些方法提出了将Self-Attention区域限制在局部窗口而不是整个特征图(即细粒度的局部Self-Attention)。例如,Swin Transformer设计了窗口注意力,而CSWin设计了交叉形状注意力。因此,这些方法牺牲了在每个Self-Attention层中建模全局信息的能力。另一流方法旨在在整个键-值特征映射中聚合Token,以减少全局序列长度(即粗粒度的全局注意力)。例如,金字塔视觉Transformer(PVT)使用大步幅的大核心来均匀聚合整个特征映射上的Token,从而导致整个特征映射上的均匀粗糙信息。

在本文中引入了一种新颖的Transformer模型,称为Self-Guided Transformer(SG-Former),通过一种不断演化的Self-Attention设计,实现了具有自适应细粒度的全局关注。SG-Former的核心思想在于,我们保留了整个特征图上的远程依赖性,同时根据图像区域的重要性重新分配Token。

直观地说,倾向于为显著区域分配更多的Token,以便每个Token可以与显著区域以细粒度进行交互,同时为了效率将更少的Token分配给次要区域。SG-Former以高效的全局感知场计算Self-Attention,同时自适应地关注显著区域中的细粒度信息。

如图2所示,SG-Former根据从自身获得的注意力图重新分配Token,例如在狗这样的显著区域分配更多的Token,而在墙这样的次要区域分配更少的Token。另一方面,PVT采用了预定义的策略均匀聚合Token。

具体来说,保留了 Query Token,但重新分配了Key和Value Token以实现高效的全局Self-Attention。图像区域的重要性,以得分图的形式,通过混合尺度的Self-Attention本身估计,并进一步用于引导Token的重新分配。

换句话说,给定输入图像,Token的重新分配是通过Self-Guided完成的,这意味着每个图像都经历了一个仅适用于自身的独特的Token重新分配。因此,重新分配的Token受到人类先验的影响较小。此外,这种Self-Guided会随着训练过程中逐渐精确的注意力图预测而不断演化。注意力图极大地影响了重新分配的有效性,因此提出了一种混合尺度的Self-Attention,该Self-Attention在同一层中具有与Swin相同成本的各种粒度信息。混合尺度Self-Attention通过分组Head和为不同的注意力粒度多样化每个组来实现各种粒度信息。混合尺度Self-Attention还向整个Transformer提供混合尺度信息。

因此,本文的贡献总结如下。

  • 引入了一种新颖的Transformer模型,SG-Former,通过统一的混合尺度信息提取,包括细粒度的局部和全局粗粒度信息在一个Self-Attention层内。具有统一的局部全局混合尺度信息,预测注意力图以识别区域重要性。

  • 有了注意力图,可以模拟Self-Guided Attention,自动定位显著区域,并使显著区域细粒度提取信息,而使次要区域粗粒度提取信息以减少计算成本。

  • 在各种下游任务上评估了提出的Transformer Backbone ,包括分类、目标检测和分割。实验结果表明,在类似的模型尺寸下,SG-Former始终优于先前的Vision Transformer模型。

2、本文方法

2.1、Overview

SG-Former的总体流程如图3所示。SG-Former与以前的CNN和Transformer模型共享相同的Patch嵌入层和四阶金字塔架构。

首先,图像通过输入级别的Patch嵌入层进行4倍降采样。两个阶段之间存在一个2倍速率的降采样层。因此,第个阶段的特征图的大小为。除了最后一个阶段,每个阶段都有个Transformer Block,由两种类型的块重复组成:

  1. 混合尺度 Transformer Block
  2. Self-Guided  Transformer Block。

混合尺度Self-Attention提取混合尺度对象和多粒度信息,引导区域重要性。Self-Guided Self-Attention模型全局信息,同时根据混合尺度 Transformer Block的重要性信息保持显著区域的细粒度;

2.2、Self-Guided Attention

尽管Self-Attention模型能够建模广泛的范围信息,但其高计算成本和内存消耗与序列长度的平方成正比,限制了其在各种计算机视觉任务中(如分割和检测)中对大尺寸特征图的适用性。最近的研究建议通过将一些 Token 合并成一个来减小序列长度。然而,这种聚合对待每个 Token 都是平等的,忽视了不同 Token 之间的固有重要性差异。这种聚合面临两个问题:

  1. 在显著区域,信息可能会丢失或与不相关的信息混合在一起
  2. 在次要区域或背景区域,大量 Token 对于简单的语义而言是多余的,但需要大量计算

受到这一观察的启发,我们提出了Self-Guided 注意力,它使用重要性作为引导来聚合 Token 。换句话说,在显著区域,保留更多的 Token 以获取细粒度的信息,而在次要区域,保留较少的 Token 以保持Self-Attention的全局视图并同时减少计算成本。

如图4所示,"self-guided"表示Transformer自己在训练期间确定了计算成本降低策略,而不是由人为引入的先验知识,如Swin中的窗口注意力,CSWin中的交叉形状注意力,PVT中的静态空间缩减。

输入特征图首先投影为 Query (Q),Key(K)和Value(V)。接下来,H个独立的Self-Attention Head并行计算Self-Attention。为了降低计算成本,同时保持Self-Attention之后特征图的大小不变,固定Q的长度,但使用重要性引导聚合模块(IAM)来聚合K和V的 Token 。

IAM的目标是在显著区域将更少的 Token 聚合为一个(即保留更多的 Token ),在背景区域将更多的 Token 聚合为一个(即保留更少的 Token )。在公式(1)中,注意力图包含具有多粒度的区域重要性信息。

按升序对注意力图的Value进行排序,并将S均匀分成n个子区域。因此,分别是最重要的和次要的区域。同时,根据中的所有 Token 分组为。在公式(1)中,表示在不同重要性区域的聚合率,以便每个子区域都有一个聚合率,而子区域越重要,聚合率就越小。不同阶段的的具体值列在表1中。因此,IAM通过连接每个组的不同聚合率重新分配了每个组的分组输入特征的 Token 。

其中是聚合函数,我们通过具有输入维度r和输出维度1的全连接层来实现它。中的 Token 数量等于中的 Token 数量除以

2.3、Hybrid-scale Attention

混合尺度注意力有2个目的:

  1. 提取混合尺度的全局和细粒度信息,而不比Swin Transformer中的窗口注意力多的计算成本

  2. 为Self-Guided 注意力提供重要性

如图5所示,输入特征X被投影到 Query (Q)、Key(K)和Value(V)。然后,Multi-Head Self-Attention采用H个独立Head。通常,这些H个独立Head在相同的局部区域内执行操作,因此缺乏Head的多样性。

相比之下,本文将H个Head均匀分成h个组,并将混合尺度和多感受野的注意力注入到这些h个组中,每个组中有个头。在属于第组的第个Head中,使用尺度(其中),将{K,V}中的每个 Token 合并为一个 Token 。接下来,将{Q,K,V}分成窗口。{K,V}的窗口大小设置为M,并在所有组中保持不变。为了使{Q}和{K,V}的窗口大小与{K,V}中的 Token 合并对齐,{Q}的窗口大小选择为,是{K,V}的窗口大小的倍:

其中表示将中的每个 Token 合并为一个 Token ,这是通过步长的卷积实现的。特殊情况是当等于1时,不进行 Token 合并,{Q,K,V}具有相同大小的窗口。

其中表示具有窗口大小的窗口划分。是注意力图。有一个特殊情况:等于,不需要窗口分割,{K,V}中的所有 Token 都由{Q}关注,从而实现全局信息提取。

Token 的重要性被视为所有 Token 和当前 Token 的乘积之和:

其中S是通过对所有求和得到的最终注意力图,用于混合尺度引导,提供全局和细粒度信息。

2.4、 Transformer Block

通过两种自注意机制,相应地设计了两种类型的 Transformer Block。这两种 Transformer Block只在注意层上有所不同,而其他所有方面都保持相同:

如图3所示,前3个阶段使用我们提出的混合尺度或Self-Guided  Transformer Block进行定制,而对于最后一个阶段,使用了一个标准的 Transformer Block,这是根据以前的Transformer 进行的。请注意,前3个阶段(即N1、N2和N3)的 Transformer Block数量是偶数,而最后一个阶段(即N4)可以是偶数或奇数。

2.5、Transformer Architecture Variants构

本文建了3个不同大小的模型,分别是小型(SG-Former-S)、中型(SG-Former-M)和基础型(SG-Former-B),以便与其他Transformer进行公平比较。它们的区别包括通道数、Head数以及每个阶段的块数,详见表1。

小型和中型模型在每个阶段都有两种尺度,而基础模型在第一个阶段有4种尺度,在第2个阶段有3种尺度。还采用了卷积式Patch嵌入、局部增强的细节特定前馈层,为简化起见,这些细节没有在公式中显示。

3、实验

3.1、ImageNet

为了与之前的方法进行公平比较,作者采用了相同的训练设置。具体来说,所有模型都在ImageNet-1K上进行了300个epoch的训练,输入分辨率为224×224,批量大小为1024。采用了AdamW优化器,权重衰减为0.05,余弦学习率衰减与20个epoch的线性Warm-up,峰值学习率设置为1e-3。对于数据增强和正则化,采用了与CSWin 相同的方法,包括RandAugment、指数移动平均、数据混合、标签平滑、随机深度和随机擦除。在推理过程中,将图像调整大小并中心裁剪为224×224。

在表2中,将SG-Former与最先进的CNN和Transformer架构进行了比较。在相似的参数和计算成本下,SG-Former始终优于竞争对手。具体来说,SG-Former在小型、中型和基础模型下分别实现了83.2%、84.1%和84.7%的Top-1准确率。将SG-Former的 Backbone 网络与CNN Backbone 网络进行比较,SG-Former Backbone 网络是第一个优于先前的最先进的基于CNN的 Backbone 网络EfficientNet的Transformer Backbone 网络,后者具有更大的输入分辨率。尽管EfficientNet来自神经网络架构搜索,但手动设计的SG-Former-S/M/B仍然取得了+0.3/+0.5/+0.6的Top-1准确率改进。

与 Baseline Transformer DieT相比,小型模型甚至在参数数量(86.6M→ 24.2M)和计算成本(17.6G→ 4.8G)仅为 Baseline 模型的四分之一的情况下,仍然实现了+1.4的性能提升。SG-Former-S/M/B相对于最先进的Transformer CSWin,参数相似的情况下实现了+0.5/+0.5/+0.4的性能提升。

吞吐量和性能

如右图所示,在单个RTX2080Ti上评估了不同模型的吞吐量。在相似性能下,SG-Former是最快的,或在相似推理速度下具有最佳性能。

具有更高输入分辨率的分类

将模型微调为384× 384的输入分辨率。使用在ImageNet-1K上224×224输入分辨率的预训练模型,对其进行了30个epoch的微调。采用AdamW作为优化器,权重衰减为1e-8。学习率设置为5e-6,随机DropPath设置为0.4。

如表3所示,在相似的参数下,SG-Former在性能上明显优于其竞争对手。具体来说,基础模型优于Swin-B 1.6。SG-Former-S/M/B相对于先前的最先进的CSWin分别实现了+0.4、+0.3、+0.4的性能提升。

3.2、目标检测和实例分割

将SG-Former Backbone 网络应用于目标检测和实例分割,使用ImageNet预训练作为初始化,并使用Mask R-CNN 作为检测管道。所有模型在COCO2017数据集上进行训练和评估,使用了118,000张图像进行训练和5,000张图像进行验证。遵循相同的设置,使用1×训练计划进行12个epoch的训练,以及3×训练计划进行36个epoch的训练。

对于1×训练计划,采用单尺度训练,输入图像的较短边调整到800,同时保持较长边不超过1333。对于3×训练计划,使用多尺度训练,将较短边随机调整到[480, 800]的范围内。将SG-Former Backbone网络与CNN Backbone 网络(如ResNet、ResNeXt和Transformer Backbone网络(如Swin、PVT、Focal、CSWin、Twin)进行比较。

在表4中,使用MaskRCNN报告结果,并将边界框mAP和Mask mAP作为目标检测和实例分割的评估指标。与CNN Backbone 网络相比,本文的方法在1×训练计划下相对于ResNeXt获得了+6.4的性能提升,在3×训练计划下获得了+6.9的性能提升。

与Transformer Backbone 网络相比,SG-Former也表现出卓越性能。SG-Former在性能上优于Swin Transformer和CSWin Transformer。这种优越性来自于SG-Former在保留更多细粒度信息和全局感受野方面的能力。

3.3. ADE20K上的语义分割

进一步在ADE20K数据集上评估SG-Former Backbone 网络的语义分割性能。ADE20K是一个广泛使用的包含150个语义类别的语义分割数据集,包含20,000张图像用于训练和2,000张图像用于验证。遵循相同的设置,将Semantic FPN和UperNet作为框架,并使用mmsegmentation进行实现。

对于SemanticFPN,使用权重衰减为0.0001的AdamW优化器,学习率也为0.0001,进行80K次迭代训练。以mIoU作为评估指标。对于UperNet,使用权重衰减为0.01的AdamW优化器,进行160K次迭代训练,批量大小为16。学习率为6 × 10e-5,开始时进行1500次迭代的热身,然后进行线性学习率衰减。

数据增强包括随机翻转、随机缩放和随机光度失真。训练中的输入尺寸为512 × 512。对于SemanticFPN,使用权重衰减为0.0001的AdamW优化器,学习率也为0.0001,进行80K次迭代训练。以mIoU作为评估指标,并报告Semantic FPN的单尺度测试结果,以及UperNet的单尺度和多尺度(MS)测试结果。

结果在表5中报告,SG-Former在相似参数下优于所有竞争对手。具体来说,使用Semantic FPN时,SG-Former实现了50.6的mIoU,优于Swin Transformer,性能提升了4.6个mIoU,而模型尺寸减小了10%。当使用UperNet框架时,SG-Former实现了52.7的mIoU,优于Swin Transformer,性能提升了3个mIoU。

3.4、消融实验

单尺度和混合尺度Self-Attention

混合尺度 Transformer Block有2个功能:

  1. 使用混合粒度信息捕获和识别不同尺寸的目标

  2. 为Self-Guided 注意力提供混合尺度的重要性,以聚合背景 Token 并在显著区域保留更多的细粒度信息

在表6中进行了关于使用混合粒度信息捕获和识别不同尺寸的目标功能的消融研究。单尺度(局部)表示没有 Token 聚合,只有窗口注意力,并且只有一个尺度,而单尺度(全局)表示聚合率足够大,,Self-Attention是全局性的,也只有一个尺度。混合尺度Self-Attention性能优于局部和全局注意力,分别优于1.0和0.6。

重要性引导

为了评估注意力图的影响,在每个模块中,保持第一个混合尺度 Transformer Block不变,但更改第二个Self-Guided  Transformer Block中重要性分数图的来源。手动定义了注意力图,使其在整个注意力图上的所有位置都相等,作为比较基准。混合尺度Self-Attention层提供了具有混合尺度信息的注意力图,但只使用全局尺度或局部尺度的重要性。

如表7所示,混合尺度的重要性优于手动定义的 Baseline ,后者将所有区域的重要性视为平等,性能提升了+0.9。包含局部细粒度区域重要性信息的局部尺度重要性比包含全局粗粒度区域重要性信息的全局尺度重要性表现更好,而混合尺度注意力图在所有竞争对手中表现出更好的性能。

4、参考

[1].SG-Former: Self-guided Transformer with Evolving Token Reallocation.

5、推荐阅读

ReVT | ViT重参化+超强数据增强实现完美的域泛化


YOLO-MDE多任务框架 | 目标检测+深度估计都可以实现SOTA


Q-YOLO | 带你学习一个YOLOv5、YOLOv7量化不掉点的PTQ方法


扫码加入👉「集智书童」交流群

(备注:方向+学校/公司+昵称


想要了解更多:

前沿AI视觉感知全栈知识👉「分类、检测、分割、关键点、车道线检测、3D视觉(分割、检测)、多模态、目标跟踪、NerF

行业技术方案👉AI安防、AI医疗、AI自动驾驶
AI模型部署落地实战👉CUDA、TensorRT、NCNN、OpenVINO、MNN、ONNXRuntime以及地平线框架」

欢迎扫描上方二维码,加入集智书童-知识星球,日常分享论文、学习笔记、问题解决方案、部署方案以及全栈式答疑,期待交流!


免责声明
凡本公众号注明“来源:XXX(非集智书童)”的作品,均转载自其它媒体,版权归原作者所有,如有侵权请联系我们删除,谢谢。

点击下方“阅读原文”,
了解更多AI学习路上的「武功秘籍」