在这里插入图片描述


论文链接

GitHub链接

本文提出数据高效的图像 Transformer(DeiT),仅在 Imagenet 上训练就能得到与卷积神经网络(convnets)性能相当的无卷积 Transformer。引入基于蒸馏 token 的师生策略,该策略能让学生模型通过注意力机制向教师模型学习,尤其是以 convnet 为教师时效果显著,使得 DeiT 在 Imagenet 上最高可达 85.2% 的准确率,且在迁移学习任务中表现出色。


摘要-Abstract

Recently, neural networks purely based on attention were shown to address image understanding tasks such as image classification. These high-performing vision transformers are pre-trained with hundreds of millions of images using a large infrastructure, thereby limiting their adoption.
In this work, we produce competitive convolution-free transformers by training on Imagenet only. We train them on a single computer in less than 3 days. Our reference vision transformer (86M parameters) achieves top-1 accuracy of 83.1% (single-crop) on ImageNet with no external data.
More importantly, we introduce a teacher-student strategy specific to transformers. It relies on a distillation token ensuring that the student learns from the teacher through attention. We show the interest of this token-based distillation, especially when using a convnet as a teacher. This leads us to report results competitive with convnets for both Imagenet (where we obtain up to 85.2% accuracy) and when transferring to other tasks.

最近,纯粹基于注意力机制的神经网络已被证明能够处理图像分类等图像理解任务。这些高性能的视觉 Transformer 通过大规模的基础设施,利用数亿张图像进行预训练,这限制了它们的广泛应用。
在这项工作中,我们仅通过在 ImageNet 数据集上进行训练,就得到了具有竞争力的无卷积 Transformer。我们在一台计算机上用不到 3 天的时间完成训练。我们的参考视觉Transformer(8600 万个参数)在不使用外部数据的情况下,在 ImageNet 上实现了单裁剪 83.1% 的 Top-1 准确率。
更重要的是,我们引入了一种专门针对 Transformer 的师生策略。该策略依赖于一个蒸馏 token,确保学生模型通过注意力机制向教师模型学习。我们展示了这种基于 token 的蒸馏方法的优势,特别是在使用卷积神经网络作为教师模型时。这使得我们在 ImageNet(我们在此获得了高达 85.2% 的准确率)以及迁移到其他任务时,都能取得与卷积神经网络相媲美的结果。


引言-Introduction

该部分主要介绍了研究背景、目标与贡献。指出视觉 Transformer 虽能处理图像理解任务,但预训练依赖大量数据和计算资源。本文旨在仅用 Imagenet 训练出有竞争力的无卷积 Transformer,并提出特定的师生蒸馏策略,具体内容如下:

  1. 研究背景:卷积神经网络(CNNs)凭借大规模训练集(如Imagenet)在图像理解任务中占据主导地位。受自然语言处理领域基于注意力模型成功的影响,研究人员开始探索在卷积网络中融入注意力机制,同时也有将 Transformer 成分移植到卷积网络的混合架构出现。视觉 Transformer(ViT)直接应用自然语言处理架构处理图像分类,在使用大规模私有数据集(JFT-300M)预训练时效果优异,但存在训练数据需求大、计算资源消耗多以及在少量数据上泛化能力差的问题。
  2. 研究目标:仅在 Imagenet 数据集上进行训练,于单个 8-GPU 节点花费 2-3 天训练出与卷积神经网络性能相当的无卷积 Transformer,即 Data-efficient image Transformers(DeiT),改进训练策略,减少对大规模训练数据的依赖。
  3. 研究贡献
    • 不含卷积层的神经网络在无外部数据情况下,于 ImageNet 上取得了具有竞争力的结果。新模型 DeiT-S 和 DeiT-Ti 参数更少,可分别视为 ResNet-50 和 ResNet-18 的对应模型。
    • 引入基于蒸馏 token 的新蒸馏程序,该 token 与类 token 作用相似,但旨在再现教师模型估计的标签,通过注意力机制与类 token 交互,显著优于传统蒸馏方法。
    • 经蒸馏的图像 Transformer 从卷积网络教师模型学习的效果,优于从性能相当的 Transformer 教师模型的学习效果。
    • 在多个流行公共基准测试(如 CIFAR-10、CIFAR-100 等)的下游任务中,基于 ImageNet 预训练的 DeiT 模型表现出色。

在这里插入图片描述
图1:我们的方法与仅在 Imagenet1k 上训练的 EfficientNet 相比,在 Imagenet 上的吞吐量和准确率。吞吐量是指在 V100 GPU 上每秒处理的图像数量。DeiT-B 与 ViT-B 架构相同,但 DeiT-B 的训练更适用于数据稀缺的情况,它可以在一台机器上用几天时间完成训练。符号 ⚗ ⚗ 表示使用我们特定于 Transformer 的蒸馏方法训练的模型。更多详细信息和模型请见表5。


相关工作-Related Work

该部分主要回顾了与本文研究相关的工作,涵盖图像分类领域的发展、视觉 Transformer(ViT)的进展、Transformer 架构在自然语言处理中的地位以及知识蒸馏(KD)的应用,具体内容如下:

  1. 图像分类的发展历程:图像分类是计算机视觉的核心任务,常作为衡量图像理解进展的基准,其成果通常可迁移至检测、分割等相关任务。自 2012 年 AlexNet 出现,卷积神经网络(CNNs)便主导该领域,成为事实上的标准,ImageNet 数据集推动了 CNNs 架构和学习方法的不断演进。
  2. ViT 的发展:早期 Transformer 用于图像分类的性能不如 CNNs,但结合了 CNNs 和 Transformer(包括自注意力机制)的混合架构在图像分类、检测、视频处理、无监督对象发现以及统一文本-视觉任务等方面展现出竞争力。ViT 的出现缩小了与 ImageNet 上最先进的 CNNs 的差距,尽管其性能显著,但 ViT 需要在大量精心整理的数据上进行预训练才能有效,而本文仅使用 Imagenet1k 数据集就实现了强大的性能。
  3. Transformer 架构在自然语言处理中的地位:Transformer 架构由 Vaswani 等人提出用于机器翻译,目前是所有自然语言处理(NLP)任务的参考模型。许多用于图像分类的 CNNs 改进方法都受到 Transformer 的启发,例如 Squeeze and Excitation、Selective Kernel 和 Split-Attention Networks 等都利用了类似于 Transformer 自注意力机制的原理。
  4. 知识蒸馏(KD)的应用:KD 是一种训练范式,学生模型利用来自强大教师网络的“软”标签(教师 softmax 函数的输出向量)进行训练,而非仅使用“硬”标签(分数最高值对应的标签),这可以提高学生模型的性能,也可看作是将教师模型压缩为较小的学生模型的一种形式。KD 能够以软方式在学生模型中传递归纳偏差,例如使用卷积模型作为教师模型可以在 Transformer 模型中引入卷积相关的偏差。本文研究了用卷积网络或 Transformer 作为教师模型对 Transformer 学生模型进行蒸馏,并引入了一种特定于 Transformer 的新蒸馏过程,展示其优越性。

视觉 Transformer:概述-Vision transformer: overview

该部分主要介绍了视觉 Transformer 的关键组件和特性,包括多头自注意力层、图像 Transformer 块、位置编码和分辨率处理,为理解后续提出的 DeiT 模型及相关改进奠定基础,具体内容如下:

  1. 多头自注意力层(MSA):注意力机制基于可训练的关联记忆,通过查询向量与键向量的内积匹配,经缩放和 softmax 归一化后得到权重,进而对值向量加权求和得到输出。Self-attention 层中,查询、键和值矩阵由输入向量通过线性变换计算得出。多头自注意力层则是将 h h h 个自注意力函数应用于输入,再重新投影到指定维度 。其公式为 A t t e n t i o n ( Q , K , V ) = S o f t m a x ( Q K ⊤ / d ) V Attention(Q, K, V)=Softmax\left(Q K^{\top} / \sqrt{d}\right) V Attention(Q,K,V)=Softmax(QK/d )V,其中 Q Q Q K K K V V V 分别为查询、键和值矩阵, d d d 为维度。
  2. 图像 Transformer 块:在 MSA 层之上添加前馈网络(FFN)构成完整的 Transformer 块。FFN 由两个线性层和中间的 GeLu 激活函数组成,先将维度从 D D D 扩展到 4 D 4D 4D,再还原回 D D D。MSA 和 FFN 都通过残差连接和层归一化操作,提升模型性能。
  3. 视觉 Transformer 处理图像的方式:基于 ViT 模型,将固定大小的输入 RGB 图像分解为多个固定尺寸(16×16 像素)的图像块,每个图像块通过线性层投影保持维度不变。由于 Transformer 块对图像块嵌入顺序不变性,需添加固定或可训练的位置嵌入来融入位置信息,同时还会添加一个可训练的类 token,最终仅使用类向量预测输出。
  4. 位置编码与分辨率:在训练和微调网络时,改变输入图像分辨率时,保持图像块大小不变会导致输入图像块数量改变。因 Transformer 块和类 token 的架构,模型和分类器无需修改即可处理更多 token,但需调整位置嵌入。常见做法是在改变分辨率时对位置编码进行插值,实验证明这种方法在后续微调阶段有效。

通过注意力机制蒸馏-Distillation through attention

该部分主要介绍了通过注意力机制进行蒸馏的方法,涵盖了硬蒸馏与软蒸馏的对比,以及引入蒸馏令牌改进蒸馏效果的内容,具体如下:

  1. 软蒸馏与硬标签蒸馏
    • 软蒸馏:软蒸馏通过最小化教师模型和学生模型 softmax 输出之间的 Kullback-Leibler 散度来实现。其蒸馏目标为 L g l o b a l = ( 1 − λ ) L C E ( ψ ( Z s ) , y ) + λ τ 2 K L ( ψ ( Z s / τ ) , ψ ( Z t / τ ) ) \mathcal{L}_{global }=(1-\lambda) \mathcal{L}_{CE}\left(\psi\left(Z_{s}\right), y\right)+\lambda \tau^{2} KL\left(\psi\left(Z_{s} / \tau\right), \psi\left(Z_{t} / \tau\right)\right) Lglobal=(1λ)LCE(ψ(Zs),y)+λτ2KL(ψ(Zs/τ),ψ(Zt/τ)),其中 Z t Z_{t} Zt Z s Z_{s} Zs 分别是教师和学生模型的logits, τ \tau τ 为蒸馏温度, λ \lambda λ 用于平衡散度损失和交叉熵损失, ψ \psi ψ 为 softmax 函数。
    • 硬标签蒸馏:该方法将教师模型的硬决策作为真实标签。其目标函数为 L g l o b a l h a r d D i s t i l l = 1 2 L C E ( ψ ( Z s ) , y ) + 1 2 L C E ( ψ ( Z s ) , y t ) \mathcal{L}_{global }^{hardDistill }=\frac{1}{2} \mathcal{L}_{CE}\left(\psi\left(Z_{s}\right), y\right)+\frac{1}{2} \mathcal{L}_{CE}\left(\psi\left(Z_{s}\right), y_{t}\right) LglobalhardDistill=21LCE(ψ(Zs),y)+21LCE(ψ(Zs),yt),其中 y t = a r g m a x c Z t ( c ) y_{t}=argmax_{c} Z_{t}(c) yt=argmaxcZt(c) 是教师模型的硬决策。硬标签可通过标签平滑转化为软标签,实验中 ε \varepsilon ε 固定为 0.1。
  2. 蒸馏 token
    • token 作用:在初始嵌入(图像块和类 token)中添加新的蒸馏 token,它与类 token 类似,通过自注意力与其他嵌入交互,网络输出时其目标是再现教师模型预测的(硬)标签,而非真实标签,从而让模型从教师输出中学习。
      在这里插入图片描述
      图2:我们的蒸馏过程:我们简单地引入了一个新的蒸馏 token。它通过自注意力层与类 token 和图像块 token 进行交互。这个蒸馏 token 的使用方式与类 token 类似,不同之处在于,在网络输出时,它的目标是再现教师模型预测的(硬)标签,而不是真实标签。输入到 Transformer 中的类 token 和蒸馏 token 都是通过反向传播学习得到的。
    • 对比实验:实验表明,学习到的类 token 和蒸馏 token 会收敛到不同向量。与简单添加额外类 token 相比,蒸馏 token 能显著提升模型性能。例如,两个随机初始化的类 token 在训练中会收敛到相同向量,对分类性能无提升,而蒸馏策略则优于普通蒸馏基线。
  3. 微调与分类
    • 微调:在更高分辨率的微调阶段,同时使用真实标签和教师预测,使用与目标分辨率相同的教师模型(通常由低分辨率教师模型转换得到)。仅使用真实标签会降低教师模型的作用,导致性能下降。
    • 分类:测试时,Transformer 产生的类嵌入和蒸馏嵌入都可与线性分类器结合进行图像标签推断。推荐方法是对两个分类器的 softmax 输出进行后期融合来进行预测。

实验-Experiments

该部分主要通过一系列实验,对模型、蒸馏策略、效率与精度权衡以及迁移学习等方面进行了分析和评估,具体内容如下:

  1. Transformer 模型:文中的 DeiT 架构与 ViT 相同但训练策略和蒸馏令牌有差异,不使用 MLP 头预训练,仅用线性分类器。介绍了 DeiT - B、DeiT - S 和 DeiT - Ti 三种模型,其参数数量和计算量依次减小。
    表1:我们 DeiT 架构的变体。较大的模型 DeiT-B 与 ViT-B 具有相同的架构。不同模型之间仅有的变化参数是嵌入维度和头数,我们保持每个头的维度不变(等于64)。较小的模型参数数量较少,吞吐量更快。吞吐量是针对分辨率为 224×224 的图像进行测量的。
    在这里插入图片描述

  2. 蒸馏策略分析

    • 不同教师模型的影响:使用 convnet 作为教师模型比使用 transformer 性能更好。以 RegNetY-16GF 为默认教师模型,它在 ImageNet上top-1 准确率达82.9%。
      表2:我们在 ImageNet 数据集上比较了作为蒸馏所用教师模型函数的学生模型性能(top-1 准确率,%)。
      在这里插入图片描述

    • 不同蒸馏方法对比:硬蒸馏在 transformer 中表现优于软蒸馏,如在 224×224 分辨率下,硬蒸馏准确率可达 83.0%,而软蒸馏仅为 81.8%。基于蒸馏 token 的策略进一步提升了性能,联合使用类 token 和蒸馏 token 的分类器效果最佳。
      表3:使用 DeiT 在 ImageNet 上进行的蒸馏实验,预训练 300 个 epoch。最后三行报告了我们新蒸馏方法的结果。我们分别报告仅使用类嵌入或蒸馏嵌入进行分类时的性能,以及将两者都作为输入的分类器的性能。在最后一行(类+蒸馏)中,结果对应于类分类器和蒸馏分类器的后期融合。
      在这里插入图片描述

    • 蒸馏 token 的优势:蒸馏 token 比类 token 效果略好,且与 convnet 预测更相关,在初始训练阶段优势明显。
      表4:卷积神经网络、图像 Transformer 和经过蒸馏的 transformer 之间的分歧分析:我们报告了所有分类器对中分类结果不同的样本比例,即不同决策的比率。我们纳入了两个未经过蒸馏的模型(一个 RegNetY 和 DeiT-B),以便比较我们经过蒸馏的模型和分类头与这些教师模型的相关性。
      在这里插入图片描述

    • 训练轮数的影响:增加训练轮数可显著提升蒸馏训练的性能,DeiT- B⚗ 在 300 轮训练时已优于 DeiT-B,且继续训练仍可受益。
      在这里插入图片描述
      图3:使用 DeiT-B 在 ImageNet 上进行蒸馏:性能随训练轮数的变化。我们给出了未进行蒸馏时的性能(水平虚线),因为它在 400 轮训练后达到饱和。

  3. 效率与精度的权衡:将 DeiT 与流行的 EfficientNet 进行对比,结果表明 DeiT 在仅使用 Imagenet 训练时,已接近 EfficientNet 的性能,缩小了视觉 transformer 与 convnet 的差距。使用蒸馏策略后,DeiT⚗ 超越了 EfficientNet,且在准确率和推理时间的权衡上表现更优,在 ImageNet V2 和 ImageNet Real 数据集上也有出色表现。
    在这里插入图片描述
    表5:DeiT 以及几种最先进的卷积神经网络在无外部数据训练情况下,在 ImageNet、ImageNet Real 和 ImageNet V2 匹配频率数据集上的吞吐量和准确率。吞吐量是指在一块 16GB 的 V100 GPU 上每秒能够处理的图像数量。对于每个模型,我们采用其常规分辨率下最大可能的批量大小,并计算处理该批量 30 次运行的平均时间,由此计算出每秒处理的图像数量。吞吐量会因实现方式而异:为了进行直接比较并尽可能保证公平性,我们对每个模型都采用相同 GitHub 代码库中的定义。

  4. 迁移学习性能:在多个下游任务(如 CIFAR-10、CIFAR-100、Oxford-102 flowers、Stanford Cars 和 iNaturalist-18/19)上对 DeiT 进行微调评估,结果显示其与有竞争力的 convnet 模型表现相当,证明了 DeiT 良好的泛化能力。在小数据集 CIFAR-10 上从头训练,DeiT 也能取得一定成果,但不如经过 ImageNet 预训练的效果好。
    表6:用于我们不同任务的数据集。
    在这里插入图片描述
    表7:我们比较了基于 Transformer 的模型在不同的 ImageNet 预训练迁移学习任务中的表现。同时,我们也报告了卷积架构的结果以供参考。
    在这里插入图片描述

训练细节和消融实验-Training details & ablation

该主要介绍了 DeiT 的训练细节,并对训练方法进行消融实验分析,以探究各因素对模型性能的影响,具体内容如下:

  1. 初始化和超参数设置:Transformer 对初始化较为敏感,文中遵循 Hanin 和 Rolnick 的建议,使用截断正态分布初始化权重。在蒸馏时,依据 Cho 等人的建议选取超参数,如通常(软)蒸馏中 τ = 3.0 \tau = 3.0 τ=3.0 λ = 0.1 \lambda = 0.1 λ=0.1。同时给出了默认的训练超参数,包括优化器、学习率、权重衰减等设置。
    在这里插入图片描述
    表9:我们的方法以及 ViT-B 所使用的要素和超参数。
  2. 数据增强:与集成更多先验(如卷积)的模型相比,Transformer 需要更多数据,因此依赖大量数据增强方法来实现高效训练。评估了 Auto-Augment、Rand-Augment、随机擦除等多种强数据增强方法,发现几乎所有方法都有用,最终选择 Rand-Augment。而 dropout 对训练无明显帮助,故被排除在训练过程之外。
  3. 正则化与优化器:考虑了不同优化器,并对学习率和权重衰减进行交叉验证。结果表明,AdamW 优化器在与 ViT 相同学习率但更小权重衰减的设置下表现最佳,因为原论文中的权重衰减在该实验设置下会影响收敛。此外,采用随机深度、Mixup、Cutmix和重复增强等正则化方法,这些方法有助于模型收敛和性能提升,其中重复增强是训练过程的关键成分之一。
  4. 指数移动平均(EMA):评估了训练后网络的 EMA,发现其有少量性能提升,但微调后与普通模型性能相同,即微调后优势消失。
  5. 不同分辨率下的微调:采用 Touvron 等人的微调过程,保持训练时的数据增强,对位置嵌入采用双三次插值,以近似保留向量范数,避免直接使用双线性插值导致的精度下降。对比了 AdamW 和 SGD 两种优化器在微调阶段的性能,发现二者表现相似。还研究了不同微调分辨率对模型性能的影响,默认在 224 分辨率训练,384 分辨率微调,实验表明更高分辨率微调可提升性能。
    在这里插入图片描述
    表8:在 ImageNet 上对训练方法进行的消融研究。最上面一行(“无”)对应我们用于 DeiT 的默认配置。符号“√”和“×”分别表示我们使用和不使用相应的方法。我们报告了在分辨率为 224×224 下初始训练后的准确率得分(%),以及在分辨率为 384×384 下微调后的准确率得分。超参数根据表9进行固定,可能并非是最优设置。“*”表示模型训练效果不佳,可能是因为超参数不适用。
    在这里插入图片描述
    表10:在 ImageNet-1k、ImageNet-Real 和 ImageNet-v2 匹配频率数据集上,初始训练尺寸为 224 的 DeiT 模型在不同微调尺寸下的性能表现。
  6. 训练时间:DeiT-B 进行 300 轮典型训练,在 2 个节点上需 37 小时,在单个节点上需 53 小时,相比之下 RegNetY-16GF 训练慢 20%。DeiT-S 和 DeiT-Ti 在 4 个 GPU 上训练不到 3 天。可选在更大分辨率下微调,在单个 8 GPU 节点上需 20 小时(对应 25 轮),使用重复增强使每轮训练实际看到的图像数量为三分之一,但整体训练效果更好。

结论-Conclusion

该部分总结了研究成果,分析了研究的局限性与未来方向,并介绍了代码开源情况,具体内容如下:

  1. 研究成果:提出数据高效的图像 Transformer-DeiT,通过改进训练方法,尤其是引入新颖的蒸馏程序,使得模型无需大量数据训练就能取得与卷积神经网络相当的性能。在 ImageNet 数据集上,DeiT 展现出强大的竞争力,如 DeiT-B 模型在无外部数据情况下单裁剪 top-1 准确率达 83.1%,使用蒸馏策略后最高可达 85.2% 。
  2. 研究局限性与未来方向:卷积神经网络经过近十年优化,包括易过拟合的架构搜索,而 DeiT 仅采用现有数据增强和正则化策略,未对架构做重大改变。因此,研究更适合 Transformer 的数据增强方法有望进一步提升 DeiT 性能。
Logo

脑启社区是一个专注类脑智能领域的开发者社区。欢迎加入社区,共建类脑智能生态。社区为开发者提供了丰富的开源类脑工具软件、类脑算法模型及数据集、类脑知识库、类脑技术培训课程以及类脑应用案例等资源。

更多推荐