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

本文涉及的产品
NLP自然语言处理_高级版,每接口累计50万次
NLP自然语言处理_基础版,每接口每天50万次
NLP 自学习平台,3个模型定制额度 1个月
简介: 一文梳理视觉Transformer架构进展:与CNN相比,ViT赢在哪儿?

Transformer 近年来已成为视觉领域的新晋霸主,这个来自 NLP 领域的模型架构在 CV 领域有哪些具体应用?。


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

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

本文作者 Nikolas Adaloglou。

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

以下是博客原文:

ViT 的灵感来源于自然语言处理中的自注意力机制,其中将词嵌入替换成了 patch 嵌入。


以合理的规模训练 ViT

知识蒸馏

在 Kaggle 等深度学习竞赛中,集成(ensemble)是非常流行的一种方法。集成大体上是指平均多个已训练模型的输出以进行预测。这种简单的方法非常适合提高测试时的性能,然而它在推理过程中会慢 N 倍(其中 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(即蒸馏 token),与 ViT 的 patch 嵌入相连。最关键的是,蒸馏 token 来自训练有素的教师 CNN 主干网络。通过将 CNN 特征融合到 Transformer 的自注意力层中,研究者们在 Imagenet 的 1M 数据上训练 DeiT。

DeiT 模型概览。

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


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

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

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

Pyramid 视觉 Transformer

Pyramid 视觉 Transformer(PVT)的总体架构。

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

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

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

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



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

全连接层(FC)之间的卷积消除了每一层中对固定大小位置编码的需要。具有零填充(zero padding,p=1)的 3x3 深度卷积 (p=1) 旨在补偿模型中位置编码的移除(它们仍然存在,但只存在于输入中)。此过程可以更灵活地处理多种图像分辨率。

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

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

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


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


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

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

通过合并添加许多局部层,有一个全局表示。此外,特征图的空间维度已显着降低。作者声称在 ImageNet-1K 和 ImageNet-21K 上都取得了有希望的结果。

视觉 Transformer 的自监督训练:DINO

Facebook AI 的研究提出了一个强大的框架用于训练大规模视觉数据。提议的自监督系统创建了如此强大的表征,你甚至不需要在上面微调线性层。这是通过在数据集的冻结训练特征上应用 K - 最近邻 (NN) 来观察到的。作者发现,训练有素的 ViT 可以在没有标签的情况下在 ImageNet 上达到 78.3% 的 top-1 准确率。

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


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

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



作者将经过训练的 VIT 的自注意力头输出可视化。这些注意力图说明模型自动学习特定于类的特征,导致无监督的对象分割,例如前景与背景。

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

DINO 多注意力头可视化。


相关文章
|
6月前
|
机器学习/深度学习 自然语言处理 异构计算
Python深度学习面试:CNN、RNN与Transformer详解
【4月更文挑战第16天】本文介绍了深度学习面试中关于CNN、RNN和Transformer的常见问题和易错点,并提供了Python代码示例。理解这三种模型的基本组成、工作原理及其在图像识别、文本处理等任务中的应用是评估技术实力的关键。注意点包括:模型结构的混淆、过拟合的防治、输入序列长度处理、并行化训练以及模型解释性。掌握这些知识和技巧,将有助于在面试中展现优秀的深度学习能力。
214 11
|
4月前
|
机器学习/深度学习 计算机视觉 异构计算
【YOLOv8改进 - Backbone主干】ShuffleNet V2:卷积神经网络(CNN)架构
【YOLOv8改进 - Backbone主干】ShuffleNet V2:卷积神经网络(CNN)架构
|
2月前
|
机器学习/深度学习
ACM MM24:复旦提出首个基于扩散模型的视频非限制性对抗攻击框架,主流CNN和ViT架构都防不住它
【9月更文挑战第23天】复旦大学研究团队提出了ReToMe-VA,一种基于扩散模型的视频非限制性对抗攻击框架,通过时间步长对抗性潜在优化(TALO)与递归令牌合并(ReToMe)策略,实现了高转移性且难以察觉的对抗性视频生成。TALO优化去噪步骤扰动,提升空间难以察觉性及计算效率;ReToMe则确保时间一致性,增强帧间交互。实验表明,ReToMe-VA在攻击转移性上超越现有方法,但面临计算成本高、实时应用受限及隐私安全等挑战。[论文链接](http://arxiv.org/abs/2408.05479)
70 3
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
卷积神经网络(CNN):视觉识别的革命先锋
卷积神经网络(CNN)作为人工智能领域的一颗璀璨明珠,在计算机视觉中发挥着核心作用。CNN的发展历程展现了从生物学灵感到技术创新的转变,历经LeNet-5至AlexNet、VGGNet、ResNet等里程碑式的进步。其独特结构包括卷积层、池化层及全连接层,能够层层递进地提取特征并作出决策。CNN不仅在图像分类、目标检测等领域表现卓越,还在人脸识别、医学影像分析等方面展现出巨大潜力。尽管存在局限性,如对序列数据处理能力有限及解释性问题,但通过引入注意力机制、自监督学习等方法,CNN将持续演进,引领人工智能技术走向更加精彩的未来。
242 2
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
算法金 | 秒懂 AI - 深度学习五大模型:RNN、CNN、Transformer、BERT、GPT 简介
**RNN**,1986年提出,用于序列数据,如语言模型和语音识别,但原始模型有梯度消失问题。**LSTM**和**GRU**通过门控解决了此问题。 **CNN**,1989年引入,擅长图像处理,卷积层和池化层提取特征,经典应用包括图像分类和物体检测,如LeNet-5。 **Transformer**,2017年由Google推出,自注意力机制实现并行计算,优化了NLP效率,如机器翻译。 **BERT**,2018年Google的双向预训练模型,通过掩码语言模型改进上下文理解,适用于问答和文本分类。
153 9
|
5月前
|
机器学习/深度学习 算法框架/工具 计算机视觉
ViT模型的出现标志着Transformer架构在计算机视觉中的成功应用
ViT模型的出现标志着Transformer架构在计算机视觉中的成功应用
74 2
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
一文介绍CNN/RNN/GAN/Transformer等架构 !!
一文介绍CNN/RNN/GAN/Transformer等架构 !!
208 5
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
|
6月前
|
机器学习/深度学习 自然语言处理 并行计算
神经网络结构——CNN、RNN、LSTM、Transformer !!
神经网络结构——CNN、RNN、LSTM、Transformer !!
303 0
|
8天前
|
弹性计算 Kubernetes Cloud Native
云原生架构下的微服务设计原则与实践####
本文深入探讨了在云原生环境中,微服务架构的设计原则、关键技术及实践案例。通过剖析传统单体架构面临的挑战,引出微服务作为解决方案的优势,并详细阐述了微服务设计的几大核心原则:单一职责、独立部署、弹性伸缩和服务自治。文章还介绍了容器化技术、Kubernetes等云原生工具如何助力微服务的高效实施,并通过一个实际项目案例,展示了从服务拆分到持续集成/持续部署(CI/CD)流程的完整实现路径,为读者提供了宝贵的实践经验和启发。 ####

热门文章

最新文章

下一篇
无影云桌面