▊ 写在前面 在本文中,作者提出了一种新的结构,称为卷积视觉Transformer(CvT) ,它通过在ViT中引入卷积来提高视觉Transformer(ViT)的性能和效率。这是通过两个主要修改来实现的:包含卷积token嵌入的Transformer层次结构 ,以及利用卷积投影的卷积Transformer 。 ▊ 1. 论文和代码地址 论文地址:https:///abs/2103.15808 代码地址:https://github.com/leoxiaobin/CvT ▊ 2. Motivation Transformer最近在自然语言处理(NLP)的一系列任务中占据主导地位。视觉Transformer(ViT)是第一个完全依赖Transformer结构的计算机视觉模型,以在大规模数据集上获得具有竞争力的图像分类性能。 在本文中,作者认为可以将卷积引入ViT结构,以提高性能和鲁棒性,同时保持较高的计算和内存效率。为了验证这一假设,作者提出了一种新的架构,称为卷积视觉Transformer(CvT) ,它将卷积合并到Transformer中,在浮点运算(FLOPs)和参数方面都具有更高的效率。 ▊ 3. 方法 卷积视觉Transformer(CvT)的pipeline如上图所示。作者将两种基于卷积的操作引入到视觉Transformer结构中,即卷积token嵌入 和卷积投影 。如上图(a)所示,作者采用了CNN的多阶段层次设计,CvT共使用了三个阶段,每个阶段有两个部分。 3.1. Convolutional Token EmbeddingCvT中的卷积运算旨在通过多阶段层次方法对局部空间上下文进行建模。形式上,2D图片或上一个stage的输出为第个stage的输入,模型学习了一个函数从而将作为输入,得到。是卷积核大小为,步长,padding为的二维卷积运算。新的token map的宽和高分别为: 然后被展平为,并通过LayerNorm行归一化,以输入到后续Transformer块中。卷积token嵌入 层使得我们可以通过改变卷积操作的参数来调整token特征维度和每个阶段的token数量。以这种方式,在每个阶段中,我们可以逐步减少token序列长度,同时增加token特征维度。这使得token能够在越来越大的空间上表示越来越复杂的视觉模式。 3.2. Convolutional Projection for Attention本文提出的卷积投影层 的目标是实现局部空间上下文的额外建模,并通过对K和V矩阵进行下采样来提供更高的效率。卷积投影Transformer块是原始Transformer块的拓展,虽然之前的工作试图在Transformer块中添加额外的卷积模块,用于语音识别和自然语言处理,但它们会导致更复杂的设计和额外的计算成本。而本文中,作者提出用深度可分离卷积代替原来的多头自注意(MHSA)的线性投影,形成卷积投影层。 3.2.1 Implementation Details其中,为矩阵的token输入,Conv2d是深度可分离卷积,实现为,其中代表卷积核。 3.2.2 Efficiency Considerations卷积投影层的设计有两个主要的效率优势: 3.3. Methodological DiscussionsRemoving Positional Embeddings卷积token嵌入 和卷积投影 模块的引入使得Transformer具有了局部空间信息建模的能力。因此,这种性质使得位置嵌入可以从网络中删除,从而简化了可变输入分辨率的视觉任务设计。 ▊ 4.实验 4.1. Model Variants4.2. Comparison to state of the art4.3. Downstream task transfer4.4. Ablation StudyRemoving Position EmbeddingConvolutional Token EmbeddingConvolutional Projection▊ 5. 总结 在这项工作中,作者详细研究了将卷积引入视觉Transformer结构,以将Transformer的优点与CNN用于图像识别任务的优点相结合。 大量实验表明,本文提出的卷积token嵌入和卷积投影,以及卷积实现的多阶段网络设计,使CvT结构在保持计算效率的同时实现了优异的性能。此外,由于卷积引入了局部上下文,因此CvT不再需要位置嵌入,这为适应需要可变输入分辨率的广泛视觉任务提供了潜在优势。 ▊ 作者简介 知乎/公众号:FightingCV END |
|