Data Distillation: A Survey

本文是蒸馏学习综述系列的第二篇文章,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=1D来表示一个给定的需要被蒸馏的数据集,其中 x i ∈ X x_i\in\mathcal{X} xiX是输入特征的集合, y i ∈ Y y_i\in\mathcal{Y} yiY 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=1D D \mathcal{D} D的关于类 c c c子集合。为了方便,我们也定义了矩阵 X ≜ [ x i ] i = 1 ∣ D ∣ X\triangleq[x_i]^{|\mathcal{D}|}_{i=1} X[xi]i=1D Y ≜ [ y i ] i = 1 ∣ D ∣ Y\triangleq[y_i]^{|\mathcal{D}|}_{i=1} Y[yi]i=1D。给定一个数据预算 n ∈ Z + n\in\mathbb{Z}^+ nZ+,数据蒸馏技术旨在合成高保真度的数据摘要 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}| nD。我们定义了 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} Φθ:XY表示一个带有参数 θ \theta θ的学习算法。我们还假设可以得到一个二次可微的成本函数 l : Y × Y ↦ R l:\mathcal{Y}\times\mathcal{Y}\mapsto\mathbb{R} l:Y×YR,同时为了方便定义 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\{\lvert l(\Phi_{\theta^\mathcal{D}}(x),y)-l(\Phi_{\theta^{\mathcal{D}_{syn}}}(x),y)\rvert\}_{x\sim\mathcal{X}\atop y\sim\mathcal{Y}}\leq\epsilon\tag{1} sup{∣l(ΦθD(x),y)l(ΦθDsyn(x),y)∣}yYxXϵ(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)}yYxX)(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})} XsynRn×dim(X)上的梯度下降(GD)发生,它被实例化为自由参数。注意到标签 Y s y n ∈ R n × d i m ( Y ) Y_{syn}\in\mathbb{R}^{n\times dim(\mathcal{Y})} YsynRn×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,xX,yY.将第二个假设与方程(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θoPθ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×XR作为神经网络架构,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,YsynargminYKXXsyn(KXsynXsyn+λI)1Ysyn2,(5)
其中 K A B ∈ R ∣ A ∣ × ∣ B ∣ K_{AB}\in\mathbb{R}^{\lvert A\rvert\times\lvert B\rvert} KABRA×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(∣Dndim(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θoPθE[t=0TYKXXsynθt(KXsynXsynθt+λI)1Ysyn2](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} DsynargmincCθoPθE[t=0TD(θLDc(θt),θLDsync(θt))]s.t.θt+1θtηθLDsyn(θt),(7)
其中 T T T表示后续的 T T T步中模型相似,同时 D : R ∣ θ ∣ × R ∣ θ ∣ ↦ R D:\mathbb{R}^{\vert\theta\rvert}\times\mathbb{R}^{\vert\theta\rvert}\mapsto\mathbb{R} D:Rθ×RθR是选择的距离度量(一般为余弦距离)。除了元模型匹配框架(第2.1节)强加的假设外,梯度匹配还假设(1)仅 T T T步的内环优化;(2) 局部光滑性:两组彼此接近的模型参数(给定距离度量)暗示了模型的相似性;(3) θ t D \theta_t^\mathcal{D} θtD的一阶近似,而不是精确地计算 D \mathcal{D} D上优化 θ 0 \theta_0 θ0 θ t D \theta_t^\mathcal{D} θtD的训练轨迹;在更小的 D s y n \mathcal{D}_{syn} Dsyn上对 θ 0 \theta_0 θ0的优化轨迹进行一阶近似即 θ t D s y n \theta_t^{\mathcal{D}_{syn}} θtDsyn,即,使用 D \mathcal{D} D而不是 θ t − 1 D \theta_{t-1}^\mathcal{D} θt1D θ t D \theta_t^\mathcal{D} θtD近似为 θ t − 1 D s y n \theta_{t-1}^{\mathcal{D}_{syn}} θt1Dsyn上的单个梯度下降更新(图3)。随后,在这个框架之上构建了许多其他方法,并进行了细微的变化。DSA通过在 D \mathcal{D} D D s y n \mathcal{D}_{syn} Dsyn上执行相同的图像增强(例如裁剪、旋转、抖动等),同时优化方程(7),从而改进了DC。由于这些扩充是通用的,并且适用于整个数据蒸馏框架,因此DSA执行的扩充已成为此后提出的所有方法的常见部分,但为了便于注释,我们省略了它们。DCC进一步修改了梯度匹配目标,以在每个梯度匹配步骤中引入类对比信号,并被证明可以提高稳定性和性能。随着 θ t \theta_t θt类似于方程(7)的演变,DCC的修改优化目标可以写成:
arg ⁡ min ⁡ D s y n E θ 0 ∼ p θ [ ∑ t = 0 T D ( E c ∈ C [ ∇ θ L D c ( θ t ) ] , E c ∈ C [ ∇ θ L D s y n c ( θ t ) ] ) ] , (8) \mathop{\arg\min}\limits_{\mathcal{D}_{syn}}\mathop{\mathbb{E}}\limits_{\theta_0\sim p_\theta}\bigg[\mathop{\sum}\limits_{t=0}^TD\Big(\mathop{\mathbb{E}}\limits_{c\in\mathcal{C}}\Big[\nabla_\theta\mathcal{L}_{\mathcal{D}^c}(\theta_t)\Big],\mathop{\mathbb{E}}\limits_{c\in\mathcal{C}}\Big[\nabla_\theta\mathcal{L}_{\mathcal{D}^c_{syn}}(\theta_t)\Big]\Big)\bigg],\tag{8} Dsynargminθ0pθE[t=0TD(cCE[θLDc(θt)],cCE[θLDsync(θt)])],(8)
在这里插入图片描述
最近,Kim等人(2022)(IDC)通过以下方式扩展了梯度匹配框架:(1)多格式:在相同的内存预算内合成更大量的数据,以较低的分辨率存储数据摘要(例如,图像)以消除空间冗余,并在使用时将采样(例如,使用双线性、FSRCNN)提高到原始规模;以及(2)在整个数据集 D \mathcal{D} D而不是数据摘要 D s y n \mathcal{D}_{syn} Dsyn上匹配网络训练轨迹的梯度。具体而言,给定 k × k\times k×放大函数 f : R d × d ↦ R k d × k d f:\mathbb{R}^{d\times d}\mapsto\mathbb{R}^{kd\times kd} f:Rd×dRkd×kd,IDC的修改优化目标可以形式化为:
arg ⁡ min ⁡ D s y n E θ 0 ∼ p θ c ∼ C [ ∑ t = 0 T D ( ∇ θ L D c ( θ t ) , ∇ θ L f ( D s y n c ) ( θ t ) ) ] s . t . θ t + 1 ← θ t − η ⋅ ∇ θ L D ( θ t ) , (9) \mathop{\arg\min}\limits_{\mathcal{D}_{syn}}\mathop{\mathbb{E}}\limits_{\theta_0\sim p_\theta\atop c\sim\mathcal{C}}\bigg[\mathop{\sum}\limits_{t=0}^TD\Big(\nabla_\theta\mathcal{L}_{\mathcal{D}^c}(\theta_t),\nabla_\theta\mathcal{L}_{f(\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}(\theta_t),\tag{9} DsynargmincCθ0pθE[t=0TD(θLDc(θt),θLf(Dsync)(θt))]s.t.θt+1θtηθLD(θt),(9)
Kim等人(2022)进一步假设,在内环中使用 D s y n \mathcal{D}_{syn} Dsyn而不是 D \mathcal{D} D训练模型有两个主要缺点:(1)内环和外环的强耦合导致了鸡蛋问题;以及(2)由于 D s y n \mathcal{D}_{syn} Dsyn的小尺寸而导致网络梯度消失,导致基于梯度匹配的技术的不适当的外环优化。

2.3 轨迹匹配的数据蒸馏

Cazenavette等人(2022)提出了MTT,旨在匹配在 D \mathcal{D} D D s y n \mathcal{D}_{syn} Dsyn上训练的模型的训练轨迹。更具体地说,设 { θ t D } t = 0 T \{\theta_t^\mathcal{D}\}^T_{t=0} {θtD}t=0T表示训练 Φ θ \Phi_\theta Φθ D \mathcal{D} D上的训练轨迹;轨迹匹配算法旨在解决以下优化问题:
arg ⁡ min ⁡ D s y n , η E θ 0 ∼ P θ [ ∑ t = 0 T − M D ( θ t + M D , θ t + N D s y n ) D ( θ t + M D , θ t D ) ] s . t . θ t + i + 1 D s y n ← θ t + i D s y n − η ⋅ ∇ θ L D s y n ( θ t + i D s y n ) ; θ t + 1 D s y n ← θ t D − η ⋅ ∇ θ L D s y n ( θ t D ) , (10) \mathop{\arg\min}\limits_{\mathcal{D}_{syn},\eta}\mathop{\mathbb{E}}\limits_{\theta_0\sim P_\theta}\Bigg[\mathop{\sum}\limits^{T-M}_{t=0}\frac{\mathbf{D}\Big(\theta^\mathcal{D}_{t+M},\theta^{\mathcal{D}_{syn}}_{t+N}\Big)}{\mathbf{D}\Big(\theta^\mathcal{D}_{t+M},\theta^\mathcal{D}_{t}\Big)}\Bigg] \atop s.t.\quad\theta^{\mathcal{D}_{syn}}_{t+i+1}\leftarrow\theta^{\mathcal{D}_{syn}}_{t+i}-\eta\cdot\nabla_\theta\mathcal{L}_{\mathcal{D}_{syn}}(\theta^{\mathcal{D}_{syn}}_{t+i});\theta^{\mathcal{D}_{syn}}_{t+1}\leftarrow\theta^{\mathcal{D}}_{t}-\eta\cdot\nabla_\theta\mathcal{L}_{\mathcal{D}_{syn}}(\theta^{\mathcal{D}}_{t}) ,\tag{10} s.t.θt+i+1Dsynθt+iDsynηθLDsyn(θt+iDsyn);θt+1DsynθtDηθLDsyn(θtD),Dsyn,ηargminθ0PθE[t=0TMD(θt+MD,θtD)D(θt+MD,θt+NDsyn)](10)
其中, D : R ∣ θ ∣ × R ∣ θ ∣ ↦ R \mathbf{D}:\mathbb{R}^{\lvert\theta\rvert}\times\mathbb{R}^{\lvert\theta\rvert}\mapsto\mathbb{R} D:Rθ×RθR是选择的距离度量(典型是 L 2 L_2 L2距离)。与 D \mathcal{D} D上的 M ≫ N M\gg N MN个步骤相比,这种优化可以直观地被视为对用 D s y n \mathcal{D}_{syn} Dsyn上的N个SGD步骤训练的类似质量模型的优化,从而调用长期轨迹匹配。值得注意的是,计算等式(10)w.r.t. D s y n \mathcal{D}_{syn} Dsyn的梯度包括通过N个时间步长的梯度展开,从而限制MTT的可扩展性。另一方面,由于训练 Φ θ \Phi_\theta Φθ D \mathcal{D} D上的轨迹,即 { θ t D } t = 0 T \{\theta_t^\mathcal{D}\}^T_{t=0} {θtD}t=0T D s y n \mathcal{D}_{syn} Dsyn的优化无关,因此可以为各种 θ 0 ∼ P θ \theta_0\sim\mathbf{P}_\theta θ0Pθ初始化预先计算并直接替换。与梯度匹配方法(第2.2节)类似,轨迹匹配框架还优化了参数之间的一阶距离,从而继承了局部光滑性假设。作为一种可扩展的替代方案,Cui等人(2022b)提出了TESLA,它在方程(10)中重新参数化MTT的参数匹配损失(特别是当 D \mathbf{D} D被设置为 L 2 L_2 L2距离时),使用线性代数运算使双层优化的记忆复杂度与N无关。此外,TESLA在优化过程中使用可学习软标签( Y s y n \mathbf{Y}_{syn} Ysyn)以提高压缩效率。

2.4 分布匹配的数据蒸馏

尽管前面提到的基于梯度匹配或轨迹匹配的数据蒸馏技术已被经验证明可以合成高质量的数据摘要,然而,就计算时间和内存而言,底层的双层优化往往是一个昂贵的过程。为此,分布匹配技术解决了将优化限制在单个级别的相关代理任务,从而大大提高了可扩展性。更具体地说,分布匹配技术不是匹配 D \mathcal{D} D D s y n \mathcal{D}_{syn} Dsyn上的模型质量,而是直接匹配 D \mathcal{D} D D s y n \mathcal{D}_{syn} Dsyn中的数据分布。这一系列方法的关键假设是,根据特定的分布散度度量相似的两个数据集也会产生类似的训练模型。
由Zhao和Bilen(2023)首次提出,DM使用(1)许多参数编码器将高维数据投射到各自的低维潜在空间;以及(2)最大平均差异的近似值,以计算每个潜在空间中 D \mathcal{D} D D s y n \mathcal{D}_{syn} Dsyn之间的分布失配。更准确地说,给定一组 k k k个编码器 ϵ ≜ { ψ i : X ↦ X i } i = 1 k \epsilon\triangleq\{\psi_i:\mathcal{X}\mapsto\mathcal{X}_i\}^k_{i=1} ϵ{ψi:XXi}i=1k,优化目标可以写成:
arg ⁡ min ⁡ D s y n E ψ ∼ ϵ c ∼ C [ ∥ E x ∼ D c [ ψ ( x ) ] − E x ∼ D s y n c [ ψ ( x ) ] ∥ 2 ] (11) \mathop{\arg\min}\limits_{\mathcal{D}_{syn}}\mathop{\mathbb{E}}\limits_{\psi\sim\epsilon\atop c\sim\mathcal{C}}\Bigg[\bigg\lVert\mathop{\mathbb{E}}\limits_{x\sim\mathcal{D}^c}[\psi(x)]-\mathop{\mathbb{E}}\limits_{x\sim\mathcal{D}^c_{syn}}[\psi(x)]\bigg\rVert^2\Bigg]\tag{11} DsynargmincCψϵE[ xDcE[ψ(x)]xDsyncE[ψ(x)] 2](11)
DM使用一组随机初始化的神经网络(具有相同的架构)来实例化 E \mathcal{E} E。当用更有意义的、任务优化的神经网络实例化时,他们观察到类似的性能,尽管它的效率要低得多。CAFE通过以下方式进一步完善了分布匹配思想:(1)解决用于联合优化单个编码器( Φ \Phi Φ)和数据摘要的双层优化问题,而不是使用预先确定的编码器集( E \mathcal{E} E);和(2)假设神经网络编码器( Φ \Phi Φ),匹配在编码器的所有中间层而不是仅在最后一层获得的潜在表示。形式上,给定( L + 1 L+1 L+1)层神经网络 Φ θ : X ↦ Y \Phi_\theta:\mathcal{X}\mapsto\mathcal{Y} Φθ:XY,其中 Φ θ l \Phi^l_\theta Φθl表示 Φ ′ \Phi' Φ在第 L L L层的输出,CAFE的优化问题可以指定为:
arg ⁡ min ⁡ D s y n E c ∼ C [ ∑ l = 1 l ∥ E x ∼ D c [ Φ θ t l ( x ) ] − E x ∼ D s y n c [ Φ θ t l ( x ) ] ∥ 2 − β ⋅ E ( x , y ) ∼ D c [ log ⁡ p ^ ( y ∣ x , θ t ) ] ] s . t . θ t + 1 ← θ t − η ⋅ ∇ θ L D s y n ( θ t ) ; p ^ ( y ∣ x , θ ) ≜ s o f t m a x y ( < Φ θ L ( x ) , E x ′ ∼ D s y n y [ Φ θ L ( x ′ ) ] > ) , (12) \mathop{\arg\min}\limits_{\mathcal{D}_{syn}}\mathop{\mathbb{E}}\limits_{c\sim\mathcal{C}}\bigg[\mathop{\sum}\limits_{l=1}^l\bigg\lVert\mathop{\mathbb{E}}\limits_{x\sim\mathcal{D}^c}[\Phi^l_{\theta_t}(x)]-\mathop{\mathbb{E}}\limits_{x\sim\mathcal{D}^c_{syn}}[\Phi^l_{\theta_t}(x)]\bigg\rVert^2-\beta\cdot\mathop{\mathbb{E}}\limits_{(x,y)\sim\mathcal{D}^c}[\log\hat p(y|x,\theta_t)]\bigg] \atop s.t.\quad\theta_{t+1}\leftarrow\theta_t-\eta\cdot\nabla_\theta\mathcal{L}_{\mathcal{D}_{syn}}(\theta_t);\hat p(y|x,\theta)\triangleq\mathop{softmax}\limits_{y}\bigg(\bigg<\Phi^L_\theta(x),\mathop{\mathbb{E}}\limits_{x'\sim\mathcal{D}^y_{syn}}[\Phi^L_\theta(x')]\bigg>\bigg) ,\tag{12} s.t.θt+1θtηθLDsyn(θt);p^(yx,θ)ysoftmax(ΦθL(x),xDsynyE[ΦθL(x)]),DsynargmincCE[l=1l xDcE[Φθtl(x)]xDsyncE[Φθtl(x)] 2β(x,y)DcE[logp^(yx,θt)]](12)
其中 p ^ ( ⋅ ∣ ⋅ , θ ) \hat p(\cdot|\cdot,\theta) p^(,θ)使用 Φ θ \Phi_\theta Φθ的最后一层获得的潜在表示直观地表示 D s y n \mathcal{D}_{syn} Dsyn上的最近质心分类器。类似地,IT-GAN也使用等式(11)中的分布匹配框架来生成数据,这些数据为模型训练提供了信息,而传统的GAN侧重于生成真实数据。

2.5 因式分解的数据蒸馏

所有上述数据蒸馏框架本质上都将合成的数据摘要保持为一大组自由参数,这些自由参数又被优化。可以说,这种设置禁止合成数据点(参数)之间的知识共享,这可能会引入数据冗余。另一方面,基于因子分解的数据蒸馏技术使用两个独立的分量来参数化数据摘要:(1)基:一组相互独立的基向量;以及(2)幻觉器:基向量空间到联合数据和标签空间的映射。反过来,基和幻觉器都针对数据蒸馏任务进行了优化。
形式上,设 B ≜ { b i ∈ B } i = 1 ∣ B ∣ \mathcal{B}\triangleq\{b_i\in\mathbb{B}\}^{\lvert\mathcal{B}\rvert}_{i=1} B{biB}i=1B是基的集合, H ≜ { h i : B ↦ X × Y } i = 1 ∣ H ∣ \mathcal{H}\triangleq\{h_i:\mathbb{B}\mapsto\mathcal{X}\times\mathcal{Y}\}^{\lvert\mathcal{H}\rvert}_{i=1} H{hi:BX×Y}i=1H是幻觉器的集合,则数据摘要被参数化为 D s y n ≜ { h ( b ) } b ∼ B , h ∼ H \mathcal{D}_{syn}\triangleq\{h(b)\}_{b\sim\mathcal{B},h\sim\mathcal{H}} Dsyn{h(b)}bB,hH。尽管这种双管齐下的方法似乎类似于数据的生成建模,但请注意,与经典的生成模型不同,(1)输入空间仅由一组固定且优化的潜在代码组成,并不意味着接受任何其他输入;以及(2)给定特定的 B \mathcal{B} B H \mathcal{H} H,我们最多可以生成 ∣ B ∣ ⋅ ∣ H ∣ \lvert\mathcal{B}\rvert\cdot\lvert\mathcal{H}\rvert BH大小的数据摘要。值得注意的是,这种基于幻觉器的数据参数化可以使用任何上述数据优化框架进行优化(第2.1至2.4节)
该框架由Deng&Russakovsky(2022)(我们可以自由地将他们未命名的模型称为“Lin-ear Ba-ses”)和Liu等人(2022c)(HaBa)同时提出。LinBa通过假设(1)基的向量空间( B \mathbb{B} B)与任务输入空间( X \mathcal{X} X)相同来修改一般的幻觉基框架;以及(2)幻觉器是线性的并且附加地以给定的预测域为条件。更具体地说,数据参数化可以形式化如下:
D s y n ≜ { ( y H T B , y ) } y ∼ C H ∼ H s . t . B ∈ R ∣ B ∣ × d i m ( X ) ≜ [ b i ∈ X ] i = 1 ∣ B ∣ ; H ≜ { H i ∈ R ∣ B ∣ × ∣ C ∣ } i = 1 ∣ H ∣ , (13) \mathcal{D}_{syn}\triangleq\{(y\mathbf{H}^T\mathbf{B},y)\}_{y\sim\mathcal{C}\atop\mathbf{H}\sim\mathcal{H}}\atop s.t.\quad\mathbf{B}\in\mathbb{R}^{\lvert\mathbf{B}\rvert\times dim(\mathcal{X})}\triangleq[b_i\in\mathcal{X}]^{\lvert\mathbf{B}\rvert}_{i=1};\mathcal{H}\triangleq\Big\{\mathbf{H}_i\in\mathbb{R}^{\lvert\mathbf{B}\rvert\times\lvert\mathcal{C}\rvert}\Big\}^{\lvert\mathcal{H}\rvert}_{i=1},\tag{13} s.t.BRB×dim(X)[biX]i=1B;H{HiRB×C}i=1H,Dsyn{(yHTB,y)}HHyC(13)
其中,为了符号的简单性,我们假设 y ∈ R ∣ C ∣ y\in\mathbb{R}^{\lvert\mathcal{C}\rvert} yRC表示我们想要为其生成数据的标签的独热向量,以及可以合成的最大数据量 n ≪ ∣ C ∣ ⋅ ∣ H ∣ n\ll\lvert\mathcal{C}\rvert\cdot\lvert\mathcal{H}\rvert nCH。由于数据生成(方程(13))是一个端到端可微的过程,因此使用第2.1节中讨论的TBPTT框架来联合优化 B \mathbf{B} B H \mathcal{H} H,尽管进行了一些关键的修改以大幅提高性能:(1)在内环中使用基于动量的优化器而不是朴素SGD;和(2)在TBPTT过程中较长的内环展开(≥100步)。Liu等人(2022c)(HaBa)放宽了LinBa的线性和预测条件幻觉假设,相当于以下数据参数化:
D s y n ≜ { ( h ( b ) , y ) } b , y ∼ B h ∼ H s . t . B ≜ { ( b i ∈ X , y i ∈ Y ) } i = 1 ∣ B ∣ ; H ≜ { h θ i : X ↦ X } i = 1 ∣ H ∣ , (14) \mathcal{D}_{syn}\triangleq\{(h(b),y)\}_{b,y\sim\mathcal{B}\atop h\sim\mathcal{H}}\quad s.t.\quad\mathcal{B}\triangleq\{(b_i\in\mathcal{X},y_i\in\mathcal{Y})\}_{i=1}^{\lvert\mathcal{B}\rvert};\mathcal{H}\triangleq\{h_{\theta_i}:\mathcal{X}\mapsto\mathcal{X}\}_{i=1}^{\lvert\mathcal{H}\rvert},\tag{14} Dsyn{(h(b),y)}hHb,yBs.t.B{(biX,yiY)}i=1B;H{hθi:XX}i=1H,(14)
其中使用具有额外对比约束的轨迹匹配框架(第2.3节)来优化 B \mathcal{B} B H \mathcal{H} H,以促进 D s y n \mathcal{D}_{syn} Dsyn中的多样性(参见Liu等人(2022c),方程(6))。根据此设置,HaBa最多可以生成 ∣ B ∣ ⋅ ∣ H ∣ \lvert\mathcal{B}\rvert\cdot\lvert\mathcal{H}\rvert BH大小的数据摘要。此外,HaBa(方程(14))和LinBa(公式(13))之间的一个显著区别是,为了生成每个数据点,LinBa使用所有基的线性组合,而HaBa使用单个基向量生成数据点。
Lee等人(2022a)(KFS)通过保持与数据域 X \mathcal{X} X不同的基向量空间 B \mathbb{B} B,使得 d i m ( B ) < d i m ( X ) dim(\mathbb{B})<dim(\mathcal{X}) dim(B)<dim(X),进一步构建了该框架。这种参数化允许KFS存储更多的图像,其存储预算与其他方法相当。形式上,KFS的数据参数化可以指定为:
D s y n ≜ ⋃ c ∈ C { ( h ( b ) , c ) } b ∼ B c h ∼ H s . t . B ≜ ⋃ c ∈ C B c ; B c ≜ { b i c ∈ B } i = 1 B ; H ≜ { h θ i : B ↦ X } i = 1 ∣ H ∣ , (15) \mathcal{D}_{syn}\triangleq\mathop{\bigcup}\limits_{c\in\mathcal{C}}\{(h(b),c)\}_{b\sim\mathcal{B}_c\atop h\sim\mathcal{H}}\atop s.t.\quad\mathcal{B}\triangleq\mathop{\bigcup}\limits_{c\in\mathcal{C}}\mathcal{B}_c;\mathcal{B}_c\triangleq\{b^c_i\in\mathbb{B}\}^B_{i=1};\mathcal{H}\triangleq\{h_{\theta_i}:\mathbb{B}\mapsto\mathcal{X}\}^{\lvert\mathcal{H}\rvert}_{i=1},\tag{15} s.t.BcCBc;Bc{bicB}i=1B;H{hθi:BX}i=1H,DsyncC{(h(b),c)}hHbBc(15)
其中,KFS为每个类存储 B B B个基,相当于 n = ∣ C ∣ ⋅ B ⋅ ∣ H ∣ n=\lvert\mathcal{C}\rvert\cdot B\cdot\lvert\mathcal{H}\rvert n=CBH大小的数据摘要的总和。在该数据参数化之后,使用用于数据蒸馏的分布匹配框架(方程(11))来优化 B \mathcal{B} B H \mathcal{H} H,以确保快速的单级优化。
数据蒸馏与数据压缩。我们强调,确保(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} XRd×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}) Asynfθ(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难的。值得注意的是,两级优化已经成功地应用于各种其他应用,如元学习、超参数优化、神经结构搜索、核心集构建等。尽管它取得了成功,但许多理论基础仍有待探索,例如,常用的单例解假设的影响、过参数化对两级优化的影响,与统计影响函数的联系、偏差-方差权衡等。显然,更好地理解两级优化将直接促进更好的数据蒸馏技术的发展。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/26712.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python中Requests发送json格式的post请求方法

问题&#xff1a;做requests请求时遇到如下报错&#xff1a; {“code”:“500”,“message”:"JSON parse error: Cannot construct instance of com.bang.erpapplication.domain.User (although at least one Creator exists): no String-argument constructor/factory …

16.2:岛屿数量问题

文章目录 岛屿数量问题方法一&#xff1a;采用递归的方法方法二&#xff1a;使用并查集的方法&#xff08;map&#xff09;方法三&#xff1a;使用并查集的方法&#xff08;数组&#xff09; 岛屿数量问题 测试链接&#xff1a;https://leetcode.com/problems/number-of-islan…

C++ string类-2

at at 函数是在C还没有支持运算符重载的时候提供的。 他可以像 [] 重载运算符一样&#xff0c;找到某个位置的字符&#xff1a; string s1("hello world");s1.at(0) x;cout << s1 << endl; 输出&#xff1a; [] 重载运算符和 at&#xff08;&#x…

8自由度并联腿机器狗实现行走功能

1. 功能说明 本文示例将实现R309a样机8自由度并联腿机器狗行走的功能。 2. 并联仿生机器人结构设计 机器狗是一种典型的并联仿生四足机器人&#xff0c;其腿部结构主要模仿了四足哺乳动物的腿部结构&#xff0c;主要由腿部的节段和旋转关节组成。在设计机器狗的腿部结构时&…

echart实现地图展示

最近做的页面中需要展示省级地图精确到市级且悬浮到地区上时会显示一些信息 然后参考了网址&#xff1a; “绿色金融” - 江西省 - category-work,geo地理坐标,legend,series-map地图,series-scatter散点图,title标题,tooltip提示框,visualMap视觉映射 - makeapie echarts社区…

【玩转Linux操作】硬链接和软连接

&#x1f38a;专栏【玩转Linux操作】 &#x1f354;喜欢的诗句&#xff1a;更喜岷山千里雪 三军过后尽开颜。 &#x1f386;音乐分享【Counting Stars 】 欢迎并且感谢大家指出小吉的问题&#x1f970; 欢迎大家访问“在下小吉.”&#xff08;偷偷告诉你这个是我的大号哦&#…

yolov8seg模型转onnx转ncnn

yolov8是yolo的最新版本&#xff0c;可做图像分类&#xff0c;目标检测&#xff0c;实例分割&#xff0c;姿态估计。 主页地址 这里测试一个分割模型。 模型如下 选yolov8n-seg模型&#xff0c;转成onnx&#xff0c;再转ncnn测试。 yolov8s-seg的ncnn版可以直接用这个 如果用…

【Django 网页Web开发】07. 快捷的表单生成 Form与MoudleForm(保姆级图文)

目录 注意 正规写法是 ModelForm&#xff0c;下面文章我多实现效果url.py新建3个html文件数据库连接model.py 数据表1. 原始方法view.pytestOrgion.html 2. Form方法view.pytestForm.html 3. MoudleForm方法给字段设置样式面向对象的思路&#xff0c;批量添加样式错误信息的显示…

搜索算法(三) 回溯法

1.回溯法 回溯法可以理解成一种特殊的深度优先算法&#xff0c;比起普通的DFS&#xff0c;多了还原当前节点的一步。 修改当前节点、递归子节点、还原当前节点。 本质是一种试错的思想。 维基百科&#xff1a; 2.例题 1&#xff09; 力扣https://leetcode.cn/problems/pe…

17_Linux根文件简介与Busybox构建文件系统

目录 根文件系统简介 文件目录简介 BusyBox简介 编译BusyBox构建根文件系统 修改Makefile添加编译器 busybox中文字符支持 配置 busybox 编译busybox 向根文件系统添加lib库 向rootfs的“usr/lib”目录添加库文件 创建其他文件夹 根文件系统初步测试 根文件系统简介…

行业应用|立仪光谱共焦位移传感器在玻璃方面的检测

项目&#xff1a;玻璃管管壁单边测厚 行业应用|立仪光谱共焦位移传感器在玻璃方面的检测 行业应用|立仪光谱共焦位移传感器在玻璃方面的检测 检测方案 用D35A7镜头对玻璃管管壁进行单边测厚&#xff0c;取三个点静态测量厚度并记录重复性。 1、采用D35A7R2S35镜头对玻璃管管…

Android Input子系统 - kernel

目录 前言 数据结构 输入子系统流程 前言 上一节有展示Android Input子系统的架构图,这里我们关心Linux kernel层 可以看到kernel层分为三层: 输入子系统设备驱动:处理与硬件相关的信息,调用input API注册输入设备,并把数据往上报 输入子系统核心层:为事件处理层和设…

Python之并发多线程操作

一、threading模块介绍 multiprocess模块的完全模仿了threading模块的接口&#xff0c;二者在使用层面&#xff0c;有很大的相似性 二、开启线程的两种方式 方式一 #方式一 from threading import Thread import time def sayhi(name):time.sleep(2)print(%s say hello %na…

迷你版ChatGPT开源,教你怎么用nanoGPT训练一个写小说的AI机器人!

大家好,我是千与千寻,好久不见,最近太忙了,去医院拔了颗智齿,这不是刚休息一天,就立刻来给大家分享ChatGPT的新奇项目了。 ChatGPT的功能确实是好用,但是我觉得有一个小缺点,就是反应的时间比较慢,原因是GPT-3.5/GPT-4.0的模型体积较大,比较占用内存空间。 同时大模…

10.ES6模块化规范(关键字 import,from,as,export的用法)

导入其他模块成员要使用关键字 import &#xff0c;导出需要使用关键字 export 我们明确一个概念&#xff0c;只有js与js之间需要使用import与export&#xff0c;如果是在html中引入js是不需要用import的&#xff0c;你导入的方式是直接srcxxx.js 目录 1 默认导入导出 2 …

【高危】Apache Inlong 存在JDBC反序列化漏洞

漏洞描述 Apache InLong 是可用于构建基于流式的数据分析、建模等一站式的海量数据集成框架。 在Apache Inlong受影响版本&#xff0c;由于未对接收的jdbcUrl参数过滤空格字符&#xff0c;导致可以利用空格绕过jdbcUrl中autoDeserialize参数过滤限制&#xff0c;通过认证的攻…

尚硅谷JUC极速版笔记

尚硅谷JUC极速版笔记 1、JUC概述1.1 进程和线程1.2 线程的状态&#xff08;6个&#xff09;1.3 wait和sleep1.4 并发与并行1.5 管程&#xff08;锁&#xff09;1.6 用户线程和守护线程 2、Lock接口2.1 复习synchronized&#xff08;java内置同步锁&#xff09;2.2 什么是Lock接…

设计模式详解之策略模式

作者&#xff1a;刘文慧 策略模式是一种应用广泛的行为型模式&#xff0c;核心思想是对算法进行封装&#xff0c;委派给不同对象来管理&#xff0c;本文将着眼于策略模式进行分享。 一、概述 我们在进行软件开发时要想实现可维护、可扩展&#xff0c;就需要尽量复用代码&#x…

LayUI前框框架普及版

LayUI 一、课程目标 1. 【了解】LayUI框架 2. 【理解】LayUI基础使用 3. 【掌握】LayUI页面元素 4. 【掌握】LayUI内置模块二、LayUI基本使用 2.1 概念 layui&#xff08;谐音&#xff1a;类UI) 是一款采用自身模块规范编写的前端 UI 框架&#xff0…

阿里云nginx配置https踩坑(配置完后访问显示无法访问此网站)

本人小前端一枚&#xff0c;最近在玩服务器部署自己的东西时踩了个坑&#xff01;&#xff01;&#xff01; server {listen 443 ssl;server_name localhost;ssl_certificate 证书.com.pem;ssl_certificate_key 证书.com.key;#后台管理静态资源存放location / { #文件目…