摘要
虽然 Transformer 架构已成为自然语言处理任务的事实上的标准,但其在计算机视觉中的应用仍然有限。 在视觉中,注意力要么与卷积网络结合使用,要么用于替换卷积网络的某些组件,同时保持其整体结构到位。 我们表明这种对 CNN 的依赖是不必要的,直接应用于图像块序列的纯变换器可以在图像分类任务上表现得非常好。 当在大量数据上进行预训练并转移到多个中小型图像识别基准(ImageNet、CIFAR-100、VTAB 等)时,视觉变换器 (ViT) 与最先进的相比取得了出色的结果- 艺术卷积网络,同时需要大量更少的计算资源来训练。
框架结构
方法
Transformer输入的是一维序列,而图片的数据是二维序列,因此将图片分割等大的patch,进行Patch Embedding的方法将图片以合适的方式输入到模型中 首先,将原始图片划分为多个patch子图,每个子图相当于一个token。接着,对每个patch进行embedding,通过一个线性变换层将二维的patch嵌入表示为长度为D的一维向量,并添加位置嵌入信息(0,1,2,…),即每个patch在原始图像中的位置信息(目的是:引入位置信息有利于模型正确评估注意力权重)
实验
典型模型设置 “Base”和“Large”模型直接来自 BERT,我们添加了更大的“Huge”模型 在下文中,我们使用简短的符号来表示模型大小和输入补丁大小:例如,ViT-L/16 表示具有 16×16 输入补丁大小的“大”变体
实验任务:图像分类 实验结果:ViT-H/14的架构,具有明显优势
实验任务:将 VTAB 任务分解为各自的组,并在此基准上与之前的 SOTA 方法进行了比较 实验结果:ViT-H/14效果最优
实验任务:证明ViT在大型数据集训练后,效果最佳,而小数据集训练后,效果不如CNN 实验结果:在大数据集JFT-300M上训练后,ViT效果最佳