本文提出了一种焦点自注意力机制 Focal-Self-Attention(FSA),然后基于焦点自注意力机制,提出了一种 Focal Transformer。
最近,Vision Transformer及其变体在各种计算机视觉任务上表现出了巨大的潜力。通过自我关注捕捉短期和长期视觉依赖的能力是成功的关键。但由于二次方计算复杂度开销,特别是对于高分辨率视觉任务(例如,物体检测),它也带来了挑战。
最近的许多工作都试图通过应用粗粒度全局关注或细粒度局部关注来降低计算和内存成本并提高性能。然而,这两种方法都削弱了多层变压器原始自我关注机制的建模能力,从而导致次优解决方案。
在本文中,本文提出了焦点自我关注,这是一种结合了细粒度局部和粗粒度全局交互的新机制。在这一新机制中,每个令牌以细粒度关注其最近的周围令牌,而以粗粒度关注远处的令牌,因此可以高效和有效地捕获短期和长期视觉依赖。
通过焦点自我关注,本文提出了一种新的视觉transformer模型变体,称为Focal Transformer,它在一系列公共图像分类和对象检测基准上实现了优于最先进(SoTA)视觉变换器的性能。
特别是,本文的Focal Transformer模型的中等尺寸为51.1M,较大尺寸为89.8M,在ImageNet分类为224×224时,分别达到83.5%和83.8%的Top-1精度。当用作主干时,Focal Transformers在6种不同的物体检测方法中实现了与当前SoTA Swin Transformers一致的实质性改进。
最大的Focal Transformer在COCO mini val/test dev上产生58.7/58.9盒mAP和50.9/51.3掩模mAP,在ADE20K上产生55.4 mIoU用于语义分割,在三个最具挑战性的计算机视觉任务上创建了新的SoTA。
这是 NeurIPS 2021 Spotlight 的文章,提出了一种细粒度和粗粒度全局交互的注意力机制,精度得到了大幅提升。模型整体网络采用 PVT,只是将中间的 Attention 模块替换成了提出的 Focal Attention。
因为全局注意力机制需要考虑到所有特征彼此关联,随着图片大小的增长,计算量的增长更为剧烈。因此为了缓解这种计算量增长,先前部分工作考虑粗粒度的全局注意力或重点放在局部注意力上。但实际上,因为注意力模块往往都有多个注意力头以学习不同的特征关系,模型本身就能够获取到不同的粗细粒度信息,如标题图左示意。这种人为强行划分注意力的方法便于这种模型自学习的能力相重复,为了更好利用这些特点,本文提出了粗细粒度全局交互的注意力机制,重点放在局部,但也粗度考虑远处。
论文地址:[2107.00641] Focal Self-attention for Local-Global Interactions in Vision Transformers (arxiv.org)
代码地址:microsoft/Focal-Transformer: [NeurIPS 2021 Spotlight] Official code for “Focal Self-attention for Local-Global Interactions in Vision Transformers” (github.com)
如今,Transformer已成为自然语言处理(NLP)中的一种流行模型架构。鉴于其在NLP中的成功,在使其适应计算机视觉(CV)方面有越来越多的努力。自从视觉transformer(ViT)首次展示了其前景以来,见证了用于图像分类、对象检测[detr、 Deformable detr、End-to-end object detection with adaptive clustering transformer、Up-detr]和语义分割的全transformer模型的蓬勃发展。除了这些静态图像任务,它还被应用于各种时间理解任务,例如动作识别、对象跟踪、场景流估计。
在transformer中,自我关注是关键组成部分,使其与广泛使用的卷积神经网络(CNN)不同。在每个Transformer层,它支持不同图像区域之间的全局内容相关交互,以建模短期和长期依赖关系。通过完全自我关注的可视化,确实观察到它学会了同时关注局部环境(如CNN)和全局环境(见图1左侧)。
然而,当涉及到用于密集预测(例如对象检测或分割)的高分辨率图像时,由于与特征图中的网格数量相关的二次计算成本,全局和细粒度的自我关注变得非常重要。最近的工作交替地利用了粗粒度的全局自关注[Pyramid vision transformer,Cvt]或细粒度的局部自关注[Swin transformer,Multiscale vision longformer,Scaling local self-attention for parameter efficient visual backbones]来减少计算负担。然而,这两种方法都削弱了原始完全自我关注的能力,即同时模拟短期和长期视觉依赖的能力,如图左侧所示。
在本文中,提出了一种新的自我关注机制,以捕获高分辨率输入的Transformer层中的局部和全局交互。考虑到附近区域之间的视觉依赖性通常比远处区域更强,只在局部区域执行细粒度的自我关注,而在全局执行粗粒度的关注。
如上图右侧所示,特征图中的查询标记以最精细的粒度关注其最近的环境。然而,当它到达更远的区域时,它会关注汇总的标记以捕获粗粒度的视觉依赖。区域离查询越远,粒度越粗。因此,它可以有效地覆盖整个高分辨率特征图,同时在自关注计算中引入的令牌数量比在完全自关注机制中少得多。因此,它能够有效地捕获短期和长期的视觉依赖。我们称这种新机制为焦点自我关注,因为每一个标记都以焦点的方式关注其他标记。基于所提出的焦点自我关注,通过
1)利用多尺度架构来维持高分辨率图像的合理计算成本,
2)将特征图分割成多个窗口,其中令牌共享相同的环境,开发了一系列焦点transformer模型,而不是对每个令牌执行焦点自我关注。
通过对图像分类、目标检测和分割的全面实证研究,验证了所提出的焦点自我关注的有效性。结果表明,本文的Focal Transformer具有相似的模型大小和复杂性,在各种设置中始终优于SoTA Vision Transformer模型。值得注意的是,本文的具有51.1M参数的小型Focal Transformer模型可以在ImageNet-1K上获得83.5%的top-1精度,而具有89.8M参数的基础模型可以获得83.8%的top-1准确性。
当转移到物体检测时,本文的Focal Transformers在六种不同的物体检测方法上始终优于SoTA Swin Transformers。最大的Focal Transformer模型在COCO测试设备上分别实现了58.9盒mAP和51.3掩模mAP,用于对象检测和实例分割,在ADE20K上实现了55.4 mIoU,用于语义分割。这些结果表明,焦点自我注意力在视觉transformer中的局部-全局交互建模中非常有效。
为了适应高分辨率视觉任务,本文的模型架构与[Pyramid vision transformer,Multiscale vision longformer,Swin transformer]共享类似的多尺度设计,这允许本文在早期阶段获得高分辨率特征图。
如下图所示,图像I∈RH×W×3 首先将划分为大小为4×4的patch,得到维数为4×4×3的H /4×W /4视觉标记。然后,使用面片嵌入层,该面片嵌入层由卷积层组成,滤波器大小和步长均等于4,将这些面片投影为维数为d的隐藏特征。给定该空间特征图,然后本文将其传递给四个阶段的焦点Transformer块。
在每个阶段i∈ {1,2,3,4},焦点transformer块由Ni焦点transformer层组成。在每个阶段之后,使用另一个面片嵌入层来将特征图的空间大小减小因子2,而特征维度增加了2。对于图像分类任务,取上一阶段输出的平均值,并将其发送到分类层。对于物体检测,根据本文使用的特定检测方法,将最后3个或所有4个阶段的特征图馈送到检测器头。模型容量可以通过改变输入特征尺寸d和每个阶段{N1、N2、N3、N4}的聚焦transformer层的数量来定制。
标准的自我关注可以在细粒度上捕捉短距离和长距离交互,但当它在高分辨率特征图上执行关注时,它的计算成本很高,如[Multiscale vision longformer]中所述。以上图中的阶段1为例。对于尺寸为H/4×W/4×d的特征图,自我关注的复杂性为O((H/4×W/3)^2d),考虑到最小(H,W)为800或更大,因此导致时间和内存成本的爆炸。接下来,将描述本文如何通过提出的焦点自我关注来解决这一问题。
在本文中,提出了焦点自我关注,以使Transformer层可扩展到高分辨率输入。建议只在局部参加细粒度tokens,而在全局范围内参加汇总tokens,而不是参加细粒度的所有tokens。因此,它可以覆盖与标准自我关注一样多的地区,但成本要低得多。在下图中,显示了当本文逐渐添加更多的关注标记时,标准自我关注和本文的焦点自我关注的感受野区域。对于一个查询位置,当本文对其远处的环境使用逐渐变粗的颗粒时,焦点自我注意力可以具有明显更大的感受野,代价是观看与基线相同数量的视觉标记。
本文的焦点机制能够以更少的时间和内存成本实现长距离的自我关注,因为它关注的周围(汇总)tokens数量要少得多。然而,在实践中,为每个查询位置提取周围的令牌会带来很高的时间和内存成本,因为本文需要为所有可以访问它的查询复制每个令牌。
这一实际问题已被许多先前的工作[Scaling local self-attention for parameter efficient visual backbones,Multiscale vision longformer,Swin transformer]注意到,常见的解决方案是将输入特征图划分为窗口。
在他们的启发下,本文在窗口级别进行集中的自我关注。给定x∈RM×N×d的特征图空间大小为M×N,本文首先将其划分为大小为sp×sp的窗口网格。然后,本文找到每个窗口的环境,而不是单个令牌。在下文中,本文详细阐述了窗口式焦点自我关注。
下图显示了所提出的窗口式焦点自我关注的示例。为了清晰起见,首先定义了三个术语:
Focal levels L:为焦点自我关注提取令牌的粒度级别数。在上文第一张图中,例如,总共显示了3个焦点级别。
Focal window size s w l s^l_w swl:子窗口的大小,在该子窗口上获取级别的汇总令牌 l∈ {1,…,L},对于上文第一张图中的三个级别为1,2和4。
Focal region size s r l s^l_r srl–水平和垂直方向上在级别 l 的关注区域中的子窗口数量,在上文第一张图中,从级别1到级别3,它们分别为3、4和4。
使用上述三个术语{L,sw,sr},可以指定本文的焦点自我关注模块,分两个主要步骤进行:
Sub-window pooling:假设输入特征图x∈ RM×N×d,其中M×N是空间维度,d是特征维度。本文为所有L级执行子窗口池。对于焦点级别l,首先将输入特征图x分割成大小为slw×slw的子窗口网格。然后,使用一个简单的线性层flp,通过以下方式在空间上汇集子窗口:
x l = f p l ( x ) ∈ R M s w l ∗ N s w l ∗ d , x = R e s h a p e ( x ) ∈ R M s w l ∗ N s w l ∗ d ∗ ( s w l ∗ s w l ) , ( 1 ) x^l=f^l_p(x)\in R^{\frac{M}{s^l_w}*\frac{N}{s^l_w}*d},\\ x=Reshape(x)\in R^{\frac{M}{s^l_w}*\frac{N}{s^l_w}*d*(s^l_w*s^l_w)},(1) xl=fpl(x)∈RswlM∗swlN∗d,x=Reshape(x)∈RswlM∗swlN∗d∗(swl∗swl),(1)
不同级别的合并特征图{xl}L1提供了细粒度和粗粒度的丰富信息。由于本文为与输入特征图具有相同粒度的第一焦点级别设置slw=1,因此不需要执行任何子窗口池。考虑到焦点窗口大小通常很小(在本文的设置中最大为7个),这些子窗口池引入的额外参数的数量可以忽略不计。
Attention computation:一旦获得了所有L个级别的集合特征映射{xl}L1,本文就使用三个线性投影层fq、fk和fv计算第一级别的查询以及所有级别的关键字和值:
Q = f q ( x l ) , K = { K l } 1 L = f k ( { x 1 , . . . , x L } ) , V = { V l } 1 L = f v ( { x 1 , . . . , x L } ) , ( 2 ) Q=f_q(x^l),\\ K=\{K^l\}^L_1=f_k(\{x^1,...,x^L\}),\\ V=\{V^l\}^L_1=f_v(\{x^1,...,x^L\}),(2) Q=fq(xl),K={Kl}1L=fk({x1,...,xL}),V={Vl}1L=fv({x1,...,xL}),(2)
为了执行焦点自我关注,本文需要首先提取特征图中每个查询标记的周围标记。如前所述,窗口分区sp×sp内的令牌共享相同的环境集。对于第i个窗口Qi∈ Rsp×sp×d内的查询,从查询所在的窗口周围的Kl和V1中提取slr×slr keys和值,然后从所有l中收集关键字和值,以获得Ki={K1i,…,KLi}∈ Rs×d和Vi={V 1i,…,V Li}∈ Rs×d,其中s是所有级别的焦点区域的总和,即,s=PL l=1(slr)^2。
注意,上文图中的焦点自我关注的严格版本要求排除不同级别的重叠区域。在本文的模型中,有意保留它们,以便捕获重叠区域的金字塔信息。最后,根据[swin transformer]计算相对位置偏差,并通过以下公式计算Qi的焦点自我关注度:
A t t e n t i o n ( Q i , K i , V i ) = S o f t m a x ( Q i K i T d + B ) V i , ( 3 ) Attention(Q_i,K_i,V_i)=Softmax(\frac{Q_iK_i^T}{\sqrt d}+B)V_i,(3) Attention(Qi,Ki,Vi)=Softmax(dQiKiT+B)Vi,(3)
其中B={Bl}L1是可学习的相对位置偏差。它由L个焦点级别的L个子集组成。与[swin transformer]类似,对于第一级,我们将其参数化为B1∈ R(2sp−1) ×(2sp−1) ,考虑到水平和垂直位置范围都在[−sp+1,sp− 1]. 对于其他焦点级别,考虑到它们对查询的粒度不同,对窗口中的所有查询一视同仁,并使用Bl∈ Rslr×slr,表示查询窗口和每个slr×slr池令牌之间的相对位置偏差。
由于每个窗口的焦点自我关注独立于其他窗口,我们可以并行计算等式(3)。一旦完成了整个输入特征图的计算,将其发送到MLP块,以便照常进行计算。
本文分析了上面讨论的两个主要步骤的计算复杂性。对于输入功能图 x ∈ R M × N × d x∈ R^{M×N×d} x∈RM×N×d,在焦点级有 M s w l × N s w l \frac{M}{s^l_w}×\frac{N}{s^l_w} swlM×swlN子窗口。对于每个子窗口,等式1中的池操作具有 O ( ( s w l ) 2 d ) O((s^l_w)^2d) O((swl)2d)的复杂性。聚合所有子窗口给我们带来 O ( ( M N ) d ) O((M N)d) O((MN)d)。然后,对于所有焦点级别,总共有 O ( L ( M N ) d ) O(L(M N)d) O(L(MN)d)的复杂性,这与每个焦点级别的子窗口大小无关。
关于等式3中的注意力计算,查询窗口sp×sp的计算成本为 O ( ( s p ) 2 ∑ l ( s r l ) 2 d ) O((sp)^2\sum_l(s^l_r)^2d) O((sp)2∑l(srl)2d),而整个输入特征图的计算成本是 O ( ∑ l ( s r l ) 2 ( M N ) d ) O(\sum_l(s^l_r)^2(MN)d) O(∑l(srl)2(MN)d)。总之,本文的焦点自我关注的总体计算成本变为 O ( ( L + ∑ L ( s r l ) 2 ) ( M N ) d ) O((L+\sum_L(s^l_r)^2)(M N)d) O((L+∑L(srl)2)(MN)d)。在极端情况下,可以设置 s r L = 2 m a x ( M , N ) / s w L s^L_r=2max(M,N)/s^L_w srL=2max(M,N)/swL,以确保该层中所有查询(包括角落和中间查询)的全局接受域。
本文为焦点transformer考虑了三种不同的网络配置。在这里,只是遵循先前作品[PVT,CVT,Swin transformer]中建议的设计策略,尽管本文认为应该有更好的配置专门用于我们的焦点transformer。具体而言,在Swin Transformer中使用了与Tiny、Small和Base模型相似的设计。
如下表所示。本文的模型采用224×224个图像作为输入,窗口分区大小也设置为7,以使我们的模型与Swin Transformers相当。对于焦点自我关注层,本文引入了两个级别,一个用于细粒度局部关注,另一个用于粗粒度全局关注。除了最后一个阶段,焦点区域大小始终设置为13,窗口分区大小为7,这意味着本文为每个窗口分区扩展3个令牌。对于最后一个阶段,由于整个特征图是7×7,因此级别0的焦点区域大小设置为7,这足以覆盖整个特征图。对于粗粒度全局关注,本文将其焦点窗口大小设置为窗口分区大小7,但逐渐减小焦点区域大小以获得四个阶段的{7,5,3,1}。对于贴片嵌入层,四个阶段的空间缩减比率pi都是{4,2,2,2},而Focal Base与Focal Tiny和Focal Small相比具有更高的隐藏维度。
焦点transformer的型号配置。本文介绍了具有不同型号容量的三种配置FocalTiny、Focal Small和Focal Base。
Vision Transformers.
视觉transformer(ViT)首次引入。它应用最初为NLP开发的标准Transformer编码器,通过类似地将图像分割成一系列视觉标记来对图像进行编码。当使用足够的数据和谨慎的数据扩充和正则化进行训练时,它在多个图像分类基准上表现出优于卷积神经网络(CNN)(如ResNet)的性能。
这些进步进一步启发了transformer在图像分类之外的各种视觉任务中的应用,例如自我监督学习、对象检测和语义分割。除了下游任务外,另一项工作集中于从不同角度改进原始视觉transformer,例如数据高效训练、改进的补丁嵌入/编码、将卷积投影集成到transformer,用于高分辨率视觉任务的多尺度架构和有效的自我关注机制。请读者参考[Transformers in vision: A survey,A survey on visual transformer]进行全面调查。本文着重于利用所提出的焦点自我注意机制来提高视觉变换器的总体性能。在下文中,本文特别讨论了关于注意机制的最相关的工作。
Efficient global and local self-attention.
Transformer模型通常需要处理大量令牌,例如NLP中的长文档和CV中的高分辨率图像。最近,提出了各种有效的自我关注机制,以克服普通自我关注中的二次计算和记忆成本。
一方面,NLP和CV中的许多工作都通过关注下采样/汇总的令牌来诉诸于粗粒度的全局自我关注,同时保持长期交互。虽然这种方法可以提高效率,但它会丢失查询令牌周围的详细上下文。另一方面,局部细粒度注意力,即关注恒定窗口大小内的相邻令牌,是语言[3,78,1]和视觉[59,44,80]的另一种解决方案。在本文中,本文认为这两种类型的注意力都很重要,并且全注意力ViT模型确实学习了这两种注意力,如上文第一张图所示。
最近的先进CNN模型也支持这一点,这表明全局注意力或互动可以有效提高性能。本文提出的焦点自我关注是第一个在单个transformer层中协调全局和局部自我关注的方法。它可以捕获局部和全局交互,作为普通的充分关注,但以更高效和有效的方式,特别是对于高分辨率输入。
本文使用COCO 2017对本文的目标检测模型进行了基准测试。预训练的模型用作视觉主干,然后插入两个代表性管道,RetinaNet和Mask R-CNN。所有模型都在118k训练图像上进行训练,并在5K验证集上报告结果。本文遵循标准使用两个训练计划,1×12个时期的计划和3×36个时期的训练计划。对于1×调度,本文将图像的短边调整到800,同时保持其长边不超过1333。对于3×调度,通过将其短边随机调整到[480,800]的范围,本文使用多尺度训练策略。
考虑到这种更高的输入分辨率,本文自适应地将四个阶段的焦点大小增加到(15,13,9,7),以确保焦点注意力覆盖整个图像(前两个阶段)的一半以上的图像区域(前两阶段)。随着焦点尺寸的增加,使用双线性插值将相对位置偏差相应地上采样到相应的尺寸。在训练期间,我们使用AdamW进行优化,初始学习率为10−同样,本文分别使用0.2、0.2和0.3的随机深度下降率来规范我们的小模型、小模型和基础模型的训练。由于Swin Transformer没有在RetinaNet上报告数字,使用他们的官方代码和本文的Focal Transformer相同的超参数自行训练。
在下表中,展示了基于CNN的模型和当前基于Transformer based的现有技术方法的性能。报道了bbox mAP(AP b)和掩膜mAP(APm)。本文的Focal Transformers始终以4.8-7.1分的差距超过基于CNN的模型。与其他同样使用多尺度Transformer架构的方法相比,本文仍然可以观察到所有设置和度量的显著提高。
特别是,本文的Focal Transformers在可比较的设置下,与目前最好的Swin Transformer方法相比,带来了0.7-1.7点的mAP。与其他多尺度Transformer模型不同,本文的方法可以同时为每个视觉标记启用短距离细粒度和长距离粗粒度交互,从而在每个层捕获更丰富的视觉上下文,以实现更好的密集预测。
为了进行更全面的比较,本文进一步使用3×时间表对其进行训练,并在下表中显示了RetinaNet和Mask R-CNN的详细数字。为了理解,还列出了每个模型的参数数量和相关计算成本。正如所看到的,即使是3×时间表,本文的模型仍然可以在可比设置下比最佳Swin Transformer模型获得0.3-1.1的增益。
为了进一步验证本文提出的焦点transformer的有效性,本文遵循[Swin transformer]来训练四个不同的物体检测器,包括级联R-CNN、ATSS、RepPoints和稀疏R-CNN。本文使用Focal Tiny作为骨干,并使用3×时间表训练所有四个模型。COCO验证集上的盒mAPs报告在表5中。如本文所见,本文的Focal Tiny在所有方法上都超过SwinTiny 1.0-2.3个点。除了RetinaNet和Mask RCNN之外,对不同检测方法的这些显著和一致的改进表明,本文的Focal Transformer可以用作各种对象检测方法的通用主干。
除了上面的实例分割结果,还进一步评估了本文的语义分割模型,这项任务通常需要高分辨率的输入和长距离的交互。本文在ADE20K上对本文的方法进行了基准测试。具体而言,使用UperNet作为分割方法,使用Focal Transformers作为主干。分别使用Focal Tiny、Focal Small和Focal Base训练三个模型。对于所有模型,使用标准配方,将输入大小设置为512×512,并训练模型进行160k次迭代,批量大小为16。在下表中,显示了与先前工作的比较。
正如我们所看到的,本文的微型、小型和基础模型在单尺度和多尺度mIoU上始终优于尺寸相似的Swin Transformers。
为了在系统级别与SoTA进行比较,通过将Focal Base中的隐藏维度从128增加到196来构建Focal Large模型,同时保持所有其他维度相同,类似于Swin Transformers。为了获得最佳性能,通常的做法是在ImageNet-22K上进行预处理,然后将模型转移到下游任务。然而,由于资源有限,使用预训练的Swin Transformer检查点2部分初始化了本文的模型,因为本文的网络架构与Swin Transformers类似,除了窗口移动和焦点自我关注。
具体而言,本文重用Swin Large模型中的参数,但删除了窗口移位操作,并在方程(1)中随机初始化我们自己的窗口池层,在方程(3)中局部到全局的相对位置偏差。然后,在ImageNet-1K上微调本文的模型,以学习特定于焦点的参数。生成的模型被用作主干,并进一步对对象检测和语义分割任务进行微调。
与SoTA检测系统的比较。
对于COCO上的对象检测,首先跟随Swin Transformer使用HTC作为检测方法,因为当使用Swin Transform作为主干时,它报告了COCO检测上的SoTA性能。为了公平比较,还使用了软NMS、instaboost和多尺度训练策略,短边在范围内[400,1400],而长边不超过1600。使用AdamW[45]训练模型,基础学习率为1e-4,权重衰减为0.1。
该模型使用标准3×计划进行训练。COCO验证集和测试开发上的盒和掩模mAPs如下表所示。显示了单尺度评估和多尺度评估结果。本文的具有多尺度测试的Focal Large模型在迷你值集上实现了58.1盒mAP和50.9掩模mAP,这优于swin transformer中报道的Swin Large的数字。在测试开发集上评估本文的模型时,它实现了58.4盒mAP和51.3掩模mAP,这略优于Swin Transformer。
注意,因为本文的模型不包括Swin Transformer在最后阶段使用的全局自我关注层,所以它具有更小的模型大小和更少的FLOP。最近,DyHead在COCO上实现了新的SoTA,与Swin Large结合使用。本文用Focal Large模型替换Swin Large模型,并使用与[Dynamic head]中相同的2×训练计划。
本文还报告了mini-val和test-dev的盒mAPs。本文的Focal Large在这两个指标上都有明显的改进,在这两项指标上都达到了新的SoTA。
与COCO对象检测和实例分割的最新方法进行比较。这些数字记录在5K值集和测试数据上。增强HTC(由HTC++表示)和DyHead被用作检测方法。†表示多尺度评估。
与SoTA语义分割系统的比较。
进一步使用预训练的FocalLarge模型作为语义分割的主干。遵循与[swin transformer]中相同的设置。具体来说,使用输入图像大小640×640,并以16的批量大小训练160k次迭代的模型。将初始学习设置为6e-5,并使用多项式学习率衰减。权重衰减设置为0.01。
对于多尺度评估,使用与先前工作中相同的缩放比例[0.5、0.75、1.0、1.25、1.5、1.75]。在上文表中,看到Focal Large的性能明显优于Swin Large。在单尺度和多尺度评估中,Focal Large具有超过1点的mIoU改进,这为ADE20K上的语义分割提供了一种新的SoTA。这些令人鼓舞的结果验证了本文提出的焦点自我关注机制在捕获密集视觉预测任务所需的长距离依赖性方面的有效性。
本文进行消融研究,从不同方面检查模型的容量。Focal Tiny被用于图像分类和物体检测任务。
不同窗口大小的影响。
The necessity of window shift.
在[swin transformer]中,作者提出了窗口移动操作,以实现两个连续层之间的跨窗口交互。相比之下,本文的Focal Transformer中的视觉标记始终可以与其他窗口中的标记进行精细和粗糙的通信。一个自然的问题是,在本文的《焦点transformer》中添加窗口切换是否能进一步带来改进。为了研究这一点,从Swin Transformer中删除了窗口偏移,同时将其添加到Focal Transformer中。如下表所示,Swin Transformer在去除窗移后表现出严重的退化。然而,本文的Focal Transformer在分类任务上甚至受到了伤害。这些结果表明,在本文的模型中,窗口偏移不是必要的因素。因此,本文的模型可以消除Swin Transformer中的约束,即在每个阶段中都应该有偶数个层用于替代窗口移动操作。
窗口偏移(W-shift)对Swin Transformer和Focal Transformer的影响。使用小型模型。
Contributions of short- and long-range interaction.
本文试图在《Focal Transformers》中分解短程细晶粒和远程粗晶粒相互作用的影响。我们将原始的Focal Tiny模型简化为:
a)Focal TinyWindow仅在每个窗口内执行关注;
b) Focal Tiny Local参与额外的细粒度周围tokens,
c)FocalTiny Global参与额外的粗粒度挤压tokens。
使用与Focal Tiny相同的设置来训练他们,并使用Mask R-CNN 1×时间表报告他们在图像分类和对象检测方面的表现。如下图所示,Focal Tiny Window在两种图像分类上都显著下降(82.2→80.1)和物体检测(44.8→38.3). 这是预期的,因为在每个Transformer层,窗口之间的通信完全被切断。
在启用局部细粒度或全局粗粒度交互作用(中间两列)后,观察到显著的跳跃。尽管它们从不同的路径中促进了更丰富的交互,但最终它们都使模型能够捕获更多的上下文信息。当我们将它们结合在一起时,观察到这两项任务的进一步改进。这意味着这两种类型的交互是相互补充的,它们都应该在我们的模型中启用。另一个观察是,添加长距离标记可以为图像分类带来比对象检测更多的相对改进,反之亦然。怀疑像对象检测这样的密集预测更多地依赖于细粒度的局部上下文,而图像分类更倾向于全局信息。
通过分别添加局部、全局和两种交互作用,消融Focal Tiny模型。蓝色条用于图像分类,橙色条表示对象检测性能。本地和全局交互对于获得良好的性能至关重要。
Model capacity against model depth.
考虑到本文的集中注意力在每个Transformer层都会促进局部和全局交互,一个问题是,它是否需要更少的层来获得与没有全局交互的层类似的建模能力。为了回答这个问题,通过将Swin Tiny和Focal Tiny中第3阶段的transformer层数从最初的6层减少到4层和2层来进行实验。在下表中,显示了每个变体的性能和模型复杂性。首先,可以发现本文的模型在相同深度下始终优于Swin模型。
更重要的是,使用更少的两层,本文的模型实现了与Swin Transformer相当的性能。特别是,具有4层的Focal Tiny在图像分类上达到了81.4,这甚至优于具有6层的原始Swin Tiny模型(以灰色单元格突出显示)。虽然没有为Focal Transformer探索不同的架构,但这些结果表明,可以找到更高效、更有效的架构。
模型深度变化的影响。逐渐将第三阶段的transformer层数从最初的6层减少到4层,再减少到2层。这显然会影响性能,但本文的Focal Transformers的下降速度比Swin transformer慢得多。
在本文中,提出了焦点自我关注,以实现视觉transformer中有效的局部-全局交互。与之前的工作不同,它在细粒度上执行局部自我关注,在粗粒度上执行全局自我关注,这导致以合理的成本在短期和长期内捕获更丰富的上下文。通过将其插入多尺度transformer架构,本文提出了Focal Transformers,这表明了它在图像分类、对象检测和分割方面优于SoTA方法。利用这些广泛的实验结果,提出的焦点关注被显示为一种通用方法,用于为各种视觉任务建模视觉transformer中的局部全局交互。
Limitations and future work.
尽管广泛的实验结果表明,本文的焦点自我关注可以显著提高图像分类和密集预测任务的性能,但它确实引入了额外的计算和内存成本,因为每个查询令牌除了需要关注本地令牌外,还需要关注粗化的全局令牌。开发一些实用或方法技术以降低成本是必要的,以使其更适用于现实场景。
本文对上表中所用transformer层数的消融研究揭示了通过减少transformer层数来降低成本的潜在途径。然而,本文只是触及表面,还需要对这方面进行进一步的研究。在FocalTransformers中,本文选择了多尺度架构作为基础,以便它可以用于高分辨率预测任务。然而,本文相信聚焦机制也适用于单片视觉transformer和视觉和语言领域的transformer。本文认为这是未来进一步探索的一个有希望的方向。
本文在下表中对之前的工作进行了详尽的比较。将本文的方法与基于CNN和基于Transformer的方法进行了比较。本文根据两个属性将不同的方法分类为组:
比例–模型中要素特征图的比例。它可以是单一尺度或多尺度。在单比例模型中,所有要素特征图在不同阶段具有相同的大小。对于多尺度模型,通常有不同分辨率的特征图。
局部性–模型中操作的局部性。它可以是全局的,也可以是本地的。局部操作可以是CNN模型中的卷积层或进行局部自我关注的变换层。然而,标准自我关注等全局操作通过从所有输入中收集信息来生成输出特征图。
基于这一标准,所有CNN模型都是自然多尺度的,因为它们的特征图大小在不同阶段逐渐减小。最近,许多工作试图通过引入挤压和激励(SE)层、通道关注层甚至自我关注层[Attention augmented convolutional networks,Bottleneck transformers for visual recognition],将全局运营整合到神经网络中。如本文所见,局部和全局操作的组合显著提高了图像分类的性能。特别是,BotNet-S1110以中等数量的参数(61.6M)实现了82.8的顶级精度。
相反,transformer本质上表现出全局自我关注,通过这种关注,每个视觉符号都可以与所有其他符号交互。即使没有像CNN那样的多尺度设计,许多基于Transformerbased的工作,如TNT、DeepViT和CaiT,也能以类似的模型大小和计算成本实现优于CNN模型的性能。为了适应高分辨率特征图,最近的一些工作用更有效的局部自关注代替了全局自关注,并在图像分类方面表现出可比的性能,同时在密集预测任务(如对象检测和语义分割)方面取得了非常有希望的结果。
在本文中,提出了焦点注意,这是第一个以有效的方式将全局自我注意和局部自我注意相结合的方法。用本文的焦点自我关注代替全局自我关注或局部自我关注,取得了比这两者更好的表现。这些结果以及通过局部和全局计算增强的CNN模型表明,结合局部和全局交互比任何一种都更有效。在表中,还报告了不同方法的速度。使用[swin transformer]提供的相同脚本,在批量大小为64的单个Tesla-V100上运行测试。
因此,本文的Focal Transformer运行速度较慢,尽管其FLOP与Swin Transformer相似。这主要是由于两个原因:1)引入了全局粗粒度关注,并引入了额外的计算;2) 尽管我们将注意力集中在窗口上,但会发现提取本地窗口周围的标记和整个特征图上的全局标记是非常耗时的。
为了完整起见,本文在下表中报告了使用1x时间表训练的RetinaNet和Mask R-CNN的完整指标。正如本文所看到的,本文的Focal Transformers在所有指标上始终优于之前的作品,包括最先进的Swin Transformers。观察到,与之前的最佳模型相比,本文使用1x计划训练的模型通常比3x计划获得更多的增益(RetinaNet和Mask R-CNN分别为+1.2 v.s.+0.8和+1.0 v.s.+0.7盒mAP)。这表明本文的模型与以前的工作相比具有更快的学习收敛性。与基于局部注意力的方法(例如Swin Transformer)相比,集成远程交互可以帮助捕获更多的视觉依赖性,从而帮助模型更快地学习。
学习速度比较。正如前面简要讨论的,本文的模型显示了在对象检测任务上更快的学习速度。在下图中,展示了本文的模型和Swin Transformers在图像分类任务中的最高验证精度。因此,本文的Focal Transformers也有更快的学习速度。例如,Focal Tiny在第100个epoch具有75.7%的前1精度,而Swin Tiny具有73.9%的前1准确性。同样,Focal Small在第100个epoch达到78.3%,比Swin Small高2.0个百分点。即使是基础模型,这一差距仍会持续很长时间,直到训练结束。本文将这种更快的学习速度归因于本文的集中注意力机制引入的长距离互动,因为它可以在一开始就帮助捕获全局信息。
不同令牌类型的注意力得分。在主要意见书中,已经表明,局部和全局的关注都很重要。在这里,研究了在每一层发生了多少局部和全局交互。使用在ImageNet-1K上训练的Focal Tiny作为目标,在下图中显示了三种类型标记的合计注意力得分:
1)窗口内的局部标记;
2) 窗口周围的本地令牌;
3)窗口池之后的全局令牌。
为了计算这些分数,本文对所有局部窗口取平均值,然后对所有头部取平均值。最后,总结了属于上述三种tokens的注意力得分。这些注意力得分在整个ImageNet-1K验证集上进一步平均。
在下图中,可以看到一个明显的趋势,即当关注到上层时,全局注意力变得更强,而窗口内的局部注意力逐渐减弱。这表明:
局部到全局相对位置偏差。进一步检查了我们的模型对等式(3)中引入的局部到全局相对位置偏差的学习结果。这种相对位置偏差是一个很好的指标,表明该模型如何将注意力集中在本地和全局区域。在Focal Transformers中,四个阶段的焦点区域大小分别为(7,5,3,1)和(15,13,9,7),用于图像分类和对象检测。
在下图中,分别可视化了在ImageNet-1K和COCO上训练的Focal Tiny模型中所有头部和所有层的学习相对位置偏差矩阵。令人惊讶的是,尽管所有这些都是随机初始化的,但这些相对位置偏差呈现出一些有趣的模式。
在图像分类模型的第一阶段,所有三个头部都学会了将更少的注意力放在第一层的中心窗口上,而将更多的注意力集中在第二层的中心。然而,对于对象检测模型,它们是交换的,以便第一层更加关注中心部分,而第二层学习从周围提取全局上下文。因此,这两个层相互协作以提取本地和全局信息。
在两个模型的第二阶段,观察到两个连续层同时具有局部和全局交互作用的类似性质。与图像分类模型相比,目标检测模型更加关注中心区域。怀疑这是因为对象检测需要在局部区域提取更细粒度的信息来预测对象类别和位置。
在第三阶段,可以看到,这两个模型都充分混合了局部和全局关注。令人惊讶的是,尽管是随机初始化的,但一些头部会自动学习忽略中心窗口池令牌,这与中心窗口内的细粒度令牌有很大冗余。