VISION TRANSFORMER ADAPTER FORDENSE PREDICTIONS
总结
提出了一种新范式: 开发了 Vision Transformer Adapter (ViT-Adapter),通过引入无预训练的适配器将视觉特定的归纳偏差(例如局部空间信息)引入普通 ViT,适应密集预测任务。
保留 ViT 灵活性: 与设计专门用于视觉任务的视觉特定模型不同,ViT-Adapter 保留了普通 ViT 的通用性,使其可以利用图像、多模态数据进行预训练,适应不同任务。
模块设计: ViT-Adapter 包括三个关键模块:空间先验模块、空间特征注入器和多尺度特征提取器,分别用于捕捉局部语义、将空间特征注入 ViT、以及重建多尺度特征,弥补 ViT 在密集预测任务中的缺点。
性能提升: 在目标检测、实例分割和语义分割任务上,ViT-Adapter 显著提升了普通 ViT 的性能,并在 COCO 等基准上与最先进的视觉特定转换器(如 Swin Transformer)相当甚至超越。
多模态预训练的优势: ViT-Adapter 从多模态预训练中获益,例如通过预训练 ViT 使用图像、文本、视频等数据,表现出强大的密集预测能力。
可替换的注意力机制: 文章还展示了 ViT-Adapter 的通用性,其中的注意力机制是可替换的,采用了稀疏注意力作为默认配置,并可根据需要进一步优化。
ABSTRACT
这项工作研究了一种简单而强大的视觉转换器 (ViT) 密集预测任务适配器。与最近将视觉特定归纳偏差纳入其架构的高级变体不同,由于先前的假设较弱,普通 ViT 在密集预测上表现不佳。为了解决这个问题,我们提出了 ViT-Adapter,它允许普通 ViT 实现与视觉特定转换器相当的性能。具体来说,我们的框架中的主干是一个简单的 ViT,可以从大规模多模态数据中学习强大的表示。在转移到下游任务时,使用无预训练的适配器将与图像相关的归纳偏差引入模型中,使其适用于这些任务。我们在目标检测、实例分割和语义分割等多个密集预测任务上验证了ViT-Adapter。值得注意的是,在不使用额外检测数据的情况下,我们的 ViTAdapter-L 在 COCO testdev 上产生了最先进的 60.9 框 AP 和 53.0 掩码 AP。我们希望 ViT-Adapter 可以作为视觉特定转换器的替代方案,并促进未来的研究。代码和模型将在 https://github.com/czup/ViT-Adapter 发布。
图 1:以前的范式与我们的范式。(a) 以前的范式设计了基于视觉的模型,并通过监督或自我监督学习在大规模图像数据集上进行预训练,然后在下游任务上微调它们。(b) 我们提出了一个无预训练的适配器,以缩小普通ViT (Dosovitskiy et al., 2020)和视觉特定变压器(如Swin (Liu et al., 2021b))之间的性能差距,用于密集预测任务。与之前的范式相比,我们的方法保留了 ViT 的灵活性,因此可以从高级多模态预训练中受益。
1 INTRODUCTION
监督训练是一种依赖于带有明确标签的训练数据进行模型训练的方法。模型通过学习输入数据与标签之间的映射关系,来预测新的未见过的数据的标签。
自我监督训练是一种无需明确标签的数据训练方法。模型通过利用数据的内在结构或属性生成伪标签,进而进行训练。这类方法通常通过从未标注数据中构造出标签进行学习。
最近,transformers在广泛的计算机视觉领域取得了显著的成功。得益于注意机制的动态建模能力和远程依赖,各种视觉转换器(Dosovitskiy等人,2020;Chen等人,2021年;Han等人,2021年;Li等人,2021c;Wu等人,2022b)在许多计算机视觉任务中很快上升,如目标检测和语义分割,超过了CNN模型,达到了最先进的性能。这些模型主要分为两类,即普通 ViT (Dosovitskiy et al., 2020; Touvron et al., 2021) 及其分层变体 (Dong et al., 2021; Liu et al., 2021b;王等人,2021; 2022a)。一般来说,后者可以产生更好的结果,并且被认为通过使用局部空间操作将特定于视觉的归纳偏差引入它们的架构中。
尽管如此,普通的 ViT(即 vanilla Transformer)仍然有一些不可忽略的优势。一个典型的例子是多模态预训练(Zhu et al., 2021; 2022; Wang et al., 2022b)。transformers源于自然语言处理 (NLP) 领域,没有输入数据的假设。配备不同的tokenizers,例如patch embedding(Dosovitskiy等人,2020)、3Dpatch embedding(Liu等人,2021c)和token embedding(Vaswani等人,2017),普通Transformer,如普通ViT,可以使用大量的多模态数据进行预训练,包括图像、视频和文本,这鼓励模型学习语义丰富的表示。然而,与视觉特定的Transformer相比,普通ViT在密集预测中具有决定性的缺陷。缺乏与图像相关的先验知识会导致收敛速度较慢,性能较低,因此普通VITS很难与视觉特定的Transformer竞争(Huang等人,2021b;Xie等人,2021;Wang等人,2022a)在密集预测任务上。受 NLP 领域的adapters (Houlsby et al., 2019; Stickland & Murray, 2019) 的启发,这项工作旨在开发一种adapters,以缩小普通 ViT 和特定于视觉的主干之间的性能差距密集预测任务。
图 2:使用 Mask R-CNN 在 COCO val2017 上的对象检测性能。我们看到,所提出的 ViT-Adapter 对普通 ViT 带来了显着的改进。* 使用来自 (Zhu et al., 2021) 的多模式预训练 ViT 装饰。在 ImageNet-22K 上预训练的主干用 † 标记,其他ImageNet-1K。
为此,我们提出了 Vision Transformer Adapter (ViT-Adapter),它是一种无需预训练的额外网络,可以在不修改原始架构的情况下有效地将普通 ViT 适应下游密集预测任务。具体地说,为了将视觉特定的归纳偏差引入到普通的VIT中,我们为VIT-Adapter设计了三个定制的模块,包括(1)用于从输入图像中捕获局部语义(空间先验)的空间先验模块;(2)空间特征注入器,用于将空间先验合并到VIT中;(3)多尺度特征抽取器来重建密集预测任务所需的多尺度特征。
如图 1 所示,与之前在大规模图像数据集(例如 ImageNet (Deng et al., 2009))上预训练然后在其他任务上进行微调的范式相比,我们的范式更加灵活。在我们的框架中,骨干网是一个通用提出的模型(例如,普通ViT),它不仅可以使用图像进行预训练,还可以使用多模态数据进行预训练。对于密集预测任务的迁移学习,我们使用随机初始化的适配器将与图像相关的先验知识(归纳偏差)引入预训练的主干,使模型适合这些任务。通过这种方式,使用 ViT 作为主干,我们的框架实现了与 Swin (Liu et al., 2021b) 等特定视觉转换器相当或更好的性能。
我们的主要贡献如下:
我们探索了一种新的范式,将视觉特定的归纳偏差引入到普通的ViT中。它帮助ViT实现了与最近的transformer变体(Liu等人,2021b;Wang等人,2022a)相当的性能,具有常规的ImageNet预训练,并进一步受益于多模态预训练。
我们设计了一个空间先验模块和两个特征交互操作,在不重新设计ViT架构的情况下注入图像先验。它们可以补充缺失的局部信息,并为密集预测任务重新组织细粒度的多尺度特征。
我们在多个具有挑战性的基准上评估ViT-Adapter,包括COCO (Lin et al., 2014)和ADE20K (Zhou et al., 2017)。如图 2 所示,与公平预训练策略下的现有技术相比,我们的模型始终如一地实现了更好的性能。例如,当仅使用 ImageNet-1K 预训练时,ViT-Adapter-B 在 COCO val 上报告了 49.6 个框 AP,比 Swin-B 高出 1.0 个点。得益于多模态预训练(Peng et al., 2022),我们的 ViT-Adapter-L 产生 60.9 框 AP,这是 COCO test-dev 上的最佳记录,无需对 Objects365 等额外检测数据进行训练(Shao et al., 2019)。
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
图 3:ViT-Adapter 概述和两种相关方法。Li等人(2021b)和ViTDet (Li et al., 2022b)构建简单的特征金字塔,使普通ViT适应目标检测,只考虑任务先验。不同的是,我们的适配器利用了任务先验和输入图像。
2 RELATED WORK
Transformers.近年来,Transformers在自然语言处理、计算机视觉和语音识别等多种模式中主导了各种任务。vanilla Transformer (Vaswani et al., 2017) 最初被提出用于机器翻译,仍然是当今 NLP 任务的最先进架构。ViT (Dosovitskiy et al., 2020)是第一个在不进行太多修改的情况下将普通Transformers推广到图像分类任务的工作。PVT (Wang et al., 2021) 和 Swin (Liu et al., 2021b) 通过合并来自 CNN 的金字塔结构引入了更多特定于视觉的归纳偏差。之后,Conformer (Peng et al., 2021)提出了第一个将CNN与Transformers相结合的双网络。最近,BEiT (Bao et al., 2022) 和 MAE (He et al., 2021) 将 ViT 的范围扩展到具有蒙版图像建模 (MIM) 的自监督学习,展示了普通 ViT 架构的强大潜力。许多作品(Li et al., 2021b; Zhu et al., 2021; 2022; Wang et al., 2022b)表明,设计视觉特定模型是一个重要的方向,但通用架构(例如普通 ViT)对于掩码数据建模和多模态预训练更加灵活和重要。因此,我们开发了一个无预训练的适配器,在不修改ViT的体系结构的情况下引入图像先验,保持其灵活性,享受先进的多模态预训练。
Decoders for ViT.密集预测的架构通常遵循编码器-解码器模式,其中编码器生成丰富的特征,解码器聚合并将它们转换为最终预测。最近,受ViT全局接受域的启发,许多工作将其作为编码器和设计特定于任务的解码器。SETR (Zheng et al., 2021)是第一个采用ViT作为骨干的工作,并开发了几个CNN解码器进行语义分割的工作。Segmenter (Strudel et al., 2021) 还将 ViT 扩展到语义分割,但不同之处在于它配备了基于转换器的解码器。DPT (Ranftl et al., 2021) 通过 CNN 解码器进一步将 ViT 应用于单目深度估计任务,并产生了显着的改进。总之,这些工作通过设计模态和特定于任务的解码器来提高 ViT 的密集预测性能,但仍然是 ViT 单尺度和低分辨率表示的弱点。
Adapters。迄今为止,adapters已广泛用于 NLP 领域。PALs (Stickland & Murray, 2019) 和 Adapters (Houlsby et al., 2019) 在transformer编码器中引入新模块进行特定任务微调,使预训练模型快速适应下游 NLP 任务。在计算机视觉领域,已经提出了一些用于增量学习的适配器(Rosenfeld & Tsotsos,2018)和域适应(Rebuffi 等人,2017; 2018)。随着 CLIP (Radford et al., 2021) 的出现,许多基于 CLIP 的适配器 (Gao et al., 2021; Sung et al., 2021; Zhang et al., 2021) 被提出来将预训练的知识转移到零样本或少样本下游任务。最近,李等人。 (2021b) 和 ViTDet (Li et al., 2022b) 采用一些上采样和下采样模块来适应普通 ViT 进行目标检测,如图 3(a) 所示。然而,在常规训练设置(即应用 ImageNet 监督预训练并对 36 个 epoch 进行微调)下,它们的检测性能仍然不如最近的模型(Chu et al., 2021b; Dong et al., 2021; Wang et al., 2022a; Wu et al., 2022b),很好地结合了图像先验。因此,为ViT设计一个强大的密集预测任务适配器仍然具有挑战性。
图 4:ViT-Adapter 的整体架构。(a) ViT,其编码器层被划分为 N(通常为 N = 4)相等的块以进行特征交互。(b) 我们的 ViT-Adapter,它包含三个关键设计,包括 © 用于从输入图像中提取局部空间上下文的空间先验模块,(d) 空间特征注入器,用于将空间先验引入 ViT,以及 (e) 多尺度特征提取器,用于从 ViT 的单尺度特征中重新组织多尺度特征
3 VISION TRANSFORMER ADAPTER
3.1 OVERALL ARCHITECTURE
如图 4 所示,我们的模型可以分为两部分。第一部分是普通ViT (Dosovitskiy et al., 2020),它由一个补丁嵌入和L个变压器编码器层组成(见图4(a))。第二部分是提出的ViT-Adapter,如图4(b)所示,它包含(1)空间先验模块,用于从输入图像捕获空间特征,(2)空间特征注入器将空间先验注入到ViT中,(3)多尺度特征提取器,从ViT的单尺度特征中提取层次特征。
对于ViT,首先将输入图像输入到补丁嵌入中,将图像分为16 × 16个不重叠的patch。之后,这些补丁被展平并投影到 D 维标记,特征分辨率降低到原始图像的 1/16。然后,这些与位置嵌入添加的标记通过 L 个编码器层。
对于 ViT-Adapter,我们首先将输入图像输入到空间先验模块中。将收集三个目标分辨率的D维空间特征(即1/8、1/16和1/32)。然后,这些特征图被展平并连接为特征交互的输入。具体来说,给定交互次数 N(通常为 N = 4),我们将 ViT 的转换器编码器平均拆分为 N 个块,每个块包含 L/N 个编码器层。对于第 i 个块,我们首先通过空间特征注入器将空间先验 Fispin 注入到块中,然后通过多尺度特征提取器从块的输出中提取层次特征。在N个特征交互后,我们得到了高质量的多尺度特征,然后将特征分为1/8、1/16和1/32三个目标分辨率。最后,我们利用2 × 2转置卷积对1/8尺度特征图进行上采样来构建1/4尺度的特征图。通过这种方式,我们获得了类似于 ResNet (He et al., 2016) 的特征金字塔,可用于各种密集预测任务。
3.2 SPATIAL PRIOR MODULE
最近的研究(Wang et al., 2022a; Wu et al., 2021; Fang et al., 2022; Park & Kim, 2022)表明卷积可以帮助转换器更好地捕捉局部空间信息。受此启发,我们引入了空间先验模块 (SPM)。它旨在对与补丁嵌入层平行的图像的局部空间上下文进行建模,从而不改变ViT的原始架构。
如图 4© 所示,采用了从 ResNet (He et al., 2016) 借用的标准卷积词干,它由三个卷积和最大池化层组成。然后,我们使用一堆 stride-2 3×3 卷积来加倍通道数并减少特征图的大小。最后,最后应用几个 1×1 卷积将特征图投影到 D 维。这样,我们得到了一个特征金字塔{F1, F2, F3},其中包含分辨率为1/8、1/16和1/32的d维特征向量。然后,我们将这些特征映射扁平化并拼接成特征标记,作为特征交互的输入。
3.3 FEATURE INTERACTION
由于先验假设较弱,与视觉特定的变压器相比,普通ViT在密集预测任务上的性能次优(Chu等人,2021a;Dong等人,2021;Liu等人,2021b;Wang等人,2022a)。为了缓解这个问题,我们提出了两个特征交互模块来桥接我们的 SPM 和 ViT 的特征图。具体来说,这两个模块主要基于交叉注意力,即空间特征注入器和多尺度特征提取器。
Spatial Feature Injector.如图4(d)所示,该模块用于将空间先验注入到ViT中。具体来说,对于 ViT 的第 i 个块,我们将输入特征 Fi vit 作为查询,空间特征 Fi sp 作为键和值。我们使用交叉注意将空间特征F i sp注入到输入特征F i vit中,可以写成Eqn。1.
其中norm(·)为LayerNorm (Ba et al., 2016),注意层Attention(·)建议使用稀疏注意。此外,我们应用一个可学习的向量 γi 来平衡注意力层的输出和输入特征 F i vit,初始化为 0。这种初始化策略确保 Fivit 的特征分布不会由于空间先验的注入而大幅修改,从而更好地利用 ViT 的预训练权重。
Multi-Scale Feature Extractor。在将空间先验注入到ViT之后,我们通过将F i vit传递给第i块的编码器层来获得输出特征Fi+1 vit。然后,我们应用由交叉注意力层和前馈网络 (FFN) 组成的模块来提取多尺度特征,如图 4(e) 所示。这个过程可以表述为:
3.4 ARCHITECTURE CONFIGURATIONS
我们为 4 种不同大小的 ViT 构建了我们的 ViT-Adapter,包括 ViT-T、ViT-S、ViT-B 和 ViTL。对于这些模型,我们的适配器的参数数量分别为 2.5M、5.8M、14.0M 和 23.7M。我们采用可变形注意力(Zhu et al., 2020)作为我们方法的默认稀疏注意力,其中采样点的数量固定为 4,注意力头的数量设置为 6、6、12 和 16。交互次数 N 为 4,在最后一个特征交互中,我们堆叠三个多尺度特征提取器。此外,我们将适配器中的 FFN 比率设置为 0.25,以节省计算开销,即 4 个不同的适配器的 FFN 的隐藏大小分别为 48, 96, 192 和 256。附录 B 中的表 10 显示了每种配置的更多详细信息。
4 EXPERIMENTS
以前的工作(Wang et al., 2021)表明,金字塔先验有利于密集预测,但对图像分类几乎没有收益。因此,在这项研究中,我们专注于如何更好地适应现成的预训练 ViT 到密集预测任务。我们希望这种方法还将有助于解耦上游预训练和下游微调的模型设计。
4.1 OBJECT DETECTION AND INSTANCE SEGMENTATION
4.2 SEMANTIC SEGMENTATION
4.3 COMPARISONS WITH STATE-OF-THE-ARTS
4.4 ABLATION STUDY
ViT vs. ViT-Adapter Feature.
最近的工作(Park & Kim, 2022; Si et al., 2022)表明 ViT 展示了学习低频全局信号的特征,而 CNN 倾向于提取高频信息(例如局部边缘和纹理)。为了显示 ViT 和 ViT-Adapter 的特征之间的差异,我们首先使用傅立叶分析作为可视化工具包。如图 5(a) 所示,傅里叶变换特征图(平均超过 100 张图像)的傅里叶谱和相对对数幅度表明 ViT-Adapter 比 ViT (Li et al., 2021b) 基线捕获更多的高频信号。此外,我们还在图 5 (b)© 中可视化了 stride-8 特征图,这表明 ViT 的特征是模糊的和粗糙的。相比之下,我们的特征更加细粒度,具有更多的局部边缘和纹理。这一观察表明,我们的方法将 CNN 的优点嫁接到 ViT 中以捕获高频信息。
Ablation for Components.
为了研究每个关键设计的贡献,我们将 ViT-S 基线 (Li et al., 2021b) 逐渐扩展到我们的 ViT-Adapter-S。所有模型都使用 Mask R-CNN 进行训练 1× 时间表。如表6左侧所示,通过直接调整和添加SPM的空间特征,我们的变体1比基线提高了1.4 APb和0.9 APm,表明局部空间信息对于密集预测是必不可少的。从变体 2 中,我们发现空间特征注入器进一步将性能提高了 1.0 APb 和 0.8 APm。这一观察表明,交叉注意是一种更灵活的注入空间特征的方法。此外,我们采用多尺度特征提取器重构层次特征,得到2.1 APb和1.1 APm增益,缓解了ViT单尺度特征的缺点。总之,我们提出的组件都是必要的,并共同创建了 4.5 APb 和 2.8 APm 改进
图 5:ViT 与 ViT-Adapter 功能。(a)傅里叶变换特征图的相对对数幅度。(b) 检测结果。© Stride-8 特征图。与 ViT 基线 (Li et al., 2021b) 相比,我们的 ViT-Adapter 捕获了更多的高频信号,并产生更细粒度的具有丰富边缘和纹理的特征,这对密集预测有很大帮助。
表 6:ViT-Adapter 的消融研究。(左)消融关键组件。我们提出的组件共同带来了 4.5 APb 和 2.8 APm 增益。(右)消融交互次数 N。当 N = 4 时,该模型给出了最佳性能。 SPM 对于空间先验模块来说很短。
表 7:在我们的适配器中使用不同注意力机制消融。每次迭代训练时间和 GPU 训练内存由 A100 GPU 测量,每个 GPU 批量大小为 2 和 FP16 训练。“*”表示使用激活检查点来保存训练内存。
交互次数。在表 6 的右边,我们研究了交互次数的影响。具体来说,我们构建了几个具有不同交互数量的 ViT-Adapter-S 变体。我们观察到,当 N 变大时,模型精度饱和,应用更多的交互不能单调地提高性能。因此,我们默认根据经验将 N 设置为 4。
注意力类型。我们的方法是一个通用框架,其中注意力机制是可替换的。为了验证这一点,我们采用 ViT-Adapter-S 作为基本模型,并研究了 4 个不同的注意力机制。如表 7 所示,具有线性复杂度的稀疏注意力比具有二次复杂度的全局注意力更适合我们的适配器。我们最终使用可变形注意力 (Zhu et al., 2020) 作为默认配置。值得注意的是,它可以在未来被其他更高级的注意力机制所取代,以进一步提高性能。
稀疏注意力(Sparse Attention)是一种减少自注意力机制计算复杂度的技术。在传统的自注意力机制中,注意力的计算是全局的,即每个位置都要和输入序列中的所有位置进行交互,导致计算复杂度为 O(n2)O(n^2)O(n2)(其中 nnn 是序列长度)。这种全局计算在处理长序列或高分辨率图像时,计算和内存开销很大。
稀疏注意力的主要思想: 通过限制注意力机制的计算范围,使每个位置只与部分位置(而非全部位置)进行交互,从而减少计算量。通过这种方式,可以将计算复杂度从 O(n2)O(n^2)O(n2) 降低到 O(n)O(n)O(n) 或 O(nlogn)O(n \log n)O(nlogn),使得注意力机制可以处理更长的序列或更大尺寸的图像。
稀疏注意力的常见方法:
- 局部注意力(Local Attention): 仅在每个位置的局部窗口内计算注意力。这在图像处理任务中尤其有效,因为像素通常与其周围的局部区域具有更强的相关性。
- 块稀疏注意力(Block Sparse Attention): 将输入分块(例如,将图像分成若干区域),在每个块内部或在特定块之间计算注意力,而不是全局计算。
- 滑动窗口注意力(Sliding Window Attention): 为每个位置指定一个固定大小的窗口,仅在窗口内计算注意力。这种方法在自然语言处理和图像处理任务中常见。
- 分层注意力(Hierarchical Attention): 通过层次结构,先计算局部注意力,再逐步汇聚全局信息,从而减少不必要的全局计算。
- 可变形注意力(Deformable Attention): 是稀疏注意力的一种变体,它为每个查询动态地选择最相关的键值对进行注意力计算,而不是固定某种稀疏模式。这使得模型能够灵活地捕捉跨距离的依赖关系,且计算效率较高。
稀疏注意力的优点:
- 计算效率更高: 降低了计算复杂度,特别适合处理大规模图像或长文本。
- 内存使用更少: 减少了模型对内存的需求,能处理更大尺寸的数据。
- 适应性好: 某些变体(如可变形注意力)可以根据任务动态调整,保持较高的表达能力。
5 CONCLUSION
这项工作探索了一种新的范式,即 ViT-Adapter,以弥合普通 ViT 和特定视觉转换器在密集预测任务上的性能差距。在不修改固有架构的情况下,我们灵活地将与图像相关的归纳偏差注入到 ViT 中,并重建密集预测所需的细粒度多尺度特征。在目标检测、实例分割和语义分割上的大量实验表明,我们的方法可以实现与设计良好的视觉特定变压器相当或更好的性能,并进一步从先进的多模态预训练中获得相当大的好处。