您当前的位置: 首页 > 

NeurIPS 2021 | 视觉Transformer和CNN看到的特征是相同的吗?谷歌大脑新作

发布时间:2021-11-12 07:10:25 ,浏览量:2

本文转载自:DeepHub IMBA

作者:Akihiro FUJII

近年来,Vision Transformer (ViT) 势头强劲。本文将解释论文《Do Vision Transformers See Like Convolutional Neural Networks?》 (Raghu et al., 2021) 由  Google Brain 发表,并探讨传统CNN 和 Vision Transformer 之间的区别。

Do Vision Transformers See Like Convolutional Neural Networks?  

cc8220bac64655348edd53169f00c437.png

论文:https://arxiv.org/abs/2108.08810

本文摘要

这篇论文有六个关于基于ResNet (He et al., 2016) 的 CNN 网络和 ViT 的核心观点:

  1. 与 CNN 相比,ViT 在浅层和深层获得的表征之间具有更多相似性

  2. 与 CNN 不同,ViT 从浅层获得全局表示,但从浅层获得的局部表示也很重要。

  3. ViT 中的跳过连接比 CNN (ResNet) 中的影响更大,并且显着影响表示的性能和相似性。

  4. ViT 比 ResNet 保留了更多的空间信息

  5. ViT可以用大量数据学习高质量的中间表示

  6. MLP-Mixer 的表示更接近 ViT 而不是 ResNet

本篇文章中,我将首先简要回顾 ResNet 和 ViT 的结构,它们是基于 CNN 的模型的代表性示例,然后仔细研究本文描述的获得的表示的差异。

ResNet 基础知识

ResNet 是计算机视觉 (CV) 任务的流行模型。如下图 所示,ResNet 的加权传播侧使用跳过一层权重的残差连接进行求和。带有跳过连接的求和过程缓解了梯度消失等问题,并允许比以前的网络更深的层。

ef99f3876296fac50aa3cb5bdb87ffcd.png

ViT基础知识

首先,让我们看一下 Vision Transformer (ViT) 中使用的Transformer 编码器。

Transformer

Transformer 是论文“Attention Is All You Need”(Vaswani 等,2017)中提出的模型。它是使用一种称为自注意力(self-attention) 机制的模型,既不是 CNN 也不是 LSTM,并且使用的 Transformer 构建的模型以显著的优势,击败了提出时其他的方法。

注意下图中标记为Multi-Head Attention的部分是Transformer的核心部分,但它也像ResNet一样使用skip-joining。

c149d1466e9139a587ce95bdaedc6df7.png

Transformer 中的注意力机制使用三个变量:Q(查询)、K(键)和 V(值)。简单地说,它计算一个 Query 令牌(令牌:类似单词的东西)和一个 Key 令牌的注意力权重并乘以与每个Key相关联的Value。简而言之,它计算 Query 令牌和 Key 令牌之间的关联(注意力权重),并将与每个 Key 关联的 Value 相乘。

db18ee73b0ec586a1b81d00177109872.png

如果将Q, K, V计算定义为单头,则多头注意机制定义如下:上图中的(单头)注意机制使用了Q和K。然而,在多头注意机制中,每个头都有自己的投影矩阵W_i^Q、W_i^K和W_i^V,他们利用这些矩阵投影的特征值来计算注意力权重。

6e45b24d2c3a7c94088bd556c43ce4c6.png

如果这个注意力机制中使用的Q、K、V是从同一个输入中计算出来的,则被称为Self-Attention。另一方面,Transformer 解码器的上部不是自注意力机制,因为它使用来自编码器的 Q 和来自解码器的 K 和 V 计算注意力。

实际应用如下图所示。该图显示了使用单词“making”作为查询为每个 Key 令牌计算的注意力权重的可视化。Transformer 使用多头自注意力机制传播到后面的层,每个头学习不同的依赖关系。下图中的关键词用颜色表示,代表每个头部的注意力权重。

07d4ef8ca112d3df28bb0522dcb98489.png

ViT

Vision Transformer (ViT) 是一种将 Transformer 应用于图像分类任务的模型,于 2020 年 10 月提出(Dosovitskiy et al. 2020)。模型架构几乎与原始 Transformer 相同,但有一点不同,允许将图像做为输入,就像自然语言处理一样。

41f9cbc6e2c487eee613901e88394ab5.png

首先,ViT 将图像分成 N 个“patches ”,例如 16x16。由于patches 本身是 3D 数据(高 x 宽 x 通道数),它们不能由处理语言(2D)的转换器直接处理,因此需要将它们展平并进行线性投影转换为 2D 数据。所以每个patch都可以看作是一个可以输入到Transformer中的零令牌。

另外,ViT采用先预训练再微调的策略。ViT 使用 JFT-300M(一个包含 3 亿张图像的数据集)进行预训练,然后在 ImageNet 等下游任务上进行微调。ViT 是第一个在 ImageNet 上实现 SotA 性能的纯 Transformer 模型,这使得 Transformer 应用于计算机视觉任务的研究激增。

但是训练 ViT 需要大量数据。Transformer 数据越少精度越低,数据越多精度越高,并且在 JFT-300M 上进行预训练时性能优于 CNN。

7dc413f2c0f4a992cdb943ada197dab3.png

比较 ResNet 和 ViT

到目前为止,我们已经看到了 ResNet 和 ViT 的概述,它们都可以在图像识别任务中表现良好,但是它们之间有什么区别呢?在论文“Do Vision Transformers See Like Convolutional Neural Networks?”中,作者对其进行了研究。

1、与 CNN 相比,ViT 在浅层和深层获得的表征之间具有更多相似性

ViT 和 ResNet 之间的主要区别之一是初始层的大视野。

71babe6f2a9a6df370a497c21f494dda.png

CNN(ResNet)只有一个固定大小的内核视野(大小为 3 或 7)。具体来说,CNNs 通过对内核周围的信息逐层反复“卷积”,逐渐扩大视野。相比之下,ViT 使用了一种自注意力机制,让模型即使在最底层也能拥有整个视野。当然视野也会因网络的结构而异。

下图展示了ViT的实际视野(自注意力机制的有效距离)。在浅层有一些像CNN这样具有局部视野的部分,但也有很多具有全局视野的头部。

8f296094d7967848719e78da3f9c8c4d.png

那么,ResNet和ViT在每一层深度获得的表示结构上有什么不同呢?为了找出答案,作者在下面的图中绘制了每一层获得的表示的相似度。

59425c14dd5faff67c5e807753b1feaa.png

在上图中,他们用一个叫做CKA相似度的度量方法绘制了每一层得到表示的相似度(这里不会详细介绍CKA相似度的技术细节,如果你想了解更多请参阅原文)。图的对角线部分相似度肯定是高的,因为它与自身相似,但让我们看看图的其他部分。

首先,在ViT(左边两个)中,我们可以看到,不管层的深度如何,总体颜色都表明获得了相似的表示。另一方面,在CNN(右边两个)中,我们注意到在浅层和深层获得的表示之间没有相似之处。这可能是因为在ViT中,我们从一开始就得到了全局表示,而在CNN中,我们需要传播层来得到全局表示。

ViT和ResNet之间的相似性绘制在下面的图中

91e6fc1f2d70b26af754cb0b92d574f8.png

我们可以看到,ViT的第1层到第40层和ResNet的第1层到第70层之间的相似性很高。所以ResNet需要70层才能获得表示,而ViT需要40层就能获得了。这意味着获取浅层表示的方法是非常不同的。此外,ViT的深层与ResNet的深层相似度较低。因此,ViT和ResNet在图像的抽象表示上有很大的不同。

顺便说一下,一些研究的动机是由于自注意力图的相似性,ViT 没有从深化中受益(Zhou et al., 2021])。本研究侧重于头部之间的高度多样性,并提出了一种称为 Re-Attention 的机制,该机制引入了一个学习参数来混合不同头部之间的特征。他们使用它(DeepViT)取得了很好的效果。

286f3819e4492ddee745dd640699af66.png

2、与cnn不同,ViT从浅层获得全局表示,但从浅层获得的局部表示也很重要

下图显示了使用JFT-300M预训练(3亿张图片)和ImageNet微调(130万张图片)后,预训练和ImageNet微调后的自注意力机制的有效距离(5000个数据的自注意力距离的平均值)

aa138fe2c6d2238b52d877061c1485ba.png

在浅层 (encoder_block0, 1) 中,我们可以看到模型同时获得局部和全局表示,而在深层 (encoder_block22, 23, 30, 31) 中,所有表示都有全局视图。

正如我们在描述中看到的,训练 ViT 需要大量的数据(例如 JFT-300M),如果数据不足准确率就会下降。下图显示了这种情况。

d4b036a4076712be326a551819f898fa.png

如果我们比较图 3 和图 4 可以看到,当数据集很小时,我们无法在浅层中获得局部表示。从这个结果和“ViT在数据小的时候不能达到准确率”这一事实,我们可以看出,用足够的数据训练的ViT得到的“局部表征”对准确率有显着的影响。

但是数据量和获得的表示之间是什么关系呢?下图说明了这一点。

67624a94846cfad7534924eb91aacd9b.png

对于浅层表示,大约有 10% 的数据与使用所有数据获得的表示的相似度类似。对于深层表示即使有 30% 的数据相似度也低于 0.2。由此我们可以说有助于准确性的深层表示只能通过大量数据来学习。前面提到局部表示很重要,但似乎可以在深层获得的全局表示也很重要。

虽然这里没有具体说明,但实验很可能是用JFT-300M进行的,所以即使我们说总数据的3%,仍然有大约10M的数据量(大约是ImageNet的10倍)。在我看来30%的数据(100M)就足以得到浅层应该得到的局部表征,如果数据多,就有可能得到全局表征中重要的东西。

3、ViT 中的跳过连接比 CNN (ResNet) 中的影响更大,并且显着影响表示的性能和相似性

接下来,我们来看看跳过连接和习得表达式的相似度之间的关系。如下图所示。

7dfd1220e37c4360c1eba7e90bbd5d9a.png

在如图所示的实验中,我们计算当第i层的跳过连接被消除时获得的表示的相似度。将此图与图 1 (CKA相似度部分那张图)的左侧(ViT)进行比较,可以看到在消除跳过连接的第 i 层之后,获取的表示的相似趋势发生了剧烈变化。换句话说,跳过链接对表示传播有显着影响,当它被消除时层的相似性会发生显着变化。另外就是在中间层消除跳过连接时,准确率下降了大约 4%。

接下来,我们来看看跳过连接在信息传播中是如何发挥作用的。请看下图。

d60bd4be978a158120b6919d6619e540.png

在图中,比率越大通过跳过加入传播的信息就越多;左边的图显示类的令牌是通过在初始层中的跳过连接传播的,而图像是通过自注意和多层网络传播的,这种趋势在更深层次上发生了逆转。

右图显示了与 ResNet 的比较。绿线是 ResNet,而 ViT 的值更大,表明通过跳跃连接点的信息传播起主要作用。

虽然论文中没有具体提到,但由于skip-joining在信息传播中起主要作用这一事实可能导致在图8(上上图)中消除中间层的跳过链接时准确率显着下降。

4、ViT比ResNet保留更多的空间信息

接下来,让我们比较ViT和ResNet保留了多少位置信息。请看下图。

2cb56383d49a944336967c9d3af194e4.png

作者通过绘制输入图像的一个patch与最后一层feature map在某一位置的CKA相似性来测试ViT和ResNet是否保留了位置信息。如果保留了位置信息,那么只有在feature map中与该位置对应的位置上与输入图像的patch在某个位置上的相似度才应该较高。

首先,让我们看一下ViT(上、中)。正如预期的那样在最后一层对应位置的相似性很高。这意味着ViT在传播表示的同时保留位置信息。接下来,让我们看看ResNet(底部一行)。在这种情况下,不相关位置的相似性较高,说明它不保留位置信息。

这种趋势上的差异可能是由于网络结构的不同造成的。请看下图(该图摘自Wang et al., 2021年)。

8eea2fcbd70d369af870ee1e0988e3e1.png

ResNet和其他基于cnn的图像分类网络以降低的分辨率传播表示。例如,ResNet有五个阶段,每个阶段的分辨率减半,所以最终的feature map大小是1/32 * 1/32(左图)。另一方面,ViT首先标记为16x16大小,这降低了该区域的分辨率,但它会以该分辨率传播到最后一层。因此ViT比ResNet更有可能保留位置信息。但是首先,图像分类任务不需要位置信息来进行分类决策,所以不能说因为位置信息被保留了ViT就比ResNet更有优势。

此外,在最近的研究中,在Vision Transformer的相关研究中经常使用ResNet等逐步降低分辨率的策略。例如右上方的Pyramid Vision Transformer。Transformer系统使用自注意力,占用的内存大小与图像大小的四次方成比例增加。这使得处理大分辨率变得困难,但通过使用逐渐降低分辨率的策略,如在CNN系统中,可以在节省内存的同时在第一层处理高分辨率的信息。

5、ViT可以学习具有大量数据的高质量中间表示

接下来,让我们看看中间层表示的质量。下图显示了这个实验。

687960f5aaf8de4beedfe5c858917078.png

在这个实验中,作者试图查看他们是否可以使用中间层的表示来用线性模型进行分类。简单模型(如线性模型)的精度越高,层得到的表示就越好。

首先,让我们看看数据集的大小和获得的表示之间的关系(左图)。在这里,我们比较了ImageNet(虚线)和JFT-300M(实线)上的实验结果,ImageNet包含130万张图片,JFT-300M包含3亿张图片。在JFT-300M上训练的表示更好因为JFT-300M是一个庞大的数据集。接下来是包括ResNet在内的模型的比较可以看出,模型越大表示效果越好。

附注:在右图中,基于resnet的模型的精度在接近最后一层时突然增加。这是为什么呢?

Frosst 及其同事的一项研究提供了一个提示(Frosst 等人,2019 年)。他们将带有temperature term的 Soft Nearest Neighbor Loss 引入 ResNet 的中间层并研究其行为。Soft Nearest Neighbor Loss 按类别表示特征的纠缠状态。Soft Nearest Neighbor Loss 值大表示按类的特征是交织在一起的,而小值表示按类的特征是分开的。

a63ca66458a83866b297be0ba2531bf6.png

408a958a658a1f881c9802c85989aa37.png

Soft Nearest Neighbor Loss [软最近邻损失]

下图显示了ResNet中每个区块的软最近邻损失值。它是一种高性能的图像分类网络,但除了最后一层以外,它不分离每个类别的特征。在我看来ResNet的这一特性可能是最后一层附近精度快速提高的原因,如图13所示。

ce95a795cb134e10127dc6ab7ee4abd4.png

在最后一层,软最近邻损失值较小,说明特征是按类别划分的。(Frosst等人,2019年)

6、MLP-Mixer的表示更接近ViT而不是ResNet

近年来,利用多层感知器(MLPs)即具有密集层的网络,已经超过transformers成为最高精度的图像分类模型。一个典型的例子是名为MLP-Mixer的网络(Tolstikhin et al., 2021)。该网络的结构如下图所示。

d21f2360c712c3e90acf5d6fc593879a.png

MLP-Mixer是一个系统,它使用MLP1在patches 之间混合信息,然后使用MLP2在patches 内混合信息,然后通过堆积将两者结合的块进行传播。该 MLP-Mixer 可以达到与 ViT 相同或更高的精度。下图以与之前相同的方式比较了 MLP-Mixer 的表示。将此图与图 1 和图 2 进行比较,作者表示总体趋势与 ViT 相似。

MLP-Mixer通过将图像分割成像ViT这样的patchs来传播图像,因此它在结构上更接近ViT而不是ResNet。这种结构可能是导致这种结果的原因。

05372860bd1a7d3fca185df7e1ca10b8.png

302e97aa94fc8e46232c4d57ffaf1498.png

总结

在本文中,我详细研究了 ViT 和 CNN 之间的差异。回顾一下,以下是两者之间的一些差异。Transformers 将继续成为计算机视觉领域的主要影响力。我希望这篇文章能帮助你理解Transformers。

  1. 与 CNN 相比,ViT 在浅层和深层获得的表征之间具有更多相似性

  2. 与 CNN 不同,ViT 从浅层获得全局表示,但从浅层获得的局部表示也很重要。

  3. ViT 中的跳过连接比 CNN (ResNet) 中的影响更大,并且显着影响表示的性能和相似性。

  4. ViT 比 ResNet 保留了更多的空间信息

  5. ViT可以用大量数据学习高质量的中间表示

本文仅做学术分享,如有侵权,请联系删文。

3D视觉精品课程推荐:

1.面向自动驾驶领域的多传感器数据融合技术

2.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码) 3.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进 4.国内首个面向工业级实战的点云处理课程 5.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解 6.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦 7.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化 8.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)

9.从零搭建一套结构光3D重建系统[理论+源码+实践]

10.单目深度估计方法:算法梳理与代码实现

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

0632d46349fbfd7f24051d58bb01d6bf.png

▲长按加微信群或投稿

cf03a855762e33290c227ad985277adb.png

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、激光/视觉SLAM、自动驾驶等)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

543ec1d7e054a4017403e23e2f09a038.png

 圈里有高质量教程资料、答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

关注
打赏
1688896170
查看更多评论

暂无认证

  • 2浏览

    0关注

    109276博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0476s