Facebook 提出Data-efficient image Transformers(DeiT),需要更少的数据和更少的计算资源就能生成高性能的图像分类模型。仅用一台 8-GPU 的服务器对 DeiT 模型进行 3 天训练,就在 ImageNet 基准测试中达到了 84.2% 的 top-1 准确率,并且训练阶段未使用任何外部数据,该结果可以与顶尖的卷积神经网络(CNN)媲美。
论文地址:https://arxiv.org/abs/2012.12877v2
GitHub 地址:https://github.com/facebookresearch/deit
摘要:最近,纯粹基于注意力的神经网络被用来处理图像理解任务,如图像分类。然而,这些视觉Transformer使用昂贵的基础设施预训练了数亿张图像,从而限制了它们的采用。
在这项工作中,我们仅通过在Imagenet上进行训练来生产具有竞争力的无卷积Transformer。我们用不到3天的时间在一台电脑上训练他们。在没有外部数据的情况下,我们的参考视觉Transformer(86M参数)在ImageNet上实现了83.1%的top-1精度(单裁剪评估)。
更重要的是,我们引入了针对Transformer的师生策略。它依赖于一个蒸馏标记(distillation token),确保学生通过注意力从老师那里学习。我们展示了这种基于令牌的蒸馏(token-based distillation)的兴趣,特别是当使用convnet作为教师时。这使我们能够报告在Imagenet(我们获得高达85.2%的准确率)和迁移到其他任务时与ConvNet竞争的结果。我们共享我们的代码和模型。
1 引言
卷积神经网络已经成为图像理解任务的主要设计范式,正如最初在图像分类任务中所展示的那样。他们成功的一个因素是提供了一个大型训练集,即Imagenet[13,42]。受自然语言处理中基于注意的模型的成功[14,52]的推动,人们对在convnet中利用注意机制的架构越来越感兴趣[2,34,61]。最近,一些研究人员提出了混合架构,将Transformer成分移植到CONVNET中,以解决视觉任务[6,43]。
Dosovitskiy等人[15]引入的视觉Transformer(ViT)是一种直接继承自自然语言处理[52]的架构,但应用于以原始图像块作为输入的图像分类。他们的论文展示了使用大型私有标记图像数据集(JFT-300M[46],3亿张图像)训练Transformer的出色结果。论文的结论是,Transformer“在数据量不足的情况下不能很好地泛化”,这些模型的训练涉及大量的计算资源。
在本文中,我们在一个8-GPU节点上用两到三天的时间(53小时的预训练和20小时的微调)训练一个vision transformer,这与具有相似数量的参数和效率的ConvNet相比有竞争力。它使用Imagenet作为唯一的训练集。我们建立在Dosovitskiy等人[15]的视觉Transformer架构和timm库[55]中的改进基础上。使用我们的Data-efficient image Transformers(DeiT),我们报告了比以前结果的巨大改进,见图1。我们的消融研究详细说明了成功训练的超参数和关键因素,如重复增强( repeated augmentation)。
我们解决另一个问题:如何蒸馏这些模型?我们介绍了一种基于令牌的策略,该策略专门针对Transformer,由DeiT*表示,并表明它有利于取代通常的蒸馏
总之,我们的工作做出了以下贡献:
• 我们表明,我们的神经网络不包含卷积层,可以在没有外部数据的情况下,与ImageNet上的最新技术相比,获得具有竞争力的结果。在三天内,在单个节点上使用4个GPU学习它们1。我们的两个新模型DeiT-S和DeiT-Ti的参数较少,可以看作是ResNet-50和ResNet-18的对应物。(注释1:如果用8个GPU的话,我们可以加速对大的DeiT-B模型的训练,2天内完成)
• 我们介绍了一种基于蒸馏令牌的新蒸馏过程,蒸馏令牌(tocken)与类令牌的作用相同,只是其目的在于再现教师估计的标签。这两个tokens通过注意在Transformer中交互。这种特定于Transformer的策略大大优于香草蒸馏法。
• 有趣的是,通过我们的蒸馏,图像Transformer从convnet中学到的东西比从另一个具有类似性能的Transformer中学到的要多。
• 我们在Imagenet上预学习的模型在转移到不同的下游任务(如细粒度分类)时,在几个流行的公共基准上具有竞争力:CIFAR-10、CIFAR-100、Oxford-102 flowers、Stanford Cars和iNaturalist-18/19。
本文的组织结构如下:第2节中,我们回顾了相关工作,并在第3节中重点介绍了用于图像分类的Transformer。我们将在第4节介绍Transformer的蒸馏策略。实验第5节提供了对convnets和最新Transformer的分析和比较,以及对Transformer特定蒸馏的比较评估。第6节详细介绍了我们的训练计划。它包括对我们的数据高效训练选择的广泛消冗,这使我们对DeiT中涉及的关键要素有了一些了解。我们在第7节中得出结论。
2 相关工作
图像分类 是计算机视觉的核心,它经常被用作衡量图像理解进展的基准。任何进展通常转化为其他相关任务(如检测或分割)的改进。自2012年的AlexNet[32]以来,ConvNet一直主导着这一基准,并已成为事实上的标准。ImageNet数据集的最新进展[42]反映了卷积神经网络结构和学习的进展[32、44、48、50、51、57]。
尽管有几次尝试使用Transformer进行图像分类[7],但到目前为止,它们的性能还不如ConvNet。然而,结合了convnet和transformer(包括自注意机制)的混合架构最近在图像分类[56]、检测[6,28]、视频处理[45,53]、无监督对象发现[35]和统一文本视觉任务[8,33,37]方面展示了具有竞争力的结果。
最近,Vision transformers(ViT)[15]在不使用任何卷积的情况下,填补了ImageNet与最新技术的差距。这种性能是显著的,因为用于图像分类的convnet方法得益于多年的调整和优化[22,55]。然而,根据这项研究[15],为了使学习到的Transformer有效,需要对大量的数据进行预训练。在本文中,我们实现了强大的性能,而不需要大量的训练数据集,即仅使用Imagenet1k。
Transformer架构 Vaswani等人[52]为机器翻译引入的Transformer架构目前是所有自然语言处理(NLP)任务的参考模型。convnets在图像分类方面的许多改进都受到Transformer的启发。例如,SE挤压和激发[2]、SK选择内核[34]和Split-Attention网络[61]利用了类似于Transformer自注意(SA)的机制。
知识蒸馏 Hinton等人[24]介绍的知识蒸馏(KD)指的是一种训练范式,其中学生模型利用来自强大教师网络的“软”标签。这是教师softmax函数的输出向量,而不仅仅是分数的最大值(分数的最大值给出的是“硬”标签)。这样的训练提高了学生模型的性能(或者,可以将其视为将教师模型压缩为更小的模型(即学生模型)的一种形式)。一方面,教师的软标签将具有与标签平滑类似的效果[58]。另一方面,如Wei等人[54]所示,教师的监督会受到数据增扩的影响,这有时会出现真实标签和图像之间的错位。例如,给定一张图像,其标签的“猫”,而图像内容是一只小猫在一个大的景观的角落里。如果数据增扩的裁剪将图像中的猫裁掉了,它会隐式地更改图像的标签。如果教师模型使用硬的方式利用归纳偏置,知识蒸馏能以一种软的方式将归纳偏置[1]迁移给学生模型。例如,通过使用卷积模型作为教师,Transformer模型为学生,卷积导致的归纳偏置对Transformer可能是有用的。在本文中,我们研究了以卷积为教师和以Transformer为教师分别对Transformer学生的整理。我们介绍了一种新的Transformer蒸馏方法,并展示了其优越性。
3 视觉Transformer:概述
在本节中,我们简要回顾了与视觉Transformer相关的预备知识[15,52],并进一步讨论了位置编码和分辨率。
多头自注意层(MSA)。
注意机制是基于可训练的成对的(键,值)向量对(The attention mechanism is based on a trainable associative memory with (key, value) vector pairs )。一个查询向量使用内积与一组k个键向量(打包成矩阵)匹配)。然后使用softmax函数对这些内积进行缩放和归一化,以获得k个权重。注意力的输出是一组k个值向量(打包成矩阵)的加权和。对于N个查询向量序列(打包成矩阵),它输出矩阵(形状为为N×d):
其中,Softmax函数应用于输入矩阵的每一行,提供了适当的缩放。在[52]中,提出了自注意层。查询、键和值矩阵本身是从N个输入向量序列(打包成矩阵)使用线性变换、、和约束计算出的:,,,这意味着注意力发生在所有输入向量之间。
最后,通过考虑个注意“头”,即应用于输入的个自注意函数,定义了多头自注意层(MSA)。每个头部提供一个大小为的序列。这个序列被重新排列成一个序列,该序列被线性投影成。
用于图像的Transformer块。
为了获得如[52]所示的完整Transformer块,我们在MSA层的顶部添加了一个前馈网络(FFN)。该FFN由两个线性层组成,两线性层中间隔着Gelu激活函数[23]。第一个线性层将维度从扩展到,第二个线性层将维度从缩减回。由于跳连,MSA和FFN都作为残差运算符运行,并且具有层归一化[3]。
为了让Transformer处理图像,我们的工作建立在ViT模型的基础上[15]。它是一个简单而优雅的架构,可以像处理一系列输入token一样处理输入图像。将固定大小的输入RGB图像分解为N个分辨率固定为16×16的图像块(N=14×14)。每个图像块被一个线性层投影,将其最终维度转换为3×16×16=768。
上述Transformer块对于图块嵌入的顺序是排列不变的,因为没有考虑它们的相对位置。位置通过固定[52]或可训练[18]位置嵌入组件来利用位置信息。它们在第一个transformer块之前添加到图块token,然后将图块token馈送到transformer块堆栈。
类别token(The class token)
类别token是一个可训练向量,在第一层之前append to the patch tokens,它通过Transformer层,然后用线性层投影以预测类。类别tokentoken继承自NLP[14],与计算机视觉中用于预测类的典型池化层不同。因此,Transformer处理维度为的个tokens的批处理,其中只有类向量(class vector)用于预测输出。该架构迫使自注意在图块token和类别token之间传播信息:在训练时,监督信号仅来自类嵌入,而图块token是模型的唯一变量输入。
修复跨分辨率的位置编码。(Fixing the positional encoding across resolutions.)
Touvron等人[50]表明,最好使用较低的训练分辨率,并以较大的分辨率微调网络。这加快了完整的训练,并提高了当前数据增强方案下的准确性。当增加输入图像的分辨率时,我们保持图块分辨率不变,因此输入图块的数量会发生变化。由于transformer blocks和类别token的架构,不需要修改模型和分类器来处理更多token。相比之下,需要调整位置嵌入,因为位置嵌入有个,每个图块一个。Dosovitskiy等人[15]在改变分辨率时对位置编码做插值,并证明该方法适用于随后的微调阶段。
4 注意力的蒸馏
在本节中,我们假设我们可以使用一个强大的图像分类器作为教师模型。它可以是convnet,也可以是混合的分类器(a mixture of classifiers)。我们解决的问题是如何利用这个老师学习Transformer。正如我们将在第5节中通过比较精度和图像吞吐量之间的权衡所看到的,用Transformer代替卷积神经网络是有益的。本节涵盖两个蒸馏轴:硬蒸馏与软蒸馏,以及经典蒸馏与蒸馏token。
软蒸馏
软蒸馏[24,54]最小化了教师模型和学生模型的软最大值之间的Kullback-Leibler散度。
假设是教师模型的logits,是学生模型的logits。我们用表示蒸馏温度,表示平衡Kullback–Leibler散度损失(KL)和真值标签上的交叉熵(LCE)的系数,表示softmax函数。蒸馏的损失是:
硬标签蒸馏。
我们介绍了蒸馏法的一种变体,我们把老师的hard decision视为标签。假设是教师的hard decision,硬标签蒸馏相应的损失为:
对于给定的图像,教师提供的硬标签会随着数据增强的改变而改变。我们将看到,这种选择比传统的选择更好,没有超参且概念更简单:教师预测与真正的标签起着相同的作用。
还请注意,硬标签也可以通过标签平滑转换为软标签[47],标签平滑是:真实标签的概率为1− ε、 剩下的ε在剩下的类中共享。在我们所有使用真实标签的实验中,我们将该参数固定为ε=0.1。
蒸馏token。
我们现在关注我们的提案,如图2所示。我们在初始嵌入(图块token和类别token)中添加了一个新的token,即蒸馏token。我们的蒸馏token与类别token类似:它通过自注意与其他嵌入交互,并在最后一层之后由网络输出。其目标是由蒸馏损失的组成部分给出。蒸馏嵌入允许我们的模型从教师的输出中学习,就像在常规蒸馏中一样,同时保持对类别嵌入的补充。
有趣的是,我们观察到习得的类别token和蒸馏token收敛到不同的向量:这些token之间的平均余弦相似性等于0.06。随着在每一层计算类和蒸馏嵌入,它们通过网络逐渐变得更相似,一直到最后一层,它们的相似性很高(cos=0.93),但仍然低于1。这是意料之中的,因为它们旨在产生相似但不完全相同的目标。
我们验证了我们的蒸馏token向模型中添加了一些东西,而不是简单地添加与同一目标标签相关联的额外类别token:我们使用一个带有两个类别token的Transformer来代替教师伪标签。即使我们随机且独立地初始化它们,在训练期间它们也会收敛到同一个向量(cos=0.999),并且输出嵌入也是准相同的( quasi-identical)。这个额外的类别token不会给分类性能带来任何影响。相比之下,我们的蒸馏策略比香草蒸馏基线有显著的改进,正如我们在第5.2节中的实验所验证的那样。
通过蒸馏进行微调。
在更高分辨率的微调阶段,我们使用真实标签和教师预测。我们使用具有相同目标分辨率的教师,通常通过Touvron等人[50]的方法从低分辨率教师处获得。我们也测试只使用真实标签的微调,但这会降低教师模型带来的增益,并导致绩效下降。
使用我们的方法进行分类:联合分类器。
在测试时,transformer生成的类别嵌入或蒸馏嵌入都与线性分类器关联,并且能够推断图像标签。然而,我们的参考方法是这两个单独的头部的后期融合( late fusion),为此我们添加两个分类器的softmax输出以进行预测。我们将在第5节中评估这三个选项。
5 实验
本节介绍了一些分析实验和结果。我们首先讨论我们的蒸馏策略。然后对比分析了convnet和vision transformer的效率和准确性。
5.1 Transformer型号
如前所述,我们的架构设计与Dosovitskiy等人[15]提出的架构设计相同,没有卷积。我们唯一的区别是训练策略和技巧。此外,在预训练阶段,我们不使用MLP头,只使用线性分类器。为了避免任何混淆,我们参考了ViT在先前工作中获得的结果,并使用DeiT的前缀。如果未指定,DeiT指的是我们的参考模型DeiT-B,它与ViT-B具有相同的架构。当我们以更大的分辨率微调DeiT时,我们在末尾附加产生的操作分辨率,例如DeiT-B↑384最后,当使用我们的蒸馏过程时,我们用一个alembic符号DeiT*~。
ViT-B(因此也包括DeiT-B)的参数固定为D=768、h=12和d=D/h=64。我们引入了两个较小的模型,即DeiT-S和DeiT-Ti,对于这两个模型,我们在保持d不变的情况下改变头部的数量。表1总结了我们在本文中考虑的模型。
5.2 蒸馏
我们的蒸馏方法产生了一个视觉Transformer,它与最佳的卷积网络在精度和吞吐量之间的权衡一致,见表5。有趣的是,在准确性和吞吐量之间的权衡方面,蒸馏模型的表现优于它的老师。我们在ImageNet-1k上的最佳模型具有85.2%的top-1精度,优于在JFT-300M上以384分辨率预训练的最佳Vit-B模型(84.15%)。作为参考,当前的state of art是88.55%,它使用额外的数据训练,它是ViT-H模型(600M参数)在JFT-300M数据上以512分辨率训练的。此后,我们将提供一些分析和观察结果。
卷积教师。
我们观察到,使用convnet教师比使用Transformer具有更好的性能。表2比较了不同教师架构的蒸馏结果。正如Abnar等人[1]所解释的,convnet是一个更好的老师,这一事实可能是由于学生Transformer可以通过蒸馏而继承归纳偏置。在我们随后的所有蒸馏实验中,默认的教师是一个RegNetY-16GF[40](84M参数),我们使用与DeiT相同的数据和相同的数据增强对其进行训练。该教师在ImageNet上达到82.9%的top-1准确率。
蒸馏方法的比较。
我们在表3中比较了不同蒸馏策略的性能。对于Transformer而言,硬蒸馏显著优于软蒸馏,即使仅使用类别token:硬蒸馏在分辨率为224×224时达到83.0%,而软蒸馏精度为81.8%。第4节提出的蒸馏策略进一步提高了性能,表明这两个token提供了对分类有用的补充信息:这两个标记上的分类器明显优于只使用类别token分类器或只使用蒸馏token分类器,只使用类别token分类器或只使用蒸馏token分类器已经优于蒸馏基线。
蒸馏token比类别token给出的结果稍好一些。它也与convnets预测更相关。这种性能上的差异可能是由于这样一个事实,即它更多地受益于卷积网络的归纳偏置。我们将在下一段中给出更多细节和分析。蒸馏token在初始训练中具有不可否认的优势(initial training)。
与教师和归纳偏置的一致性? (Agreement with the teacher & inductive bias?)
如上所述,教师的架构具有重要影响。它是否继承了已有的利于训练的归纳偏置?虽然我们认为很难正式回答这个问题,但我们在表4中分析了convnet教师、我们的DeiT(仅从标签中学习)和DeiT*~之间的决策一致性。
相比从头训练的Transformer,蒸馏的模型与convnet的关联性更大。正如预期的那样,相比类别嵌入分类器,蒸馏嵌入分类器要更接近卷积网络;相反,类别嵌入分类器更接近无蒸馏的DeiT。毫不奇怪,类别+蒸馏的联合分类器提供了一个中间地带。
epoch数。
增加epoch的数量可以显著提高蒸馏训练的性能,见图3。我们的蒸馏网络DeiT-B*~有300个epoch,已经比DeiT-B好。但对于后者,性能随着时间的延长而饱和,我们的蒸馏网络显然受益于更长的训练时间。
5.3 效率与准确性:与convnets的对比研究
在文献中,通常将图像分类方法作为精度和另一个标准(如FLOPs、参数数量、网络大小等)之间的折衷进行比较。
在图1中,我们重点讨论了吞吐量(每秒处理的图像)和ImageNet上top-1的分类精度之间的权衡。我们关注流行的最先进的EfficientNet convnet,它得益于多年来对convnet的研究,并通过ImageNet验证集上的架构搜索进行了优化。
我们的方法DeiT略低于EfficientNet,这表明当仅使用Imagenet进行训练时,我们几乎已经缩小了视觉Transformer和ConvNet之间的差距。与仅在Imagenet1k上训练的先前ViT模型相比,这些结果是一项重大改进(在可比设置中top-1提升6.3%)[15]。此外,当DeiT从相对较弱的RegNetY蒸馏中获益以产生DeiT*~,其性能优于EfficientNet。它的性能也比在JFT300M上以384分辨率预训练的Vit-B型号高出1%(top-1 acc)(85.2%对84.15%),同时训练速度明显加快。
表5更详细地报告了ImageNet V2和ImageNet Real的数值结果和附加评估,这两个测试集不同于ImageNet验证,从而减少了验证集上的过拟合。我们的结果表明,DeiT-B*~和DeiT-B*~↑384在GPU上的准确性和推理时间之间的权衡上,以一定的优势超过了最先进的技术。
5.4 迁移学习:下游任务的性能
虽然DeiT在ImageNet上表现得很好,但为了衡量DeiT的泛化能力,在其他数据集上使用迁移学习对其进行评估是很重要的。我们通过微调表6中的数据集,对迁移学习任务进行了评估。表7将DeiT迁移学习结果与ViT[15]和最先进的卷积结构[48]的结果进行了比较。DeiT与竞争性的卷积模型相当,这与我们之前对ImageNet的结论一致。
与从头训练比较
我们研究了在没有Imagenet预训练的情况下,在小数据集上从头开始训练时的性能。我们在小型CIFAR-10上获得了以下结果,它的图像和标签数量都很小:
对于这个实验,我们尝试尽可能接近Imagenet预训练对应物,这意味着(1)我们考虑更长的训练时间表(最多7200个epochs,对应于300个Imagenet epochs),这样网络被馈送相当数量的总计图像;(2) 我们将图像重新缩放到224×224,以确保使用相同的数据增强。结果不如Imagenet预训练(98.5%对99.1%)好,这是因为网络的多样性要低得多。然而,他们表明,仅在CIFAR-10上学习合理的Transformer是可能的。
6 训练细节和消冗
在本节中,我们将讨论DeiT训练策略,以数据高效的方式学习视觉变换器。我们以PyTorch[39]和timm库[55](注释2)为基础。我们提供超参数和消融研究,分析每种选择的影响。
注释2:timm实施已经包括一个训练程序,该程序将ViT-B的准确度从77.91%提高到79.35%top-1,并使用8xV100 GPU机器在Imagenet-1k上进行培训。
初始化和超参数。
Transformer对初始化相对敏感。在初步实验中测试了几个选项(其中一些选项不收敛)后,我们按照Hanin和Rolnick[20]的建议,使用截断正态分布初始化权重。表9显示了我们在所有实验的训练时默认使用的超参数,除非另有说明。对于蒸馏,我们遵循Cho等人[9]的建议选择参数τ和λ。对于通常(软)蒸馏,我们取典型值τ=3.0和λ=0.1。
数据增强。
与包含更多先验(如卷积)的模型相比,Transformer需要更大的数据量。因此,为了使用相同大小的数据集进行训练,我们依赖于大量的数据增强。我们评估了不同类型的强数据增强,目的是实现数据高效的训练机制。
自动增强Auto-Augment[11]、随机增强Rand-Augment[12]和随机擦除random erasing[62]改善了结果。对于后两种,我们使用timm[55]定制,消融后,我们选择Rand-Augment而不是自动增强。总的来说,我们的实验证实,Transformer需要强大的数据增强:我们评估的几乎所有数据增强方法都证明是有用的。一个例外是dropout,我们将其排除在训练程序之外。
正则化和优化器。
我们考虑了不同的优化器,交叉验证了不同的学习率和权重衰减。Transformer对优化超参数的设置非常敏感。因此,在交叉验证期间,我们尝试了3种不同的学习率(5.10−4, 3.10−4 , 5.10−5)和3个权重衰减(0.03, 0.04, 0.05)。我们根据批量大小用公式:lrscaled=lr/ 512×batchsize来缩放学习率,与Goyal等人[19]类似,只是我们使用512而不是256作为基值。
最好的结果是使用AdamW优化器,其学习率与ViT[15]相同,但权重衰减要小得多,因为论文中报告的权重衰减会影响我们设置中的收敛性。
我们采用了随机深度[29],这有助于Transformer的收敛,特别是深Transformer[16,17]。对于视觉Transformer,Wightman[55]首先在训练程序中采用了它们。像Mixup[60]和Cutmix[59]这样的正则化可以提高性能。我们还使用了重复增强[4,25],它显著提高了性能,是我们建议的训练程序的关键要素之一。
指数移动平均(EMA)。
我们评估训练后获得的网络的EMA。有小的增益,但微调后增益会消失:EMA模型有0.1的边缘精度(has an edge of is 0.1),但微调后两个模型达到相同(改进)的性能。
在不同分辨率下进行微调。
我们采用了Touvron等人[51]的微调程序:我们的 schedule、正则化和优化程序与FixEfficientNet相同,但我们保持了训练时间数据增强(与Touvron等人[51]的dampened data augmentation)。我们还对位置嵌入进行插值:原则上可以使用任何经典的图像缩放技术,如双线性插值。然而,一个向量从相邻向量双线性插值,该向量相比相邻向量会减小L2范数。
这些低范数向量不适配预训练的Transformer,如果我们直接使用而不进行任何形式的微调,我们观察到精度会显著下降。因此,在使用AdamW[36]或SGD微调网络之前,我们采用了一种近似保留向量范数的双三次插值(bicubic)。这些优化器在微调阶段具有类似的性能,请参见表8。
默认情况下,与ViT[15]类似,我们以224分辨率训练DeiT模型,并以384分辨率进行微调。我们将在第3节详细介绍如何进行插值。然而,为了测量分辨率的影响,我们对不同分辨率的DeiT进行了微调。我们在表10中报告了这些结果。
训练时间。
对于DeiT-B,300个epoch的典型训练需要37小时(2个节点)或53小时(单个节点)。作为比较点,使用RegNetY-16GF[40](84M参数)的类似训练要慢20%。DeiT-S和DeiT-Ti在不到3天的时间内在4个GPU上接受训练。然后,我们可以选择以更高的分辨率微调模型。这需要在单个节点(8 GPU)上20个小时才能生成分辨率为384×384的FixDeiT-B模型,对应为25个epoch。不依赖于批量归一化,可以在不影响性能的情况下减少批量大小,从而更容易训练更大的模型 ( Not having to rely on batch-norm allows one to reduce the batch size without impacting performance, which makes it easier to train larger models )。请注意,由于我们使用了3次重复的重复增强(repeated augmentation)[4,25],我们在一个epoch内只能看到三分之一的图像(注释3)。
(注释3:从形式上讲,这意味着我们有100个epoch,但由于repeated augmentation,每个epoch都要长3倍。我们更愿意将其称为300个epoch,以便直接比较有无epeated augmentation的有效训练时间)
7 结论
在本文中,我们介绍了DeiT,这是一种图像Transformer,由于改进了训练,特别是一种新的蒸馏过程,它不需要大量数据进行训练。卷积神经网络在近十年的时间里,在结构和优化方面都进行了优化,包括通过广泛的结构搜索进行优化,这种搜索容易过度拟合,例如EfficientNets[51]。对于DeiT,我们已经开始使用ConvNet已有的数据增强和正则化策略,除了我们新提的蒸馏token之外,没有引入任何重要的架构。因此,对于Transformer更适合或学习的数据增强的研究可能会带来进一步的收益。
因此,考虑到我们的结果,其中图像Transformer与卷积网络已经相当,我们相信,它们将迅速成为一种选择方法,考虑到它们对于给定精度的较低的内存占用。我们提供了我们方法的开源实现。可于https://github.com/facebookresearch/deit.
感谢Ross Wightman与社区分享他的ViT代码和引导(bootstrapping)训练方法,以及帮助我们解决本文不同方面问题的宝贵反馈。感谢Vinicius Reis、Mannat Singh、Ari Morcos、Mark Tygert、Gabriel Synnave和Facebook的其他同事在这一轴上进行了头脑风暴和一些探索。感谢Ross Girshick和Piotr Dollar的建设性评论。