最强Vision Trabsformer | 87.7%准确率!CvT:将卷积引入视觉Transformer(文末附论文下载)(一)

本文涉及的产品
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_高级版,每接口累计50万次
NLP自然语言处理_基础版,每接口每天50万次
简介: 最强Vision Trabsformer | 87.7%准确率!CvT:将卷积引入视觉Transformer(文末附论文下载)(一)

1 简介


1.1 全文简述

在本文中介绍了一种称为卷积视觉Transformer(CvT)的新体系结构,该体系结构通过将卷积引入ViT中来产生两种设计结合的最佳效果,从而提高了视觉Transformer(ViT)的性能和效率。

CvT主要是通过2个主要改进完成的:包含卷积Token嵌入的Transformer层次结构,以及利用卷积映射的卷积Transformer Block。这些变化将卷积神经网络(CNN)的特性引入到ViT架构中(即平移、缩放和旋转不变性),同时保持了Transformers的优点(即动态注意力,全局Context和更好的泛化)。

图1 CvT在ImageNet实验对比图

通过进行广泛的实验来验证CvT的有效性,实验表明该方法与ImageNet-1k上的其他视觉Transformer和ResNet相比,具有更少的参数和更低的FLOPs,可实现最先进的性能。

此外,在较大的数据集(例如ImageNet-22k)上进行预训练并针对垂直任务进行微调时,可以保持性能提升。CvT-W24在ImageNet-22k上进行了预训练,在ImageNet-1k val集合上获得了87.7%的top-1精度。

最后,实验结果表明,位置编码是现有Vision Transformer的关键组成部分,可以在模型中删除进而简化了高分辨率视觉任务的设计。

1.2 相关总结

近几年,Transformer在自然语言处理(NLP)的任务领域中得到了广泛的应用。而Vision Transformer(ViT)则是近来第一个完全依赖于Transformer架构的计算机视觉模型,同时获得具有竞争力的图像分类性能。ViT设计通过对语言的理解,以最小的修改来适应Transformer架构。

首先,图像被分割成离散的不重叠的小块(例如16×16);

然后,将这些小块作为Token(类似于NLP中的Token),用一种特殊的位置编码来表示空间信息,然后输入到标准Transformer层中建模全局关系,进而进行分类。

尽管Vision Transformer在一定程度上取得了成功,但在较小的数据量上训练时,其性能仍然低于类似规模的卷积神经网络(如ResNets)。一个可能的原因可能是ViT缺乏CNN架构中固有的特性,而这些特性使CNN适合解决视觉任务

例如,图像具有很强的二维局部结构:空间相邻像素通常是高度相关的。CNN的架构通过使用局部感受野、共享权值和空间子采样来强制捕获这个局部结构,从而也实现了一定程度的平移、尺度和旋转不变性。此外,考虑到不同复杂程度的局部空间Context,卷积核的层次结构学习是从简单的低级边缘和纹理到高级语义的学习模式。

1.3 本文出发点

在本文中作者假设卷积可以有策略地引入到ViT结构之中以提高模型的性能和鲁棒性同时保持较高的计算和内存效率。为了验证假设作者提出了一种新的架构,称为Convolutional vision Transformer(CvT),它将卷积合并到Transformer中,在(FLOPs)和参数方面都是高效的。

CvT设计在ViT架构的2个核心部分引入了卷积:

首先,将Transformer划分为多个阶段,形成一个分层结构的Transformer。每个阶段的开始由一个卷积Token嵌入组成,该卷积Token嵌入在一个二维重塑的Token映射上进行卷积操作(即,将Flattened的Token序列重塑回空间网格),然后是Layer Normalization。这个操作使得模型不仅可以捕获局部信息,而且还可以逐步减少序列长度,同时在不同阶段增加Token特征的维数,实现空间下采样,同时增加特征映射的数量。

其次,将Transformer模块中每个Self-Attention Block之前的线性投影替换为卷积投影,该卷积投影在二维重塑的Token映射上采用深度可分卷积。这使得该模型在注意力机制中能够进一步捕获局部空间语义信息,减少语义歧义。它还允许管理计算复杂度,因为卷积的Stride可以用于对键和值矩阵进行子采样,以提高4倍或更多的效率,同时最小化性能的损失。


2 相关工作


最近,基于Transformer的体系结构被认为是一个可替代卷积神经网络(CNNs)的架构,它可以被用到很多CV的垂直领域,如分类、目标检测、分割、图像增强、图像生成、视频处以及3D点云处理等。

2.1 ViT

ViT是第一个证明当数据足够大(如ImageNet-22k, JFT-300M)时,纯Transformer架构可以在图像分类方面达到最先进的性能(如ResNets, EfficientNet)。具体来说,ViT将每幅图像分解成一组固定长度的token序列(即非重叠patches),然后应用多个标准的Transformer(Multi-Head Self-Attention module, MHSA)和位置前馈模块(position-wise feedforward module, FFN)对这些token进行建模。

DeiT进一步探索了ViT的数据高效训练和蒸馏。在这项工作中,研究了如何结合CNN和Transformer,并以一种有效的方式建模局部和全局依赖的图像分类。

为了更好地模拟视觉Transformer的局部Context,一些并行工作也引入了设计变更。

条件位置编码视觉Transformer(CPVT)用条件位置编码(CPE)取代了ViT中预定义的位置嵌入,使Transformer能够处理任意大小的输入图像而无需插值;

Transformer In Transformer(TNT)既利用处理贴片嵌入的外部Transformer块,又利用模拟像素嵌入之间关系的内部Transformer,对贴片级和像素级表示进行建模;

Token To Token(T2T)主要通过将滑动窗口中的多个令牌连接为一个Token来改进ViT中的Token化。然而,该操作与卷积有根本的不同,尤其是在规范化细节方面,而且多个标记的连接大大增加了计算和内存方面的复杂性;

PVT为Transformer引入了一种多级设计(不含卷积),类似于CNNs中的多尺度,有利于密集预测任务。

image.png

表1 Vision Transformer对比

与以上的工作相比,本文工作的目标是通过引入卷积,在图像域特定的归纳偏差,以达到最好的Transformer结构。表1显示了上述具有代表性作品和本文CvT在位置编码的必要性、Token嵌入类型、映射类型和Backbone中的Transformer结构方面的主要区别。

2.2 向CNN引入Self-Attention

Self-Attention在cnn视觉任务中得到了广泛的应用。在这些工作中,Non-Local Network的设计是为了通过全局Attention来捕捉长期依赖关系。Local Relation Networks 根据local windows内像素/特征之间的组成关系(相似度)来进行权值聚合,而卷积层则在空间相邻的输入特征上采用固定的权值聚合。这种自适应权值聚合将几何先验引入到网络中,这对识别任务很重要。

最近,BoTNet提出了一种简单而强大的Backbone,它只是在一个ResNet的最后3个Bottleneck block中用全局的Self-Attention代替了空间卷积,在图像识别方面取得了不错的效果。

相反,本文的工作执行了一个相反的研究方向:将卷积引入到Transformer之中。

2.3 向Transformer引入CNN

在NLP和语音识别中,卷积被用来修改Transformer Block,或者用卷积层代替Multi-Head Attentions,亦或是以并行或顺序的方式增加额外的卷积层,以捕获局部关系。之前的其他工作提出通过残差连接将注意力映射传播到后续层,这首先通过卷积进行转换。

不同于前面的工作,本文推荐在Vision Transformer的2个主要部分引入卷积:

  • 首先,使用卷积投影操作取代现有的Position-wise线性投影;
  • 其次,类似于CNN,使用分层多级结构和不同分辨率的2D Reshaped Token Maps。

通过以上2个独特的网络设计相对于以前的工作有了显著的性能和效率的提升。

相关文章
|
6月前
|
机器学习/深度学习 人工智能 计算机视觉
AIGC基础模型——Vision Transformer (ViT)
【1月更文挑战第12天】AIGC基础模型——Vision Transformer (ViT)
275 6
AIGC基础模型——Vision Transformer (ViT)
Vision Transformer 图像分类识别 基于 ViT(Vision Transformer)的图像十分类 实战 完整代码 毕业设计
Vision Transformer 图像分类识别 基于 ViT(Vision Transformer)的图像十分类 实战 完整代码 毕业设计
126 0
Vision Transformer 图像分类识别 基于 ViT(Vision Transformer)的图像十分类 实战 完整代码 毕业设计
|
6月前
|
机器学习/深度学习 编解码 算法
助力目标检测涨点 | 可以这样把Vision Transformer知识蒸馏到CNN模型之中
助力目标检测涨点 | 可以这样把Vision Transformer知识蒸馏到CNN模型之中
226 0
|
机器学习/深度学习 算法 PyTorch
【vision transformer】DETR原理及代码详解(一)
【vision transformer】DETR原理及代码详解
1356 0
【vision transformer】DETR原理及代码详解(二)
【vision transformer】DETR原理及代码详解
99 0
|
Shell 开发工具 计算机视觉
【vision transformer】DETR原理及代码详解(三)
【vision transformer】DETR原理及代码详解
198 0
|
SQL API
【vision transformer】DETR原理及代码详解(四)
【vision transformer】DETR原理及代码详解
540 0
|
机器学习/深度学习 编解码 人工智能
深度学习应用篇-计算机视觉-图像分类[3]:ResNeXt、Res2Net、Swin Transformer、Vision Transformer等模型结构、实现、模型特点详细介绍
深度学习应用篇-计算机视觉-图像分类[3]:ResNeXt、Res2Net、Swin Transformer、Vision Transformer等模型结构、实现、模型特点详细介绍
10679 1
 深度学习应用篇-计算机视觉-图像分类[3]:ResNeXt、Res2Net、Swin Transformer、Vision Transformer等模型结构、实现、模型特点详细介绍
|
机器学习/深度学习 人工智能 数据挖掘
【Deep Learning B图像分类实战】2023 Pytorch搭建AlexNet、VGG16、GoogleNet等共5个模型实现COIL20数据集图像20分类完整项目(项目已开源)
亮点:代码开源+结构清晰规范+准确率高+保姆级解析+易适配自己数据集+附原始论文+适合新手
377 0
|
机器学习/深度学习 存储 编解码
最强Vision Trabsformer | 87.7%准确率!CvT:将卷积引入视觉Transformer(文末附论文下载)(二)
最强Vision Trabsformer | 87.7%准确率!CvT:将卷积引入视觉Transformer(文末附论文下载)(二)
121 0
下一篇
无影云桌面