一文梳理视觉Transformer架构进展:与CNN相比,ViT赢在哪儿

来源:TechWeb   阅读量:8745   

Transformer 作为一种基于注意力的编码器 — 解码器架构,不仅彻底改变了自然语言处理领域,还在计算机视觉领域做出了一些开创性的工作与卷积神经网络相比,视觉 Transformer依靠出色的建模能力,在 ImageNet,COCO 和 ADE20k 等多个基准上取得了非常优异的性能

一文梳理视觉Transformer架构进展:与CNN相比,ViT赢在哪儿

最近几天,一位名为 Nikolas Adaloglou 的博主撰写了一篇博客长文,综述了 ViT 领域的进展以及 ViT 与其他学科的交叉应用。

Nikolas Adaloglou 是一名机器学习工程师,他对和 AI 相关的 3D 医学成像,图像和视频分析,基于图的深度学习模型以及生成式深度学习感兴趣,致力于借助机器学习推动医学工程的发展。。

以下是博客原文:

以合理的规模训练 ViT知识蒸馏

在 Kaggle 等深度学习竞赛中,集成是非常流行的一种方法集成大体上是指平均多个已训练模型的输出以进行预测这种简单的方法非常适合提高测试时的性能,可是它在推理过程中会慢 N 倍当在嵌入式设备中部署此类神经网络时,这就成了一个棘手的问题解决这个问题常用的一种方法是知识蒸馏

在知识蒸馏中,小模型通常是由一个大模型监督,算法的关键是如何将教师模型的知识迁移给学生模型。

尽管没有足够的基础理论支持,但知识蒸馏已被证明是一种非常有效的技巧关于为什么集成的输出分布能提供与集成相当的测试性能,还有待发现而使用集成的输出相对于真实标签存在性能增益,这更加神秘

DeiT 模型通过注意力训练数据高效的图像 Transformer 和蒸馏,这表明在没有外部数据的情况下,仅在 ImageNet 上训练 ViT 是可以的该研究使用来自 Resnet 的已训练好的 CNN 模型作为单一教师模型直观地讲,强大的数据假设让 CNN 比 ViT 更适合做教师网络

自蒸馏

令人惊讶的是,有研究发现类似方法也可以通过对同一架构的单个模型进行知识蒸馏来实现这个过程被称为自蒸馏,来自于 Zhang et al.2019 年的论文《Be Your Own Teacher: Improve the Performance of Convolutional Neural Networks via Self Distillation》自蒸馏就是一种 N=1 的知识蒸馏,自蒸馏也可以提高测试准确率

ViT 的 Hard—label 蒸馏:DeiT 训练策略

在这种方法中,一个额外的可学习全局 token,与 ViT 的 patch 嵌入相连最关键的是,蒸馏 token 来自训练有素的教师 CNN 主干网络通过将 CNN 特征融合到 Transformer 的自注意力层中,研究者们在 Imagenet 的 1M 数据上训练 DeiT

DeiT 模型概览。

DeiT 使用如下损失函数进行训练:

其中 CE 是交叉熵损失函数,sigma, 是 softmax 函数Z_cls 和 Z_distill 分别是来自类 token 和蒸馏 token 的学生模型的输出,ytrue 和 yteacher 分别是 ground truth 和教师模型的输出

这种蒸馏技术使模型用更少的数据获得超强的数据增强,这可能会导致 ground truth 标签不精确在这种情况下,教师网络似乎会产生更合适的标签由此产生的模型系列,即数据高效图像 Transformer,在准确率 / 步长时间上与 EfficientNet 相当,但在准确率 / 参数效率上仍然落后

除了蒸馏,还有一些研究大量使用图像增强来弥补缺乏可用的额外数据此外,DeiT 依赖于随机深度等数据正则化技术最终,强大的增强和正则化限制了 ViT 在小数据机制中的过拟合趋势

Pyramid 视觉 Transformer

Pyramid 视觉 Transformer的总体架构。

为了克服注意力机制的二次复杂度,Pyramid 视觉 Transformer采用一种称为空间减少注意力 的自注意力变体其特征是键和值的空间减少,类似于 NLP 领域的 Linformer 注意力

通过应用 SRA,整个模型的特征空间维度缓慢减少,并通过在所有 transformer block 中应用位置嵌入来增强顺序的概念PVT 已被用作目标检测和语义分割的主干网络,以处理高分辨率图像

后来,该研究团队推出改进版 PVT—v2,主要改进如下:

重叠 patch 嵌入,卷积前馈网络,线性复杂度自注意力层。

重叠 patch 是改进 ViT 的一个简单而通用的想法,尤其是对于密集任务通过利用重叠区域 /patch,PVT—v2 可以获得图像表征的更多局部连续性

全连接层之间的卷积消除了每一层中对固定大小位置编码的需要具有零填充的 3x3 深度卷积 旨在补偿模型中位置编码的移除此过程可以更灵活地处理多种图像分辨率

最后,使用键和值池化,自注意力层就减小到了与 CNN 类似的复杂度。

Swin Transformer:使用移位窗口的分层视觉 Transformer

Swin Transformer 旨在从标准 NLP transformer 中建立局部性的思想,即局部或窗口注意力:

在 Swin Transformer 中,局部自注意力被用于非重叠窗口下一层的窗口到窗口通信通过逐步合并窗口来产生分层表征

如上图所示,左侧是第一层的常规窗口分区方案,其中在每个窗口内计算自注意力右侧第二层中的窗口分区被移动了 2 个图像 patch,导致跨越了先前窗口的边界

局部自注意力随图像大小线性缩放 O 而不是 O ,在用于序列长度 N 和 M 窗口大小。

视觉 Transformer 的自监督训练:DINO

该自监督框架如下图所示:

与其他自监督模型相比,他们使用了交叉熵损失,就像在典型的自蒸馏场景中所做的那样尽管如此,这里的教师模型是随机初始化的,其参数是根据学生参数的指数移动平均值更新的为了让它 work,研究者将带温度参数的 softmax 应用于具有不同温度的教师和学生模型具体来说,教师模型得到的温度参数更小,这意味着更敏锐的预测最重要的是,他们使用了从 SWAV 中获得的多重裁剪方法,效果更佳,在这种情况下教师只能看到全局视图,而学生可以访问转换后的输入图像的全局和局部视图

对于 CNN 架构来说,该框架并不像对视觉 Transformer 那样有益那又该如何从图像中提取什么样的特征

此属性也出现在自监督预训练的卷积神经网络中,但需要一种特殊的方法来可视化特征更重要的是,自注意力头学习补充信息并通过为每个头部使用不同的颜色来说明默认情况下,这根本不是通过自注意力获得的

DINO 多注意力头可视化。

Scaling 视觉 Transformer

小样本学习是指在样本数量极其有限的情况下对模型进行微调小样本学习的目标通过将获得的预训练知识稍微适应特定任务来激励泛化如果成功地预训练了大型模型,那么在对下游任务非常有限的理解的情况下表现良好是有意义的

以下是本文的一些核心贡献和主要结果:

模型大小可能会限制表征质量,前提是有足够的数据来提供它,大型模型受益于额外的监督数据,甚至超过 1B 图像。

上图描绘了从 300M 图像数据集 切换到 30 亿图像 而不进行任何进一步缩放的效果中型 和大型 模型都受益于添加数据,大致是一个常数因子结果是在整个训练过程中通过小样本评估获得的

这或许是可以更广泛地应用于预训练 ViT 的最有趣的发现。

他们在训练开始时使用了热身阶段,在训练结束时使用了冷却阶段,其中学习率线性退火为零此外,他们使用了 Adafactor 优化器,与传统的 Adam 相比,内存开销为 50%

在同一个波长,你可以找到另一个大规模的研究:《如何训练你的 ViT。视觉 Transformer 中的数据,增强和正则化》

替代自注意力:独立 token + 通道混合方式

众所周知,自注意力可以作为一种具有快速权重的信息路由机制到目前为止,有 3 篇论文讲述了同样的故事:用 2 个信息混合层替换自注意力,一种用于混合 token,一种用于混合通道 / 特征信息

MLP—Mixer

MLP—Mixer 包含两个 MLP 层:第一个独立应用于图像 patch,另一个跨 patch。

MLP—Mixer 架构。

XCiT:互协方差图像 Transformer

另一个是最近的架构 XCiT,旨在修改 ViT 的核心构建 block:应用于 token 维度的自注意力。

XCiT 架构。

局部 Patch 交互:为了实现 patch 之间的显式通信,研究者添加了两个 depth—wise 3times,3 卷积层,中间有批归一化和 GELU 非线性Depth—wise 卷积独立应用于每个通道

ConvMixer

自注意力和 MLP 理论上是更通用的建模机制,因为它们允许更大的感受野和内容感知行为尽管如此,卷积的归纳偏差在计算机视觉任务中具有不可否认的成果

受此启发,研究者提出了另一种基于卷积网络的变体,称为 ConvMixer主要思想是它直接对作为输入的 patch 进行操作,分离空间和通道维度的混合,并在整个网络中保持相同的大小和分辨率

更具体地说,depthwise 卷积负责混合空间位置,而逐点卷积用于混合通道位置,如下图所示:

通过选择较大的内核大小来创建较大的感受野,可以实现远距离空间位置的混合。

多尺度视觉 Transformer

因此,创建了一个多尺度的特征金字塔直观地说,早期层将学习高空间与简单的低级视觉信息,而更深层负责复杂的高维特征

视频分类:Timesformer

在图像任务成功后,视觉 Transformer 被应用于视频识别。这里介绍两种架构:

用于视频识别的基于 block 与基于架构 / 基于模块的时空注意力架构。

右图:缩小架构级别所提出的方法将空间 Transformer 应用于投影图像 block,然后有另一个网络负责捕获时间相关性这类似于基于视频处理的 CNN+LSTM 获胜策略左图:可以在自注意力级别实现的时空注意力,红框中是最佳组合通过首先将图像帧视为 token 来在时域中顺序应用注意力然后,在 MLP 投影之前应用两个空间维度的组合空间注意力

使用 Timesformer t—SNE 进行特征可视化。,世界一流半导体厂商瑞萨电子发布了主打超低功耗,低成本的ForgeFPGA系列产品,正式进入FPGA市场。

「每个视频都可视化为一个点属于同一动作类别的视频具有相同的颜色具有分割时空注意力的 TimeSformer 比具有仅空间注意力或 ViT 的 TimeSformer 在语义上学习更多可分离的特征

语义分割中的 ViT:SegFormer

英伟达提出了一种配置良好的设置,名为 SegFormerSegFormer 的设计组件很有趣首先,它由一个输出多尺度特征的分层 Transformer 编码器组成其次,它不需要位置编码,因为当测试分辨率与训练不同时,这会降低性能

SegFormer 使用一个超级简单的 MLP 解码器来聚合编码器的多尺度特征与 ViT 不同的是,SegFormer 采用了小的图像 patch,例如 4 x 4 这种,众所周知,这有利于密集预测任务所提出的 Transformer 编码器输出 1/4,1/8,1/16,1/32 多级特征的原始图像分辨率这些多级特征提供给 MLP 解码器来预测分割掩码

Mix—FFN:为了减轻位置编码的影响,研究者使用 零填充的 3 times, 3 卷积层来泄漏位置信息。Mix—FFN 可以表述为:

高效的自注意力是 PVT 中提出的,它使用缩减比率来减少序列的长度。结果可以通过可视化有效感受野 来定性测量:

「SegFormer 的编码器自然地产生局部注意力,类似于较低阶段的卷积,同时能够输出高度非局部注意力,有效地捕捉第 4 阶段的上下文如放大补丁所示,MLP 头部的 ERF 与 Stage—4不同,除了非局部注意力之外,局部注意力明显更强

医学成像中的视觉 Transformer:Unet + ViT = UNETR

尽管在医学成像方面还有其他尝试,但 UNETR 提供了最有说服力的结果在这种方法中,ViT 适用于 3D 医学图像分割研究表明,简单的适应足以改善几个 3D 分割任务的基线

本质上,UNETR 使用 Transformer 作为编码器来学习输入音频的序列表示与 Unet 模型类似,它旨在有效捕获全局多尺度信息,这些信息可以通过长残差连接传递给解码器,以不同的分辨率形成残差连接以计算最终的语义分割输出

UNETR 架构。

以下是论文的一些分割结果:

声明:本网转发此文章,旨在为读者提供更多信息资讯,所涉内容不构成投资、消费建议。文章事实如有疑问,请与有关方核实,文章观点非本网观点,仅供读者参考。