为什么视觉变压器的性能这么高?
三个要点
✔️ ViT在各层都有比较统一的表示(特征)。这意味着每一层的表述都是相似的。
✔️ ViT可以通过自我注意(self-attention)在早期阶段汇总全球信息。
✔️ ViT强烈地将表征从低层传播到高层。
Do Vision Transformers See Like Convolutional Neural Networks?
written by Maithra Raghu, Thomas Unterthiner, Simon Kornblith, Chiyuan Zhang, Alexey Dosovitskiy
(Submitted on 19 Aug 2021 (v1), last revised 3 Mar 2022 (this version, v2))
Comments: Published on arxiv.
Subjects: Computer Vision and Pattern Recognition (cs.CV); Artificial Intelligence (cs.AI); Machine Learning (cs.LG); Machine Learning (stat.ML)
code:![]()
![]()
本文所使用的图片要么来自论文、介绍性幻灯片,要么是参考这些图片制作的。
构建
卷积神经网络(CNN)一直是视觉数据的事实上的模型。然而,近年来,视觉变换器(ViT)已经在图像分类任务领域占据了主导地位。
为什么ViT在图像任务中表现如此出色?在本文中,我们分析了ViT和CNN的内部表现,并寻找两种架构之间的差异。
结果表明,ViT的自我注意机制能使全局表征早期聚集,而从低层到高层强烈传播表征的剩余连接(跳过连接)发挥了重要作用。
简介
在过去的几年里,CNN在图像任务中一直处于主导地位。这主要是由于通过卷积来保存空间特征的递归方法。它仍然可以随时用于转移学习,并可用于扭转通用的视觉表现。然而,最近的研究表明,ViT在图像分类任务中的表现优于CNN,因为它可以通过使用自然语言处理中使用的Transformer的自我注意机制来聚集全局特征。这与CNN不同,CNN使用卷积的归纳法来聚合信息,也与之前报道的改进CNN的方法不同。
本文分析了ViT如何执行图像任务,具体如下。
- ViT在比ResNet更低的层次上纳入了全局特征,因此总体上具有不同的特征。
- 然而,低层的局部特征捕捉仍然很重要,甚至ViT在大数据集上学习时也会学习这些低层的注意力。
- ViT的跳过耦合比ResNet更有影响力,对模型的性能和表现力有很大影响。
- 考虑到将ViT用于物体检测而不是分类任务,分析了输入的空间信息被保留的程度。
- 使用线性探针法研究了数据集大小对过渡学习的影响及其对高质量中间表征的重要性。
相关工作
为图像任务开发变形金刚是一个活跃的研究领域。之前的研究分析了注意力如何通过结合CNN和注意力或通过减少图像大小来捕捉局部特征。然而,关于设计ViT架构的研究很少,关于ViT与CNN的比较更是少之又少(尽管在写作任务中已经有报道)。
背景和实验环境
这项研究比较了CNN和ViTs,看看它们解决图像任务的方式是否存在差异。这里使用ResNet作为CNN。除非另有说明,数据集是JFT-300M。详见附录A。
表达相似性和CKA
对于隐藏层的表征分析,使用中心核对齐(CKA):CKA将同一图像的两层(X和Y)的表征(激活矩阵)作为输入。这里K和L的定义如下。
这被称为格拉姆矩阵;CKA的计算方法如下
HSIC是一个叫做希尔伯特-施密特独立性测试的指标。
图1.CKA绘制在上图中。使用两种类型的ViT,ViT-L/16和ViT-H/14。同样适用于ResNet。让我们先看看对角线的情况。无论ViT和ResNet如何,对角线都是白色的,因为如果比较相同的层,CKA是最大的。
而ViT显示的是整体的橙色到白色。这意味着下层和上层所输出的表征是相似的。另一方面,如果你看ResNet,情节图看起来像一个橙色和紫色的格子图案。这是由于一个层和另一个层的表达的相似性是不均匀的,有些层的表达是不相似的(紫色),有些层的表达是相似的(橙色)。
这表明ViT获得的表现力在下层和上层是相似的。神经网络在向上层移动时,会从局部(local)到全局(global)的特征学习。因此,可以认为ViT从一开始就捕捉到了全局特征,反之,ViT在经过各层时并没有获得不同的表征。
图2;与图1不同的是,表征的相似性是以ViT和ResNet为轴绘制的;对于ViT和ResNet,在ViT的0-20层和ResNet的0-60层,相似性似乎很高;ViT的40-60层和ResNet的80-120层也是如此。相反,在两个模型的上层没有发现相似之处。
结合图1,这表明ViT和ResNet有不同的图像抽象风格。
图层表示中的局部和全局信息。
自我注意层在结构上与CNN有很大不同:自我注意层由多头注意组成,对于每个头来说,可以计算出查询和注意之间的距离。这表明了自我注意层对本地和全球信息的聚集程度。
上面是这个距离的5000个数据中的平均值图。有两种类型的条目,下层(block0、block1)和上层(block22、block23)。可以看出,下层的平均距离(Mean Distance)小而宽,也就是说,它既能获得局部信息也能获得全局信息,而上层获得的主要是全局信息。
综合来看,这些结果表明:(i)ViT的低层与ResNet的低层有不同的表征;(ii)ViT在低层和高层之间有很强的表征传播;(iii)ViT的最高层与ResNet有很不同的表征。
如上图所示,同样明显的是,当训练数据集在ViT中减少时(使用ImageNet),即使在较低层也没有进行局部学习。然后,该模型的性能就会下降,它的性能比CNN还差。这意味着,在这种情况下,CNN的性能与局部特征的学习有关。
与ResNet的进一步比较见上图:ResNet下层和ViT下层获得的表征的相似性随着平均距离(横轴)的增加而单调下降,表明随着距离的增加,ViT上层和ResNet下层学到了数量上不同的特征。事实证明,。
通过跳过连接传播表征。
已经表明,ViT表征是统一的,但它们是如何传播的?
这里对没有跳过连接的ViTs进行了实验训练。然后,如上图所示,我们可以看到,表征的相似性已经消失了(从紫色到黑色)(此外,模型的性能也下降了),证明了ViTs中跳过连接的重要性。
空间信息和定位
上图显示了ViT和ResNet保留空间信息的情况。CKA相似性是在任意层的特征图上计算的:在ViT中(最上面的两个),黄色或蓝色被发现在大致相似的位置;ResNet似乎也在大致相似的位置保留了信息,但显示了广泛的空间相似性。这意味着即使在不相关的位置也有相似之处。
这表明,空间信息也保留在ViT的上层,这在物体检测任务中是有用的。
规模的影响。
我们已经表明,ViT学到的特征随着数据集的大小而变化。
以上显示了在改变数据集的大小时模型的性能变化。左边是在JFT-300M上训练的模型(实线)和在ImageNet上训练的模型(虚线)之间的比较。该任务是ImageNet上的分类任务。
虽然最终(横轴上的1.0)的结果没有明显差异,但中间层的表示(横轴上的0.5左右)显示ViT更准确。这表明,换句话说,在大型数据集(JFT-300M)上训练时,ViT获得了更高质量的中间表征。
右边是加入ResNet后的比较。最终结果本身显示ViT和ResNet之间没有明显差异,但ViT在中间表示法上仍有优势。CIFAR-10和CIFAR-100的情况也是如此。
讨论
与CNNs相比,CV的突破性进展,令人惊讶的是,由自然语言生成的变形金刚在图像任务中的表现与CNNs一样好。
在本文中比较CNN(ResNet)和ViT,我们表明在内部结构上有一个令人惊讶的明显区别:我们发现ViT从一开始就聚合了全局信息,并利用跳过连接将其强烈传播到上层。我们还发现,ViT需要一个庞大的预训练数据集,这使它能够获得高质量的中间表征。这些发现回答了关于ViT和CNN之间差异的问题,并指出了未来研究的新方向。
与本文相关的类别