1. 引言
Vision Transformer (ViT)[10]是第一个完全依赖Transformer架构来获得大规模图像分类性能的计算机视觉模型。ViT设计以最小的修改从语言理解适应Transformer架构[9]。首先,将图像分割成离散的不重叠的小块(例如16 × 16)。然后,这些补丁被当作标记(类似于NLP中的标记),用特殊的位置编码求和以表示粗略的空间信息,并输入到重复的标准Transformer层中以建模全局关系进行分类。
尽管Vision Transformer在大规模上取得了成功,但在较小的数据量上训练时,其性能仍然低于类似规模的卷积神经网络(CNN)(例如ResNets[14])。一个可能的原因可能是ViT缺乏CNN架构固有的某些理想属性,这些属性使CNN独特地适合于解决视觉任务。例如,图像具有很强的二维局部结构:空间相邻的像素通常高度相关。CNN架构通过使用局部感受野、共享权重和空间子采样[19]来强制捕获这种局部结构,从而也实现了一定程度的移位、尺度和失真不变性。此外,卷积核的层次结构学习了考虑不同复杂程度的局部空间上下文的视觉模式,从简单的低级边缘和纹理到高阶语义模式。
CvT设计将卷积引入到ViT架构的两个核心部分。首先,将Transformer划分为多个阶段,形成Transformer的分层结构。每个阶段的开始由一个卷积标记嵌入组成,该嵌入在2d重塑的标记映射上执行重叠卷积操作(即,将平坦的标记序列重塑回空间网格),然后是层规范化。这使得模型不仅可以捕获局部信息,还可以逐步减少序列长度,同时增加各阶段令牌特征的维度,实现空间降采样,同时增加特征映射的数量,正如CNN[19]所做的那样。其次,Transformer模块中每个自关注块之前的线性投影被替换为提出的卷积投影,该卷积投影在2d重塑的令牌映射上采用s × s深度可分离卷积[5]操作。这使得该模型能够进一步捕获局部空间上下文,并减少注意机制中的语义歧义。
提出的卷积视觉变压器(CvT)利用了CNN的所有优点:局部接受域、共享权值和空间子采样,同时保留了Transformer的所有优点:动态关注、全局上下文融合和更好的泛化。结果表明,当使用ImageNet1k预训练CvT时,该方法达到了最先进的性能,同时轻量级和高效:与基于CNN的模型(例如ResNet)和先前基于transformer的模型(例如ViT, DeiT)相比,CvT提高了性能,同时使用更少的FLOPS和参数。此外,CvT在更大规模的预训练(例如在公共ImageNet-22k数据集上)评估时达到了最先进的性能。可以在不降低模型性能的情况下放弃标记的位置嵌入。这不仅简化了架构设计,而且使其能够适应对许多视觉任务至关重要的输入图像的可变分辨率。
2. 相关工作
2.1 Vision Transformers
ViT将每个图像分解为具有固定长度的令牌序列(即非重叠补丁),然后应用多个标准Transformer层,由多头自关注模块(MHSA)和位置前馈模块(FFN)组成,对这些令牌进行建模。DeiT[29]进一步探索了ViT的数据高效训练和蒸馏。在这项工作中,研究了如何将CNN和transformer结合起来,以有效的方式对图像分类的局部和全局依赖关系进行建模。
为了在视觉变形器中更好地建模局部环境,一些并行的工作引入了设计变化。例如,条件位置编码可视化变压器(Conditional Position encodings Visual Transformer, CPVT)用条件位置编码(Conditional Position encodings, CPE)取代了ViT中使用的预定义位置嵌入,使Transformer无需插值即可处理任意大小的输入图像。Transformer- in