本文是蒸馏学习综述系列的第二篇文章,Data Distillation: A Survey的一个翻译
数据蒸馏:综述
- 摘要
- 1 引言
- 2 数据蒸馏框架
- 2.1 元模型匹配的数据蒸馏
- 2.2 梯度匹配的数据蒸馏
- 2.3 轨迹匹配的数据蒸馏
- 2.4 分布匹配的数据蒸馏
- 2.5 因式分解的数据蒸馏
- 3 数据模态
- 4 应用
- 5 挑战与未来方向
摘要
深度学习的普及导致了大量海量、多样的数据集的管理。尽管在单个任务上具有接近人类的表现,但在大型数据集上训练参数饥饿模型会带来多方面的问题,例如(a)高模型训练时间;(b) 研究迭代缓慢;以及(c)生态可持续性差。作为一种替代方案,数据蒸馏方法旨在合成简洁的数据摘要,这些摘要可以作为原始数据集的有效替代品,用于模型训练、推理、架构搜索等场景。在本次综述中,我们提出了数据蒸馏的正式框架,并提供了现有方法的详细分类。此外,我们还介绍了不同数据模态的数据蒸馏方法,即图像、图形和用户-项目交互(推荐系统),同时还确定了当前的挑战和未来的研究方向。
1 引言
(松散)定义1。(数据蒸馏)旨在合成微小高保真数据摘要的方法,从给定的目标数据集中蒸馏最重要的知识。这种蒸馏的摘要经过优化,可以作为原始数据集的有效替代品,用于高效准确的数据使用应用,如模型训练、推理、架构搜索等。
最近的“规模就是一切”观点认为,在更大的数据集上训练更大的模型(即由更大量的参数组成),并使用更大的计算资源是推进人工智能前沿的唯一关键。另一方面,一个理由充分、有原则的解决方案可以说更适合扩大规模,从而更快地取得进展。数据蒸馏(定义1)是一项植根于后一学派的任务。显然,规模观点仍然成立,因为如果我们继续增加数据量(尽管现在已经压缩,质量更高),我们将观察到上游和下游泛化的改善,但速度更快。
动机。一个简洁、高质量的数据摘要包含了来自各种观点的用例。首先也是最重要的一点是,它导致了更快的模型训练过程。反过来,更快的模型训练相当于(1)节省了计算机成本并加快了研究迭代,即手动试验不同想法的研究程序;以及(2)生态可持续性的提高,即降低计算时间直接导致运行耗电加速硬件的碳足迹降低。此外,一个小的数据摘要使整个流程民主化,因为更多的人可以使用数据摘要在可合理访问的硬件上训练最先进的算法。最后,高质量的数据摘要也间接加速了正交程序,如神经结构搜索、近似最近邻搜索、知识蒸馏等,其中该程序需要在整个数据集上多次迭代。
与知识蒸馏和迁移学习的比较。尽管本质上蒸馏了某种知识,但我们想强调的是,知识蒸馏和迁移学习都是数据蒸馏的正交过程,它们可以协同工作,更有效地执行这两项任务。知识蒸馏需要有效地将受过训练的教师网络中的知识蒸馏到较小的学生网络中。另一方面,迁移学习是在类似任务中迁移知识的过程,例如,从图像分类到图像分割。正交地,数据蒸馏旨在将给定数据集的知识蒸馏为简洁的数据摘要。这样的数据摘要可以与知识蒸馏或迁移学习程序结合使用,用于(1)更快地学习教师模型;以及(2)更快地向学生模型迁移知识。同样的比较也适用于模型压缩技术,其中与知识蒸馏类似,目标是减少模型存储大小,而不是减少训练时间或样本复杂性。
在本次综述中,我们打算简要概述不同数据模态下的各种数据蒸馏框架。我们在第2节中首先介绍了一个正式的数据蒸馏框架,以及现有图像蒸馏技术的详细经验比较。随后,在第3节中,我们讨论了用于合成不同模态数据的现有数据蒸馏框架,并概述了相关的挑战。在第4节中,我们讨论了合成高保真度数据摘要的替代应用,而不是简单地加速模型训练以及现有工作的指引。最后,在第5节中,我们总结了现有数据蒸馏技术中的常见陷阱,并为未来的工作提出了有趣的方向。
2 数据蒸馏框架
在进入数据蒸馏细节之前,我们首先概述有用的符号。用
D
≜
{
(
x
i
,
y
i
)
}
i
=
1
∣
D
∣
\mathcal{D}\triangleq\{(x_i,y_i)\}^{|\mathcal{D}|}_{i=1}
D≜{(xi,yi)}i=1∣D∣来表示一个给定的需要被蒸馏的数据集,其中
x
i
∈
X
x_i\in\mathcal{X}
xi∈X是输入特征的集合,
y
i
∈
Y
y_i\in\mathcal{Y}
yi∈Y是
x
i
x_i
xi对应的标签。对于分类任务,
C
\mathcal{C}
C是
Y
\mathcal{Y}
Y中唯一类的集合,
D
c
≜
{
(
x
i
,
y
i
)
∣
y
i
=
c
}
i
=
1
∣
D
∣
\mathcal{D}^c\triangleq\{(x_i,y_i)|y_i=c\}^{|\mathcal{D}|}_{i=1}
Dc≜{(xi,yi)∣yi=c}i=1∣D∣是
D
\mathcal{D}
D的关于类
c
c
c子集合。为了方便,我们也定义了矩阵
X
≜
[
x
i
]
i
=
1
∣
D
∣
X\triangleq[x_i]^{|\mathcal{D}|}_{i=1}
X≜[xi]i=1∣D∣和
Y
≜
[
y
i
]
i
=
1
∣
D
∣
Y\triangleq[y_i]^{|\mathcal{D}|}_{i=1}
Y≜[yi]i=1∣D∣。给定一个数据预算
n
∈
Z
+
n\in\mathbb{Z}^+
n∈Z+,数据蒸馏技术旨在合成高保真度的数据摘要
D
s
y
n
≜
{
(
x
~
i
,
y
~
i
)
}
i
=
1
n
\mathcal{D}_{syn}\triangleq\{(\tilde x_i,\tilde y_i )\}^n_{i=1}
Dsyn≜{(x~i,y~i)}i=1n满足
n
≪
∣
D
∣
n\ll |\mathcal{D}|
n≪∣D∣。我们定义了
D
s
y
n
c
,
X
s
y
n
\mathcal{D}_{syn}^c,X_{syn}
Dsync,Xsyn和
Y
s
y
n
Y_{syn}
Ysyn类似于
D
\mathcal{D}
D的定义。让
Φ
θ
:
X
↦
Y
\Phi_\theta:\mathcal{X}\mapsto\mathcal{Y}
Φθ:X↦Y表示一个带有参数
θ
\theta
θ的学习算法。我们还假设可以得到一个二次可微的成本函数
l
:
Y
×
Y
↦
R
l:\mathcal{Y}\times\mathcal{Y}\mapsto\mathbb{R}
l:Y×Y↦R,同时为了方便定义
L
D
(
θ
)
≜
E
(
x
,
y
)
∼
D
[
l
(
Φ
θ
(
x
)
,
y
)
]
\mathcal{L}_\mathcal{D}(\theta)\triangleq\mathbb{E}_{(x,y)\sim\mathcal{D}}[l(\Phi_\theta(x),y)]
LD(θ)≜E(x,y)∼D[l(Φθ(x),y)]。附录A中也对符号进行了总结。
为了统一起见,我们将通过数据蒸馏技术合成的数据称为数据摘要。受核心集定义的启发,我们正式定义了
ϵ
\epsilon
ϵ−近似数据摘要,数据蒸馏任务如下:
定义2。(
ϵ
\epsilon
ϵ−近似数据摘要)给定一个学习算法
Φ
\Phi
Φ,让
θ
D
,
θ
D
s
y
n
\theta^\mathcal{D},\theta^{\mathcal{D}_{syn}}
θD,θDsyn分别表示
Φ
\Phi
Φ估计
D
\mathcal{D}
D和
D
s
y
n
\mathcal{D}_{syn}
Dsyn的最优参数集合,同时
ϵ
∈
R
+
\epsilon\in\mathbb{R}^+
ϵ∈R+,我们定义一个
ϵ
\epsilon
ϵ−近似数据摘要需要满足:
sup
{
∣
l
(
Φ
θ
D
(
x
)
,
y
)
−
l
(
Φ
θ
D
s
y
n
(
x
)
,
y
)
∣
}
x
∼
X
y
∼
Y
≤
ϵ
(1)
\sup\{|l(\Phi_{\theta^\mathcal{D}}(x),y)-l(\Phi_{\theta^{\mathcal{D}_{syn}}}(x),y)|\}_{x\sim\mathcal{X}\atop y\sim\mathcal{Y}}\leq\epsilon\tag{1}
sup{∣l(ΦθD(x),y)−l(ΦθDsyn(x),y)∣}y∼Yx∼X≤ϵ(1)
定义3。(数据蒸馏)给定一个学习算法
Φ
\Phi
Φ,让
θ
D
,
θ
D
s
y
n
\theta^\mathcal{D},\theta^{\mathcal{D}_{syn}}
θD,θDsyn分别表示
Φ
\Phi
Φ估计
D
\mathcal{D}
D和
D
s
y
n
\mathcal{D}_{syn}
Dsyn的最优参数集合,我们将数据蒸馏定义为优化以下内容:
arg
min
D
s
y
n
,
n
(
sup
{
∣
l
(
Φ
θ
D
(
x
)
,
y
)
−
l
(
Φ
θ
D
s
y
n
(
x
)
,
y
)
∣
}
x
∼
X
y
∼
Y
)
(2)
\mathop{\arg\min}\limits_{\mathcal{D}_{syn},n}\Big(\sup\{|l(\Phi_{\theta^\mathcal{D}}(x),y)-l(\Phi_{\theta^{\mathcal{D}_{syn}}}(x),y)|\}_{x\sim\mathcal{X}\atop y\sim\mathcal{Y}}\Big)\tag{2}
Dsyn,nargmin(sup{∣l(ΦθD(x),y)−l(ΦθDsyn(x),y)∣}y∼Yx∼X)(2)
从定义3中,我们强调了评估数据蒸馏方法的三个基石:(1)性能:对在合成数据摘要上训练的模型与完整数据集的下游评估(例如,准确性、FID、nDCG等);(2) 效率:模型达到完整数据性能(甚至超过完整数据性能)的速度有多快,即n与下游任务性能的比例;(3)可移植性:就下游评估而言,数据摘要在多大程度上可以推广到不同的学习算法库。
没有免费午餐。普遍的“没有免费午餐”定理也适用于数据蒸馏。例如,观察数据摘要的可迁移性,它强烈依赖于编码的归纳偏差集,即通过选择蒸馏时使用的学习算法
Φ
\Phi
Φ以及目标函数
l
(
⋅
,
⋅
)
l(\cdot,\cdot)
l(⋅,⋅)。这种偏差对于任何数据蒸馏技术来说都是不可避免的,从某种意义上说,严格遵循编码归纳偏差集的学习算法将能够比其他算法更好地概括数据摘要。
考虑到这些初步内容,我们现在提出了一个正式的数据蒸馏框架,封装了现有的数据蒸馏方法。值得注意的是,大多数现有技术本质上解决了双层优化问题,这是方程(2)的可处理的替代物。内循环通常优化数据摘要上的代表性学习算法,并且使用优化的学习算法,外循环优化方程(2)的可处理代理。
现有数据蒸馏技术遵循的一些常见假设如下:(1)静态长度数据摘要,比如
n
n
n是固定的,并被视为可调的超参数,以及(2)我们具有对目标数据集
D
\mathcal{D}
D的按需访问,该目标数据集也被假定为iid。值得注意的是,
D
s
y
n
\mathcal{D}_{syn}
Dsyn的外环优化仅通过类似定义的
X
s
y
n
∈
R
n
×
d
i
m
(
X
)
X_{syn}\in\mathbb{R}^{n\times dim(\mathcal{X})}
Xsyn∈Rn×dim(X)上的梯度下降(GD)发生,它被实例化为自由参数。注意到标签
Y
s
y
n
∈
R
n
×
d
i
m
(
Y
)
Y_{syn}\in\mathbb{R}^{n\times dim(\mathcal{Y})}
Ysyn∈Rn×dim(Y),也可以通过GD进行类似的优化。为了符号的清晰起见,我们今后将可互换地使用
D
s
y
n
\mathcal{D}_{syn}
Dsyn或
(
X
s
y
n
,
Y
s
y
n
)
(X_{syn},Y_{syn})
(Xsyn,Ysyn)的优化。
2.1 元模型匹配的数据蒸馏
基于元模型匹配的数据蒸馏方法从根本上优化了在数据摘要上训练的模型在推广到原始数据集时的可迁移性:
arg
min
D
s
y
n
L
D
(
θ
D
s
y
n
)
s
.
t
.
θ
D
s
y
n
≜
arg
min
θ
L
D
s
y
n
(
θ
)
,
(3)
\mathop{\arg\min}\limits_{\mathcal{D}_{syn}}\mathcal{L}_\mathcal{D}(\theta^{\mathcal{D}_{syn}})\quad\mathrm{s.t.}\quad \theta^{\mathcal{D}_{syn}}\triangleq\mathop{\arg\min}\limits_{\theta}\mathcal{L}_{\mathcal{D}_{syn}}(\theta),\tag{3}
DsynargminLD(θDsyn)s.t.θDsyn≜θargminLDsyn(θ),(3)
其中,直观地,内环在数据摘要上训练具有代表性的学习算法,直到收敛,并且外环随后针对优化的学习算法到原始数据集的可迁移性来优化数据摘要。除了前面提到的常见假设之外,这类方法的关键简化假设是存在一个完美的分类器,并且可以在
D
\mathcal{D}
D上估计,比如
∃
θ
D
s
.
t
.
l
(
Φ
θ
D
(
x
)
,
y
)
=
0
,
∀
x
∼
X
,
y
∼
Y
.
\exist\theta^\mathcal{D}\enspace s.t.\enspace l(\Phi_{\theta^\mathcal{D}}(x),y)=0,\forall x\sim\mathcal{X},y\sim\mathcal{Y}.
∃θDs.t.l(ΦθD(x),y)=0,∀x∼X,y∼Y.将第二个假设与方程(2)中
D
\mathcal{D}
D的的iid假设一起插入直接转化为方程(3)。尽管有这种假设,但方程(3)在计算时间和内存方面都非常昂贵,因此,该家族的方法通常会采用进一步的假设。
Wang等人(2018)(DD)最初提出了数据蒸馏的任务,并使用元模型匹配框架进行优化。DD通过在内环中执行(1)随机梯度下降(SGD)的局部优化和(2)使用时间截断反向传播(TBPTT)的外环优化,即在优化外环的同时展开有限数量的内环优化步骤,使方程(3)中昂贵的优化更有效。形式上,针对DD的修改优化目标如下:
arg
min
D
s
y
n
E
θ
o
∼
P
θ
[
L
D
(
θ
T
)
]
s
.
t
.
θ
t
+
1
←
θ
t
−
η
⋅
∇
θ
L
D
s
y
n
(
θ
t
)
,
(4)
\mathop{\arg\min}\limits_{\mathcal{D}_{syn}}\mathop{\mathbb{E}}\limits_{\theta_o\sim P_\theta}[\mathcal{L}_\mathcal{D}(\theta_T)]\quad\mathrm{s.t.}\quad \theta_{t+1}\leftarrow\theta_t-\eta\cdot\nabla_\theta\mathcal{L}_{\mathcal{D}_{syn}}(\theta_t),\tag{4}
Dsynargminθo∼PθE[LD(θT)]s.t.θt+1←θt−η⋅∇θLDsyn(θt),(4)
其中
P
θ
P_\theta
Pθ是选择的参数初始化分布,
T
T
T说明了TBPTT中的截断,
η
\eta
η是一个可以调节的学习率。值得注意的是,TBPTT有这些缺点,例如(1)在每次外循环更新时展开内循环在计算上昂贵;(2) 截断展开涉及的偏差;以及(3)条件差的损失函数曲面,特别是长期展开的情况下。因此,经验表明,TBPTT框架对后续工作中的数据蒸馏无效。然而,最近的工作声称,使用基于动量的优化器和更长时间的内环展开可以大大提高性能。为了清楚起见,我们将对这项工作的深入讨论推迟到第2.5节。
类似地,另一项工作侧重于使用基于神经切线核(NTK)的算法来求解闭环形式的内环。作为简短的补充说明,无限宽对应关系表明,使用给定神经网络的NTK执行核化岭回归(KRR),等价于训练具有
L
2
L_2
L2重构损失的相同
∞
\infty
∞宽度神经网络用于
∞
\infty
∞SGD步骤。这些“
∞
\infty
∞-宽度”与有限宽度的神经网络相比,神经网络表现合理,同时也以封闭形式求解(参见Lee等人(2020)了解用于图像分类的有限与无限神经网络的详细分析)。KIP在方程(3)的内环中使用全连接神经网络或卷积网络的NTK来进行有效的数据蒸馏。更正式地说,给定NTK
K
:
X
×
X
↦
R
\mathcal{K}:\mathcal{X}\times\mathcal{X}\mapsto\mathbb{R}
K:X×X↦R作为神经网络架构,KIP优化了以下目标:
arg
min
X
s
y
n
,
Y
s
y
n
∥
Y
−
K
X
X
s
y
n
⋅
(
K
X
s
y
n
X
s
y
n
+
λ
I
)
−
1
⋅
Y
s
y
n
∥
2
,
(5)
\mathop{\arg\min}\limits_{X_{syn},Y_{syn}}\lVert Y-K_{XX_{syn}}\cdot(K_{X_{syn}X_{syn}}+\lambda I)^{-1}\cdot Y_{syn}\rVert^2,\tag{5}
Xsyn,Ysynargmin∥Y−KXXsyn⋅(KXsynXsyn+λI)−1⋅Ysyn∥2,(5)
其中
K
A
B
∈
R
∣
A
∣
×
∣
B
∣
K_{AB}\in\mathbb{R}^{\lvert A\rvert\times\lvert B\rvert}
KAB∈R∣A∣×∣B∣表示两个集合
A
A
A和
B
B
B的格拉姆矩阵,而且元素
(
i
,
j
)
t
h
(i,j)^{th}
(i,j)th被定义为
K
(
A
i
,
B
i
)
\mathcal{K}(A_i,B_i)
K(Ai,Bi)。尽管KIP没有对元模型匹配框架进行任何额外的简化,但它具有
O
(
∣
D
∣
⋅
n
⋅
d
i
m
(
X
)
)
\mathcal{O}(\lvert\mathcal{D}\rvert\cdot n\cdot dim(\mathcal{X}))
O(∣D∣⋅n⋅dim(X))时间和内存复杂性,限制了其可扩展性。随后,RFAD提出使用(1)轻量级经验神经网络高斯过程(NNGP)内核代替NTK;以及(2)用于外环的分类损失(例如NLL)而不是
L
2
L_2
L2重建损失以获得时间复杂度同时还具有更好的性能。类似地,FRePO将
Φ
\Phi
Φ的特征提取器和线性分类器解耦,并可选地优化(1)数据摘要和分类器,以及(2)特征提取器。准确的说,设为特征提取器,为线性分类器,FRePO的优化目标可被写成:
arg
min
X
s
y
n
,
Y
s
y
n
E
θ
o
∼
P
θ
[
∑
t
=
0
T
∥
Y
−
K
X
X
s
y
n
θ
t
⋅
(
K
X
s
y
n
X
s
y
n
θ
t
+
λ
I
)
−
1
⋅
Y
s
y
n
∥
2
]
s
.
t
.
θ
t
+
1
←
θ
t
−
η
⋅
E
(
x
,
y
)
∼
D
s
y
n
[
∇
θ
l
(
g
ψ
(
f
θ
(
x
)
)
,
y
)
]
;
K
X
s
y
n
X
s
y
n
θ
≜
f
θ
t
(
X
s
y
n
)
f
θ
t
(
X
s
y
n
)
T
,
(6)
\mathop{\arg\min}\limits_{X_{syn},Y_{syn}}\mathop{\mathbb{E}}\limits_{\theta_o\sim P_\theta}\Big[\mathop{\sum}\limits^T_{t=0}\lVert Y-K^{\theta_t}_{XX_{syn}}\cdot(K^{\theta_t}_{X_{syn}X_{syn}}+\lambda I)^{-1}\cdot Y_{syn}\rVert^2\Big]\atop\quad s.t.\quad\theta_{t+1}\leftarrow\theta_t-\eta\cdot\mathop{\mathbb{E}}\limits_{(x,y)\sim\mathcal{D}_{syn}}[\nabla_\theta l(g_\psi(f_\theta(x)),y)];K^\theta_{X_{syn}X_{syn}}\triangleq f_{\theta_t}(X_{syn}){f_{\theta_t}(X_{syn})}^T,\tag{6}
s.t.θt+1←θt−η⋅(x,y)∼DsynE[∇θl(gψ(fθ(x)),y)];KXsynXsynθ≜fθt(Xsyn)fθt(Xsyn)T,Xsyn,Ysynargminθo∼PθE[t=0∑T∥Y−KXXsynθt⋅(KXsynXsynθt+λI)−1⋅Ysyn∥2](6)
其中
T
T
T表示特征提取器
f
θ
f_\theta
fθ的内环更新步骤的数目。值得注意的是,(1)
f
θ
f_\theta
fθ的宽结构对于FRePO中的蒸馏质量至关重要;和(2)尽管进行了双层优化,但与KIP相比,FRePO更具可扩展性(等式(5)),同时也更具可推广性。
2.2 梯度匹配的数据蒸馏
基于梯度匹配的数据蒸馏在高水平上对(1)在目标数据集(
D
\mathcal{D}
D)上训练的网络与(2)在数据摘要(
D
s
y
n
\mathcal{D}_{syn}
Dsyn)上训练相同的网络执行一步距离匹配。与元模型匹配框架相比,这种方法绕过了内部循环的展开,从而使整体优化更加高效。Zhao等人(2021)(DC)首先提出,通过梯度匹配优化的数据摘要显著优于启发式数据采样器、有原理的核心集构造技术以及Wang等人提出的基于TBPTT的数据蒸馏。形式上,给定学习算法
Φ
\Phi
Φ,DC解决以下优化目标:
arg
min
D
s
y
n
E
θ
o
∼
P
θ
c
∼
C
[
∑
t
=
0
T
D
(
∇
θ
L
D
c
(
θ
t
)
,
∇
θ
L
D
s
y
n
c
(
θ
t
)
)
]
s
.
t
.
θ
t
+
1
←
θ
t
−
η
⋅
∇
θ
L
D
s
y
n
(
θ
t
)
,
(7)
\mathop{\arg\min}\limits_{\mathcal{D}_{syn}}\mathop{\mathbb{E}}\limits_{\theta_o\sim P_\theta\atop c\sim C}\bigg[\mathop{\sum}\limits_{t=0}^T D\Big(\nabla_\theta\mathcal{L}_{\mathcal{D}^c}(\theta_t),\nabla_\theta\mathcal{L}_{\mathcal{D}^c_{syn}}(\theta_t)\Big)\bigg]\quad s.t.\quad\theta_{t+1}\leftarrow\theta_t-\eta\cdot\nabla_\theta\mathcal{L}_{\mathcal{D}_{syn}}(\theta_t),\tag{7}
Dsynargminc∼Cθo∼PθE[t=0∑TD(∇θLDc(θt),∇θLDsync(θt))]s.t.θt+1←θt−η⋅∇θLDsyn(θt),(7)
2.3 轨迹匹配的数据蒸馏
2.4 分布匹配的数据蒸馏
2.5 因式分解的数据蒸馏
数据蒸馏与数据压缩。我们强调,确保(1)“非因子化”的数据蒸馏技术之间的公平比较是非常重要的,即,将每个合成数据点保持为一组自由参数(第2.1节至第2.4节);以及(2)使用本节中讨论的因子化方法来有效地组织数据摘要。如果我们使用数据摘要的大小(
n
n
n)作为效率度量,因子分解方法会受到不利影响,因为它们需要更小的存储预算来合成相同大小的数据摘要。另一方面,如果我们使用“端到端存储字节”作为效率指标,非因子化方法会受到不利影响,因为它们不执行任何类型的数据压缩,而只专注于通过优化的角度更好地理解模型与数据的关系。为了获得更好的直觉,可以对通过非因子分解数据蒸馏方法合成的数据应用后置无损压缩(例如,霍夫曼编码),以在相同的存储预算中拟合更多的图像。这些技术无意中偏离了数据蒸馏的初衷,并朝着更好的数据压缩技术迈进。作为一种潜在的解决方案,我们鼓励社区考虑报告两种情况的结果:固定的数据摘要大小
n
n
n,以及固定的存储字节。尽管如此,为了便于在所讨论的数据蒸馏技术之间进行经验比较,我们在表1中提供了四个图像分类数据集的一组整理结果。
3 数据模态
在了解了数据蒸馏的不同类型的优化框架后,我们现在讨论数据蒸馏的正交(也是重要的)方面——数据蒸馏技术可以总结哪些类型的数据?从连续值图像到异构、离散和半结构化图,机器学习的每一个独特应用的底层数据都有自己的模态、结构和一组假设。虽然最早的数据蒸馏技术是为了总结图像进行分类而设计的,但最近已经采取措施将数据蒸馏的范围扩展到许多其他场景中。在下文中,我们根据现有的数据蒸馏技术的预期数据模式对其进行分类,同时也讨论了其独特的挑战。
图像。现有数据蒸馏技术的很大一部分是为图像分类数据设计的,这仅仅是因为图像具有实值的连续数据域(
X
≡
R
d
×
d
\mathcal{X}\equiv\mathbb{R}^{d\times d}
X≡Rd×d)。这允许直接对数据进行基于SGD的优化,该数据被视为一组自由参数。直观地说,递增地改变每个像素值可以被视为颜色空间中的轻微扰动,因此,在给定适当的数据蒸馏损失的情况下,可以使用SGD进行朴素的优化。
文本。文本数据可以从网站、新闻文章、学术手稿等来源获得,也可以通过大小高达541TB的常见爬虫等数据集轻松访问。此外,随着大型语言模型(LLM)的出现,在大型数据集上从头开始训练此类模型已成为一种越来越昂贵的过程。尽管最近在普及大语言模型训练方面做出了很多努力,但有效提取大规模文本数据作为解决方案仍有待探索。提取文本数据的关键瓶颈是:(1)数据固有的离散性,其中令牌应该属于有限的词汇表;(2) 存在丰富的底层结构,即单词(文本)的句子根据语法遵循固定的模式;(3)语境的丰富性,即给定的文本在不同的语境下可能有截然不同的语义解释。
Sucholutsky和Schonlau(2021)采用了一种潜在的嵌入方法来提取文本数据。在高水平上,为了避免优化的离散性,作者在连续嵌入空间中进行了蒸馏。更具体地说,假设访问由固定文本编码器指定的潜在空间,作者学习蒸馏文本中每个单词的连续表示,并使用Wang等人提出的TBPTT数据蒸馏框架对其进行优化(等式(4))。最后,通过遵循简单的最近邻协议对蒸馏的文本表示进行解码。
图。各种各样的数据和应用程序可以固有地建模为图,例如用户-项目交互、社交网络、自动驾驶等。以社交网络为例,这些用户-用户图在现代很容易扩展到十亿规模,呼吁有原则的扩展解决方案。图蒸馏可以简单地解决大多数规模挑战,但合成微小的高保真图有以下障碍:(1)图中的节点可以是高度抽象的,例如用户、产品、文本文章等。其中一些可以是离散的、异构的,甚至是简单的数字ID;(2) 图遵循各种内在模式(例如,空间模式),这些模式需要保留在蒸馏的图中;以及(3)即使对于中等大小的图,邻接矩阵的二次大小在计算上也可能是禁止的。
Jin等人(2022b)提出了GCond,其在归纳节点分类设置中蒸馏图,由其节点特征矩阵
X
X
X、邻接矩阵
A
A
A和节点目标矩阵
Y
Y
Y指定。GCond通过学习合成节点特征矩阵
X
s
y
n
X_{syn}
Xsyn来提取给定图,并使用
X
s
y
n
X_{syn}
Xsyn生成
A
s
y
n
≜
f
θ
(
X
s
y
n
)
A_{syn}\triangleq f_\theta(X_{syn})
Asyn≜fθ(Xsyn)。通过两个节点的特征之间的参数相似函数
s
i
m
θ
(
⋅
,
⋅
)
sim_\theta(\cdot,\cdot)
simθ(⋅,⋅)来实现,即
A
s
y
n
i
,
j
≜
σ
(
s
i
m
θ
(
X
s
y
n
i
,
X
s
y
n
j
)
)
A_{syn}^{i,j}\triangleq\sigma(sim_\theta(X^i_{syn},X^j_{syn}))
Asyni,j≜σ(simθ(Xsyni,Xsynj)),其中
σ
(
⋅
)
\sigma(\cdot)
σ(⋅)是sigmoid函数。最后,使用Zhao等人(2021)提出的梯度匹配框架(方程(7))对
X
s
y
n
X_{syn}
Xsyn和
θ
\theta
θ进行优化。另一项工作(Liu等人,2022a)(GCDM)与GCond具有相同的框架,但使用了Zhao和Bilen(2023)提出的分布匹配框架(方程(11))来优化
X
s
y
n
X_{syn}
Xsyn和
θ
\theta
θ。扩展到图分类设置,Jin等人(2022a)进一步提出了与GCond相比有两个主要变化的DosCond:(1)他们没有使用
X
s
y
n
X_{syn}
Xsyn上的相似函数来参数化邻接矩阵,而是保持了一个自由参数矩阵
Ω
\Omega
Ω具有与邻接矩阵相同的大小,使用重新参数化技巧,对每个
A
s
y
n
i
,
j
A_{syn}^{i,j}
Asyni,j项进行独立的伯努利采样,以
Ω
i
,
j
\Omega^{i,j}
Ωi,j为先验分布。这样的过程确保了可微性以及离散矩阵合成;和(2)
X
s
y
n
X_{syn}
Xsyn和
Ω
\Omega
Ω仍然使用梯度匹配框架(等式(7))进行优化,尽管只有一个步骤,即
T
=
1
T=1
T=1,以提高可扩展性,并且没有经验地观察到性能的损失。
推荐系统。可用于训练推荐系统的在线用户反馈数据量正在迅速增加。此外,典型的面向用户的推荐系统需要定期重新训练,这增加了对更智能的数据摘要解决方案的要求(参见Sachdeva等人(2022c)了解推荐系统数据采样的背景)。然而,蒸馏推荐系统数据面临以下挑战:(1)数据以抽象和离散(userID、itemID、相关性)元组的形式提供,这与典型的(特征、标签)设置不同;(2) 用户和商品人气的分布遵循强幂律,导致数据稀缺和优化不稳定;以及(3)数据继承了各种固有结构,例如,序列模式、用户-项目图模式,项目-项目共生模式,不随机缺失等。
Sachdeva等人(2022a)提出了Distill-CF,其提取隐式反馈推荐系统数据,即当观察到的用户项目相关性是二分类时(例如,点击或不点击)。这样的数据可以被可视化为二分类用户-项目矩阵
R
R
R,其中每行表示单个用户,每列表示一个项目。在更高层上,Distill-CF将虚假用户及其物品消费历史进行合成,可视化为合成用户-物品矩阵
R
s
y
n
R_{syn}
Rsyn。值得注意的是,为了保持语义,
R
s
y
n
R_{syn}
Rsyn中的项目空间与
R
R
R中的项目相同。为了缓解数据离散性问题,Distill-CF维护了一个采样先验矩阵
Ω
\Omega
Ω其具有与
R
s
y
n
R_{syn}
Rsyn相同的大小,并且可以使用多步骤Gumbel采样来生成
R
s
y
n
R_{syn}
Rsyn,并替换
Ω
\Omega
Ω中的每个用户先验(相当于每一行)。 这样的公式自动避免了推荐系统数据中动态的用户和项目流行度人为因素,这可以通过矩阵
Ω
\Omega
Ω的行和列熵来类比控制。最后使用Nguyen等人提出的元模型匹配框架优化
Ω
\Omega
Ω。值得注意的是,Sachdeva等人(2022a)还提出了适用于项目推荐任务的无限宽自动编码器,同时也导致元模型匹配框架中内环的闭合形式计算(等式(5))。
4 应用
虽然数据蒸馏任务最初是为了加速模型训练而设计的,但高保真数据摘要还有许多其他应用。下面我们简要讨论了一些这样具有前景的应用,同时也提供了现有工作的参考。
查分隐私。数据蒸馏最近被证明是Dwork(2008)定义的差分隐私的一种很有前途的解决方案。Dong等人(2022)表明,数据蒸馏技术在性能和隐私方面都优于现有的最先进的查分私有数据生成器。值得注意的是,数据蒸馏技术的隐私优势实际上是免费的,因为这些方法都没有针对生成不同的私人数据进行优化。Chen等人(2022)通过在优化的同时对原始数据集上获得的梯度进行剪裁并添加白噪声,进一步修改了梯度匹配框架(方程(7))。这样的程序被证明具有更好的采样效用,同时也满足严格的差分隐私保证。从完全应用的角度来看,数据蒸馏也被用于有效地蒸馏敏感的医疗数据。
神经结构搜索(NAS)。神经网络架构的自动搜索可以减轻手动工作,并产生更好的模型(参见Elsken等人(2019)的详细综述)。类似于使用模型外推,即在整个数据集上外推训练不足的模型架构的性能;另一方面,数据外推的目的是在小的高保真度数据样本上训练模型直到收敛。许多数据蒸馏技术通过使用数据外推框架,在小型NAS试验台上显示出了前景。然而,Cui等人(2022a)表明,在更大的NAS测试台上评估不同的架构时,数据蒸馏表现不佳,需要更好的秩保持数据蒸馏技术。
持续学习。永无止境的学习(参见Parisi等人(2019)的详细综述)经常与灾难性遗忘有关,即当学习新数据/任务中的模式时,从旧数据/任务提取的模式很容易被遗忘。数据蒸馏已被证明是缓解灾难性遗忘的有效解决方案,只需在回放缓冲区中使用蒸馏的数据摘要,该缓冲区将不断更新并用于后续的数据/任务训练。Deng&Russakovsky(2022)进一步证明了一种简单的压缩然后回忆策略优于现有最先进的持续学习方法。值得注意的是,每个任务只存储数据摘要,并且使用所有以前的数据摘要为每个新的传入任务训练新模型(从头开始)。
联邦学习。联合或协作学习(详细见李等人(2020b))涉及以去中心化的方式训练学习算法。联邦学习的一种标准方法是将本地参数更新同步到中央服务器,而不是同步原始数据本身。另一方面,数据蒸馏通过将微小的合成数据摘要同步到中央服务器,减轻了在客户端和服务器之间同步大型参数模型的需要。随后,整个训练仅在中央服务器上进行。这种基于数据提取的联邦学习方法被证明比基于模型同步的联邦学习方式执行得更好,同时还需要多阶较少的客户端-服务器通信。
5 挑战与未来方向
尽管在数据高效学习方面取得了显著进展,但在数据蒸馏方面,仍有许多基于框架、理论和应用的方向有待探索。在接下来的内容中,我们强调并讨论了这些方向,供社区根据早期证据或我们的直觉进一步探索。
新的数据模式和设置。在第3节讨论的基础上,现有的数据蒸馏技术在很大程度上局限于图像分类设置,这是由于数据集的易用性和可接受的数据优化。然而,回到计算机视觉的广阔领域(参见Shapiro等人(2001)了解全面的背景),有许多同样重要的任务可以从高质量的数据摘要中受益。例如,提高训练图像生成模型的样本效率由于其庞大的规模和流行性而非常重要,而且对于适应现有的数据提蒸馏架来说也是非常重要的。类似地,各种重要的机器学习应用程序都不喜欢像图像那样的连续数据域,这使得现有的数据蒸馏技术很难按预期扩展和工作。除了最近在蒸馏离散数据如图和推荐系统方面的努力外,为固有的稀疏和离散数据开发一个统一的、有原则的数据蒸馏框架将对各种研究群体(例如,文本、表格数据、极端分类等)有用。
更好的扩展。现有的数据蒸馏技术仅在超低数据体系(通常每类1−50个数据点)中验证其能力。然而,Cui等人(2022a)表明,随着我们不断扩大数据摘要的规模(更大的蒸馏数据),大多数蒸馏方法都会崩溃到随机采样基线。尽管预期会收敛,但随着数据摘要变大,蒸馏性能会迅速崩溃。同样,为了使数据蒸馏实际上取代全数据训练,深入研究这样的缩放人为因素的成因与潜在修复办法是非常必要的。
改进的优化。数据蒸馏技术的一个统一的主线是潜在的两级优化,这已经被证明即使在线性内部优化的情况下也是NP难的。值得注意的是,两级优化已经成功地应用于各种其他应用,如元学习、超参数优化、神经结构搜索、核心集构建等。尽管它取得了成功,但许多理论基础仍有待探索,例如,常用的单例解假设的影响、过参数化对两级优化的影响,与统计影响函数的联系、偏差-方差权衡等。显然,更好地理解两级优化将直接促进更好的数据蒸馏技术的发展。