CvT:微软提出结合CNN的ViT架构 | 2021 arxiv - 晓飞的算法工程笔记

CvT:微软提出结合CNN的ViT架构 | 2021 arxiv - 晓飞的算法工程笔记

💡 原文中文,约3100字,阅读约需8分钟。
📝

内容提要

CvT是一种结合Transformer与CNN的图像识别架构,通过卷积操作和多阶段设计提升局部建模能力和计算效率。它移除了位置嵌入,适应可变输入分辨率的视觉任务,在ImageNet-1k上表现优于其他模型,同时参数和计算量更少。

🔎

延伸解读

CvT 如何融合 CNN 与 Transformer 的优势

CvT 从 CNN 中借鉴了多阶段层级结构,并引入 Convolutional Token Embedding 和 Convolutional Projection 两个模块。前者通过卷积调整 token 的维度和数量,逐步提取从边缘到语义的特征;后者用深度可分离卷积替代标准线性投影,增强局部建模并提升效率。这种设计使 CvT 同时具备 CNN 的平移不变性和 Transformer 的动态注意力与全局上下文能力。

移除位置嵌入带来的灵活性

由于卷积操作本身能捕捉局部空间关系,CvT 不再需要显式的位置嵌入。这使模型能更自然地适应可变输入分辨率的视觉任务,例如目标检测或分割,而无需对位置编码进行插值或调整。文章指出,这一特性让 CvT 在处理不同尺寸输入时更具优势,同时保持了 Transformer 的全局建模能力。

性能与效率的平衡

在 ImageNet-1k 上,CvT 取得了优于其他 Vision Transformer 和 ResNet 的性能,且参数更少、FLOP 更低。当在 ImageNet-22k 上预训练后,CvT-W24 在 ImageNet-1k 验证集上达到 87.7% 的 top-1 准确率。这表明通过卷积增强局部建模,可以在不显著增加计算成本的情况下提升模型表现。

设计选择与消融实验

文章通过消融实验验证了各模块的有效性,包括位置嵌入的影响、Convolutional Token Embedding 的作用、Convolutional Projection 中下采样的效果以及该投影层本身的有效性。这些实验说明,卷积的引入并非简单堆叠,而是经过系统验证能带来性能提升。此外,Convolutional Projection 可视为原始 Transformer 投影的泛化,当卷积核为 1×1 时即退化为标准线性投影。

❓

Q&A

CvT架构的主要特点是什么?

CvT结合了Transformer与CNN的优势,采用多阶段层级结构设计,并引入Convolutional Token Embedding和Convolutional Projection操作,增强局部建模能力。

CvT如何提高计算效率?

CvT通过深度可分离卷积替代多头自注意力的原始位置线性投影,提高了计算效率,同时减少了参数和计算量。

CvT在视觉任务中的表现如何?

在ImageNet-1k上,CvT的性能优于其他Vision Transformer和ResNet,且参数和计算量更少。

CvT是如何处理可变输入分辨率的?

CvT移除了Position Embedding,增强了局部上下文建模能力,使其能够适应可变输入分辨率的视觉任务。

Convolutional Token Embedding的作用是什么?

Convolutional Token Embedding用于增加block输入和中间特征的局部建模能力,提升整体性能。

CvT与传统的Transformer有什么不同?

CvT引入了卷积操作,增强了局部建模能力,并移除了Position Embedding,保持了Transformer的动态注意力和全局上下文优势。

🏷️

标签

➡️

继续阅读