技术深度解析
DeiT的架构是ViT的一个变体,但有一个关键转折:一个可学习的蒸馏令牌。标准的ViT会在图像块序列前添加一个[CLS]令牌;其最终表示被送入分类头。DeiT增加了第二个令牌[DIST],它通过自注意力机制与所有图像块交互,但训练目标是匹配教师模型的输出。这不是一个简单的辅助损失——[DIST]令牌学习一个独立的表示来捕捉教师的知识,而[CLS]令牌则继续从真实标签中学习。在推理时,这两个令牌可以独立使用:任何一个都可以作为分类表示,但[DIST]令牌通常能产生更高的准确率。
论文探索了两种蒸馏策略:硬标签蒸馏和软标签蒸馏。硬标签蒸馏将教师模型预测的类别视为[DIST]令牌的真实标签,使用交叉熵损失。软标签蒸馏则最小化教师模型softmax输出与学生模型[DIST]令牌logits之间的KL散度。论文发现硬标签蒸馏略为有效,可能是因为它提供了更强的梯度信号。
训练配方非常精细。DeiT使用了RandAugment、MixUp、CutMix和随机深度——这些对CNN来说都是标准技术,但针对Transformer进行了仔细调优。学习率调度、权重衰减和批量大小(1024)都针对ViT架构进行了优化。教师模型RegNetY-16GF是一个在ImageNet上达到84.0% Top-1准确率的CNN。通过从CNN蒸馏,DeiT将卷积的归纳偏置——局部性、平移等变性——隐式地迁移到了Transformer中,弥补了其缺乏内置空间先验的不足。
基准测试结果令人瞩目:
| 模型 | 参数量 | ImageNet Top-1 | 训练数据 | 蒸馏 |
|---|---|---|---|---|
| DeiT-S | 22M | 79.8% | ImageNet-1K | 否 |
| DeiT-S | 22M | 81.2% | ImageNet-1K | 是(硬标签) |
| DeiT-B | 86M | 81.8% | ImageNet-1K | 否 |
| DeiT-B | 86M | 85.2% | ImageNet-1K | 是(硬标签) |
| ViT-B/16 | 86M | 77.9% | ImageNet-1K | 否 |
| ViT-B/16 | 86M | 84.2% | JFT-300M | 否 |
| EfficientNet-B5 | 30M | 83.4% | ImageNet-1K | 否 |
数据要点: 使用蒸馏的DeiT-B仅用ImageNet数据就达到了85.2%的准确率,超越了需要JFT-300M的ViT-B(84.2%)和在ImageNet上从头训练的EfficientNet-B5(83.4%)。仅蒸馏令牌一项就为基础DeiT-B增加了3.4个百分点,证明CNN教师模型可以注入缺失的归纳偏置。
官方GitHub仓库(facebookresearch/deit)提供了一个简洁的PyTorch实现,并附有预训练权重。代码库采用模块化设计,支持DeiT-Ti(极小,5M参数)、DeiT-S(22M)和DeiT-B(86M)。它还包含了使用蒸馏进行训练、在ImageNet上评估以及迁移到下游任务的脚本。该仓库已获得4340颗星,并持续维护,最近的提交解决了与新版PyTorch的兼容性问题,并增加了对DeiT III(后续工作)的支持。
关键参与者与案例研究
主要参与者是Facebook AI Research(FAIR),由研究员Hugo Touvron、Matthieu Cord、Matthijs Douze、Francisco Massa、Alexandre Sablayrolles和Hervé Jégou领导。Touvron也是DeiT III的第一作者,该工作进一步改进了训练配方,后来他成为LLaMA大型语言模型系列的关键贡献者——展示了Meta在视觉和语言Transformer研究之间的交叉融合。
教师模型RegNetY-16GF由FAIR的Ilija Radosavovic及其同事开发。RegNet是通过设计空间搜索设计的CNN,Y变体引入了Squeeze-and-Excitation模块。这一选择是经过深思熟虑的:RegNetY在准确率和效率之间取得了良好的平衡,使其成为理想的教师模型,不会压制学生的能力。
竞争方法包括:
| 方法 | 关键创新 | 数据需求 | 最佳ImageNet Top-1 |
|---|---|---|---|
| DeiT | 蒸馏令牌 + CNN教师 | 仅ImageNet-1K | 85.2%(DeiT-B) |
| ViT | 纯Transformer,无蒸馏 | JFT-300M(3亿张图像) | 84.2%(ViT-B/16) |
| Swin Transformer | 层级窗口 + 移位窗口 | 仅ImageNet-1K | 83.5%(Swin-B) |
| ConvNeXt | 采用Transformer技巧的现代化CNN | 仅ImageNet-1K | 84.3%(ConvNeXt-B) |
数据要点: DeiT-B在ImageNet-1K上超越了Swin-B和ConvNeXt-B,尽管其架构更简单。Swin和ConvNeXt依赖架构创新(窗口注意力、倒置瓶颈)来取得强劲结果,而DeiT仅通过训练方法就达到了同等水平。
案例研究:一家中型AI初创公司正在构建电商视觉搜索引擎,在尝试使用ViT处理其内部50万张产品图像数据集但效果不佳后,他们采用了DeiT-S作为骨干网络。通过对在ImageNet上预训练的DeiT-S进行微调,他们实现了92%的Top-5准确率,而ResNet-50为87%,ViT-B/16为84%。