相关知识:《Transformer》论文精读:只用注意力机制,Transformer奠定了大模型网络架构的基石
文章目录
摘要
论文描述了计算机视觉领域中的一种新型架构——Vision Transformer (ViT)。
-
Transformer 架构的背景:
- Transformer 架构最初是为自然语言处理(NLP)任务设计的,它通过自注意力机制(self-attention mechanism)来处理序列数据,如文本。
- 在 NLP 领域取得成功后,研究者开始探索将 Transformer 应用于计算机视觉(CV)的可能性。
-
传统 CV 方法与 Transformer 的结合:
- 在计算机视觉领域,卷积神经网络(CNNs)一直是主导架构。
- 早期尝试在视觉任务中使用 Transformer 时,通常是将其与 CNN 结合使用,或者用 Transformer 替换 CNN 中的某些组件,但保留整体结构不变。
-
纯 Transformer 的应用:
- 文章指出,并不一定需要依赖 CNN。相反,可以将一个纯粹的 Transformer 直接应用于图像补丁(image patches)序列上,这些补丁是从原始图像中提取出来的局部区域。
- 这意味着整个模型可以完全由 Transformer 组件构成,而不包含传统的卷积层。
-
Vision Transformer (ViT) 的性能:
- 当 Vision Transformer 在大量数据上进行预训练,并迁移到 ImageNet、CIFAR-100、VTAB 等中等或小型图像识别基准测试集时,它可以达到与最先进(state-of-the-art)的卷积网络相媲美的优秀结果。
- 此外,ViT 训练所需的计算资源显著少于那些最先进的卷积网络。
总结来说,作者强调了纯 Transformer 架构(即 Vision Transformer)在计算机视觉任务上的潜力,特别是在图像分类方面,它不仅能够实现高性能,而且效率更高。这一发现挑战了以往认为在视觉任务中必须依赖 CNN 的观点,并为未来的研究和应用提供了新的方向。
1 简介
基于自注意机制的架构,尤其是 Transformers(Vaswani 等人,2017 年),已经成为自然语言处理(NLP)领域的首选模型。主流方法是在大型文本语料库上进行预训练,然后在较小的特定任务数据集上进行微调(Devlin 等人,2019 年)。得益于 Transformers 的计算高效性和可扩展性,它可以训练出前所未有的模型,参数超过 1 亿(Brown 等人,2020 年;Lepikhin 等人,2020 年)。随着模型和数据集的增长,性能仍未出现饱和迹象。
然而,在计算机视觉领域,卷积架构仍然占据主导地位(LeCun 等人,1989 年;Krizhevsky 等人,2012 年;He 等人,2016 年)。受 NLP 成功的启发,多项研究尝试将类似 CNN 的架构与自我注意相结合(Wang 等人,2018 年;Carion 等人,2020 年),有些研究甚至完全取代了卷积(Ramachandran 等人,2019 年;Wang 等人,2020a)。后一种模型虽然理论上高效,但由于使用了专门的注意力模式,尚未在现代硬件加速器上有效扩展。因此,在大规模图像识别中,类似 ResNet 的经典架构仍然是最先进的(Mahajan 等人,2018 年;Xie 等人,2020 年;Kolesnikov 等人,2020 年)。
受 NLP 中Transformer网络大小扩展成功的启发,我们尝试将标准Transformer直接应用于图像,并尽可能减少修改。为此,我们将图像分割成多个图像补丁,并将这些图像补丁的线性嵌入序列作为Transformer的输入。图像补丁的处理方式与 NLP 应用中的tokens(单词)相同。我们以监督方式对图像分类模型进行训练。
在中等规模的数据集(如 ImageNet)上进行训练时,如果不进行强正则化,这些模式的准确率会略低于同等规模的 ResNets 几个百分点。这种看似令人沮丧的结果可能是意料之中的:Transformer缺乏一些CNN固有的归纳偏差,如平移等变性和局部性,因此在数据量不足的情况下进行训练时不能很好地泛化。
Translation equivariance 平移等变性 指的是当输入图像中的对象被平移时,CNN输出的特征图也会相应地平移,但不会改变其形状或激活模式。简单来说,如果一个特定的图案或对象在图像的一个位置上激活了一定的神经元,那么当这个图案或对象平移到图像的另一个位置时,相同的神经元将会在新的位置上激活。这种性质对于检测图像中对象的位置变化非常重要,因为无论对象出现在图像的哪个部分,CNN都能识别出它。
Locality 局部性 指的是CNN对图像的局部区域进行操作的原则。在CNN中,每个卷积层的过滤器(filter)只与输入的局部区域(即感受野)连接,而不是整个图像。这意味着CNN可以捕捉到图像中的局部特征,比如边缘、角点或其他纹理信息。通过堆叠多个卷积层,CNN可以从低级的局部特征逐步构建更高级、更抽象的特征。这样的设计使得CNN能够有效地减少参数数量,并且专注于学习图像中最重要的局部特征,这对于视觉任务如图像分类、目标检测等非常有用。
然而,如果在更大的数据集(1 400 万至 3 亿张图像)上对模型进行训练,情况就会发生变化。我们发现,大规模训练战胜了归纳偏差。我们的模型(Vision Transformer,ViT)在经过足够规模的预训练后,可用于数据量较少的任务,并取得优异成绩。当在公共 ImageNet-21k 数据集或内部 JFT-300M 数据集上进行预训练时,ViT 在多个图像识别基准上接近或超越了SOTA水平。其中,最佳模型在 ImageNet 上的准确率为 88.55%,在 ImageNet-ReaL 上的准确率为 90.72%,在 CIFAR-100 上的准确率为 94.55%,在包含 19 项任务的 VTAB 上的准确率为 77.63%。
2 相关工作
Transformer是 Vaswani 等人(2017 年)为机器翻译提出的,自此成为许多 NLP 任务中最先进的方法。基于 Transformer 的大模型通常在大型语料库上进行预训练,然后针对手头的任务进行调整: BERT(Devlin 等人,2019 年)使用去噪自监督预训练任务,而 GPT 的系列工作则使用语言修改作为预训练任务(Radford 等人,2018 年;2019 年;Brown 等人,2020 年)。
将自注意力应用于图像,需要每个像素都关注其他像素。由于成本与像素数量成二次方关系,这并不适合现实的输入尺寸。因此,为了在图像处理中应用Transformer,过去曾尝试过几种近似方法。Parmar 等人(2018)仅在每个查询像素的局部邻域而非全局应用了自注意。这种局部多头点积自注意力块可以完全取代卷积(Hu 等人,2019;Ramachandran 等人,2019;Zhao 等人,2020)。在另一项研究中,稀疏Transformer(Child 等人,2019 年)采用了可扩展的全局自我注意力近似方法,以便适用于图像。另一种扩展注意力的方法是在不同大小的块中应用注意力(Weissenborn 等人,2019 年),极端情况下只沿单个轴应用注意力(Ho 等人,2019 年;Wang 等人,2020a)。这些专门的注意力架构中有许多在计算机视觉任务中取得了可喜的成果,但需要复杂的工程设计才能在硬件加速器上高效实现。
与我们最相关的是 Cordonnier 等人(2020 年)的模型,该模型从输入图像中提取大小为 2 × 2 的图像补丁,并在其上应用完全自注意。该模型与 ViT 非常相似,但我们的研究更进一步证明,大规模预训练可使 vanilla Transformer与最先进的 CNN 相媲美(甚至更好)。此外,Cordonnier 等人(2020 年)使用的是 2 × 2 像素的小补丁尺寸,这使得该模型仅适用于小分辨率图像,而我们也能处理中等分辨率图像。
将卷积神经网络(CNN)与各种形式的自注意相结合也引起了人们的极大兴趣,例如,通过增强图像分类的特征图(Bello 等人,2019 年)或使用自注意对 CNN 的输出进行进一步处理,例如,用于物体检测(Hu 等人,2018 年;Carion 等人,2020 年)、视频处理(Wang 等人,2018 年;Sun 等人,2019 年)、图像分类(Wu 等人,2020 年);Carion 等人,2020)、视频处理(Wang 等人,2018;Sun 等人,2019)、图像分类(Wu 等人,2020)、无监督对象发现(Locatello 等人,2020)或统一文本视觉任务(Chen 等人,2020c;Lu 等人,2019;Li 等人,2019)。
另一种最新的相关模型是图像 GPT(iGPT)(Chen 等人,2020a),该模型在降低图像分辨率和色彩空间后,将Transformer应用于图像像素。该模型作为生成模型以无监督的方式进行训练,由此产生的表征可以通过线性调整或微调来提高分类性能,在 ImageNet 上的最高准确率达到 72%。
越来越多的论文探讨了比标准ImageNet数据集更大尺度的图像识别问题,我们的研究为这些论文库增添了新的内容。使用额外的数据源可以在标准基准上取得最先进的结果(Mahajan 等人,