1. 介绍
将基于 Transformer 的架构应用于视觉领域,并在图像分类、目标检测和语义分割等各种任务中取得了有希望的结果。 Vision Transformer (ViT)是第一个用纯 Transformer 替代传统 CNN 主干的工作。输入图像(224×224×3)首先被分割成196个不重叠的patch(每个patch的固定大小为16×16×3),这类似于NLP中的单词token。然后将这些补丁送入堆叠的标准转换器块中,以对全局关系进行建模并提取用于分类的特征。
Transformer模型的不足
- 在ViT和其他基于Transformer的模型中将图像分割成补丁。这样做可以大大简化将 Transformer 应用到基于图像的任务的过程。补丁序列可以直接输入标准转换器,可以很好地捕获补丁之间的远程依赖关系。 然而,它忽略了基于序列的 NLP 任务和基于图像的视觉任务之间的根本区别,例如每个块内的 2D 结构和空间局部信息。其次,由于 patch 大小固定,Transformer 很难显式地提取低分辨率和多尺度特征,这对检测和分割等密集预测任务提出了很大的挑战。
在图像和视频处理中,低分辨率通常指的是图像或视频所包含的像素数量较少,导致图像的细节和清晰度较低。
在多尺度特征中,“尺度”一词具有特定的含义。它主要指的是观察或研究对象的空间或时间范围的大小或粒度
- 与基于卷积的CNN的相比,Transformer中自注意力模块的计算和内存成本是输入分辨率的二次方。在使用Transformer处理高分辨率图像时必然会出现GPU显存不足、计算效率低下的问题。
我们站在 CNN 和 Transformer 的交叉点上,提出了一种新颖的 CMT(CNN 与 Transformer)视觉识别架构。所提出的 CMT 利用 CNN 的优点来弥补使用纯 Transformer 时的上述限制。
输入图像首先经过卷积茎进行细粒度特征提取,然后输入到一堆CMT块中进行表示学习。引入的 CMT 块是 Transformer 块的改进变体,其局部信息通过深度卷积得到增强。与ViT相比,CMT第一阶段生成的特征可以保持更高的分辨率,即,而ViT中的,这对于其他密集预测任务至关重要。
采用与CNN类似的阶段式架构设计,使用步长为2的四个卷积层,逐渐降低分辨率(序列长度)并灵活增加维度。分阶段的设计有助于提取多尺度特征并减轻高分辨率带来的计算负担。 CMT模块中的局部感知单元(LPU)和反向残差前馈网络(IRFFN)可以帮助捕获中间特征中的局部和全局结构信息,并提高网络的表示能力。最后,使用平均池化来替换ViT中的类别标记以获得更好的分类结果。
2. 相关工作
深度神经网络通常建立在基本块的基础上,其中一系列卷积层顺序堆叠以捕获中间特征中的局部信息。然而,小卷积核的有限感受野使得获取全局信息变得困难,阻碍了网络在分类、目标检测和语义分割等挑战性任务上的高性能。
卷积神经网络
AlexNet和VGGNet 表明,由卷积层和池化层组成的深度神经网络可以在识别中获得足够的结果。 GoogleNet 和 InceptionNet 证明了基本块内多路径的有效性。ResNet 通过向基础网络每两层添加快捷连接,表现出更好的泛化能力。
Wang等人提出在深度残差网络的中间阶段之间顺序堆叠注意力模块。 SENet 和 GENet 通过对通道之间的相互依赖性进行建模来自适应地重新校准通道特征响应。 NLNet 将自注意力机制纳入神经网络中,提供跨所有空间位置的成对交互,以增强远程依赖性。
视觉Transformer
开创性的工作 ViT 将从 NLP 继承的 Transformer 架构直接应用于以图像块为输入的分类。
DeiT 引入了一种新的训练范式,将 ViT 扩展为直接在 ImageNet-1K 上训练的数据高效的 Transformer。T2T-ViT 提出通过将相邻标记递归聚合为一个标记来嵌入视觉标记。TNT 提出分别通过内部和外部 Transformer 块对块级和像素级表示进行建模。 PVT 将金字塔结构引入 ViT,可为各种像素级密集预测任务生成多尺度特征图。
Transformer 还用于解决其他视觉任务,如物体检测、语义分割、图像检索和低级视觉任务。
Transformer 的网络与卷积层相结合,整体架构遵循先前阐述的卷积神经网络,例如 ResNet 和 EfficientNet 。
3. 方法
3.1 整体架构
建立一个充分利用 CNN 和 Transformer 优点的混合网络。
DeiT直接将输入图像分割为非重叠的补丁,补丁内的结构信息只能用线性投影来建模。为了克服这个限制,利用茎结构,有一个步长为2的3*3卷积核和一个大小为32的输出通道来减少输入图像的大小,然后是另外两个步长为1的3×3卷积为了更好地提取局部信息。
我们的模型有四个阶段来生成不同尺度的特征图,这对于密集预测任务非常重要。为了产生层次表示,在每个阶段之前应用由卷积和层归一化(LN)组成的补丁嵌入层,以减少中间特征的大小(分辨率的2倍下采样),并将其投影到更大的维度(尺寸放大 2 倍)。在每个阶段,几个 CMT 块按顺序堆叠以进行特征转换,同时保持输入的相同分辨率。
分辨率的2倍下采样:将图像的分辨率降低为原来的一半。具体来说,在数字图像处理中,下采样(downsampling)是一个常见的操作,其目的是减少图像的数据量或分辨率。
例如,CMT-S 的“阶段 3”包含 16 个 CMT 块,如图所示。CMT 块能够捕获本地和远程依赖关系。
给定输入图像,我们可以获得四个不同分辨率的分层特征图,类似于 ResNet 和 EfficientNet 等典型 CNN。通过上述相对于输入的步长为 4、8、16 和 32 的特征图,我们的 CMT 可以获得输入图像的多尺度表示,并且可以轻松应用于目标检测和语义分割等下游任务。
较大的步长值会导致输出的特征图尺寸变得更小,因为卷积核会跳过更多的输入像素。
3.2 CMT Block
CMT 模块由本地感知单元(LPU)、轻量级多头自注意力(LMHSA)模块和反向残差前馈网络(IRFFN)组成。
本地感知单元(LPU)
旋转和平移是视觉任务中两种常用的数据增强方式,但这些操作并不会改变模型的最终结果。 我们期望这些任务具有平移不变性。然而,以前的Transformer中使用的绝对位置编码最初是为了利用标记的顺序而设计的,但它破坏了这种不变性,因为它为每个补丁添加了唯一的位置编码。此外,Vision Transformer忽略了补丁内部的局部关系和结构信息。为了缓解这些限制,我们提出了局部感知单元(LPU)来提取局部信息。
,其中是当前阶段输入的分辨率,d表示特征的维度。
与传统的标准卷积不同,深度卷积(Depth-wise convolution)对每个输入通道独立进行卷积运算。具体来说,每个卷积核仅与对应的单一输入通道进行卷积,而不是与所有通道同时卷积。因此,深度卷积完成后得到的特征图数量与输入的通道数相同,无法扩展通道数。
深度卷积的优点在于其可以显著减少参数量和计算量,从而加速模型的推理速度和运行效率
轻量级多头自注意力(Lightweight MHSA)
在原始自注意力模块中,输入在线性变换时,查询
,其中是补丁的数量。在图中省略了张量从 H × W × d 到 n×d 的重塑操作。符号 、 和 分别是输入、键(查询)和值的维度。然后自注意力模块的应用如下:
在注意力操作之前使用步幅为 k 的 k × k 深度卷积来减小 K 和 V 的空间大小。
以及。此外,我们为每个自注意力模块添加相对位置偏差B,相应的轻量级注意力定义为:
其中是随机初始化且可学习的,学习到的相对位置偏差也可以通过 双三次插值(bicubic interpolation) 变为不同尺寸大小 m1 × m2 的。 。
轻量级多头自注意力 (LMHSA) 模块通过考虑 h 个“头”来定义,即,将 h 个 LightweightAttention 函数应用于输入。每个头输出一个大小为 的序列。然后,将这些 h 个序列连接成一个序列。
反向残差前馈网络(IRFFN)
ViT中提出的原始 FFN 由两个由 GELU 激活分隔的线性层组成。第一层将维度扩大了 4 倍,第二层以相同的比例缩小了维度:
,其中,分别表示两个线性层的权重。符号 b1 和 b2 是偏置项。反向残差前馈网络(IRFFN)与反向残差块类似。
深度卷积用于提取局部信息,额外的计算成本可以忽略不计。
扩展比(expansion ratio)是一个关键参数,它指的是在扩展层(如MobileNetV1)中,特征图的通道数相对于输入通道数的增加比例。通过增加通道数,扩展层能够捕获更多的特征信息,从而提高网络的表示能力。
CMT块公式表示
,,
其中 和 分别表示第 i 个块的 LPU 和 LMHSA 模块的输出特征。 LN 表示层归一化。我们在每个阶段堆叠几个 CMT 块以进行特征转换和聚合。
3.3 复杂性分析
标准Transformer块
由 MHSA 模块和 FFN 组成。给定大小为 n × d 的输入特征,计算复杂度 (FLOP) 可以计算为:
其中 r 是FFN的扩展比例,和分别是key和value的维度。
ViT 设定 d = dk = dv 且 r = 4,成本可以简化为:
CMT块的FLOPs如下:
, ,
3.4 扩展策略
提出了一种适用于基于变压器的网络的新复合缩放策略,该策略使用复合系数 φ 以原则性的方式统一缩放层数(深度)、维度和输入分辨率:
其中 α、β 和 γ 是通过网格搜索确定的常数,分别用于决定如何将资源分配给网络深度、维度和输入分辨率。
构建的模型 CMT-S 具有与 DeiT-S (ViT-S) 和 EfficientNet-B4 相似的模型大小和计算复杂性。我们还根据提出的扩展策略引入了 CMT-Ti、CMT-XS 和 CMT-B。
4. 实验
通过对图像分类、对象检测和实例分割等多项任务进行实验来研究 CMT 架构的有效性。我们首先将所提出的 CMT 与之前在上述任务上最先进的模型进行比较,然后消除 CMT 的重要元素。
4.1 ImageNet 分类
ImageNet 是一个图像分类基准,包含 1000 个类别的 128 万张训练图像和 5 万张验证图像。为了与最近的工作进行公平比较,我们采用与 DeiT 中相同的训练和增强策略,即使用 AdamW 对模型进行 300 个 epoch 的训练(CMT-Ti 为 800 个,需要更多的 epoch 才能收敛)优化器。