Dreaming to Distill: Data-free Knowledge Transfer via DeepInversion
1. 论文信息
论文标题
Dreaming to Distill: Data-free Knowledge Transfer via DeepInversion
论文来源
CVPR2020, https://arxiv.org/abs/1912.08795
代码
https: //github.com/NVlabs/DeepInversion
2. 背景梳理
将所学知识从一个训练好的神经网络转移到一个新的神经网络具有许多吸引人的应用。此类知识迁移任务的方法基本都基于知识蒸馏。然而,这些工作假设先前使用的训练数据集,或者代表先前训练数据集分布的一些真实图像可用。考虑到数据集可能规模大、难以传输、管理,且涉及到数据隐私问题,先前使用的训练数据集可能无法获得。
在缺乏原先训练数据的情况下,一个有趣的问题就出现了——如何从训练的模型中恢复训练数据并将其用于知识迁移。DeepDream[1] 合成或变换输入图像,使其在给定模型的输出层中对选定的类别产生高输出响应。这个方法对输入(随机噪声或者自然图像)进行优化,使用一些正则项,在保持选定的输出激活是固定的情况下,让中间特征无约束。但以这种方式生成的图像,缺少自然图像的统计特征,很容易被识别为非自然图像,并且对知识迁移不是很有用。
论文贡献
- 提出了DeepInversion,用于为分类模型合成class-conditioanl的图像。此外,通过Adaptive DeepInversion来利用学生与教师的分歧,提高合成图像的多样性。
- 我们将DeepInversion应用于无数据剪枝、无数据知识迁移和增量学习。
3. 方法
3.1 背景
知识蒸馏
给定教师模型
p
T
p_T
pT 和数据集
X
X
X,学生模型的参数
W
S
W_S
WS 可以通过下式学到
min
W
S
∑
x
∈
X
K
L
(
p
T
(
x
)
,
p
S
(
x
)
)
\min_{W_S}\sum_{x\in X}KL(p_T(x),p_S(x))
WSminx∈X∑KL(pT(x),pS(x))
其中
p
T
(
x
)
=
p
(
x
,
W
T
)
p_T(x)=p(x,W_T)
pT(x)=p(x,WT)和
p
S
(
x
)
=
p
(
x
,
W
S
)
p_S(x)=p(x,W_S)
pS(x)=p(x,WS)是教师和老师的输出。
DeepDream
给定一个随机初始化的输入
x
^
∈
R
H
×
W
×
C
\hat{x}\in R^{H\times W\times C}
x^∈RH×W×C和一个任意的目标标签
y
y
y,通过优化以下目标来合成图片:
min
x
^
L
(
x
^
,
y
)
+
R
(
x
^
)
,
\min_{\hat{x}} \mathcal{L}(\hat{x},y)+\mathcal{R}(\hat{x}),
x^minL(x^,y)+R(x^),
其中
L
(
⋅
)
\mathcal{L}(\cdot)
L(⋅)为分类损失,
R
(
⋅
)
\mathcal{R}(\cdot)
R(⋅)为图像正则项。DeepDream使用以下图像先验来避免生成不实际的图像:
R
p
r
i
o
r
(
x
^
)
=
α
t
v
R
T
V
(
x
^
)
+
α
l
2
R
l
2
(
x
^
)
\mathcal{R}_{prior}(\hat{x})=\alpha_{tv}\mathcal{R}_{TV}(\hat{x})+\alpha_{l_2}\mathcal{R}_{l_2}(\hat{x})
Rprior(x^)=αtvRTV(x^)+αl2Rl2(x^)
其中
R
T
V
\mathcal{R}_{TV}
RTV和
R
l
2
\mathcal{R}_{l_2}
Rl2分别为总方差惩罚和
x
^
\hat{x}
x^的二范数。图像先验正则项可以稳定的收敛到有效图像,但是这些图像的分布仍然与自然图像相差甚远,因此导致知识蒸馏效果不理想。
3.2 DeepInversion
我们使用新的特征正则化项来提高DeepDream生成的图像质量。为了增强生成图像与原始图像在不同层次特征的相似性,我们提出最小化两者在特征图的距离。
我们假设特征统计量在batches间遵循高斯分布,因此可以用均值
μ
\mu
μ和方差
σ
2
\sigma^2
σ2来定义。特征分布正则项可以表示为:
R
f
e
a
t
u
r
e
(
x
^
)
=
∑
l
∥
μ
l
(
x
^
)
−
E
(
μ
l
(
x
)
∣
X
)
∥
2
+
∑
l
∥
σ
l
2
(
x
^
)
−
E
(
σ
l
2
(
x
)
∣
X
)
∥
2
\mathcal{R}_{feature}(\hat{x})=\sum_l\Vert\mu_l(\hat{x})-E(\mu_l(x)|X)\Vert_2+\sum_l\Vert\sigma_l^2(\hat{x})-E(\sigma_l^2(x)|X)\Vert_2
Rfeature(x^)=l∑∥μl(x^)−E(μl(x)∣X)∥2+l∑∥σl2(x^)−E(σl2(x)∣X)∥2
其中
μ
(
x
^
)
\mu(\hat{x})
μ(x^)和
σ
l
2
(
x
^
)
\sigma^2_l(\hat{x})
σl2(x^)是batch-wise的第
l
l
l层卷积层对应的特征图的均值和方差估计。
存储在BN层中的均值和方差的移动平均统计数据可以被用来近似上式的均值方差。
E
(
μ
l
(
x
)
∣
X
)
≃
BN
l
(
r
u
n
n
i
n
g
_
m
e
a
n
)
E(\mu_l(x)|X)\simeq \text{BN}_l(running\_mean)
E(μl(x)∣X)≃BNl(running_mean)
E
(
σ
l
2
(
x
)
∣
X
)
≃
BN
l
(
r
u
n
n
i
n
g
_
v
a
r
i
a
n
c
e
)
E(\sigma_l^2(x)|X)\simeq \text{BN}_l(running\_variance)
E(σl2(x)∣X)≃BNl(running_variance)
特征分布正则化大大提高了生成图像的质量。
DeepInversion总的正则化项
R
D
I
(
x
^
)
=
R
p
r
i
o
r
(
x
^
)
+
α
f
R
f
e
a
t
u
r
e
(
x
^
)
\mathcal{R}_{DI}(\hat{x})=\mathcal{R}_{prior}(\hat{x})+\alpha_{f}\mathcal{R}_{feature}(\hat{x})
RDI(x^)=Rprior(x^)+αfRfeature(x^)
3.3 Adaptive DeepInversion
除了图像质量,生成图像的多样性在避免重复和冗余的合成方面也起着至关重要的作用。我们提出了一种基于图像生成过程与学生网络之间的迭代竞争增强的图像生成机制。主要目的是鼓励学生和教师之间产生分歧。因此,我们引入了一个额外的基于Jensen-Shannon散度的图像生成损失,对输出分布相似性进行惩罚。
R
c
o
m
p
e
t
e
(
x
^
)
=
1
−
J
S
(
p
T
(
x
^
)
,
p
S
(
x
^
)
)
\mathcal{R}_{compete}(\hat{x})=1-JS(p_T(\hat{x}),p_S(\hat{x}))
Rcompete(x^)=1−JS(pT(x^),pS(x^))
J
S
(
p
T
(
x
^
)
,
p
S
(
x
^
)
)
=
1
2
(
K
L
(
p
T
(
x
^
)
,
M
)
+
K
L
(
p
S
(
x
^
)
,
M
)
)
JS(p_T(\hat{x}),p_S(\hat{x}))=\frac{1}{2}(KL(p_T(\hat{x}),M)+KL(p_S(\hat{x}),M))
JS(pT(x^),pS(x^))=21(KL(pT(x^),M)+KL(pS(x^),M))
其中
M
=
1
2
⋅
(
p
T
(
x
^
)
+
p
S
(
x
^
)
)
M=\frac{1}{2}\cdot (p_T(\hat{x})+p_S(\hat{x}))
M=21⋅(pT(x^)+pS(x^))是教师和学生分布的平均值。
在优化过程中,这个新的项会使得生成的新图像学生无法轻松分类而教师可以。如下图所示,我们的方案在学习过程中迭代扩展了图像的分布覆盖。
Adaptive DeepInversion的正则化项为
R
A
D
I
(
x
^
)
=
R
D
I
(
x
^
)
+
α
c
R
c
o
m
p
e
t
e
(
x
^
)
\mathcal{R}_{ADI}(\hat{x})=\mathcal{R}_{DI}(\hat{x})+\alpha_{c}\mathcal{R}_{compete}(\hat{x})
RADI(x^)=RDI(x^)+αcRcompete(x^)
4. 实验
在CIFAR-10上验证了每个部分的有效性,并且在ImageNet数据集上显示了Deep Inversion在(a)剪枝;(b)知识迁移;(c)增量学习上的应用。
这里仅展示在CIFAR-10上的结果,其他实验请阅读原文。
从表中可以看出:DeepInversion和Adaptive DeepInversion 与DeepDream相比,极大的提升了无数据知识蒸馏的效果,ADI训练的学生模型甚至接近了教师的效果。和DAFL[2](利用教师,训练一个生成器将噪声转换为图片)相比,DI和ADI生成的图片更具有视觉保真度(见下图),且不需要额外的生成网络。
5. 总结
该文章提出了DeepInversion,利用已训练的模型合成高分辨率、高保真度的训练图像。此外,使用Adaptive DeepInversion,通过迭代的方式提高了生成图像的多样性。