Explaining Knowledge Distillation by Quantifying the Knowledge

简介

论文标题

  • Explaining Knowledge Distillation by Quantifying the Knowledge
  • 可解释性:通过量化知识来解释知识蒸馏
  • 2020.3.7

核心内容

  • 本研究核心在于通过定义并量化神经网络中层特征的“知识量”,从神经网络表达能力的角度来解释知识蒸馏算法的成功机理,提出并验证以下三个Hypotheses

作者本人知乎在下方链接

摘要

本文提出了一种通过量化和分析深度神经网络(DNN)中间层中与任务相关和与任务无关的视觉概念来解释知识蒸馏成功的方法。更具体地说,提出了以下三个假设。

1.知识蒸馏使DNN比从原始数据中学习更多的视觉概念

2.知识蒸馏保证了DNN易于同时学习各种视觉概念。然而,在从原始数据学习的场景中,DNN按顺序学习视觉概念。

3.知识蒸馏比从原始数据中学习得到更稳定的优化方向

如何定义并量化DNN所建模的“知识”?

  • 本研究中,知识指不依赖人为主观标注的,与任务相关的一块图像区域,如图中的鸟头、鸟肚子等。

利用输入信息的遗忘程度来衡量神经网络中层特征所建模的“知识量”

依据information-bottleneck[1],DNN对输入信息是逐层遗忘的。因而我们利用输入信息的遗忘程度来衡量神经网络中层特征所建模的“知识量”,并借助条件熵来量化信息遗忘[2,3]。具体如下:

给定输入图片,以及DNN中层特征,则信息遗忘可转化为计算时的信息损失的熵。

我们假设神经网络往往用一个很小的特征范围去表示某一概念||f-f*|| < small constant。我们旨在量化“被神经网络视为表示同一概念的不同图片的概率分布的熵”。即,我们考虑对输入图片加入一个微小扰动,并计算满足||f-f*|| < small constant时,输入图片的熵。

考虑到高斯分布的独立性,整个图片的熵可分解成像素级熵的加和,信息遗忘量越少越小,则输入中蕴含的与任务相关的信息越多,“知识量”也越多

知识点定义

考虑到不同像素上的熵是不一样的,一个图片上的“知识点”被定义为那些信息熵比较小的像素,即其信息损失比“平均背景信息熵”明显小很多的像素点。进一步,这些信息损失比较小的像素点的个数被认为是这个图片上的知识量。这里“平均背景信息熵”是一个参考值,用来大致衡量神经网络在与分类无关的图像区域的信息损失程度。

信息丢弃的定量化

根据信息瓶颈理论[41,36],通过层层逐渐丢弃输入图像的信息。[14,26]提出了一种对DNN特定中间层编码的输入信息进行量化的方法,即度量DNN在提取该层特征时忽略了多少输入信息。在给定中间层特征f∗=f(X)的情况下,信息丢弃被表示为输入的条件熵H(X0),如下所示。
H(X′)s.t. ∀x′∈X′,∥f(x′)−f∗∥2≤τH\left(X^{\prime}\right) \text { s.t. } \forall x^{\prime} \in X^{\prime},\left\|f\left(x^{\prime}\right)-f^{*}\right\|^{2} \leq \tau H(X′) s.t. ∀x′∈X′,∥f(x′)−f∗∥2≤τ
X0表示与特定对象实例的概念相对应的一组图像。

假设x’独立同分布并满足高斯分布x′∼N(x,Σ=diag⁡(σ12,…,σn2))x^{\prime} \sim \mathcal{N}\left(x, \Sigma=\operatorname{diag}\left(\sigma_{1}^{2}, \ldots, \sigma_{n}^{2}\right)\right)x′∼N(x,Σ=diag(σ12​,…,σn2​)),其中σ控制每个第i个像素处的扰动大小。n表示输入图像的像素数。这样,高斯分布的假设确保可以将整个图像的熵H(X0)分解成像素级熵{Hi},如下所示。
H(X′)=∑i=1nHiH\left(X^{\prime}\right)=\sum_{i=1}^{n} H_{i} H(X′)=i=1∑n​Hi​
其中Hi=log⁡σi+12log⁡(2πe)H_{i}=\log \sigma_{i}+\frac{1}{2} \log (2 \pi e)Hi​=logσi​+21​log(2πe)测量像素信息的丢弃。

视觉概念的量化–三个假设

假设一

Hypothesis 1旨在证明相比仅从数据集训练而得的DNN(baseline network),知识蒸馏使得DNN学到更多的“知识点”,即更多的前景“知识量”和更少的背景“知识量”。

分类任务中,相较于背景,前景信息与任务更为相关。从而,一个性能优越的教师网络会建模更多的前景“知识点”和更少的背景“知识点”,使得学生网络会学到更可靠的“知识点”,如图3所示,验证了Hypothesis 1的正确性。

基础网络和学生网络结构相同,但一个是用知识蒸馏得到的,一个是直接学习得到的
Nconcept bg (x)=∑i∈Λbg w.rt. x1(Hˉ−Hi>b)Nconcept fg (x)=∑i∈Λfgwist ,x1(Hˉ−Hi>b)λ=Ex∈I[Nconcept fg (x)/(Nconcept fg (x)+Nconcept bg (x))]\begin{array}{l} N_{\text {concept }}^{\text {bg }}(x)=\sum_{i \in \Lambda_{\text {bg }} \text { w.rt. } x} \mathbb{1}\left(\bar{H}-H_{i}>b\right) \\ N_{\text {concept }}^{\text {fg }}(x)=\sum_{i \in \Lambda_{f_{g}} \text { wist }, x} \mathbb{1}\left(\bar{H}-H_{i}>b\right) \\ \lambda=\mathbb{E}_{x \in \mathbf{I}}\left[N_{\text {concept }}^{\text {fg }}(x) /\left(N_{\text {concept }}^{\text {fg }}(x)+N_{\text {concept }}^{\text {bg }}(x)\right)\right] \end{array} Nconcept bg ​(x)=∑i∈Λbg ​ w.rt. x​1(Hˉ−Hi​>b)Nconcept fg ​(x)=∑i∈Λfg​​ wist ,x​1(Hˉ−Hi​>b)λ=Ex∈I​[Nconcept fg ​(x)/(Nconcept fg ​(x)+Nconcept bg ​(x))]​
其中NBGX)和NFG(X)分别表示编码在背景和前景上的视觉概念的数量。

度量λ用于度量特征的区分能力,λ越大越好

非背景的知识点越多,背景的知识点越多 越好

假设二

Hypothesis 2 意图证明蒸馏使得DNN能够同时学到不同的“知识点”,即较快的学习速率。考虑到DNN的优化过程并非“一马平川”,本研究选择计算网络优化的路径长度非epoch数来刻画DNN的学习效果。

在网络的优化过程中,DNN不断学习新“知识点”,同时遗忘旧“知识点”。因而,我们选择衡量在第k个epoch,即DNN获得最丰富前景知识量时,网络的学习效果(随输入图片的不同而变化)

上图为DNN学习的两个阶段 1.学习新知识点 2. 遗忘掉没有用的知识点

DNN的学习速率快体现在两个方面:

  1. 对于每个输入样本,DNN 能否快速学到不同“知识点”,即网络优化至epoch时,网络的优化路径长度是否短;
  2. 对于不同输入样本,DNN能否同时学到不同“知识点”。即,我们在考察对于不同的输入样本,

即,我们在考察对于不同的输入样本,DNN是否可以同时学习其前景知识点,并在同一训练阶段建模到各个图片的最丰富的前景知识量。对于所有输入样本,当DNN的前景“知识量”最多时,网络优化的路径长度的均值 与方差分别定量刻画了DNN是否快速、同时地学习“知识点”。均值和方差越小,代表DNN能够快速并同时学到不同知识。
Dmean =EI∈I[∑k=1m^∥wk−wk−1∥∥w0∥]Dstd =Var⁡I∈I[∑k=1m^∥wk−wk−1∥∥w0∥]\begin{aligned} D_{\text {mean }} &=\underset{I \in \mathbf{I}}{\mathbb{E}}\left[\sum_{k=1}^{\hat{m}} \frac{\left\|w_{k}-w_{k-1}\right\|}{\left\|w_{0}\right\|}\right] \\ D_{\text {std }} &=\operatorname{Var}_{I \in \mathbf{I}}\left[\sum_{k=1}^{\hat{m}} \frac{\left\|w_{k}-w_{k-1}\right\|}{\left\|w_{0}\right\|}\right] \end{aligned} Dmean ​Dstd ​​=I∈IE​[k=1∑m^​∥w0​∥∥wk​−wk−1​∥​]=VarI∈I​[k=1∑m^​∥w0​∥∥wk​−wk−1​∥​]​
越小就代表着权重收敛的越快

因此,Dean和Dstd的小值表明DNN同时快速地学习各种概念。

假设三

Hypothesis 3 意在证明由于教师网络的指导,知识蒸馏使得DNN的优化方向更为稳定,更少“绕弯路”。

如图5所示,在优化前期,由于DNN的优化方向尚未确定,所建模的前景“知识点”不尽相同

就像狗熊掰棒子,神经网络早期学习的一些知识点是与任务无关的,并在优化过程后期被逐渐遗忘。

因而DNN在优化过程中那些被遗忘的、错误建模的、与任务无关的“知识点”越少,优化方向也就越稳定。所以,我们利用DNN最终用于分类的“知识量”(黑框)与优化过程中学习到的所有“知识量” (绿框)的比值刻画网络优化方向的稳定性。比值越高,优化越稳定。


ρ=∥SM(I)∥∥⋃j=1MSj(I)∥\rho=\frac{\left\|S_{M}(I)\right\|}{\left\|\bigcup_{j=1}^{M} S_{j}(I)\right\|} ρ=∥∥∥​⋃j=1M​Sj​(I)∥∥∥​∥SM​(I)∥​
ρ的值越高,说明DNN越优化,迂回越少1,越稳定,抛弃的特征就越少;

收敛后的模型的知识点比上每次迭代的模型的知识点的并集的一个比例,越大代表遗忘的特征越少

作者本人知乎

[论文解读]Explaining Knowledge Distillation by Quantifying the Knowledge相关推荐

  1. Explaining Knowledge Distillation by Quantifying the Knowledge

    Explaining Knowledge Distillation by Quantifying the Knowledge 本文核心idea是利用熵衡量feature中蕴含的knowledge,并将 ...

  2. 【CVPR2020 论文翻译】 | Explaining Knowledge Distillation by Quantifying the Knowledge

    本篇基于有道翻译进行翻译的.为了自己阅读翻遍, 公式部分处理不太好. 论文原文链接:https://arxiv.org/abs/2003.03622 Abstract 本文提出了一种通过对深度神经网络 ...

  3. 论文解读:Improved Neural Relation Detection for Knowledge Base Question Answering

    论文解读:Improved Neural Relation Detection for Knowledge Base Question Answering   本文解决KBQA中的子问题--Relat ...

  4. 论文解读:Improving Multi-hop Question Answering over Knowledge Graphs using Knowledge Base Embeddings

    论文解读:Improving Multi-hop Question Answering over Knowledge Graphs using Knowledge Base Embeddings    ...

  5. 论文解读 | Explaining and Harnessing Adversarial Examples

    核心观点: 神经网络对于对抗样本的攻击如此脆弱的原因,是因为网络的线性本质. 文章还提出了最早的 FGSM (Fast Gradient Sigh Method)对抗样本生成方法. 通过在训练样本中加 ...

  6. 神经网络水印\IP保护(论文解读Data-Free Adversarial Distillation)

    看到水印方向的一篇论文,引用了这篇,无数据知识蒸馏,感觉还挺有意思的.如果这篇没有改名字再发的话,那似乎是没有发表的. 首先还是简述一下文章思路:这篇文章通过一个对抗性的训练,利用一个generato ...

  7. 论文翻译: Relational Knowledge Distillation

    Relational Knowledge Distillation 这是 CVPR 2019年的一篇文章的译文. 文章链接: Relational Knowledge Distillation 附上G ...

  8. FreeKD:Free-direction Knowledge Distillation for Graph Neural Networks

    标题:FreeKD:Free-direction Knowledge Distillation for Graph Neural Networks 1.什么是知识蒸馏? 1.1 什么是知识: we t ...

  9. 李宏毅作业七其二 Network Compression (Knowledge Distillation)

    Network Compression --Knowledge Distillation 前言 一.knowledge distillation是什么? 1.原理 2.KL散度 3.Readme 二. ...

最新文章

  1. WebForm开发常用代码
  2. oracle管道化表函数
  3. jmeter环境配置
  4. SAP CRM Contact和Account的从属关系
  5. Python基础(8)_迭代器、生成器、列表解析
  6. python字典导入mongodb_Python语言生成内嵌式字典(dict)-案例从python提取内嵌json写入mongodb...
  7. 开放下载!从RCNN到SSD,这应该是最全的一份目标检测算法盘点
  8. 帝国CMS模板|中国历史网整站数据MIP源码下载、带Tags提取插件
  9. go语言结构体作为函数参数,采用的是值传递
  10. linux下面的挂载点讲解
  11. 配置IIS服务器,支持sis下载
  12. 业界资讯:adobe creative suite 5.5你准备好了吗?
  13. JAVA 实现《2048游戏》游戏
  14. matlab IIR滤波
  15. python将网页保存为pdf,利用Python将网页保存为PDF文件
  16. CSS中id选择器失效,代码看起来没问题
  17. 阿里云服务器端口访问失败 问题解决
  18. cad怎样编辑标注文字?分享一个方法
  19. 机器学习:Python实现聚类算法(二)之AP算法
  20. 学习python用哪个app-python做app用什么工具

热门文章

  1. 《互联网时代》 第十集 眺望
  2. 要点初见:从旅行青蛙开始的OpenCV3模板匹配功能探索
  3. 在浏览器地址栏输入一个URL后回车,执行的全部过程
  4. SLG游戏中大地图实现使用四叉树技术
  5. vps服务器租用费用
  6. linux查询hba卡地址,怎样查看unix和linux的HBA卡的WWN地址
  7. matlab 与cla的区别clf,何时使用cla(),clf()或close()清除matplotlib中的图?...
  8. 马化腾是学计算机的吗,马化腾大学实际上是病毒编写者,经常编写感染计算机的程序...
  9. CSS3(新增选择器,nth选择器,伪元素)
  10. 如何打造一个抗住千万级流量短信服务(续)