【技术博客】****通过量化知识来解释知识蒸馏
知识蒸馏介绍
知识蒸馏(Knowledge Distillation)最早是在2006年由 Bulica 提出的,在2014年 Hinton 对知识蒸馏做了归纳和发展。知识蒸馏主要思想是训练一个小的网络模型来模仿一个预先训练好的大型网络或者集成的网络。Hinton 在2015年发表的论文中提出了‘softmax temperature’的概念,对 softmax 函数做了改进:
图片.png当 T 等于1时就是标准的 softmax 参数,前者比后者具有这样一个优势:经过训练后的原模型,其 softmax 分布包含有一定的知识,真实标签只能告诉我们,某个图像样本是一辆宝马,不是一辆垃圾车,也不是一颗萝卜;而带有温度参数T的softmax函数可能会告诉我们,它最可能是一辆宝马,不大可能是一辆垃圾车,但不可能是一颗萝卜。
Hinton 等人做了三组实验,大体上验证了知识蒸馏方法的有效性。 Hinton 等人促进了知识蒸馏的发展并从实验的角度来验证了知识蒸馏的有效性,而本篇介绍的论文则提出了一些量化知识的概念来解释知识蒸馏的成功机理。
该论文为了解释知识蒸馏的成功机理,提出了三个假设,并根据假设基于可视化的量化标准,提出了三种类型的度量标准来验证了关于知识蒸馏的三个假设,为解释知识蒸馏提供了依据。
假设提出
假设1:知识蒸馏使 DNN 可以学习更多的视觉概念。我们将与任务相关的视觉概念和其他概念区分开来,如下图所示,前景上的视觉概念通常被认为是与任务相关的,而背景上的视觉概念则被认为是与任务无关的。
假设2:知识蒸馏确保了 DNN 易于同时学习各种视觉概念。相比之下基础网络倾向于顺序学习视觉概念,即在不同的 epoch 学习不同的概念。
假设3:知识蒸馏的模型优化方向更加稳定。DNN 在对原始数据进行学习时,通常会在早期尝试对各种视觉概念进行建模,然后在后期抛弃某些视觉概念;而在知识蒸馏的过程中,教师网络直接引导学生网络瞄准特定视觉概念,没有明显的迂回。
在该文章的研究中,视觉概念被定义为一个图像区域,如物体的一个部分:翅膀、头、爪子等。基础网络被定义为从原始数据中学习的网络。
图片.png
算法
在该节,我们给定一个提前训练好的 DNN 网络(教师网络)和一个经蒸馏形成的另一个 DNN 网络(学生网络),为了解释知识蒸馏,我们将学生网络与从原始数据中学习生成 DNN 网络相比较,另外我们将任务限制为分类任务来简化下面的理论分析。
为了验证假设1,这里定义几个度量的标准:
图片.png 图片.png 图片.png这里
图片.png
和[图片上传失败...(image-dffcd3-1601385590605)]
分别代表了背景上的视觉概念的数量和前景上视觉概念的数量,这里对于视觉概念的判别方法来源于信息论, 图片.png 表示背景的平均熵,我们通常将背景上的像素认作与任务无关的视觉概念。因此我们可以将 图片.png 作为整张图像熵的基线。熵值显著低于 图片.png的图像区域可以视为有效的视觉概念,b为一个正标量。当括号内条件满足时,返回1,否则返回0.
图片.png
(上图为视觉概念(visual concepts)的可视化表现,第二列表示了不同图像每个像素的熵值,在第三列中,具有低熵值的区域被视为视觉概念)
从统计学来看,前景上的视觉概念通常与任务相关,而背景上的视觉概念主要与任务无关,这样当 DNN 具有更强的鉴别能力时, 图片.png参数会更高。
为了验证假设2,我们提出了两个度量标准。给定一组训练图像 图片.png ,我们将每个epoch后得到的前景中视觉概念的数量写为 图片.png 我们定义 图片.png 表示具有最多视觉概念的epoch,“weight distance” 图片.png来测量在视觉概念最多时的学习过程。没有使用 epoch number 而是使用 weight distance 的原因是后者更好的量化了每个epoch后参数更新的总路径,因此我们使用平均值[图片上传失败...(image-381693-1601385590604)]
和
标准差[图片上传失败...(image-184659-1601385590604)]
来量化一个 DNN 是否同时学习视觉概念:
图片.png[图片上传失败...(image-127b3a-1601385590604)]
平均值[图片上传失败...(image-e1aaea-1601385590604)]
和标准差[图片上传失败...(image-171a50-1601385590604)]
分别表示 DNN 是否能快速学习视觉概念和是否同时学习各种视觉概念,因此 图片.png 和 图片.png的数值越小,代表 DNN 能够快速同时地学习各种视觉概念。
图片.png图片.png
(DNN 倾向于在前期学习各种视觉概念,之后主要丢弃与任务无关的概念)
图片.png 图片.png图片.png 图片.png 图片.png
结论
该文章从对 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.
网友评论