在这篇论文中,Yang Liu 等几位研究者全面回顾了用于三个基本 CV 任务(分类、检测和分割)的 100 多个视觉 Transfomer。
这段时间,计算机视觉圈有点热闹。先是何恺明等人用简单的掩蔽自编码器MAE证明了 Transformer 扩展到 CV 大模型的光明前景;紧接着,字节跳动又推出了部分指标超过 MAE 的新方法iBOT,将十几项视觉任务的 SOTA 又往前推了一步。这些进展给该领域的研究者带来了很大的鼓舞。
在这样一个节点,我们有必要梳理一下 CV 领域 Transformer 模型的现有进展,挖掘其中有价值的经验。因此,我们找到了中国科学院计算技术研究所等机构刚刚发布的一篇综述论文。在这篇论文中,Yang Liu 等几位研究者全面回顾了用于三个基本 CV 任务(分类、检测和分割)的 100 多个视觉 Transfomer,并讨论了有关视觉 Transformer 的一些关键问题以及有潜力的研究方向,是一份研究视觉 Transformer 的详尽资料。
论文链接:https://arxiv.org/pdf/2111.06091.pdf
本文是对该综述的简要介绍。
论文概览
Transformer 是一种基于注意力的架构,在序列建模和机器翻译等任务上表现出了惊人的潜力。如下图 1 所示,Transformer 已经逐渐成为 NLP 领域主要的深度学习模型。最近流行的 Transformer 模型是一些自监督预训练模型,它们利用充足的数据进行预训练,然后在特定的下游任务中进行微调 [2]–[9]。生成预训练 Transformer(GPT)家族 [2]– [4] 利用 Transformer 解码器来执行自回归语言建模任务;而使用双向编码器的 Transformer(BERT)[5]及其变体 [6], [7] 是在 Transformer 编码器上构建的自编码器语言模型。
在计算机视觉领域,卷积神经网络(CNN)一直占据主导地位。受 NLP 领域自注意力机制成功的启示,一些基于 CNN 的模型开始尝试通过空间 [14]–[16] 或通道 [17]–[19]层面的额外自注意力层来捕获长程依赖,而另一些模型则试图用全局 [20] 或局部自注意块[21]–[25] 来彻底替代传统的卷积。虽然 Cordonnier 等人在理论上证明了自注意力块的有效性[26],但在主流基准上,这些纯注意力模型仍然比不上当前的 SOTA CNN 模型。
如上所述,在 vanilla Transformer 于 NLP 领域取得巨大成功之际,基于注意力的模型在视觉识别领域也得到了很多关注。最近,有大量研究将 Transformer 移植到 CV 任务中并取得了非常有竞争力的结果。例如,Dosovitskiy et al. [27]提出了一种使用图像 patch 作为图像分类输入的纯 Transformer,在许多图像分类基准上都实现了 SOTA。此外,视觉 Transformer 在其他 CV 任务中也实现了良好的性能,如检测 [28]、分割[29]、跟踪[30]、图像生成[31]、增强[32] 等。
如图 1 所示,继 [27]、[28] 之后,研究者们又针对各个领域提出了数百种基于 Transformer 的视觉模型。因此,我们迫切地需要一篇系统性的文章来梳理一下这些模型,这便是这篇综述诞生的背景。考虑到读者可能来自很多不同的领域,综述作者将分类、检测和分割三种基本的视觉任务都纳入了梳理范围。
如下图 2 所示,这篇综述将用于三个基本 CV 任务(分类、检测和分割)的 100 多种视觉 Transformer 方法按照任务、动机和结构特性分成了多个小组。当然,这些小组可能存在重叠。例如,其中一些进展可能不仅有助于增强图像分类骨干的表现,还能在检测、分割任务中取得不错的结果。
图 2 :视觉 Transformer 的分类
由于训练设置和定向任务各不相同,研究者也在不同配置上对这些 Transforme 进行了评估,以进行方便和直观的比较。此外,他们还揭示了一系列重要但仍需探索的特点,这些特点可能使 Transformer 从众多架构中脱颖而出,例如弥合视觉和序列 Transformer 之间差距的松弛高级语义嵌入。最后,他们提出了几个有前景的研究方向。
用于分类的视觉 Transformer
受 NLP 中 Transfomer 成功的启发 [2]–[5], [8],不少研究者尝试将 Transformer 引入图像分类任务。Vision Transformer(ViT)[27] 最先在主流分类基准上达到了可以媲美传统 CNN 的性能。在论文的第 III 章,研究者对 2021 年 6 月之前发布的 40 多个 Transformer 骨干进行了全面回顾,并根据动机和实现情况将其分成了六类,如下图 5 所示。
根据这一分类,研究者首先介绍了 ViT——用于图像分类的 Original Visual Transformer。接下来,他们讨论了 Transformer Enhanced CNN 方法,这些方法利用 Transformer 增强 CNN 骨干的长程依赖。Transformer 在全局建模方面能力突出,但在早期阶段会忽略局部信息。因此,CNN Enhanced Transformer 方法利用适当的卷积归纳偏置来增强 Transformer,而 Local Attention Enhanced Transformer 方法重新设计 patch 分区和注意力块,以增强 Transformer 的局部性并维持一个无卷积的架构。
此外,CNN 在性能和计算效率方面都受益于分层和深度结构[93]。受此启发,研究者们提出了 Hierarchical Transformer 和 Deep Transformer 方法。前者用一个金字塔 stem 代替分辨率固定的柱状结构,后者可以防止注意力图过于平滑,并在较深的层中增加其多样性。此外,他们还回顾了目前可用的自监督方法。
下表 I 总结了以上 Transformer 模型在主流分类基准上的表现:
在梳理了这一部分的进展之后,研究者得出了以下结论:
对于分类任务,一个深度分层 Transformer 骨干可以有效降低计算复杂度 [39],还能避免深层中的特征过于平滑[35], [40], [59], [60]。同时,早期卷积 [37] 足以捕获低级特征,从而显著增强浅层的稳健性,降低计算复杂度。此外,卷积投影[46], [47] 和局部注意力机制 [33], [42] 都可以提高 Transformer 的局部性。
用于检测的视觉 Transformer
在第 IV 章中,研究者详细介绍了用于目标检测的视觉 Transformer。这些模型可以分为两类:作为颈部的 Transformer 和作为骨干的 Transformer。颈部检测器主要基于为 Transformer 结构指定的一个新表示,称为对象查询,即一组学习到的同等地聚合全局特征的参数。它们试图从加速收敛或提高性能的角度来解决最优融合范式。除了专门为检测任务设计的各种颈部外,一定比例的主干检测器也会考虑到特定的策略。最后,作者在表 II 和表 III 中比较了它们的性能,并分析了 Transformer 检测器的一些潜在改进。
在梳理了这一部分的进展之后,研究者得出了以下结论:
对于检测任务,Transformer 颈部得益于编码器 - 解码器结构,比只使用编码器的 Transformer 检测器计算更少。因此,解码器是必要的,但是由于收敛缓慢 [72],它需要的 stack 极少[70]。此外,稀疏注意力[67] 有利于降低计算复杂度,加速 Transformer 的收敛,而空间先验 [67], [69], [71] 有利于提高 Transformer 的性能,稍微提高其收敛速度。
用于分割的视觉 Transformer
论文第 V 章主要介绍了用于分割的 Transformer。按照分割方式的不同,这些 Transformer 可以被分为两类:基于 patch 的 Transformer 和基于查询的 Transformer。后者可以进一步分解为带对象查询的 Transformer 和带掩码嵌入的 Transformer。下面这些表格展示了这些 Transformer 的性能数据。
在梳理了这一部分的进展之后,研究者得出了以下结论:
对于分割任务,编码器 - 解码器 Transformer 模型可以通过一系列可学习的掩码嵌入将三个分割子任务统一为一个掩码预测问题[29], [84], [137]。这种无框(box-free)方法在多个基准上实现了最新的 SOTA[137]。此外,基于 box 的 Transformer 的特定混合任务级联模型被证明在实例分割任务中达到了更高的性能。
关于视觉 Transformer 的几个关键问题
Transformer 是如何打通语言和视觉的?
Transformer 最初是为机器翻译任务而设计的。在语言模型中,句子中的每一个词都被看作表示高级、高维语义信息的一个基本单元。这些词可以被嵌入到低维向量空间表示中,叫做词嵌入。在视觉任务中,图像的每个像素都是低级、低维语义信息,与嵌入特征不匹配。因此,将 Transformer 用到视觉任务中的关键是建立图像到向量的转换,并保持图像的特点。例如,ViT[27]借助强松弛条件将图像转换为包含多个低水平信息的 patch 嵌入,Early Conv. [50] 和 CoAtNet [37] 利用卷积提取高级信息,同时降低 patch 的冗余特征。
Transformer、自注意力和 CNN 之间的关系
从卷积的角度来看,其归纳偏置主要表现为局部性、平移不变性、权重共享和稀疏连接。这类简单的卷积核可以有效地执行模板匹配,但由于归纳偏置强,其上界要低于 Transformer。
从自注意力机制的角度来看,理论上,当给定足够数量的头时,它可以表示任何卷积层。这种 fully-attentional 操作可以交替地结合局部和全局层面的注意力,并根据特征之间的关系动态地生成注意力权重。尽管如此,它的实用性还是不如 SOTA CNN,因为其精度较低,计算复杂度较高。
从 Transformer 的角度来看,Dong 等人证明,当在没有短连接或 FFN 的深层上训练时,自注意力层表现出强大的「token uniformity」归纳偏置。结果表明,Transformer 由两个关键部分组成:一个聚合 token 之间关系的自注意力层;一个提取输入特征的 position-wise FFN。虽然 Transformer 具有强大的全局建模能力,卷积可以有效地处理低级特征[37],[50],增强 Transformer 的局部性[45],[70],并通过填充(padding)来附加位置特征[48],[49],[102]。
不同视觉任务中的可学习嵌入
Transformer 模型利用可学习嵌入来执行不同的视觉任务。从监督任务的视角来看,这些嵌入可以被分为类 token、对象、查询和掩码嵌入。从结构的角度来看,它们之间存在着内在的联系。最近的 Transformer 方法主要采用两种不同的模式:仅编码器和编码器 - 解码器结构。每个结构由三个层次的嵌入应用组成,如下图 16 所示。
从位置层面来看,在仅编码器 Transformer 中学习的嵌入的应用被分解为初始 token 和后期 token,而学习的位置编码和学习的解码器输入嵌入被用于编码器 - 解码器结构。从数量层面来看,仅编码器的设计应用了不同数量的 token。例如,ViT [27],[38]系列和 YOLOS [73]在初始层中添加了不同的数字 token,而 CaiT [40]和 Segmenter [84]则利用这些 token 来表示不同任务中最后几层的特征。在编码器 - 解码器结构中,所学习的解码器的位置编码 (对象查询[28],[70] 或掩码嵌入 [137]) 被显式地 [28],[137] 或隐式地 [69],[70] 附加到解码器输入中。与恒定输入不同,可变形 DETR [67]采用学到的嵌入作为输入,并关注编码器输出。
受多头注意力设计的启发,多初始 token 策略被认为可以进一步提高分类性能。然而,DeiT [38]表明,这些额外的 token 将会向相同的结果收敛,这对 ViT 没有好处。从另一个角度来看,YOLOS [73]提供了一个使用多个初始 token 来统一分类和检测的范例,但这种仅编码器的设计会导致计算复杂性很高。根据 CaiT [40]的观察,后面的类 token 可以稍稍降低 Transformer 的 FLOPs,并略微提升性能(从 79.9% 到 80.5%)。Segmenter[84]也显示了这种策略在分割任务中的效率。
与仅使用编码器的 Transformer 的多个后期 token 相比,编码器 - 解码器结构节省了更多的计算。它通过使用一小组对象查询(掩码嵌入)来标准化检测 [28] 和分割 [137] 领域中的 Transformer 方法。通过组合多个后期 token 和对象查询(掩码嵌入)的形式,像可变形 DETR [67]这样的结构(以对象查询和可学习解码器嵌入为输入),可以将基于不同任务的可学习嵌入统一到 Transformer 编码器 - 解码器中。
未来的研究方向
视觉 Transformer 方法取得了巨大的进展,并显示出了有希望的结果,在多个基准上接近或超过了 SOTA CNN 方法的记录。但该技术尚不成熟,无法撼动卷积在 CV 领域的主导地位。基于论文中的一些分析,作者指出了视觉 Transformer 的一些具有潜力的发展方向:
集合预测
正如论文中所提到的,由于损失函数的梯度相同,附加的类 token 将始终收敛 [38]。具有二分损失函数的集合预测策略已经在许多密集预测任务中广泛应用于视觉 Transformer[28],[137]。如上所述,考虑分类任务的集合预测设计是很自然的,例如多类 token Transformer 借助集合预测来预测混合 patch 图像,这类似于 LVViT [41] 的数据增强策略。此外,集合预测策略中的一对一标签分配导致早期过程中的训练不稳定,这可能会降低最终结果的准确性。利用其他标签分配和损失改进集合预测可能对新的检测框架有所帮助。
自监督学习
自监督 Transformer 预训练已经成为了 NLP 领域的标准,并在各种应用中取得了巨大成功[2],[5]。卷积孪生网络作为 CV 中的自监督范例,采用对比学习进行自监督预训练,不同于 NLP 中的掩蔽自编码器。最近,一些研究试图设计一个自监督的视觉 Transformer 来弥补视觉和语言之间预处理方法的差距。它们大多继承了 NLP 中的掩蔽自编码器或 CV 中的对比学习方案。但是,目前还没有用于视觉 Transformer 的监督方法能实现 NLP 中 GPT-3 那样的革命性。如论文所述,编码器 - 解码器结构可能通过学习解码器嵌入和位置编码来统一视觉任务。自监督学习的编码器 - 解码器 Transformer 值得进一步研究。