视觉变形器(ViT)--使用变形器进行图像识别

89 阅读6分钟

视觉变形器(ViT)--使用变形器进行图像识别

一张图片值多少字?这篇[论文]告诉我们,一张图片的价值是16×16个字。让我解释一下他们的意思,以帮助你更好地理解。

前提条件

为了理解这篇文章的内容,读者应该对自然语言处理(NLP)和卷积神经网络(CNN)有一个基本的了解。

绪论

变换器是在本文[中]提出的,用于机器翻译,但后来成为解决NLP任务的主要架构,如语音识别和文本总结。它们是NLP最近发展的背后,包括OpenAI的GPT-3和谷歌的BERT。

在此之前,已经有人尝试过将变换器用于图像识别任务。这些尝试要么是将变换器与卷积网络一起使用,要么是通过替换某些模块来改造卷积网络。在这篇发表的[论文]中,他们根本没有依赖CNN。

他们纯粹依靠标准的变换器架构,这是自然语言处理(NLP)中的主流架构。他们所做的唯一技巧是将输入图像分解为一连串的图像补丁(16 x 16),作为标准转化器输入。但转化器架构的其余部分保持不变。

这些图像斑块被视为与NLP背景下的单词(tokens)一样的方式。因此,将16×16的输入图像看作是16×16的单词之间的关系。

结果显示,这种新型架构的表现优于最先进的CNN,被称为图像识别的主流网络架构。

该模型的概述

Vision Transformers model overview

该模型的第一步是将输入图像划分为一连串的图像斑块。本文将图像分为16 x 16个维度,因此论文的标题就是这样。

然后,这些图像斑块被传递到一个可训练的线性投影层。该层起到了嵌入层的作用,并输出固定大小的向量。

然后,位置嵌入被线性地添加到图像补丁的序列中,以便图像可以保留其位置信息。它注入了关于序列中图像斑块的相对或绝对位置的关键信息。

位置嵌入模块中需要注意的一个重要特征是第0类。这个第0类的概念是从BERT的类标记中借用的。像其他类一样,这个类也是学习的,但它并不是来自于它的图像。相反,它是在模型架构中硬编码的。

下面的图片展示了位置嵌入工作背后的想法。

The sequence of the images

如果我们不向转化器提供位置信息,它就不知道图像的顺序(哪个先来,哪个后来的图像)。然后,这个矢量图像的序列被送入转化器编码器。

变换器编码器模块包括一个多头注意层和一个多层感知器(MLP)层。虽然我们对MLP层很熟悉,但多头注意层在变换器中是一个新事物。

多头注意层将输入分成几个头,以便每个头可以学习不同程度的自我注意。然后,所有头的输出被串联起来并通过多层感知器。

同样重要的是要注意,转化器在每个块之前和残差块之后都会应用规范化层(层规范)。

最后,一个额外的可学习分类模块(MLP头)被添加到转化器编码器中,给出网络的输出类别。

结果

1.准确率

当ViT模型在ImageNet-21k数据集和JFT-300M数据集上进行预训练时,该模型在许多图像识别基准上战胜了最佳模型。

例如,ViT的最佳模型达到了以下精度。

  • 在ImageNet上为88.55%。
  • 在ImageNet-ReaL上为90.72%。
  • 在CIFAR-100上为94.55%。
  • 在VTAB的19项任务中达到77.63%。

Results on the Image Classification Benchmarks

2.数据集大小的影响

数据集的大小似乎在视觉转化器模型中起着重要作用。由于变换器缺乏CNN中存在的固有偏见,即位置性、等价性和平移性,它们在中等规模的数据集(如ImageNet)上往往概括性很差。

但是,当在ImageNet-21和JFT-300M(谷歌的内部数据集)上进行训练时,这些数据集是具有约1400万至30000万张图像的更大的数据集,发现归纳偏见的表现要好于它。他们还发现,随着数据集的扩大,准确率也会提高。

这些结果显示如下。

Pre-trained dataset results

3.任务转移

任务转移指出,知识应该在任务之间转移。例如,如果第一个任务是对猫和狗进行分类,而第二个任务是对马和牛进行分类,你应该在这两个任务组之间进行知识转移。

这是因为它们都是四条腿的动物。因此,给猫和狗分类的知识也应该与给马和牛分类的知识相似。

Visual Task Adaptation Benchmark’s Accuracy Performance

在对视觉任务适应基准(VTAB)进行评估时,发现视觉转化器模型在自然、专业和结构化任务组上的表现优于以前的模型。

4.注意力图

他们使用本文提出的Attention Rollout来计算从输出词到输入空间的注意力图。

他们的实验结果显示如下。

Examples of Attention Maps

模型的总结

  • Vision Transformer(ViT)需要的训练计算能力大大降低。训练它需要2.5k TPUv3-天。这看起来很多,但与目前最先进的方法相比,它仍然较少。
  • 巨大的模型(ViT-H)通常比大型模型(ViT-L)做得更好,并在与最先进的方法的竞争中获胜。
  • 注意力滚球是用来计算注意力图的。
  • 像GPT-3和BERT模型一样,视觉转化器模型也可以扩展。
  • 大规模的训练优于归纳性偏差。

总结

在这篇文章中,我们已经探讨了如何将变换器直接应用于图像识别。这与之前提出的使用注意力与CNN或改变CNN中的模块的架构相比,是一个转变。我们已经看到,在该架构中没有引入任何归纳偏见,如定位和等值。

相反,只使用了一个标准的变换器编码器。他们使用的唯一技巧是将输入图像转化为16 x 16图像补丁的序列。这是一个简单的、可扩展的架构,并且优于最先进的架构,特别是在大型数据集(如JFT-300M数据集)上训练时。对模型进行预训练也相对便宜。

变形器完全取代了NLP中的长短时记忆(LSTM)。现在,他们的目标是取代卷积神经网络(CNN)。这是一个很有前途的模型,可能会在未来使CNN灭绝,但还没有。该模型要完成其他计算机视觉任务,如图像分割和检测,仍然是一个挑战。