一、摘要
Transformer架构已经成为自然语言处理任务的事实上的标准,但它在计算机视觉上的应用仍然有限。在视觉方面,注意力要么与卷积网络结合使用,要么用于替换卷积网络的某些组件,同时保持其整体结构不变。VIT证明这种对cnn的依赖是不必要的,直接应用于图像补丁序列的transformer可以很好地完成图像分类任务。Vision Transformer (ViT)与最先进的卷积网络相比获得了出色的结果,所需要的资源也更少。
二、模型概述
图像分割成固定大小的补丁,线性嵌入每个补丁,添加位置嵌入,并将结果向量序列馈送到标准Transformer编码器。ViT模型利用Transformer模型在处理上下文语义信息的优势,将图像转换为一种“变种词向量”然后进行处理,而这种转换的意义在于,多个Patch之间本身具有空间联系,这类似于一种“空间语义”,从而获得了比较好的处理效果。
数据集的原图像被划分为多个Patch后,通过Patch Embedding将二维Patch(不考虑channel)转换为一维向量,再加上类别向量与位置向量作为模型输入。模型主体的Block结构是基于Transformer的Encoder结构,但是调整了Normalization的位置,其中最主要的结构依然是Multi-head Attention结构。模型在Blocks堆叠后接全连接层,接受类别向量的输出作为输入并用于分类。通常情况下,我们将最后的全连接层称为Head,Transformer Encoder部分为backbone。 输入原始图像,经过缩放统一大小为224x224;经过卷积处理,变为16x16个大小为14x14的patch;每个patch拉伸为1x196的向量,加上class_embedding变为1x197的向量,再与1x197的pos_embedding向量;将得到的pos_embedding向量输入网络进行训练,网络结构主要由transformer的encoder组成;在分类任务中,输出结果取所有patch vector的class_embedding数值输入后续的MLP进行计算。
当考虑到预训练模型的计算成本时,ViT表现非常好,以较低的预训练成本在大多数识别基准上达到最先进的水平。最后,我们使用自我监督进行了一个小实验,并表明自我监督的ViT在未来是有希望的。下表显示了结果。在JFT-300M上预训练的较小的ViT-L/16模型在所有任务上都优于BiT-L(在相同的数据集上预训练),同时需要更少的计算资源来训练。更大的模型ViT-H/14进一步提高了性能,特别是在更具挑战性的数据集- ImageNet, CIFAR-100和VTAB套件上。与之前的技术相比,模型在预训练上花费的计算仍然少得多。
虽然在小数据集上进行预训练时,大型ViT模型的表现比BiT ResNets(阴影区域)差,但在大型数据集上进行预训练时,它们表现出色。同样,随着数据集的增长,较大的ViT变量会超过较小的ViT变量。使用ImageNet-21k预训练,它们的性能是相似的。只有使用JFT-300M,我们才能看到更大型号的全部好处。不同大小的BiT模型所跨越的区域。BiT cnn在ImageNet上的表现优于ViT,但在更大的数据集上,ViT超越了它。
横轴表示不同量级的数据集(越往右数据集越大),纵轴表示准确率。图中灰色阴影部分表示在相应数据集下,不同架构的卷积神经网络的准确率范围。可以发现,当数据集较小时,VIT表现明显弱于卷积网络。但当数据量级大于21k时,VIT的能力就上来了。它们的成功在很大程度上不仅源于它们出色的可扩展性,还源于大规模的自我监督预训练。我们还模拟BERT中使用的掩码语言建模任务,对自我监督的掩码补丁预测进行了初步探索。通过自我监督预训练,我们较小的ViT-B/16模型在ImageNet上达到了79.9%的准确率,与从头开始训练相比显著提高了2%,但仍比监督预训练低4%。
三、结论
与之前在计算机视觉中使用自注意的工作不同,除了初始补丁提取步骤外,VIT没有将特定于图像的归纳偏差引入体系结构。相反,VIT将图像解释为一系列补丁,并通过NLP中使用的标准Transformer编码器对其进行处理。当与大型数据集的预训练相结合时,这种简单但可扩展的策略效果出奇地好。因此,Vision Transformer在许多图像分类数据集上达到或超过了最先进的水平,同时预训练相对便宜。证明了一个统一框架在不同模态任务上的表现能力。在ViT之前,NLP的SOTA范式被认为是Transformer,而图像的SOTA范式依然是CNN。ViT出现后,证明了用NLP领域的SOTA模型一样能解图像领域的问题,同时在论文中通过丰富的实验,证明了ViT对CNN的替代能力,同时也论证了大规模+大模型在图像领域的涌现能力)。虽然这些初步结果令人鼓舞,但仍存在许多挑战。一是将ViT应用于其他计算机视觉任务,如检测和分割。另一个挑战是继续探索自我监督的预训练方法。初步实验显示了自监督预训练的改进,但自监督预训练与大规模监督预训练之间仍有很大差距。最后,进一步扩展ViT可能会提高性能。
参考链接: