超越cnn的vit模型及其应用前景

author author     2023-03-16     570

关键词:

参考技术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相结合的模型

...于能够捕获一张图片的全局信息,因此在许多视觉任务中超越许多CNN结构。ViT是第一个替代CNN,使用纯Transformer的结构,输入一张224×224×3的图片,ViT将其分成14×14=196个非重叠的patches,每个patch的大小是16×16×3,然后将这些patch... 查看详情

cnn卷土重来!超越transformer!fair重新设计纯卷积架构:convnext

NLP与视觉架构的一个差异体现在激活函数的实用。ConvNet大多采用ReLU,而ViT大多采用GELU。我们发现:ConvNet中的ReLU可以替换为GELU,同时性能不变(80.6%)。FewerActivationFunctions.Transformer与ResNet模块的一个小区别:Transformer模块使用了更... 查看详情

transformer模仿大脑,在预测大脑成像上超越42个模型,还能够模拟感官与大脑之间的传输...

Pine发自凹非寺量子位|公众号QbitAI现在很多AI应用模型,都不得不提到一个模型结构:Transformer。它抛弃了传统的CNN和RNN,完全由Attention机制组成。Transformer不仅赋予了各种AI应用模型写文作诗的功能,而且在多模态... 查看详情

cv的未来是图神经网络?中科院软件所发布全新cv模型vig,性能超越vit(代码片段)

...,提出全新模型ViG,在等量参数情况下,性能超越ViT,可解释性也有所提升 查看详情

cv的未来是图神经网络?中科院软件所发布全新cv模型vig,性能超越vit(代码片段)

...,提出全新模型ViG,在等量参数情况下,性能超越ViT,可解释性也有所提升 查看详情

两行代码自动压缩vit模型!模型体积减小3.9倍,推理加速7.1倍

...test-dev专栏数据,检测任务中Transformer类模型精度早已超越卷积类模型。然而,Transformer模型的体积和速度相比卷积网络却存在很大的劣势,限制了其在产业上的应用。本文以ViT这一典型的Transformer模型为例,为大... 查看详情

英特尔用vit做密集预测效果超越卷积,性能提高28%,miou直达sota|在线可玩

丰色发自凹非寺量子位报道|公众号QbitAI用全卷积网络做密集预测 (denseprediction),优点很多。但现在,你可以试试VisionTransformer了——英特尔最近用它搞了一个密集预测模型,结果是相比全卷积,该模型... 查看详情

tokens-to-tokenvit:trainingvisiontransformersfromscratchonimagenet|全面超越resnet(代码片段)

与之前ViT、Detr、Deit等不同之处在于:本文针对ViT的特征多样性、结构化设计等进行了更深入的思考,提出了一种新颖的Tokens-to-Token机制,用于同时建模图像的局部结构信息与全局相关性,同时还借鉴了CNN架构设... 查看详情

从transformer到vit:多模态编码器算法原理解析与实现

从Transformer到ViT:多模态编码器算法原理解析与实现模型架构与算法原理ImageTokenEmbeddingMulti-headSelf-attention流程线性变换MatMulScale和softmaxMatMul前向层模块ADDNORM模块思考多模态模型应用的感想Paddle实现vit模型Transformer架构是一种使用... 查看详情

visiontransformer(vit)论文解读与代码复现(基于paddle框架)(代码片段)

...ddingattentionlayerVIT前向部分3.2FINE-TUNINGANDHIGHERRESOLUTION:模型微调与高分辨率图像处理四.实验总结与评价前言 VIT模型,其开创性的工作是:使用了一种纯粹的transformer结构,正如其论文名称所示:ANIMAGEISWORTH16X16W... 查看详情

基于注意力机制的cnn-lstm模型及其应用(含软硬注意力区别)(代码片段)

...f0c;某些子序列的特征重要程度大于其他子序列,当前模型通常没有考虑不同特征的重要程度。现有时间序列预测技术可总结为统计方法和机器学习方法两大类。以自回归求和滑动平均(Autore-gressiveIntegratedMovingAverage,... 查看详情

基于注意力机制的cnn-lstm模型及其应用(含软硬注意力区别)(代码片段)

...f0c;某些子序列的特征重要程度大于其他子序列,当前模型通常没有考虑不同特征的重要程度。现有时间序列预测技术可总结为统计方法和机器学习方法两大类。以自回归求和滑动平均(Autore-gressiveIntegratedMovingAverage,... 查看详情

internimage:探索具有可变形卷积的大规模视觉基础模型

...2、相关工作3、提出的方法3.1、可变形卷积v33.2、InternImage模型4、实验4.1、图像分类4.2、物体检测4.3、语义分割4.4、消融研究5、结论与局限性官方源码:https://github.com/OpenGVLab/InternImage论文:https://arxiv.org/abs/2211.05778官方博... 查看详情

把大核卷积拆成三步,清华胡事民团队新视觉backbone刷榜了,集cnn与vit优点于一身...

...onNetwork,视觉注意力网络)再次引起学界关注。因为新模型再一次刷榜三大视觉任务,把上面那两位又都给比下去了。VAN号称同时吸收了CNN和ViT的优势且简单高效,精度更高的同时参数量和计算量还更小。VAN来自清华... 查看详情

transformer模型

1、《AttentionIsAllYouNeed》2、CV中应用Transformer,图像数据转换为序列即可开始使用新一代backbone,用于分类,分割,检测等任务对输入序列进行特征提取,下面是transformer的工作流程: 视觉中的Attention:关注需要关注的目标,... 查看详情

[人工智能-深度学习-21]:卷积神经网络cnn--多维输入的神经元模型及其本质:一维矩阵的点乘(代码片段)

...iWangWenBing/article/details/120795317目录第1章神经元的一维输入模型1.1一维线性输入的原始神经元模型1.2一维输入时神经元的张量运算模型 1.3 一维输入时神 查看详情

fasterr-cnn简介及其发展

一、简介发展的过程大体可以概括为R-CNN——FastR-CNN——Faster R-CNN——MaskR-CNN,都是将神经网络应用于目标检测的典型代表,首先是R-CNN将CNN应用于目标检测中取得了较大的成效,后面几个网络都是在前面的... 查看详情

机器学习笔记:vit(论文animageisworth16x16words:transformersforimagerecognitionatscale)

ICLR20210前言说到图像处理,一般想到的就是CNN/CNN的变体机器学习笔记:CNN卷积神经网络_UQI-LIUWJ的博客-CSDN博客  。ViT的想法是利用Transformer机制来替换CNN机制,将Transformer运用到图像分类中。 机器学习笔记:Trans... 查看详情