DeiT:解决视觉变换器数据饥渴问题的高效模型
视觉变换器(ViT)最初在2020年10月的一篇论文中提出,展示了一种非常有效的图像识别方法。然而,它的训练过程需要大量带标签的数据,达到了数亿张图片的规模。为了解决这一问题,Hugo Touvron等人在2020年12月提出了一种名为“数据高效图像变换器及其通过注意力机制的知识蒸馏”(DeiT)的新方法。 DeiT的核心理念 DeiT通过知识蒸馏的方法从现有的成熟模型(如RegNet)转移知识到新的变换器模型中。这一过程可以显著减少所需的训练数据量,从而使训练更加高效和经济。例如,原始的ViT需要3亿张图片(JFT-300M数据集)进行训练,而DeiT仅需100万张图片(ImageNet-1K数据集)就能达到类似的效果,所需数据量仅为前者的1/300。 具体而言,知识蒸馏不仅通过调整损失函数和训练流程实现,还通过对模型架构进行了小幅度修改。在DeiT中,除了原有的分类令牌(class token),还引入了一个额外的蒸馏令牌(distillation token)。这两个令牌被附加到图像补丁序列中,在自注意力层中共同学习。在实验中,DeiT在仅使用100万张图片时的表现超过了标准ViT,并且在使用更高分辨率的图像(384×384)进行微调后,性能进一步提升。 DeiT模型变体 论文提出了三种DeiT模型:DeiT-Ti(Tiny)、DeiT-S(Small)和DeiT-B(Base)。其中,DeiT-B与 ViT-B 在模型大小上相当,但训练效率更高。DeiT-B 模型具有8600万个可训练参数,配置为每个图像补丁映射到一个768维的向量,12个注意力头,以及12层编码器。 实现详解 为了实现DeiT,首先需要将图像切分成一系列补丁。这通过Patcher类完成,使用16×16的卷积层提取非重叠的补丁信息,并将其展平为一个一维张量。接下来,这些补丁与分类令牌和蒸馏令牌连接,并通过位置嵌入层加入位置信息。随后,补丁序列通过12层编码器,在每层中执行多头注意力机制和前馈神经网络(FFN),并保持张量形状不变。最后,从分类令牌和蒸馏令牌中提取最终的分类和蒸馏特征,分别输入两个线性层,生成预测值。 实验结果 实验表明,即使在数据量有限的情况下,DeiT的表现也优于传统模型。在ImageNet-1K数据集上的测试结果显示,DeiT-B在分类任务中明显优于同规模的ViT,尤其是在使用较高分辨率图像进行微调后,准确率进一步提高。 业内评价和公司背景 业内人士表示,DeiT的出现为视觉Transformer的研究和应用提供了重要的推动。它不仅解决了ViT的数据需求问题,还保持了高性能,使得更多的研究人员和开发人员能够在资源受限的环境中使用Transformer进行图像识别。Hugo Touvron等人的研究团队隶属于Facebook AI Research(FAIR),该机构在深度学习和计算机视觉领域有着深厚的技术积累和影响力。