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
(
σ
1
2
,
…
,
σ
n
2
)
)
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
=
1
n
H
i
H\left(X^{\prime}\right)=\sum_{i=1}^{n} H_{i}
H(X′)=i=1∑nHi
其中
H
i
=
log
σ
i
+
1
2
log
(
2
π
e
)
H_{i}=\log \sigma_{i}+\frac{1}{2} \log (2 \pi e)
Hi=logσi+21log(2πe)测量像素信息的丢弃。
视觉概念的量化–三个假设
假设一
Hypothesis 1旨在证明相比仅从数据集训练而得的DNN(baseline network),知识蒸馏使得DNN学到更多的“知识点”,即更多的前景“知识量”和更少的背景“知识量”。
分类任务中,相较于背景,前景信息与任务更为相关。从而,一个性能优越的教师网络会建模更多的前景“知识点”和更少的背景“知识点”,使得学生网络会学到更可靠的“知识点”,如图3所示,验证了Hypothesis 1的正确性。
基础网络和学生网络结构相同,但一个是用知识蒸馏得到的,一个是直接学习得到的
N
concept
bg
(
x
)
=
∑
i
∈
Λ
bg
w.rt.
x
1
(
H
ˉ
−
H
i
>
b
)
N
concept
fg
(
x
)
=
∑
i
∈
Λ
f
g
wist
,
x
1
(
H
ˉ
−
H
i
>
b
)
λ
=
E
x
∈
I
[
N
concept
fg
(
x
)
/
(
N
concept
fg
(
x
)
+
N
concept
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. x1(Hˉ−Hi>b)Nconcept fg (x)=∑i∈Λfg wist ,x1(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的学习速率快体现在两个方面:
- 对于每个输入样本,DNN 能否快速学到不同“知识点”,即网络优化至epoch时,网络的优化路径长度是否短;
- 对于不同输入样本,DNN能否同时学到不同“知识点”。即,我们在考察对于不同的输入样本,
即,我们在考察对于不同的输入样本,DNN是否可以同时学习其前景知识点,并在同一训练阶段建模到各个图片的最丰富的前景知识量。对于所有输入样本,当DNN的前景“知识量”最多时,网络优化的路径长度的均值 与方差分别定量刻画了DNN是否快速、同时地学习“知识点”。均值和方差越小,代表DNN能够快速并同时学到不同知识。
D
mean
=
E
I
∈
I
[
∑
k
=
1
m
^
∥
w
k
−
w
k
−
1
∥
∥
w
0
∥
]
D
std
=
Var
I
∈
I
[
∑
k
=
1
m
^
∥
w
k
−
w
k
−
1
∥
∥
w
0
∥
]
\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最终用于分类的“知识量”(黑框)与优化过程中学习到的所有“知识量” (绿框)的比值刻画网络优化方向的稳定性。比值越高,优化越稳定。
ρ
=
∥
S
M
(
I
)
∥
∥
⋃
j
=
1
M
S
j
(
I
)
∥
\rho=\frac{\left\|S_{M}(I)\right\|}{\left\|\bigcup_{j=1}^{M} S_{j}(I)\right\|}
ρ=∥∥∥⋃j=1MSj(I)∥∥∥∥SM(I)∥
ρ的值越高,说明DNN越优化,迂回越少1,越稳定,抛弃的特征就越少;
收敛后的模型的知识点比上每次迭代的模型的知识点的并集的一个比例,越大代表遗忘的特征越少