超越CNN的ViT模型及其应用前景
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了超越CNN的ViT模型及其应用前景相关的知识,希望对你有一定的参考价值。
参考技术A ©作者 | 苏菲Transformer 模型在 NLP 领域获得了巨大的成功,以此为内核的超大规模预训练模型BERT、GPT-3 在 NLP 各个任务中都大放异彩,令人瞩目。
计算机视觉分析任务也借鉴了Transformer 模型的思想和方法,Meta公司的DETR模型中就使用 Transformer 和端到端方法实现了 CV 领域的目标检测任务,之后 Google 公司又推出了用纯粹的 Transformer 去完成计算机视觉任务的 ViT 模型。
本文首先 比较 ViT 模型与传统计算机视觉模型 CNN 的不同 ,详细指出 ViT 模型的优点和好处,介绍了 ViT 模型的各种变体、扩展和应用前景。
ViT 就是“Vi”加上“T”,其中“Vi”是计算机视觉 Vision,而“T”就是 Transformer 模型。
ViT模型由 Goolge 团队在 ICLR2021 论文“An Image is Worth 16x16 Words:Transformers for ImageRecognition at Scale”( https://arxiv.org/abs/2010.11929 )提出,其目标是本着尽可能少修改的原则,将 Transformer 模型直接迁移到计算机视觉分类任务上。
论文认为没有必要依赖于传统的 CNN,直接用 Transformer 也能在分类任务中获得好的结果,尤其是在使用大规模训练集的条件下。
并且,在大规模数据集上预训练好的模型,迁移到中等数据集或小数据集任务时,也能取得比 CNN 更优的性能。
那么,ViT 模型与 CNN 相比,到底好在什么地方呢?具体来说,有以下六个方面的不同:
(1)从浅层和深层中获得的特征之间,ViT 有更多的相似性;
(2)ViT 表示从浅层获得全局特征;
(3)ViT 中的跳跃连接影响比 CNNs(ResNet)大,且大大地影响特征的表现和相似性;
(4)ViT 保留了比 ResNet 更多的空间信息;
(5)通过大量的数据,ViT 能学到高质量的中间特征;
(6)与 ResNet 相比,ViT 的表示是更接近于 MLP-Mixer。
如图1所示,图中显示了 ViT 模型的确切视窗,即自注意力机制(多头)的有效距离。
在浅层中,有一些带有局部视窗的头注意部分与 CNN 是相似的,但在深层的头注意部分则更多地使用了全局视窗。
与 ResNet 相比,ViT 与 ResNet 之间的一个不同就是初始层的更大视野。CNN 或者ResNet 仅有一个固定大小的核心卷积窗宽度(大小为 3 或者 7)。
CNNs 通过一层一层卷积,逐渐扩大卷积视窗的信息;而 ViT 模型即使在最低层,也可以通过自注意力机制允许模型有更大的视窗。
因此,图像可视化窗口的不同或大小是依赖于网络结构模型的 ,即在 CNNs 模型中视窗信息是逐渐变大的,而 ViT 模型结构中即使低层也能有很大的视野。
图2给出了 ViT 模型的自注意力机制有效距离(即来自 5000 个数据样本的自注意机制的平均距离)。
ViT 模型使用谷歌自己的超大规模数据集 JFT-300M(约 3 亿数据图片) 进行了预训练,ViT-L/16 为大模型(3.07 亿参数),ViT-H/14 为巨大模型(6.32 亿参数), 然后用 ImageNet (约 1300 万图片) 进行了微调(fine-tuning)。
从图中可以看到,在浅层(编码为block0、block1)中,模型逐渐获得了局部和全局的特征。 然而,在深层(编码为 block22、block23、block30、block31)中,从一开始模型就是获得了全局视野的特征。
但是,由于训练ViT模型需要超大规模的数据(约3亿张图片),如果数据训练量小,那么精确度就会下降。
图3显示了这种数量训练量小的对比结果,可以看到对于更少的训练数据,模型中更低的自注意力机制层确实没有在局部进行学习关注。
也就是说, 仅仅在 ImageNet 数据集上进行训练,会导致低层的自注意力机制也不学习局部信息,从而导致了模型精度的下降。
如果网络中一个层的跳跃连接(skipconnection)被删除,那么这个层所获得的特征表示与原来所获得的相比会有很大的不同。
换句话说,跳跃连接对特征表示的传播有着巨大的影响,如果被删除的话将会大大改变这个层的特征表示学习能力。
在某些情况下,如果中间层的跳跃连接被删除,那么模型的准确率大约会下降 4%。
虽然论文中没有特别提及这一点,但是跳跃连接在特征信息传播中起到了主要作用这一事实,可能导致当中间层中的跳跃连接被删除时,精度显著会下降。
因此, 在ViT模型中,跳跃连接对模型的影响比 CNNs(ResNet)更大,而且大大地影响表示(特征)的获得与传播。
有些论文测试了 ViT 和 ResNet 所保留的位置信息。通过对比输入图像某个位置块和最终层特征图的 CKA 相似程度,可以知道图像被保留的位置信息。
如果模型保留了位置的信息,那么在某个位置的输入图像块与相应位置的特征图的相似度应当最高。
实验表明,在 ViT 模型中输入图像与最后一层的特征图在相应位置的相似性非常高。这表明 ViT 在特征信息传播的同时还保留了位置信息。
而在 ResNet 模型中,不相关位置的特征图相似性更高,这表明 ResNet 模型没有很好地保留位置信息。这种位置信息上的差异可能源于模型内部网络结构的不同。
在如图4所示的实验中,作者使用一个简单线性模型来区分中间层特征表示学习的质量: 如果一个简单模型(例如线性模型)在中间层表示中能获得更高的准确率,那么这个中间层就能获得更好的学习特征。
在图4左边的实验结果图中,在 ImageNet 数据集上用一个简单的线性模型进行测试,虚线是在ImageNet 数据(包含了130万张图片)中进行预训练后的模型的实验结果,实线是在JFT-300M(3亿张图片)中进行预训练后的模型的实验结果。
从实验结果图中可以看到, 在超大规模数据集 JFT-300M 上的模型准确率要高于在小数据集上的准确率。
在图4右边的实验结果图中,是 ViT 模型(实线)和 ResNet 模型(虚线)在相同数据集(JFT-300M)进行预训练后的比较,也使用了一个简单线性模型在 ImageNet 数据集中进行测试。
同样, ViT模型获得了比 ResNet 模型更好的中间层的特征学习结果。
最近,与使用 Transformer 不同,一些准确率高的图像识别模型使用了多层感知机(MLP),例如由Tolstikhin 等人 2021年提出的多层感知机混合模型(MLP-Mixer),它使用第一个感知机MLP1混合了图像块之间的信息,又使用第二个感知机MLP2混合了图像块之间的信息,然后通过这些信息块的叠加来组合这两种信息。
这种多层感知机混合模型 MLP-Mixer 可以达到像 ViT 模型一样或者更高的准确率。
MLP-Mixer 把图像分割成不同块的方式与 ViT 模型非常相似,因此它在结构上比 ResNet 更接近于 ViT 模型。
或许正是这种结构上的原因导致了不同模型在计算机视觉任务上结果的相似与不同。
ViT模型是在计算机视觉任务中应用Transformer模型的一个结果,2020年10月由Dosovitskiy等人提出并应用于图像分类任务。
其模型架构几乎与自然语言处理机器翻译任务中的原始 Transformer 模型一模一样, 它所做的拓展是允许图像作为 Transformer 的输入,把图像分成一个个块(patch),然后通过位置编号按顺序存储起来,可以把一个 patch 看成 是自然语言中的一个词语, 因此与自然语言处理的 Transformer 模型有异曲同工之妙。
在 ViT 之后,一些可能的研究方向或者模型也被众多公司或学者推进或者扩展,在计算机视觉的物体检测、语义分割等其他应用上大放异彩。例如:
(1)DeiT: 在合理的规模内训练 ViT 模型,使用知识蒸馏、自蒸馏等硬标签蒸馏方式,可以在100万张ImageNet图片规模的数据上训练 ViT 蒸馏模型。
(2)PyramidVision Transformer: 通过可变的空间缩减注意力机制实现了一种可变的自注意力机制,并应用于 ViT 模型以克服注意力机制中的平方复杂度。
(3 )Swin Transformer: 使用了滑动窗口的层次化的视觉 Transformer 模型,基于 Transformer 的位置或窗口注意机制对不重叠的窗口应用局部自注意力机制,从而在下一层级中形成了层次化的特征表示并最终进行融合。
(4)DINO: Meta 公司的 AI 团队提出的基于视觉 Transformer 的自监督训练框架,可以在大规模无标注数据上进行训练,甚至不需要一个微调的线性层也可以获得鲁棒性的特征表示。
(5)Scaling ViT: 更大规模的 ViT 模型,谷歌大脑团队对 ViT 模型进行了规模上的扩展,使用了 20 亿参数模型的 ViT 模型在 ImageNet 的识别结果排名上获得了第一名。
(6)SegFormer: 计算机视觉任务的语义分割中应用了 ViT 模型,由英伟达公司提出的关注系统的组件化,且不需要位置编码,而是采用了一个简单的 MLP 解码模型。
(7)Unet + ViT = UNETR : Vision Transformers 在医学上的应用,ViT 模型被用于三维医学图像的语义分割任务。与 Unet 模型类似,致力于有效地捕捉全局的多尺度信息,并能够使用长跳跃连接传递到解码器中。
自从 ViT 诞生以来,许多新的模型和应用被挖掘出来,推动计算机影像识别到达了一个新的水平,在许多方向和任务上可以应用 ViT 模型上并改进。
例如寻找新的自注意力模块的 XCIT 、寻找新的来自于 NLP 的新模块组合的 PVT 和 SWIN、寻找深度无监督或自监督学习的 DINO、在新领域或新任务中应用适应性的 ViT 的 SegFormer 和 UNETR 等等。
总之, ViT 模型在计算机视觉领域的应用前景上,大有可为。
私信我领取 目标检测与R-CNN/数据分析的应用/电商数据分析/数据分析在医疗领域的应用/NLP学员项目展示/中文NLP的介绍与实际应用/NLP系列直播课/NLP前沿模型训练营等 干货学习资源。
CNN和Transformer相结合的模型
参考技术A ©作者 | 小欣CNN广泛应用于计算机视觉的各种任务中,比如分类,检测,分割,CNN通过共享卷积核提取特征,减少网络参数数量,提高模型效率,另一方面CNN具有平移不变性,即无论特征被移动到图像的哪个位置,网络都能检测到这些特征。
尽管CNN存在很多优势,但是其感受野通常很小,不利于捕获全局特征。
视觉Transformer由于能够捕获一张图片的全局信息,因此在许多视觉任务中超越许多CNN结构。
ViT是第一个替代CNN,使用纯Transformer的结构,输入一张224×224×3的图片,ViT将其分成14×14=196个非重叠的patches,每个patch的大小是16×16×3,然后将这些patch输入到堆叠的多个transformer编码器中。
CNN的成功依赖于其两个固有的归纳偏置,即平移不变性和局部相关性,而视觉Transformer结构通常缺少这种特性,导致通常需要大量数据才能超越CNN的表现,CNN在小数据集上的表现通常比纯Transformer结构要好。
CNN感受野有限导致很难捕获全局信息,而Transformer可以捕获长距离依赖关系,因此ViT出现之后有许多工作尝试将CNN和Transformer结合,使得网络结构能够继承CNN和Transformer的优点,并且最大程度保留全局和局部特征。
Transformer是一种基于注意力的编码器-解码器结构,最初应用于自然语言处理领域,一些研究最近尝试将Transformer应用到计算机视觉领域。
在Transformer应用到视觉之前,卷积神经网络是主要研究内容。受到自注意力在NLP领域的影响,一些基于CNN的结构尝试通过加入自注意力层捕获长距离依赖关系,也有另外一些工作直接尝试用自注意力模块替代卷积,但是纯注意力模块结构仍然没有最先进的CNN结构表现好。
Transformer中有两个主要部分,多头自注意力层和全连接层,最近,Cordonnier et al.在研究中表明卷积可以通过使用多头自注意力层达到同样的效果。
Transformer 理论上比CNN能得到更好的模型表现,但是因为计算全局注意力导致巨大的计算损失,特别是在浅层网络中,特征图越大,计算复杂度越高,因此一些方法提出将Transformer插入到CNN主干网络中,或者使用一个Transformer模块替代某一个卷积模块。
BoTNet.[1] 通过使用Multi-Head Self-Attention(MHSA)替代ResNet Bottleneck中的3×3卷积,其他没有任何改变,形成新的网络结构,称为Bottleneck Transformer,相比于ResNet等网络提高了在分类,目标检测等任务中的表现,在ImageNet分类任务中达到84.7%的准确率,并且比EfficientNet快1.64倍。
BoTNet中使用的MHSA和Transformer中的MHSA有一定的区别,首先,BoTNet中使用Batch Normalization,而Transformer中使用Layer Normalization,其次,Transformer中使用一个在全连接层中使用一个非线性激活,BoT(Bottleneck Transformer)模块中使用三个非线性激活,最后Transformer中的MHSA模块包含一个输出映射,而BoT中的MHSA没有。
CNN有局部性和平移不变性,局部性关注特征图中相邻的点,平移不变性就是对于不同区域使用相同的匹配规则,虽然CNN的归纳偏差使得网络在少量数据上表现较好,但是这也限制了在充分数据上的表现,因此有一些工作尝试将CNN的归纳偏差引入Transformer加速网络收敛。
DeiT.[2] 为了减小ViT对于大量数据的依赖,Touvron et al.提出了Data-efficient image Transformer(Deit),提高网络在小量数据上的表现,通过使用数据增强和正则化技术,与此同时还引入了蒸馏策略,即使用一个教师网络去指导学生网络,通常来说使用CNN要比Transformer作为教师模型效果要好,CNN模型可以将其归纳偏置引入到Transformer。
作者使用两种蒸馏方式,一种是硬蒸馏,一种是软蒸馏 ,软蒸馏通过计算学生模型和教师模型分别经过softmax之后的KL散度,硬蒸馏通过使用教师模型的预测作为真实标签。
DeiT中引入了一个新的distillation token,和class token的作用类似,和其他token之间通过自注意力交互,作者发现class token和distillation token会收敛于不同的向量,余弦距离为0.06,说明这两个token希望得到相似但不相同的目标,为了证明distillation token的有效性是由于知识蒸馏的作用,通过对比实验将distillation token换成class token,就是使用两个class token,最终效果不如加入distillation token。
对比卷积神经网络和Transformer在Imagenet上的分类表现:
ConViT.[3] 通过引入gated positional self-attention(GPSA)层模仿卷积层带来的局部性,将GPSA替代一部分 self-attention层,然后每一个注意力头通过调整可学习的门控参数来调整对于位置信息和上下文信息的关注程度。GPSA层的输出可以表示为:
其中,
是一个可学习的向量去模仿卷积,
是一个固定的相对位置编码,
是一个可学习门控参数去调整对上下文和位置信息的关注程度。
Cordonnier et al.[4] 在论文中证明多头自注意机制可通过调整头的数量和可学习的位置编码来近似达到卷积层的效果。
对比ConViT和DeiT在Imagenet-1k上的表现,以及不同大小训练集对结果的影响
CeiT.[5] 改变了patch到token的方式,先将图片通过卷积和最大池化再切分成patch,最开始对图片使用卷积操作可以捕获图片的低级特征,即I2
并且使用了Layer-wise class token Attention(LCA)去结合多层特征,提出了Locally-Enhanced Feed-Forward Netword(LeFF),将最开始的全连接层(Feed-forward network)替换成了LeFF层,MSA(Multi-head self-attention)层保持不变,用于捕获全局信息,LeFF层用于捕获局部信息,最终的效果要比DeiT好。
Early Conv.[6] Xiao et al.通过使用多个步长为2的3×3卷积核替代ViT中最初的stem(步长为16的16×16卷积),使得网络在ImageNet-1k上取得1-2%的提高,并且稳定性和泛化能力在下游任务中都有所提高,对于学习率的选择和优化器的选择没有那么敏感,并且收敛速度也更快。
这篇文章表面在ViT模型中使用一个小的卷积核相比于最初的ViT使得模型有更好的泛化能力。
CoAtNet.[7] Dai et al. 提出a Convolution and Attention NetWord(CoAtNet),通过引入深度卷积到注意力模块中,深度卷积中一个卷积核负责一个通道,一个通道只被一个卷积核计算,相比于正常卷积,其参数和运算成本相对比较低,在浅层网络中堆叠卷积层,比较了不同的堆叠方式,比如C-C-C-T,C-T-T-T,C-C-C-T,其中C代表卷积模块,T代表Transformer模块。
通过综合考虑模型泛化能力,迁移能力,模型在训练集上的表现,最后使用C-C-T-T 这种堆叠方式。在没有额外训练数据的情况下,CoAtNet达到了86%的准确率,在ImageNet-21K上预训练时,达到了88.56%的准确率。
参考文献
[1] A. Srinivas, T.-Y. Lin, N. Parmar, J. Shlens, P. Abbeel, and A. Vaswani, “Bottleneck transformers for visual recognition.” in Proc. CVPR, 2021.
[2] H. Touvron, M. Cord, D. Matthijs, F. Massa, A. Sablayrolles, and H. Jegou, “Training data-effificient image transformers & distillation through attention,” in Proc. ICLR, 2021.
[3] S. d’Ascoli, H. Touvron, M. Leavitt, A. Morcos, G. Biroli, and L. Sa gun, “Convit: Improving vision transformers with soft convolutional inductive biases,” in Proc. ICLR, 2021.
[4] Cordonnier, J.-B., Loukas, A., and Jaggi, M. On the relationship between self-attention and convolutional layers. arXiv preprint arXiv:1911.03584, 2019.
[5] K. Yuan, S. Guo, Z. Liu, A. Zhou, F. Yu, and W. Wu, “Incorporating convolution designs into visual transformers,” in Proc. ICCV, 2021.
[6] T. Xiao, M. Singh, E. Mintun, T. Darrell, P. Dollar, and R. B. Girshick, “Early convolutions help transformers see better,” ArXiv, vol. abs/2106.14881, 2021.
[7] Z. Dai, H. Liu, Q. V. Le, and M. Tan, “Coatnet: Marrying convolution and attention for all data sizes,” arXiv preprint arXiv:2106.04803, 2021.
私信我领取 目标检测与R-CNN/数据分析的应用/电商数据分析/数据分析在医疗领域的应用/NLP学员项目展示/中文NLP的介绍与实际应用/NLP系列直播课/NLP前沿模型训练营等 干货学习资源。
以上是关于超越CNN的ViT模型及其应用前景的主要内容,如果未能解决你的问题,请参考以下文章
CNN卷土重来!超越Transformer!FAIR重新设计纯卷积架构:ConvNeXt
Transformer模仿大脑,在预测大脑成像上超越42个模型,还能够模拟感官与大脑之间的传输...
CV的未来是图神经网络?中科院软件所发布全新CV模型ViG,性能超越ViT