Focal Self-attention for Local-Global Interactions inVision Transformers

1. 背景介绍:Transformer 的成功和特点。

最近,Vision Transformer 及其变体在各种计算机视觉任务中显示出了巨大的前景。通过自注意力捕捉短距离和长距离视觉依赖的能力是成功的关键。

2. 研究动机:Transformer 在 CV 中的问题,现有方法怎么解决的,但这些方法又存在什么问题。

但它由于二次方计算复杂度,特别是对高分辨率视觉任务 (例如,目标检测) 提出了巨大挑战。最近的许多工作都试图通过应用粗粒度的全局注意力或细粒度的局部注意力来降低计算和内存成本并提高性能。然而,这两种方法都削弱了多层变压器原始自注意机制的建模能力,从而导致次优解决方案。

3. 研究方法:核心思想,具体方法,应用范畴。

本文提出了 focal self-attention,这是一种结合了细粒度局部交互和粗粒度全局交互的新机制

在这个新的机制中,每个 token 以细粒度关注其最近的周围 token,以粗粒度关注其远的周围 token,从而可以有效地捕获短期和长期的可视依赖关系

基于焦点自注意,提出了 focal Transformer,在一系列公共图像分类和目标检测基准上实现了优于先进的 (SoTA) ViT 的性能。

4. 实验结果:在图像分类,目标识别,语义分割对结果。

图像分类方面,Focal Transformer 模型的中等尺寸为 51.1M,较大尺寸为 89.8M,在 224 × 224 的 ImageNet 分类精度上分别达到 83.5% 和 83.8% 的 Top-1 精度。

目标检测方面,当 Focal Transformer 被用作 backbone 时,在 6 种不同的目标检测方法上,Focal Transformer 比当前的 SoTA Swin Transformer [44]实现了一致和实质性的改进。

语义分割方面,最大的 Focal Transformer 在  COCO mini-val/test-dev上产生58.7/58.9 box mAPs 和 50.9/51.3 mask mAPs,在 ADE20K上产生 55.4 mIoU,在三个最具挑战性的计算机视觉任务上创建新的SoTA。

ViT 大趋势:

目前,Transformer 已成为自然语言处理 (natural language processing, NLP) 中流行的模型体系结构[22,6]。鉴于其在自然语言处理中的成功,人们越来越努力地将其适应于计算机视觉 (CV)[48,51]。自 Vision Transformer (ViT) 首次展示其前景以来,见证了在图像分类,目标检测和语义分割等方面的全 Transformer 模型的蓬勃发展。除了这些静态图像任务,它还应用于各种时间理解任务,如动作识别,目标跟踪,场景流估计。

Focal Self-attention for Local-Global Interactions inVision Transformers_第1张图片

 

背景及动机:分为三个层次

1. ViT 介绍:在 Transformers 中,自注意力是其独特于广泛使用的卷积神经网络的关键组成部分。在每个 Transformer 层,它支持不同图像区域之间的全局内容相关交互,以建模短距离和长距离依赖关系。通过可视化,作者确实观察到 Transformer 学会了同时关注局部环境和全局语境 (见图1左侧)。

2. 关键问题:然而,当涉及到用于密集预测 (如目标检测或分割) 的高分辨率图像时,由于特征地图中网格数量的二次方计算成本,全局和细粒度的自注意力就变得不那么重要了。

3. 研究现状:最近的研究要么利用粗粒度的全局自注意 [63,67],要么利用细粒度的局部自注意[44,80,59] 来减少计算负担。然而,这两种方法都削弱了最初的完全自注意力的能力,即同时建模短距离和长距离视觉依赖关系的能力,如图 1 左边所示。

方法描述:

本文提出了一种新的自注意力机制来捕获高分辨率输入的 Transformer 层中的局部和全局交互。考虑到距离较近的区域之间的视觉依赖性往往强于距离较远的区域之间的视觉依赖性,本文的方法只在局部区域执行细粒度的自注意力,而在全局区域执行粗粒度的自注意力。如图 1 右侧所示,feature map 中的 query token 以最细的粒度与其周围的环境保持一致。但是,当它到达更远的区域时,它会注意 summarized tokens 以捕获粗粒度的可视依赖关系。区域离 query 越远,粒度就越粗。结果表明,与完全自注意力机制相比,该方法可以有效覆盖整个高分辨率特征图,同时在自注意力计算中引入的 token 数量要少得多。因此,它能够有效地捕获短距离和长距离的视觉依赖关系。这种新机制称之为 焦点自注意力 focal self-attention,因为每个 token 都以 focal 的方式关注其它 token。根据提出的 focal self-attention,本文开发一系列 Focal Transformer 模型,通过

1) 利用多尺度结构保持一个合理的计算成本高分辨率图像,和

2) 分裂的特征映射到多个窗口,其中 token 共享相同的环境,而不是对每个 token 进行集中的自注意力。

实验结果:

通过对图像分类、目标检测和分割的综合实证研究,验证了该方法的有效性。结果表明,Focal Transformer 在具有相似的模型尺寸和复杂性情况下,在各种设置中始终优于 SoTA Vision Transformer 模型。

参数为 51.1M 的 small Focal Transformer 模型在 ImageNet-1K 上可以达到 83.5% 的 top-1 精度,而参数为 89.8M 的基本模型可以达到 83.8% 的 top-1 精度。 Focal transformer 在六种不同的目标检测方法中始终优于 SoTA Swin transformer[44]。 对象检测和实例分割,Largest Focal Transformer 模型在 COCO 测试开发上实现了 58.9 box mAP 和51.3 mask mAP。用于语义分割,在 ADE20K 上实现了 55.4 mIoU。
Focal Self-attention for Local-Global Interactions inVision Transformers_第2张图片

 

整体结构描述:

从 embedding 获得到 focal Transformer block 堆叠模式

1. 为了适应高分辨率视觉任务,本文的模型架构与 [63,80,44] 共享类似的多尺度设计,即如图 2 所示,首先将图像分割成大小为 4 × 4 的 patches,得到 H/4 × W/4 个视觉 token,尺寸为 4 × 4 × 3。

2. 然后,使用一个由滤波器大小和步幅都为 4 的卷积层组成的 patch embedding 层,将这些 patch 投射到维数为 d 的隐藏特征中。

3. 给定这个空间特征映射,将其传递到 focal Transformer block 的四个阶段。在每个阶段i∈{1,2,3,4},focal Transformer block 由 Ni focal Transformer 层组成。

4. 在每个阶段之后,使用另一个 patch embedding layer 将 feature map 的空间大小减少 2 倍,同时feature dimension 增加 2 倍。

5. 对于图像分类任务,取最后一阶段输出结果的平均值,然后将其发送到分类层。

6. 对于目标检测,最后 3 个或所有 4 个阶段的特征映射被送入检测器头部,这取决于使用的特定检测方法。

7. 模型容量可以通过改变输入特征维数 d 和每个阶段 {N1, N2, N3, N4} 的 focal Transformer 层数来定制。


标准的自注意力可以捕获细粒度的短距离和长距离交互,在高分辨率 feature map 上进行注意计算时,它的计算成本较高。以图 2 中的阶段 1 为例。对于大小为 H/4 × W/4 × d 的特征图,自注意力的复杂度为 O((H/4 × W/4)^2 d),考虑最小 (H, W) 为 800 甚至更大的目标检测,导致时间和内存成本的爆炸。在接下来的文章中,将描述如何通过提出的 focal self-attention 来解决这个问题。
Focal Self-attention for Local-Global Interactions inVision Transformers_第3张图片

 本文提出了 focal self-attention,使 Transformer 层可扩展到高分辨率输入。本文不建议在细粒度上参加所有的 token,而是建议只在局部加入细粒度 token,而在全局上加入 summarized token。因此,它可以覆盖与标准的 self-attention 一样多的地区,但成本要低得多。图 3 展示了标准 self-attention 的接受域区域和本文方法逐渐添加更多被注意 token 时的 focal self-attention 区域。对于一个 query 位置,当对其远处的环境使用逐渐粗粒度的方法时,focal self-attention 可以有更大的接受域。

focal self-attention 中存在的新问题

本文的 focal 机制能够以更少的时间和记忆成本实现长距离的 self-attention,因为它只关注较少数量的周围 (总结) token。然而,在实践中,为每个 query 位置提取周围的 token 会耗费大量的时间和内存,因为需要为所有能够访问它的 query 复制每个 token。这个实际问题已经被许多以前的作品注意到了,常见的解决方案是将输入特征映射划分到窗口中。在这些工作的启发下,本文诉诸于在窗口层面进行 focal self-attention。对于 x ∈ R^{M×N×d} 空间大小为 M×N 的特征映射,首先将其划分为一个大小为 sp × sp 的窗口网格。然后,寻找每个窗口的周围环境,而不是单个 token。下面将详细阐述窗口式的 focal self-attention。
Focal Self-attention for Local-Global Interactions inVision Transformers_第4张图片

Focal Self-attention for Local-Global Interactions inVision Transformers_第5张图片Sub-window pooling

池化操作:

假设输入特征映射 \small x\in \mathbb{R}^{M\times N\times d},其中 M×N 为空间维数,d 为特征维数。为所有的 L 层执行子窗口池化。对于 focal 级别 l,首先将输入特征映射 x 分割成大小为 \small s^l_ w×\small s^l_ w 的子窗口网格。然后使用一个简单的线性层 \small f ^l _p 对子窗口进行空间池化,即公式(1)。

Focal Self-attention for Local-Global Interactions inVision Transformers_第6张图片

Focal Self-attention for Local-Global Interactions inVision Transformers_第7张图片

 

你可能感兴趣的:(model,Transformer,计算机视觉,深度学习,目标检测)