知识蒸馏(Knowledge Distillation)最先是在2006年由 Bulica 提出的,在2014年 Hinton 对知识蒸馏作了概括和发展。知识蒸馏主要思想是训练一个小的网络模型来模仿一个预先训练好的大型网络或者集成的网络。Hinton 在2015年发表的论文中提出了‘softmax temperature’的概念,对 softmax 函数作了改进:算法
当 T 等于1时就是标准的 softmax 参数,前者比后者具备这样一个优点:通过训练后的原模型,其 softmax 分布包含有必定的知识,真实标签只能告诉咱们,某个图像样本是一辆宝马,不是一辆垃圾车,也不是一颗萝卜;而带有温度参数T的softmax函数可能会告诉咱们,它最多是一辆宝马,不大多是一辆垃圾车,但不多是一颗萝卜。网络
Hinton 等人作了三组实验,大致上验证了知识蒸馏方法的有效性。 Hinton 等人促进了知识蒸馏的发展并从实验的角度来验证了知识蒸馏的有效性,而本篇介绍的论文则提出了一些量化知识的概念来解释知识蒸馏的成功机理。架构
该论文为了解释知识蒸馏的成功机理,提出了三个假设,并根据假设基于可视化的量化标准,提出了三种类型的度量标准来验证了关于知识蒸馏的三个假设,为解释知识蒸馏提供了依据。svg
假设1:知识蒸馏使 DNN 能够学习更多的视觉概念。咱们将与任务相关的视觉概念和其余概念区分开来,以下图所示,前景上的视觉概念一般被认为是与任务相关的,而背景上的视觉概念则被认为是与任务无关的。函数
假设2:知识蒸馏确保了 DNN 易于同时学习各类视觉概念。相比之下基础网络倾向于顺序学习视觉概念,即在不一样的 epoch 学习不一样的概念。学习
假设3:知识蒸馏的模型优化方向更加稳定。DNN 在对原始数据进行学习时,一般会在早期尝试对各类视觉概念进行建模,而后在后期抛弃某些视觉概念;而在知识蒸馏的过程当中,教师网络直接引导学生网络瞄准特定视觉概念,没有明显的迂回。优化
在该文章的研究中,视觉概念被定义为一个图像区域,如物体的一个部分:翅膀、头、爪子等。基础网络被定义为从原始数据中学习的网络。spa
在该节,咱们给定一个提早训练好的 DNN 网络(教师网络)和一个经蒸馏造成的另外一个 DNN 网络(学生网络),为了解释知识蒸馏,咱们将学生网络与从原始数据中学习生成 DNN 网络相比较,另外咱们将任务限制为分类任务来简化下面的理论分析。3d
为了验证假设1,这里定义几个度量的标准:code
这里和
分别表明了背景上的视觉概念的数量和前景上视觉概念的数量,这里对于视觉概念的判别方法来源于信息论,
表示背景的平均熵,咱们一般将背景上的像素认做与任务无关的视觉概念。所以咱们能够将
做为整张图像熵的基线。熵值显著低于
的图像区域能够视为有效的视觉概念,b为一个正标量。当括号内条件知足时,返回1,不然返回0.
(上图为视觉概念(visual concepts)的可视化表现,第二列表示了不一样图像每一个像素的熵值,在第三列中,具备低熵值的区域被视为视觉概念)
从统计学来看,前景上的视觉概念一般与任务相关,而背景上的视觉概念主要与任务无关,这样当 DNN 具备更强的鉴别能力时,参数会更高。
为了验证假设2,咱们提出了两个度量标准。给定一组训练图像,咱们将每一个epoch后获得的前景中视觉概念的数量写为
咱们定义
表示具备最多视觉概念的epoch,“weight distance”
来测量在视觉概念最多时的学习过程。没有使用 epoch number 而是使用 weight distance 的缘由是后者更好的量化了每一个epoch后参数更新的总路径,所以咱们使用平均值
和
标准差来量化一个 DNN 是否同时学习视觉概念:
平均值和标准差
分别表示 DNN 是否能快速学习视觉概念和是否同时学习各类视觉概念,所以
和
的数值越小,表明 DNN 可以快速同时地学习各类视觉概念。
(DNN 倾向于在前期学习各类视觉概念,以后主要丢弃与任务无关的概念)
为了验证假设3,即须要量化 DNN 优化方向的稳定性,这里提出了一种新的度量方法。咱们将在每个epoch中获得的视觉概念的集合定义为。由此咱们能够将优化方向的稳定性定义为:
该式中分子表明的是最终选择的视觉概念,以下图黑色方框中所示;而分母表明的是每个epoch中选择的视觉概念的并集,以下图绿色方框中所示。
大的值表明了每个epoch中选择的视觉概念都在最终结果中,说明优化后的 DNN 走的弯路少,即表明了优化的稳定性好。
利用上述提到的等参数,做者等人基于ILSVRC-2013 DET数据集、CUB200-2011数据集、Pascal VOC 2012数据集训练了这些 DNN 网络,为了综合比较,使用了 AlexNet、VGG-十一、VGG-1六、VGG-1九、ResNet-50、ResNet-10一、ResNet-152 进行实验。将每一个 DNN 做为教师网络,咱们将知识从教师网络提取到学生网络,学生网络与教师网络具备相同的架构,以便进行公平的比较。同时,要求基础网络具备与教师网络相同的体系结构。
(VGG-11 中 FC1层中视觉概念的可视化,能够看出学生网络相比于基础网络有更大的和更小的
)
学生网络(S)与基础网络(B)相比,、
分别表示值越大、越小越好。根据表中数据,学生网络相比基础网络具备更大的
,和更小的
,这直接验证了假设1-3。
该文章从对 DNN 的知识进行量化的角度来解释了知识蒸馏的成功。提出了三种类型的度量标准来验证分类场景中的三种假设,也就是相对于从原始数据进行学习,知识蒸馏能够确保 DNN 学习更多与任务相关的概念,学习更少与任务无关的概念,具备更高的学习速度,并以更少的弯路进行优化。
[1]Hinton G, Vinyals O, Dean J. Distilling the knowledge in a neural network[J]. arXiv preprint arXiv:1503.02531, 2015.[2]Cheng X , Rao Z , Chen Y , et al. Explaining Knowledge Distillation by Quantifying the Knowledge[J]. 2020.