文章目录

前言

近十年来,卷积神经网络一直主导着全球的计算机视觉研究。然而,人们提出了一种新的方法,利用变压器的能量来理解图像。变压器最初是为自然语言处理任务设计的,主要关注神经机器翻译。来自谷歌Research的Alexey Dosovitskiy, Lucas Beyer等人的论文《An Image is Worth 16x16 Words: Transformer for Image Recognition at Scale》提出了一种名为Vision Transformer (ViT)的架构,利用变压器来处理图像数据。在本文中,我将尝试解释它是如何工作的。

卷积神经网络的问题

在我们深入研究视觉变压器的方法之前,有必要分析卷积神经网络的缺点和根本缺陷。首先,cnn无法对相对空间信息进行编码。我们的意思是,它关注于检测某些特征,而不考虑它们之间的相对位置。

这是卷积神经网络的终结吗?_卷积神经网络
在上面的图像中,它们都被归类为一张脸,因为CNN只会看输入图像中是否有特定的特征,而不关心它们之间的排列。

CNN的另一个主要缺陷是池化层。池化层丢失了许多有价值的信息,比如最活跃的特征检测器的精确位置。换句话说,它不能传达被检测到的特征在图像中的确切位置。

Transformers

在本质上,变压器使用自我关注的概念。让我们把它分成两个部分,自我和注意力。注意力只不过是可训练的权重,它可以模拟输入句子的每个部分的重要性。假设输入的是一个句子,它会查看句子中的每个单词,并将其在句子中的位置与同一句子中所有单词(包括它自己)的位置进行比较,因此出现了“自我注意”(self-attention)这个词。分数是根据这些位置线索计算出来的,然后用这些线索以更好的方式对句子的语义或意义进行编码。
这是卷积神经网络的终结吗?_计算机视觉_02
在上面的例子中,我们可以看到transformer中的注意单位是将“it”这个词与句子中包括它自己在内的每一个词的位置进行比较。不同的颜色代表了多个注意力单元独立且同时工作,以发现这些连接的不同模式。使用上述比较计算出分数后,它们通过简单的前馈神经元层发送,最后进行一些归一化。在训练过程中,学习这些注意向量。

模型结构

这是卷积神经网络的终结吗?_计算机视觉_03
就像普通的transformer使用单词来学习句子一样,视觉transformer使用像素来实现图像的类似结果。然而,这里有一个陷阱。与文字相比,单个像素本身并不能传达任何意义,这也是我们转向卷积滤波器的原因之一,它对一组像素进行操作。因此,他们把整个图像分割成小块或小词。所有的小块都用一个线性投影矩阵来变平,并随着它们在图像中的位置一起输入到变压器中,如上图所示。在他们的实践中,他们选择了16x16大小的补丁,这就是他们研究的诗意标题。

现在,这些嵌入的小块经过多层交替的多头自我注意,多层感知器(简单的前馈神经网络)和层归一化,就像在一个普通的变压器。在变压器编码器的末端附加分类头,以预测最终的类。与任何其他卷积模型一样,我们可以使用预先训练的编码器库,并附加一个定制的MLP层来微调模型,以适应它们的分类任务。

这是卷积神经网络的终结吗?_卷积_04

重点

作者在各种标准数据集上训练了这个模型,如ImageNet、cifare10 /100和jpt - 300m, jpt - 300m是谷歌拥有的私有数据集,拥有3亿张高分辨率图像。与其他最先进的卷积模型相比,他们的模型具有大致相同的精度(在许多情况下甚至略高),但显著减少了训练时间(减少了大约75%),并且使用了更少的硬件资源。

ViT的另一个优势是,它可以很早就了解到更高层次的关系,因为它使用的是全局的注意力而不是局部的。甚至在最开始的时候,你就可以注意到与卷积神经网络不同的遥远事物。

除了在训练过程中非常高效,随着训练数据的增加,它也变得越来越好。

结果

这是否意味着cnn已经过时,ViT已经成为新常态?当然不!虽然CNN也有它的缺点,但对于目标检测和图像分类等任务来说,它仍然是非常有效的。最先进的卷积架构ResNet和EfficientNet模型仍然在此类任务中占据着至高无上的地位。然而,transformer已经在语言翻译等自然语言处理任务上取得了突破,并在计算机视觉领域显示了相当大的前景。只有时间才能告诉我们在这个不断发展的研究领域将会发生什么。