论文:Training data-efficient image transformers & distillation through attention
代码:https://github.com/facebookresearch/deit
目录
1 主要贡献
- 使用ImageNet数据(无外部数据)将无卷积层的transformer网络训练到了SOTA水平,训练时间短;
(原始的vision transformer需要使用非公开的JFT-300M数据集进行大量训练,无法复现) - 提出了基于distillation token的蒸馏机制,distillation token用于学习教师网络的预测结果;
- 图像transformers从卷积网络中学习的效果优于从其他transformers中学习;
- 在ImageNet上预学习的网络在多个下游基准中也有竞争力。

性能对比:top-1准确率 vs. 网络吞吐量(仅在ImageNet1k上训练)——使用transformer专用蒸馏方法训练的模型最优。
2 原理
2.1 Vision Transformer
回顾原始ViT的原理:
- 多头自注意力层(MSA)的设计:transformer;
- 针对图片的tranformer block:FFN + MSA;
- class token:来自NLP;
- 训练时用低分辨率图片,微调时用高分辨率图片,改变分辨率时插值改变位置编码。
2.2 Distillation through attention
主要介绍了软蒸馏、硬蒸馏两种损失函数,和Distillation token结构。
2.2.1 软蒸馏
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}(\psi(Z_s),y)+\lambda\tau^2\mathrm{KL}(\psi(Z_s/\tau),\psi(Z_t/\tau)) Lglobal=(1−λ)LCE(ψ(