0 前言
Transformer 作为自然语言处理领域的主流方法,近年被越来越多研究应用于机器视觉任务且能实现SOTA 结果。ViT(Vision Transformer)是Transformer在计算机视觉领域成功的应用,也是目前图片分类效果最好的模型,超越了曾经最好的卷积神经网络(CNN)。高性能的ViT可以在JFT-300M这样的巨大数据集上达到理想的分类结果,但当数据集不够大时,其效果是不如CNN的,限制了其应用。2021年Facebook AI与索邦大学联合开发了一项新技术:Data-efficient image Transformers (DeiT),是一种新的高效图像分类算法,用Transformer替代卷积,只需要较少的数据和算力就可以在ImageNet数据集上达到与顶尖的卷积网络(CNN)媲美的图像分类结果(GitHub源码见[4],本文中一,三,四部分所插入图片引用自参考资料[1])。
1 为什么要推出DeiT模型
对于普通开发者,要想利用ViT获得理想的泛化能力,需要庞大的计算资源和数以亿计的图像进行预训练,成本昂贵,而Facebook的DeiT模型(8600万参数)仅用3天时间在一台 8-GPU 的服务器上进行训练,即可在ImageNet数据集上取得比ViT性能更为优秀的效果。在此基础上,加入蒸馏(Distillation)操作,能使性能进一步提升。如下图所示,横轴代表ImageNet数据集上的吞吐量(即throughout, 一秒内可以处理的最大输入实例数),⚗表示加上了特定蒸馏操作的DeiT模型。
2 相关知识
2.1. 知识蒸馏的作用机制
1. 原理
知识蒸馏是在深度学习,模型压缩领域非常重要的一个方法。其本质是从已训练完善的教师模型,“蒸馏”出“知识”用于学生模型的训练,希望轻量级的学生模型能够达到和教师模型相同的表现。
对于一个模型,我们关注其经过调试能够正确表达输入到输出的映射关系,这种映射关系通常是可以量化为概率的。Hinton等人认为对于分类任务,需要蒸馏出来的知识,就存在于大模型输出错误预测的相对概率。
通常在分类目标中的hard target是0/1编码的,通过熵看携带的信息量比连续的概率输出要少。比如在进行图片分类时&#x