美文网首页
Focal Transformers

Focal Transformers

作者: Valar_Morghulis | 来源:发表于2021-12-07 17:53 被阅读0次

    Focal Self-attention for Local-Global Interactions in Vision Transformers

    J Yang, C Li, P Zhang, X Dai, B Xiao, L Yuan, J Gao

    [Microsoft Research at Redmond & Microsoft Cloud + AI]

    视觉Transformer中局部-全局交互的焦点自注意

    摘要:近年来,视觉Transformer及其变体在各种计算机视觉任务中显示出巨大的潜力。通过自注意捕捉短期和长期视觉依赖性的能力可以说是成功的主要来源。但是,由于二次计算开销,特别是对于高分辨率视觉任务(例如,目标检测),它也带来了挑战。在本文中,我们提出了聚焦自注意,这是一种结合了细粒度局部交互和粗粒度全局交互的新机制。使用这种新机制,每个token在细粒度上关注最近的周围token,但在粗粒度上关注较远的token,因此可以高效地捕获短期和长期的视觉依赖关系。通过聚焦自注意,我们提出了一种新的视觉Transformers模型,称为聚焦Transformers,它在一系列公共图像分类和目标检测基准上实现了优于最先进视觉Transformers的性能。特别是,在224x224分辨率的ImageNet分类中,我们的中等尺寸(51.1M)和更大尺寸(89.8M)的聚焦Transformer模型分别达到83.5和83.8 Top-1准确度。使用聚焦Transformer作为主干,我们在6种不同的目标检测方法(采用标准1x和3x计划进行训练)上,取得了相比当前最先进的SwinTransformer一致且实质性的改进。我们最大的聚焦Transformer在COCO mini val/test dev上产生58.7/58.9方块图和50.9/51.3掩模图,在ADE20K上产生5540万用于语义分割,在三个最具挑战性的计算机视觉任务上创建了新的SoTA。△ 较少的

    1导言

    如今,Transformer[60]已经成为自然语言处理(NLP)[22,6]中一种流行的模型架构。鉴于其在NLP方面的成功,越来越多的人致力于使其适应计算机视觉(CV)[48,51]。自视觉Transformers(ViT)[23]首次展示其前景以来,我们见证了用于图像分类[57,63,67,44,80,59]、对象检测[9,91,84,20]和语义分割[61,65]的全Transformers模型的蓬勃发展。除了这些静态图像任务外,它还被应用于各种时间理解任务,如动作识别[41,83,11]、对象跟踪[15,62]、场景流估计[39]。

    在Transformer中,自注意是其独特于广泛使用的卷积神经网络(CNN)的关键组成部分[38]。在每个Transformer层,它支持不同图像区域之间的全局内容相关交互,以建模短期和长期依赖关系。通过对完全自注意的可视化1,我们确实观察到它同时学习关注局部上下文(如CNN)和全局上下文(见图1左侧)。然而,当涉及高分辨率图像以进行密集预测(如目标检测或分割)时,由于与特征地图中的网格数量相关的二次计算成本,全局和细粒度的自注意变得非常重要。最近的工作交替利用粗粒度全局自注意[63,67]或细粒度局部自注意[44,80,59]来减少计算负担。然而,这两种方法都削弱了原始完全自注意的能力,即同时模拟短期和长期视觉依赖性的能力,如图1左侧所示。

    图1

    在本文中,我们提出了一种新的自注意机制来捕获Transformer层中的局部和全局交互,以获得高分辨率输入。考虑到附近区域之间的视觉依赖性通常比远处区域强,我们只在局部区域执行细粒度的自注意,而在全局执行粗粒度的注意。如图1的右侧所示,特征映射中的查询token以其自身的最细粒度关注其最近的上下文。然而,当它转到更远的区域时,它会关注汇总的标记以捕获粗粒度的视觉依赖关系。区域距离查询越远,粒度越粗,可以有效地覆盖整个高分辨率特征映射,同时在自注意计算中引入的token数量远远少于在完全自注意机制中引入的token数量。因此,它能够有效地捕获短期和长期的视觉依赖关系。我们称这种新机制为聚焦自注意,因为每个token都以聚焦的方式关注其他token。基于所提出的聚焦自注意,通过

    1)利用多尺度架构来维持高分辨率图像的合理计算成本[63、67、44、80];

    2)将特征图分割为多个窗口,窗口中token共享相同的上下文,开发了一系列聚焦Transformer模型,而不是对每个token进行焦点自注意[59,80,44]。

    我们通过对图像分类、目标检测和分割的综合实证研究,验证了所提出的聚焦自注意的有效性。结果表明,在各种设置下,具有相似模型尺寸和复杂度的聚焦Transformer始终优于SoTA视觉Transformer模型。值得注意的是,在ImageNet-1K上,参数为51.1M的小型焦变模型可以达到83.5%的top-1准确度,而参数为89.8M的基础模型可以达到83.8%的top-1准确度。当迁移到目标检测时,我们的聚焦Transformer在六种不同的目标检测方法上始终优于SoTA SwinTransformer[44]。我们最大的焦距Transformers模型在COCO test dev上分别实现了58.9 box mAP 和51.3mask mAP,用于对象检测和实例分割,在ADE20K上实现了5540 mIoU的语义分割。这些结果表明,焦点自注意在视觉Transformers的局部-全局交互建模中是非常有效的。

    2    方法

    2.1模型架构

    为了适应高分辨率的视觉任务,我们的模型架构与[63,80,44]具有类似的多尺度设计,这使我们能够在早期阶段获得高分辨率的特征图。如图2所示,首先将图像I∈ R^{H×W×3}划分为大小为4×4的patch ,得到\frac{H}{4} \times {\frac{W}{4} }个视觉tokens,这些tokens的维度为4×4×3

    。然后,我们使用一个由卷积层组成的patch 嵌入层,该卷积层的滤波器大小和跨距均等于4,将这些patch 投影到维数为d的隐藏特征中。给出这个空间特征图,然后我们将其传递给焦Transformer块的四个阶段。在每个阶段i∈\left\{  {1,2,3,4} \right\} ,聚焦Transformer块由N_{i} 个聚焦Transformer层构成

    。在每个阶段之后,我们使用另一个patch 嵌入层将特征图的空间大小减半,而特征维数增倍。对于图像分类任务,我们取最后阶段输出的平均值,并将其发送到分类层。对于目标检测,根据我们使用的特定检测方法,将最后3个或全部4个阶段的特征映射馈送到探测头。模型容量可通过改变输入特征维度d和每个阶段{N1,N2,N3,N4}的聚焦Transformer层的数量来定制。

    标准的自注意可以精细地捕捉短距离和长距离的相互作用,但如[80]所述,当它在高分辨率特征地图上进行注意时,会遭受较高的计算成本。以图2中的阶段1为例。对于大小为{\frac{H}{4}} ×{ \frac{W}{4} }×d的特征图,自注意的复杂度为O(({\frac{H}{4}} ×{ \frac{W}{4} })^2 d),考虑到目标检测的min(H,W)为800或更大,导致时间和内存开销爆炸。在下一篇文章中,我们将描述我们如何通过提出的聚焦自注意来解决这个问题。

    2.2 聚焦自注意

    在本文中,我们提出焦点自注意,使Transformer层可扩展到高分辨率输入。我们建议只在局部参加细粒度token,而在全局范围内参加汇总token,而不是参加细粒度token的所有token。因此,它可以覆盖与标准自注意一样多的区域,但成本要低得多。在图3中,我们展示了当我们逐渐添加更多的注意标记时,标准自注意和焦点自注意的感受野区域。对于一个查询位置,当我们对其远处的上下文使用逐渐粗化的颗粒时,焦点自注意可能会有显著更大的感受野,但代价是关注的视觉标记数量与基线相同。

    图3

    我们的焦点机制能够以更少的时间和内存成本实现远程自注意,因为它关注的周围(汇总)标记数量要少得多。然而,在实践中,为每个查询位置提取周围的标记会带来很高的时间和内存成本,因为我们需要为所有能够访问它的查询复制每个标记。这一实际问题已经被许多以前的工作[59、80、44]注意到,常见的解决方案是将输入特征映射划分到窗口中。受他们的启发,我们在窗口层面上进行焦点自注意。给定特征图x∈R^{M×N×d},其空间分辨率为M\times N,我们首先将其划分为size为s_p×s_p的窗口网格。然后,我们找到每个窗口的周围上下文,而不是单个标记。下面,我们将详细阐述窗口式焦点自注意。

    2.2.1窗口式注意

    图4示出了所提出的窗口式焦点自注意的图示。为了清晰起见,我们首先定义了三个术语:

    图4

    •    聚焦级别L    –我们为聚焦自注意提取token的粒度级别数。例如,在图1中,我们总共显示了3个聚焦级别。

    •    聚焦窗口大小s_{w}^l    –子窗口的大小,我们在该子窗口上获得级别l∈\left\{ {1,...L} \right\}  汇总标记,图1中的三个级别分别为1、2和4。

    •    焦点区域大小s_{r}^l–    l层有人值守区域中水平和垂直方向上的子窗口数量,图1中从1层到3层分别为3、4和4。通过上述三个术语{L,sw,sr},我们可以指定我们的焦点自注意模块,分两个主要步骤进行:

    子窗口池。

    假设输入特征映射为x∈ RM×N×d,其中M×N是空间维度,d是特征维度。我们为所有L级别执行子窗口池。对于焦点级别l,我们首先将输入特征映射x拆分为大小为SLW×SLW的子窗口网格。然后,我们使用一个简单的线性层f l p,通过以下方式在空间上聚集子窗口:

    不同级别的集合特征映射{x l}l 1提供了细粒度和粗粒度的丰富信息。由于我们为第一个焦点级别设置了slw=1,该级别与输入特征映射具有相同的粒度,因此不需要执行任何子窗口池。考虑到焦点窗口的大小通常非常小(在我们的设置中最大为7),这些子窗口池引入的额外参数的数量可以忽略不计。

    注意力计算。

    一旦我们在所有l层上获得汇集的特征映射{x l}l 1,我们将使用三个线性投影层fq、fk和fv计算第一层上的查询以及所有层上的键和值:

    要执行焦点自注意,我们需要首先提取特征映射中每个查询标记的周围标记。如前所述,窗口分区sp×sp内的token共享同一组上下文。对于第i个窗口内的查询:∈ Rsp×sp×d,我们从查询所在窗口周围的Kl和vl中提取slr×slr键和值,然后从所有l中收集键和值以获得Ki={k1i,…,kli}∈ Rs×d和Vi={v1i,…,v1i}∈ Rs×d,其中s是所有级别的焦点区域之和,即,s=PL=1(s l r)2。注意,图1后面的焦点自注意的严格版本要求排除不同层次的重叠区域。在我们的模型中,我们有意保留它们,以便捕获重叠区域的金字塔信息。最后,我们按照[44]将相对位置偏差包括在内,并通过以下方式计算Qi的焦点自注意:

    其中B={Bl}L 1是可学习的相对位置偏差。它由L个焦点级别的L个子集组成。与[44]类似,对于第一级,我们将其参数化为B1∈ R(2sp−1) ×(2sp)−1) ,考虑到水平和垂直位置范围均在[−sp+1,sp− 1]. 对于其他焦点级别,考虑到它们与查询的粒度不同,我们平等地对待窗口内的所有查询,并使用Bl∈ Rs l r×s l r表示查询窗口和每个s l r×s l r池标记之间的相对位置偏差。由于每个窗口的焦点自注意独立于其他窗口,我们可以并行计算公式(3)。一旦我们完成了整个输入特征映射,我们将其发送到MLP块,以便像往常一样继续计算。

    2.2.2复杂性分析

    我们分析了上述两个主要步骤的计算复杂性。对于输入特征映射x∈ RM×N×d,我们在焦点级别l有mslw×nslw子窗口。对于每个子窗口,等式1中的池操作的复杂性为O((slw)2d)。聚合所有子窗口将为我们带来O((MN)d)。然后对于所有的焦平面,我们总共有O(L(MN)d)的复杂度,它与每个焦平面上的子窗口大小无关。关于等式3中的注意力计算,对于整个输入特征图,查询窗口sp×sp的计算成本为O((sp)2pl(slr)2d)和O(pl(slr)2(MN)d)。综上所述,我们聚焦自注意力的总体计算成本为O((L+pl(slr)2)(MN)d)。在极端情况下,可以设置slr=2max(M,N)/slw,以确保该层中所有查询(包括角查询和中间查询)的全局接受域。

    2.3模型配置

    我们考虑三种不同的网络配置为我们的焦点Transformer。在这里,我们只是遵循先前工作[63、67、44]建议的设计策略,尽管我们认为应该有一个更好的配置专门用于我们的聚焦Transformer。具体地说,我们使用了与Swin Transformer[44]中的微型、小型和基础模型类似的设计,如表1所示。我们的模型将224×224个图像作为输入,窗口分区大小也设置为7,使我们的模型与SwinTransformer相当。对于焦点自注意层,我们引入了两个层次,一个是细粒度局部注意,一个是粗粒度全局注意。除了最后一个阶段,对于窗口分区大小7,焦点区域大小始终设置为13,这意味着我们为每个窗口分区扩展3个标记。对于最后一个阶段,由于整个特征图为7×7,因此0级的焦点区域大小设置为7,这足以覆盖整个特征图。对于粗粒度全局注意,我们将其焦点窗口大小设置为与窗口分区大小7相同,但逐渐减小焦点区域大小以获得四个阶段的{7,5,3,1}。对于patch嵌入层,四个阶段的空间缩减率pi均为{4,2,2,2},而焦基比焦微和焦小具有更高的隐藏维数。

    表1

    3    相关工作

    视觉Transformer。

    视觉Transformer(ViT)于[23]年首次引入。它应用了一个标准的Transformer编码器,最初是为NLP[60]开发的,通过类似地将图像分割成一系列视觉标记来对图像进行编码。当使用足够的数据[23]和仔细的数据增强和正则化[57]进行训练时,它在多个图像分类基准上表现出优于卷积神经网络(CNN),如ResNet[34]。这些进步进一步激发了transformer在图像分类以外的各种视觉任务中的应用,如自监督学习[16,10,40]、目标检测[9,91,84,20]和语义分割[61,65,86]。除了下游任务外,另一个工作重点是从不同角度改进原始视觉Transformers,例如数据高效训练[57],改进的patch 嵌入/编码[18,75,32],将卷积投影集成到Transformers中[67,74],高分辨率视觉任务的多尺度架构和高效的自注意机制[63,67,44,80,17]。我们请读者参考[37,31,37]进行全面调查。本文的重点是提高视觉Transformer的整体性能与提出的聚焦自注意机制。在下文中,我们特别讨论了有关注意机制的最相关的工作。

    高效的全局和局部自注意。

    Transformer模型通常需要处理大量标记,例如NLP中的长文档和CV中的高分辨率图像。最近,人们提出了各种有效的自注意机制来克服普通自注意中的二次计算和内存代价。一方面,NLP和CV中的许多作品通过参与下采样/汇总标记,同时保留长程交互[50,47,63,67,32],诉诸粗粒度的全局自注意。虽然这种方法可以提高效率,但它会丢失查询标记周围的详细上下文。另一方面,对于语言[3,78,1]和视觉[59,44,80],局部细粒度注意(即在恒定窗口大小内关注相邻token)是另一种解决方案。在本文中,我们认为这两种类型的注意都很重要,全注意ViT模型确实已经学习了这两种类型,如图1所示。最近的先进CNN模型[36,66,64,71,2,8,52]也支持这一点,这表明全局关注或互动可以有效地提高性能。我们提出的聚焦自注意是第一个在单个Transformer层中协调全局和局部自注意的方法。它可以捕获局部和全局交互,作为一种完全关注,但以更高效和有效的方式,特别是对于高分辨率输入。

    4    实验

    4.1 ImageNet-1K上的图像分类

    我们在ImageNet-1K上比较了不同的方法[21]。为了进行公平比较,我们遵循[57,63]中的训练方法。所有型号都经过300个epoch的训练,批量为1024。初始学习速率设置为10−3从10开始进行20个阶段的线性热身−5.对于优化,我们使用AdamW[45]作为优化器,并使用余弦学习率调度器。权重衰减设置为0.05,最大梯度范数剪裁为5.0。在排除随机擦除[87]、重复增强[4,35]和指数移动平均(EMA)[49]之后,我们使用了[57]中使用的同一组数据增强和正则化策略。对于我们的微型、小型和基础模型,随机深度下降率分别设置为0.2、0.2和0.3。在训练期间,我们将图像随机裁剪为224×224,而在验证集评估期间使用中心裁剪。在表2中,我们总结了基线模型和当前最先进的图像分类模型的结果。我们可以发现,我们的聚焦Transformer始终优于具有相似模型大小(#Params.)和计算复杂度(GFLOPs)的其他方法。具体而言,Focal Tiny比Transformer基线DeiT Small/16提高了2.0%。同时,使用相同的模型配置(2-2-6-2)和一些额外的参数和计算,我们的Focal Tiny比Swin Tiny提高了1.0个点(81.2%)→ 82.2%). 当我们将窗口大小从7增加到14以匹配ViL Small[80]中的设置时,性能可以进一步提高到82.5%。对于小型和基本型号,我们的聚焦Transformer仍然比其他型号的性能稍好。值得注意的是,我们使用51.1M参数的焦点小型模型可以达到83.5%,这比使用更少参数的所有对应小型模型和基础模型都要好。当进一步增加模型尺寸时,我们的焦基模型达到83.8%,超过使用可比参数和FLOPs的所有其他模型。我们请读者参考我们的附录,以获得更详细的比较。

    4.2目标检测和实例分割

    我们使用COCO 2017对我们的目标检测模型进行了基准测试[43]。预训练模型用作视觉主干,然后插入两个具有表示性的管道,RetinaNet [42]和掩模R-CNN[33]。所有模型均在118k训练图像上进行训练,并在5K验证集上报告结果。我们按照标准使用两个训练计划,1×12个阶段的计划和3×36个阶段的计划。对于1×schedule,我们将图像的短边调整为800,同时使其长边不超过1333。对于3×计划,我们使用多尺度训练策略,随机将其短边调整到[480800]的范围。考虑到这种更高的输入分辨率,我们自适应地将四个阶段的焦点大小增加到(15、13、9、7),以确保焦点注意力覆盖整个图像(最后两个阶段)一半以上的图像区域(前两个阶段)。随着焦点尺寸的增加,相对位置偏差相应地使用双线性插值上采样到相应的尺寸。在训练期间,我们使用AdamW[45]进行优化,初始学习率为10−4和重量衰减0.05。类似地,我们分别使用0.2、0.2和0.3的随机深度下降率来调整我们的微小、小型和基础模型的训练。由于Swin Transformer不报告RetinaNet上的数字,我们自己使用其官方代码对其进行训练,该代码与我们的聚焦Transformer具有相同的超参数。

    在表3中,我们展示了基于CNN的模型和当前基于Transformer的最新方法的性能。报告了bbox图(APb)和掩模图(APM)。我们的聚焦Transformer的性能始终优于基于CNN的模型,差距为4.8-7.1分。与其他也使用多尺度Transformer架构的方法相比,我们仍然观察到在所有设置和度量中都有很大的收益。特别是,我们的聚焦Transformer在可比设置下,相对于当前最佳接近SwinTransformer[44],提供了0.7-1.7个映射点。与其他多尺度Transformer模型不同,我们的方法可以同时实现每个视觉标记的短程细粒度和长程粗粒度交互,从而在每个层捕获更丰富的视觉上下文,以实现更好的密集预测。为了进行更全面的比较,我们进一步使用3×计划对他们进行训练,并在表4中显示了RetinaNet 和MaskR-CNN的详细数字。为了便于理解,我们还列出了每个模型的参数数量和相关计算成本。正如我们所看到的,即使是3×schedule,我们的模型仍然可以在可比设置下比最好的SwinTransformer模型实现0.3-1.1增益。

    为了进一步验证我们提出的聚焦Transformer的有效性,我们按照[44]训练了四种不同的物体探测器,包括级联R-CNN[7]、ATSS[81]、RepPoints[72]和稀疏R-CNN[55]。我们使用Focal Tiny作为主干,并使用3×schedule对所有四个模型进行训练。COCO验证集的方框图如表5所示。正如我们所看到的,在所有方法中,我们的焦微比Swintny高1.0-2.3个点。除了RetinaNet 和掩模RCNN之外,这些对不同检测方法的显著且一致的改进表明,我们的聚焦Transformer可以用作各种目标检测方法的通用主干。

    除了上面的实例分割结果之外,我们还进一步评估了我们的语义分割模型,这是一项通常需要高分辨率输入和远程交互的任务。我们在ADE20K[88]上对我们的方法进行基准测试。具体来说,我们使用Supernet[68]作为分割方法,使用我们的聚焦Transformer作为主干。我们分别训练了焦微、焦小、焦基三种模型。对于所有模型,我们都使用标准配方,将输入大小设置为512×512,并训练模型进行160k迭代,批量大小为16。在表7中,我们展示了与以前工作的比较。正如我们所见,我们的微型、小型和基础模型在单尺度和多尺度mIoUs上的性能始终优于具有类似尺寸的SWITransformer。

    4.3与系统级SoTA方法的比较

    为了在系统级与SoTA进行比较,我们通过将焦基中的隐藏维数从128增加到196,同时保持所有其他变量不变,建立了焦大模型,类似于SwinTransformer。为了获得最佳性能,通常的做法是在ImageNet-22K上预训练,然后将模型转移到下游任务[67,44]。然而,由于资源有限,考虑到我们的网络架构与Swin Transformers相似,除了窗口移动和焦点自注意之外,我们使用预训练的Swin Transformer checkpoint2部分初始化了我们的模型。具体地说,我们重用了Swin大模型中的参数,但删除了窗口移位操作,并在等式(1)中随机初始化了我们自己的窗口池层,在等式(3)中初始化了局部到全局的相对位置偏差。然后,我们在ImageNet-1K上微调我们的模型,以了解特定于焦点的参数。最终的模型被用作主干,并在目标检测和语义分割任务上进一步优化。

    与SoTA探测系统的比较。

    对于COCO上的目标检测,我们首先遵循Swin Transformer,也使用HTC[13]作为检测方法,因为它报告了使用Swin Transformer作为主干时SoTA在COCO检测上的性能。为了公平比较,我们还使用了软NMS[5]、instaboost[25]和多尺度训练策略,短边在射程[4001400]内,而长边不超过1600。我们使用AdamW[45]对模型进行训练,基本学习率为1e-4,权重衰减为0.1。模型采用标准3×计划进行训练。表6中报告了COCO验证集和测试开发的方框图和掩码图。我们展示了单尺度评价和多尺度评价结果。我们的焦点大模型通过多比例尺测试,在mini-val集上实现了58.1盒图和50.9掩模图,这比[44]中报道的Swin-Large的数字要好。在测试开发集上评估我们的模型时,它实现了58.4方块图和51.3掩码图,这比Swin Transformer略好。请注意,由于我们的模型不包括最后阶段在Swin Transformer中使用的全局自关注层,因此它具有更小的模型大小和更少的FLOPs。最近,DyHead[19]与Swin Large结合,在COCO上实现了新的SoTA。我们用我们的焦点大模型替换Swin大模型,并使用与[19]中相同的2×训练计划。我们报告了mini val和test-dev的方框图。我们的重点大项目显然在这两个指标上都带来了实质性的改进,在这两个指标上都达到了新的SoTA。

    与SoTA语义分割系统的比较。

    我们进一步使用预训练的FocalLarge模型作为语义分割的主干。我们遵循与[44]中相同的设置。具体来说,我们使用输入图像大小640×640,并以16的批量大小对模型进行160k迭代训练。我们将初始学习设置为6e-5,并使用多项式学习速率衰减。权重衰减设置为0.01。对于多尺度评估,我们使用与先前工作相同的比例比[0.5,0.75,1.0,1.25,1.5,1.75]。在表7中,我们看到我们的Focal Large比Swin Large实现了显著更好的性能。在单尺度和多尺度评估中,Focus Large都有超过1点的mIoU改进,这为ADE20K上的语义分割提供了一种新的SoTA。这些令人鼓舞的结果验证了我们提出的焦点自注意机制在捕获密集视觉预测任务所需的长距离依赖性方面的有效性。

    4.4消融研究

    我们进行烧蚀研究,从不同方面检查模型的容量。在图像分类和目标检测任务中都考虑了焦微。

    不同窗口大小的影响。

    上面我们已经证明了短程和长程相互作用都是必要的。基于此,一个自然的问题是,增加窗口大小是否能进一步帮助模型学习,从而扩大感受野。在表8中,我们展示了窗口大小为7和14的Swin Tiny和Focal Tiny的性能。显然,较大的窗口大小会为这两种方法在所有三个指标上带来收益,我们的Focus Tiny模型在使用这两种窗口大小时始终优于Swin Tiny。比较第二排和第三排,我们发现我们的模型甚至比Swin使用更小的窗口大小(7 v.s.14)。我们怀疑我们模型中的长程相互作用是这种增益的来源。

    窗户移动的必要性。

    在[44]中,作者提出了窗口移位操作,以实现两个连续层之间的跨窗口交互。相比之下,我们的焦点Transformer中的视觉标记始终可以与其他窗口中的视觉标记进行细粒度和粗粒度的通信。一个自然的问题是,在焦点Transformer上增加窗口偏移是否能进一步带来改进。为了研究这一点,我们移除了Swin Transformer中的窗口偏移,同时将其添加到焦点Transformer中。如表9所示,Swin Transformer在移除车窗换档后表现出严重退化。然而,我们的聚焦Transformer甚至在分类任务中受伤。这些结果表明,在我们的模型中,窗口偏移不是一个必要的因素。因此,我们的模型可以摆脱Swin-Transformer中的约束,即对于交替的窗口移位操作,每个阶段都应该有偶数层。

    短期和长期相互作用的贡献。

    我们试图在我们的聚焦Transformer中分解短程细粒和长程粗粒相互作用的影响。我们将原来的聚焦微模型烧蚀为:a)聚焦微窗口仅在每个窗口内执行注意;b) Focal Tiny Local负责处理周围的其他细粒度token,c)Focal Tiny Global负责处理超粗粒度挤压token。我们使用与Focal Tiny相同的设置对它们进行训练,并使用Mask R-CNN 1×schedule报告它们在图像分类和目标检测方面的性能。如图5所示,聚焦小窗口在两种图像分类(82.2)上都有显著下降→80.1)和目标检测(44.8→38.3). 这是预期的,因为在每个Transformer层,跨窗口的通信完全被切断。在我们启用局部细颗粒或全局粗颗粒相互作用(中间两列)后,我们观察到显著的跳跃。尽管它们从不同的路径促进了更丰富的交互,但最终它们都使模型能够捕获更多的上下文信息。当我们将它们结合在一起时,我们观察到这两项任务的进一步改进。这意味着这两种类型的交互是相互补充的,它们都应该在我们的模型中启用。另一个观察结果是,添加远程标记可以比对象检测带来更多的图像分类相对改进,反之亦然。我们怀疑像目标检测这样的密集预测更依赖于细粒度的局部上下文,而图像分类更倾向于全局信息。

    图5

    模型容量与模型深度之比。

    考虑到我们的注意力集中在每个Transformer层的局部和全局交互,一个问题是,它是否需要较少的层数来获得与没有全局交互的层相似的建模能力。为了回答这个问题,我们通过将Swin Tiny和Focal Tiny中第3阶段的Transformer层数从原来的6层减少到4层和2层来进行实验。在表10中,我们展示了每个变体的性能和模型复杂性。首先,我们可以发现,在相同深度下,我们的模型始终优于Swin模型。更重要的是,使用较少的两层,我们的模型实现了与Swin Transformer相当的性能。特别是,具有4层的Focal Tiny在图像分类上达到81.4,甚至比具有6层的原始Swin Tiny模型(在灰色单元中突出显示)更好。虽然我们并没有为我们的聚焦Transformer探索不同的架构,但这些结果表明我们可以找到更有效的架构。

    5结论

    在本文中,我们提出了焦点自注意,以实现视觉Transformer中高效的局部-全局交互。与以往的研究不同,它在细粒度上实现了局部自注意,在粗粒度上实现了全局自注意,从而以合理的成本在短期和长期内有效地捕捉到更丰富的语境。通过将其插入到多尺度Transformers结构中,我们提出了聚焦Transformers,这表明了它在图像分类、目标检测和分割方面优于SoTA方法。通过这些广泛的实验结果,提出的焦点注意被证明是一种通用的方法,用于在各种视觉任务的视觉Transformers中建模局部-全局交互。

    局限性和今后的工作。尽管大量的实验结果表明,我们的焦点自注意可以显著提高图像分类和密集预测任务的性能,但它确实会带来额外的计算和内存成本,因为每个查询标记除了需要处理局部标记外,还需要处理粗化的全局标记。为了使其更适用于现实情况,有必要开发一些实用或方法技术来降低成本。我们对表10中所用Transformer层数的烧蚀研究确实揭示了通过减少Transformer层数来降低成本的潜在方法。然而,我们只是触及了表面,这方面还需要进一步的研究。在焦距Transformers中,我们选择多尺度结构作为基础,以便它可以用于高分辨率的预测任务。然而,我们相信我们的焦点注意机制也适用于单片视觉Transformer以及视觉和语言领域的Transformer。我们将此作为未来进一步探索的一个有希望的方向。

    附录

    A.1图像分类

    我们在表11中给出了与以前工作的详尽比较。我们将我们的方法与基于CNN和基于Transformer的方法进行比较。我们根据两个属性将不同的方法分类:

    •比例–模型中要素地图的比例。它可以是单刻度或多刻度。在单比例模型中,所有要素地图在不同阶段具有相同的大小。对于多比例尺模型,通常会有具有不同分辨率的特征地图。

    •位置–模型中操作的位置。它可以是全局的,也可以是局部的。局部操作可以是CNN模型中的一个集合层,也可以是一个进行局部自注意的变换层。然而,标准的自注意等全局操作通过从所有输入收集信息来生成输出特征图。

    基于这一准则,所有CNN模型都是自然多尺度的,因为它们的特征图大小在不同阶段逐渐减小。最近,许多研究试图通过引入挤压和激发(SE)层[36]、通道注意层[66]甚至自注意层[2,52],将全局操作集成到CNN中。如我们所见,局部和全局操作的结合显著提高了图像分类的性能。特别是,僵尸网络S1-110达到82.8 top-1准确度,参数数量适中(61.6M)。

    相反,Transformer[60]天生具有全局自注意的能力,通过这种能力,每个视觉标记都可以与所有其他标记交互。即使没有CNN中的多尺度设计,一些基于Transformer的工程,如TNT[32]、DeepViT[89]和CaiT[58]也实现了优于CNN模型的性能,模型尺寸和计算成本相当。为了适应高分辨率的特征映射,最近的一些工作用更有效的局部自注意取代了全局自注意,并在图像分类方面表现出了类似的性能,同时在密集预测任务(如目标检测和语义分割)方面取得了许多有希望的结果[44]。

    在本文中,我们提出了焦点注意,这是第一个将全局自注意和局部自注意有效结合起来的方法。用我们的焦点自注意取代全局自注意或局部自注意,我们取得了比两者更好的性能。这些结果以及通过局部和全局计算增强的CNN模型表明,结合局部和全局交互比两者更有效。在表中,我们还报告了不同方法的速度。使用[44]提供的相同脚本,我们在批量为64的单个Tesla-V100上运行测试。因此,我们的聚焦Transformer运行速度较慢,尽管它与SwinTransformer有类似的FLOPs。这主要是由于两个原因:1)我们引入了全局粗粒度关注,并引入了额外的计算;2) 尽管我们将注意力集中在窗口上,但我们会注意到,提取局部窗口周围的标记和整个功能映射中的全局标记非常耗时。

    A.2目标检测和分割

    为了完整性,我们在表12中报告了使用1x计划训练的RetinaNet 和MaskR-CNN的完整指标。正如我们所见,我们的焦点Transformer在所有指标上都始终优于以前的作品,包括最先进的SwinTransformer。我们观察到,使用1x计划训练的模型通常比使用3x计划训练的模型具有更大的增益(分别为1.2 v.s.+0.8和+1.0 v.s.+0.7 RetinaNet和Mask R-CNN方块图)。这表明我们的模型比以前的工作有更快的学习收敛。与基于局部注意的方法(如Swin-Transformer)相比,集成远程交互可以帮助捕获更多的视觉依赖性,从而帮助模型更快地学习。

    A.3模型检查

    学习速度比较。

    正如我们前面简要讨论的,我们的模型显示了在目标检测任务上更快的学习速度。在图6中,我们展示了我们的模型和用于图像分类任务的SwinTransformer的top-1验证准确度。因此,我们的聚焦Transformer也有更快的学习速度。例如,Focus Tiny在第100个epoch时具有75.7%的top-1准确度,而Swin Tiny具有73.9%的top-1准确度。同样地,Focal Small在第100个epoch时达到78.3%,比Swin Small高2.0个点。即使对于基础模型,这种差距仍然会持续很长时间,直到训练结束。我们将这种更快的学习速度归因于我们的焦点注意机制引入的远程交互,因为它可以帮助我们在一开始就捕获全局信息。

    不同标记类型的注意分数。

    在我们的主要意见中,我们已经表明,局部和全局关注都是重要的。在这里,我们研究在每一层发生多少局部和全局交互。使用在ImageNet-1K上训练的Focal Tiny作为目标,我们在图7中显示了三种类型标记的综合注意分数:1)窗口内的局部标记;2) 窗口周围的局部token和3)窗口池后的全局token。为了计算这些分数,我们对所有局部窗口进行平均,然后对所有头部进行平均。最后,我们总结了属于上述三种token类型的注意分数。这些注意力得分在整个ImageNet-1K验证集中进一步平均。在图7中,我们可以看到一个明显的趋势,即当全局注意力进入上层时,它变得更强,而窗口内的局部注意力逐渐减弱。这表明:1)我们的模型严重依赖于短期和长期互动。在模型的各个层次和阶段都没有忽略这两个方面;2) 全局关注度的逐渐增强和局部关注度的逐渐减弱表明,模型在早期阶段倾向于关注更多的局部细节,而在后期阶段则关注更多的全局背景。

    局部到全局相对位置偏差。

    我们进一步检查了我们的模型对等式(3)中引入的局部到全局相对位置偏差的了解。这种相对位置偏差是一个很好的指标,表明模型如何将其注意力集中在局部和全局区域。在我们的聚焦Transformer中,图像分类和目标检测的四个阶段的聚焦区域大小分别为(7,5,3,1)和(15,13,9,7)。在图8和图9中,我们分别在ImageNet-1K和COCO上训练的焦点微小模型中,可视化了所有头部和所有层的学习相对位置偏差矩阵。令人惊讶的是,尽管所有这些都是随机初始化的,但这些相对位置偏差显示出一些有趣的模式。在图像分类模型的第一阶段,所有三个头都学习在第一层较少关注中心窗口,而在第二层更多关注中心。然而,对于对象检测模型,它们被交换,以便第一层更加关注中心部分,而第二层学习从周围提取全局上下文。因此,这两个层相互协作以提取局部和全局信息。在两个模型的第二阶段,我们观察到两个连续层同时具有局部和全局相互作用的相似性质。与图像分类模型相比,目标检测模型更关注中心区域。我们怀疑这是因为目标检测需要在局部区域提取更多细粒度信息来预测目标类别和位置。在第三阶段,我们可以看到,在这两个模型中,局部和全局注意力完全混合在一起。令人惊讶的是,尽管随机初始化,一些头部自动学习忽略中心窗口池token,它与中心窗口内的细粒度token有很多冗余。

    图8 图9

    相关文章

      网友评论

          本文标题:Focal Transformers

          本文链接:https://www.haomeiwen.com/subject/puvbultx.html