【算法论文|数据集1】数据集蒸馏得更小!Dataset Distillation: A Comprehensive Review

摘要

  深度学习最近的成功在很大程度上归功于用于训练深度神经网络的大量数据。尽管取得了前所未有的成功,但不幸的是,海量数据大大增加了存储和传输的负担,并进一步导致了繁琐的模型训练过程。此外,依赖原始数据进行训练本身会产生对隐私和版权的担忧。为了缓解这些缺点,引入了数据集蒸馏 (DD),也称为数据集压缩 (DC),最近在社区中引起了广泛研究的关注。给定一个原始数据集,DD 旨在推导出一个包含合成样本的更小的数据集,在此基础上,经过训练的模型产生的性能与在原始数据集上训练的模型相当。在本文中,我们对 DD 及其应用的最新进展进行了全面的回顾和总结。我们首先正式介绍任务,并提出一个整体算法框架,然后是所有现有的 DD 方法。接下来,我们提供了该领域当前方法的系统分类法,并讨论了它们在理论上的相互联系。我们还通过广泛的实验提出了 DD 当前面临的挑战,并设想了未来工作的可能方向。

关键词:数据集蒸馏、数据集浓缩、数据压缩、高效学习

1 引言

  在过去的几年里,深度学习在计算机视觉 [1]、自然语言处理 [2] 和语音识别 [3] 等各个领域都取得了巨大的成功。开创性的深度模型,如 2012 年的 AlexNet [1]、2016 年的 ResNet [4]、2018 年的 Bert [2],以及最近的 ViT [5]、CLIP [6] 和 DALLE [7],都依赖于大规模数据集进行训练。但是,处理如此大量的数据以进行收集、存储、传输、预处理等需要付出巨大的努力。此外,在海量数据集上进行训练通常需要巨大的计算成本,有时需要数千小时的 GPU 才能获得令人满意的性能,这反过来又使许多依赖多次数据集训练的应用程序变得混乱,例如超参数优化 [8]、[9]、[10] 和神经架构搜索 [11]、[12]、[13]。更糟糕的是,信息和数据在现实世界中呈爆炸式增长:一方面,只对新来的数据进行训练容易出现灾难性的遗忘问题 [14]、[15],这会严重损害性能;另一方面,存储所有历史数据非常麻烦,如果不是根本不可行的话。综上所述,对高精度模型的需求与有限的计算和存储资源之间存在矛盾。为了解决上述问题,一个自然的想法是将原始数据集压缩成更小的数据集,只存储对目标任务有用的信息,这样在保持模型性能的同时减轻了存储负担。

  获得此类较小数据集的一种相对简单的方法是从原始数据集中选择最具代表性或最有价值的样本,以便在这些子集上训练的模型能够获得与原始子集一样好的性能。这种方法被称为 core-set 或 in stance selection。尽管有效,但这种基于启发式选择的方法直接丢弃了很大一部分训练样本,忽视了它们对训练结果的贡献,并且通常会导致次优性能。此外,如果包含原始样本的数据集在没有版权或隐私保护的情况下被直接发布和访问,则不可避免地会引起对隐私和版权的担忧 [16],[17]。

  为了克服隐私和版权问题,提出了另一项专注于生成新的训练数据以进行压缩的工作,称为数据集蒸馏 (DD) 或数据集压缩 (DC)。我们在图 1 中显示了 DD 的整体管道。与直接选择信息丰富的训练样本的核心集方式不同,本文将回顾的这种方法旨在将原始数据集合成为有限数量的样本,以便学习或优化它们以表示原始数据集的知识。它首先由 Wangetal 引入和研究。[18],其中提出了一种指导性方法来迭代更新合成样本,以便在这些样本上训练的模型可以在真实样本上表现良好。近年来,这项开创性的工作吸引了许多后续研究。一方面,在提高 DDbyaseries 方法的性能方面已经取得了相当大的进展 [19]、[20]、[21]、[22]、[23]、[24],并且在合成数据集上训练的模型的实际性能确实在尽可能接近那些在原始数据集上训练的模型。另一方面,各种工作将 DD 的应用扩展到各种研究领域,例如持续学习 [25]、[26]、[27]、[28]、[29] 和联邦学习 [30]、[31]、[32]、[33]、[34]、[35]、[36]。

  本文旨在概述当前数据集蒸馏的研究。具体来说,贡献如下:

  • 我们全面探索和总结了数据集蒸馏及其应用方面的现有工作。

  • 我们提供了 DD 中当前方法的系统分类。按优化目标分类,有三种主流解决方案:按性能匹配、参数匹配和分布匹配。他们的关系也将得到讨论。

  • 通过抽象 DD 中的所有关键组件,我们构建了一个整体算法框架,然后是所有现有的 DD 方法。

  • 我们讨论了 DD 当前面临的挑战,并设想了未来可能的改进方向。

  本文的其余部分组织如下。我们将在第 2 节中首先讨论与 DD 密切相关的工作,包括核心集方法、超参数优化和生成模型。然后在第 3 节中,我们首先正式定义了数据集蒸馏问题,以及数据集蒸馏方法的一般框架。在此基础上,将系统地介绍各种方法及其关系。第 4 节将介绍 DD 在各个研究领域的应用。第 5 节将评估表示 DD 方法的性能。第 6 节将讨论该领域当前面临的挑战,并为未来的工作提出一些可能的方向,第 7 节将对论文进行总结。
 

2 相关工作

  数据集蒸馏 (DD) 旨在将数据集的知识提炼成一些合成数据,同时保留在其上训练的模型的性能。它的动机、目标和解决方案与一些现有的研究密切相关,如知识蒸馏、核心集选择、生成建模和超参数优化。本节将讨论它们与数据集蒸馏的关系。

2.1 知识蒸馏

        知识蒸馏 (KD) [37], [38], [39], [40] 旨在将知识从大型教师网络转移到较小的学生网络,以便学生网络可以在减少计算开销的情况下保持教师的表现。Hinton等[37]的开创性工作引导学生模仿教师的输出,这可以代表教师网络获得的知识。之后,KD 的改进主要集中在四个方面:知识的表示、师生架构、蒸馏算法和蒸馏方案。首先,知识可以用模型响应/输出 [37]、[41]、特征 [38]、[42]、[43] 和反应 [44]、[45]、[46] 来表示。其次,师生架构是指师生模式的网络架构,它决定了从教师到学生的知识获取和提炼的质量 [40]。第三,分散算法决定了知识传递的方式。一种简单而典型的方法是直接匹配教师和学生模型捕获的知识 [37],[38]。除此之外,还提出了许多不同的算法来处理更复杂的设置,例如对抗性调整 [47]、基于注意力的蒸馏 [39] 和无数据蒸馏 [48]、[49]。最后,蒸馏方案控制教师和学生的训练配置,有离线 [37]、[38]、在线 [50] 和自蒸馏 [51]。在应用方面,KD 广泛用于集成学习 [52] 和模型压缩 [38]、[53]、[54]。DD 的概念受到 KD 的启发 [18]。具体来说,DD 的目标是轻量级数据集,而 KD 的目标是轻量级模型。在这种观点中,DD 和 KD 仅在概念上相关,但在技术上是正交的。值得注意的是,与DD类似,最近的无数据KD方法[48]、[49]、[55]也与合成训练样本的生成有关,因为原始训练数据集不可用。他们的区别是双重的。一方面,无数据 KD 采用教师模型作为输入,而 DD 采用原始数据集作为输入。另一方面,无数据 KD 针对的是表现与教师相似的学生模型。为了让学生满意,一般要靠大量的合成样本。对于 DD,它的目标是较小的数据集,其大小是预定义的,并且由于存储预算有限,通常很小。

2.2 核心集或实例选择

        核心集或实例选择是一种经典的基于选择的方法,用于减小训练集的大小。它仅预先提供原始训练数据集的一个子集,其中仅包含有价值或有代表性的样本,因此在其上训练的模型可以实现与在原始训练上训练的模型类似的性能。由于简单地搜索性能最好的子集是 NP-Hard,因此当前的核心集方法主要基于一些启发式策略来选择样本。一些早期的方法通常期望核心集和原始核心集之间的数据分布一致[56]、[57]、[58]、[59]。例如,Herding [56], [57] 是经典的核心集方法之一,旨在通过每次递增和贪婪地添加一个样本来最小化所选子集中心和原始数据集之间的特征空间距离。近年来,除了匹配数据分发之外,还提出了更多策略。例如,基于双级优化的方法被提出并应用于持续学习 [60]、半监督学习 [61] 和主动学习 [62] 领域。再举一个例子,Craig等[63]提议找到由核心集和原始核心集产生的梯度之间差异最小的核心集,分别对应于同一个神经网络。

        为了合成浓缩样本,DD 中的许多目标与核心集技术具有相似的精神。事实上,在功能层面上,核心集选择中的任何有效目标也适用于 DD,例如匹配分布、双级优化和匹配基于梯度的方法。但是,core-set 和 DD 具有明显的差异。一方面,core-set 基于从原始数据集中选择的样本,而 DD 基于合成新数据。换句话说,前者将原始样本包含在真实数据集中,而后者不需要合成样本看起来真实,从而可能提供更好的隐私保护。另一方面,由于 NP 硬性质,核心集方法通常依赖于启发式标准或贪婪策略来实现效率和性能之间的权衡。因此,与 DD 相比,它们更容易出现次优结果,因为 DD 中压缩数据集中的所有样本都是可学习的。

2.3 生成模型

        生成模型能够通过学习给定数据集的潜在分布并从中采样来生成新数据。主要目标是生成逼真的数据,如图像、文本和视频,这些数据可以欺骗人类。DD 与该领域有两个方面相关。首先,DD 中的一个经典优化目标是匹配合成数据集和原始数据集的分布,这在概念上类似于生成建模,例如生成对抗网络 (GAN) [64]、[65] 和可变自编码器 (VAE) [66]。尽管如此,生成模型会尝试合成逼真的图像,而 DD 则关心生成信息丰富的图像,从而提高训练效率并节省存储成本。

        另一方面,生成模型在 DD 中也可以有效。在 DD 中,合成样本在某些作品中不是直接学习的。相反,它们是由一些通用模型产生的。例如,IT-GAN [67] 采用条件 GAN [65] 和 GAN 反演 [68]、[69] 进行合成数据生成,因此它只需要更新潜在代码,而不是直接优化图像像素;KFS [70] 使用潜在代码和几个解码器来输出合成数据。生成模型的这种使用被称为一种合成数据集参数化,其动机是潜在代码提供比原始样本更紧凑的知识表示,从而提高存储效率

2.4 超参数优化

        机器学习模型的性能通常对超参数的选择很敏感 [9], [10]。超参数优化中的 Re 搜索旨在自动调整超参数,为机器学习模型提供最佳性能,消除手动调整的繁琐工作,从而提高效率和性能。超参数优化有丰富的他的 tory。早期的工作,如 [71] 和 [72],是基于无梯度模型的方法,在完全训练模型后选择超参数来优化验证损失。然而,在处理数十个超参数时,这些方法的效率是有限的 [9]。因此,基于梯度的优化方法 [9]、[10]、[73]、[74] 被提出,并成功地扩大了规模,这开辟了优化高维超参数的新方法。将梯度引入超参数优化问题开辟了优化高维 hy perparameters 的新方法 [10]。

        如果将合成数据集中的每个样本都视为高维超参数,则 DD 也可以转换为超参数优化问题。本着这种精神,Wang et al. [18] 提出的开创性算法优化了由具有梯度体面的合成数据集训练的模型在真实数据上的损失,与基于梯度的超参数优化基本相同。但是,DD 和超参数优化的重点和最终目标是不同的。前者更侧重于获取合成数据集以提高训练过程的效率,而后者则尝试调整 hyperparame ter 以优化模型性能。鉴于这种正交目标,DD 方法的其他流(如参数匹配和分布匹配)几乎不可能与超参数优化相关。

3 数据集蒸馏方法

        数据集蒸馏 (DD),也称为数据集浓缩 (DC),最早由 Wang 等人 [18] 正式提出。目标是从大规模数据集中提取知识并构建一个小得多的合成数据集,以便在其上训练的模型与在原始数据集上训练的模型具有相当的性能。本节首先提供了数据集蒸馏的全面定义,并总结了 DD 的一般工作流程。然后,我们根据不同的优化目标对当前的 DD 方法进行分类:性能匹配、参数匹配和分布匹配。将详细说明与这些目标相关的算法,并且还将讨论它们的潜在关系。一些工作还侧重于合成数据参数化和标签蒸馏,这将在后面的部分中介绍。

3.1 数据集蒸馏的定义

        规范数据集蒸馏问题涉及从原始大规模数据集中学习一小部分合成数据,以便在合成数据集上训练的模型可以与在原始数据集上训练的模型执行相当。给定一个由 |T |训练图像对和相应的标签,表示为 T = (Xt,Yt),其中 Xt ∈ RN×d,N 是实际样本的数量,d 是特征的数量,Yt ∈ RN× C,C 是输出条目的数量,合成数据集表示为 S = (Xs,Ys),其中 Xs ∈ RM× D, M 是合成样本的数量,Ys ∈ RM× C,M ≪ N,D 是每个样本的特征数量。对于典型的图像分类任务,D 是通道×高度×宽度,y 是一个独热向量,其维度 C 是类的数量。正式地,我们将问题表述为:

        其中 Lis 一些数据集蒸馏的目标,将在以下内容中详细说明。

        

3.2 数据集蒸馏的一般工作流程

        在本节中,我们将说明当前 DDmethods 的一般工作流程。鉴于 DD 的主要目标是在给定真实数据集的情况下推导出一个更小的合成数据集,以便在合成数据上训练的神经网络可以具有与在真实数据上训练的神经网络相当的性能,因此方程 1 中的目标函数 L 将依赖于一些神经网络。因此,当前 DD 方法的两个关键步骤是训练神经网络并通过这些网络计算 L。它们在迭代循环中交替执行以优化合成数据集 S,从而为 DD 制定通用工作流程,如算法 1 所示。

        首先,在优化循环之前初始化 S,这可能对凝聚方法的收敛性和实际性能产生关键影响 [75]。通常,合成数据集 S 通常以两种方式初始化:随机初始化,例如,从高斯噪声中初始化,以及从原始数据集 T 中运行主要选择的真实样本。后者目前被大多数 DD 方法采用。此外,一些核心集方法,如K-Center [76],也可以用于初始化合成数据集[75]。

        在合成数据集优化的迭代循环中,神经网络和合成数据交替更新。通常,为了避免过拟合问题并使输出合成数据集更具泛化性,网络 θ 将在循环开始时定期获取。网络可以随机初始化或从某些缓存的检查点加载。对于前者,初始化神经网络的常用方法适用,例如 Kaim ing [77]、Xavier [78] 和正态分布。对于后者,缓存的检查点可以是训练快照,即在以前的迭代中更新的网络 [19]、[22]、[23]、[79]、[80],或者是原始数据集上不同时期的预训练检查点 [81]。如果需要,通过 S [22]、[23] 或 T [82] 更新获取的网络以进行某些步骤。然后,通过一些基于网络的数据集蒸馏对象 L 来更新合成数据集,这将在 3.3 节中详细介绍。在这里,网络更新和合成数据集更新的顺序在一些工作中可能有所不同 [19], [22], [23], [79], [80], [82]。有关更新网络和合成数据集的详细信息,请参阅图 5。

3.3 DD 中的优化目标

        为了获得可有效替换下游训练中原始数据集的合成数据集,DD 中的不同工作提出了不同的优化目标,在方程 1 中表示为 L。本部分将介绍三种主流方案:性能匹配、参数匹配和分布匹配。我们还将揭示它们之间的关系。

3.3.1 性能匹配

        基于 Meta Learning 的方法。性能匹配是 Wang 等人 [18] 的开创性工作中首次提出的。这种方法旨在优化合成数据集,以便在其上训练的神经网络在原始数据集上具有最低的损失,从而匹配由合成数据集和真实数据集训练的模型的性能:

        其中 Θ 是网络参数初始化的分布,l 是训练网络的损失函数,例如,用于分类的交叉熵损失,T 表示内部迭代的次数,η 是内部循环的学习率。性能匹配的目标是一种双级优化算法:在内环中,参数为 θ 的可微模型的权重通过梯度 decent 用 S 更新,递归计算图被缓存;在外循环中,在内循环后训练的模型在 T 上进行验证,验证损失通过展开的计算图反向传播到 S。基于这种目标的 DD 方法类似于双级元学习 [83] 和基于梯度的超参数优化技术 [10]。直觉如图 2 所示

Performance Matching 指标可以表示为:

这里 λ 是一个用于正则化的小数。在内核版本中重写方程 4,我们有:

公式太多建议看原文......

3.4 合成数据参数化

        在存储预算有限的情况下,调整信息量数据集的大小以提高训练效率。换句话说,对于相同的有限存储,预计会保留原始数据集的更多信息,以便在压缩数据集上训练的模型能够实现可比且令人满意的性能。在图像分类任务中,数据集蒸馏的典型方法是将数据集的信息提炼成几张与真实图像分辨率和通道数相同的合成图像。但是,由于存储空间有限,少量图像携带的信息是有限的。此外,由于格式与真实数据相同,目前尚不清楚合成数据是否包含无用或冗余的信息。针对这些问题,并与 DD 中的优化目标正交,一系列工作提出了合成数据参数化的不同方式。一般来说,对于合成数据集,一些代码 z ∈ Z ⊂ RD′ , Z = {(zj,yj)}| |Z|j=1 用于存储。

4 应用

        得益于高压缩率的性质,数据集蒸馏的研究在持续学习和联邦学习等各个领域取得了许多成功的创新应用,本节将对此进行介绍

4.1 持续学习

        持续学习 [102] 旨在解决由于神经网络无法按顺序学习一系列任务而引起的灾难性遗忘问题。一种广泛使用的策略是排练,保留有代表性的样本,这些样本可以重复使用以保留有关先前任务的知识[15]、[103]、[104]、[105]。在这种情况下,如何在内存有限的缓冲区空间中保留尽可能多的先前数据的知识就成为一个关键点。得益于高压缩率,提炼出的数据可以捕捉到整个数据集的精髓,使其成为持续学习的鼓舞人心的应用。一些工作 [19]、[22]、[24]、[25]、[26] 直接将数据集蒸馏技术应用于持续学习场景。他们不是选择历史数据的代表性样本,而是为历史数据训练合成数据集,以保留过去任务的知识。

        此外,一些合成数据集参数化方法也成功地应用于提高内存效率。Kim et al. [82] 使用数据分区和上采样来增加相同存储预算下的训练样本数量。邓等[84]提议使用可寻址记忆和寻址矩阵来构建历史任务的合成数据,其中不同的任务可以共享相同的内存库,因此内存成本不会与过去任务的数量呈线性或正相关。Sangermano等[27]提出通过线性加权组合历史图像来获得合成数据集,优化目标是合成数据的线性系数而不是像素。Wiewel等[28]提出了一种方法,该方法学习特定类别中样本的共享分量的加权组合,而不是直接学习合成数据集。Masarczyk等[29]使用生成模型创建合成数据集并形成一系列任务来训练模型,生成模型的参数通过学习者对真实数据的评估损失进行微调。

4.2 联邦学习

        联邦学习 (FL) [106], [107], [108] 开发了一种保护隐私的分布式模型训练方案,以便多个客户端在不共享其私有数据的情况下协作学习模型。保持数据私密性的联合学习的一种标准方法是传输模型更新,而不是私人用户数据。但是,这可能会导致通信成本增加,因为模型更新的大小可能会很大,并且在频繁上传时会给客户端带来负担。

        为了解决这个问题并提高通信效率,一些关于联邦学习的研究 [30]、[31]、[32]、[33]、[34]、[35] 将本地生成的合成数据集而不是模型更新从客户端传输到服务器。动机很简单:模型参数通常比少量数据点大得多,这可以显着降低从客户端上传回服务器的成本,并且合成数据集可以保留整个原始数据集的本质。值得注意的是,标签蒸馏 [101] 通常被认为可以防止合成数据成为隐私问题的实际标签 [30]。为了进一步加强隐私保护,周等[31]将数据集解析和分布式一次性学习相结合,使得对于每个本地更新步骤,每个合成数据都会连续更新网络以进行一个梯度下降步骤。因此,合成数据与一个特定的网络权重紧密结合,窃听者无法仅用泄露的合成数据来重现结果。Xiong等[32]采用分布匹配[24]生成合成数据,并使用高斯机制更新合成数据以保护本地数据的隐私。Song等[33]在一次性联邦学习中应用数据集蒸馏,并提出了一种新的评估指标γ准确性增益来调整准确性的意义并分析通信效率。Liu等[34]开发了两种局部更新的机制:动态权重分配,在训练合成数据集时,根据每个样本的训练损失为其分配动态权重;元知识共享,在客户端之间共享本地合成数据集,以减少客户端之间的异构数据分布。

        除了降低每轮通信成本外,还可以应用数据集蒸馏来减少通信 epoch,从而降低总通信消耗。Pi等[36]提议,通过在全局模型轨迹上应用多步骤参数匹配,然后使用生成的合成数据集完成后续训练,使用较少轮次的标准联邦学习在服务器上生成合成数据集。

4.3 神经架构搜索

        神经架构搜索 (NAS) [13]、[109] 旨在从某个搜索空间中发现神经网络的最佳结构。它通常需要在完整数据集上对大量候选神经网络架构进行昂贵的训练。在这种情况下,DD 的数据集受益于其小尺寸,可以作为代理集来加速神经结构搜索中的模型评估,这在一些工作中被证明是可行的 [22]、[23]、[24]。此外,Such等[11]提出了一种名为生成式教学网络的方法,该方法将生成模型和学习者相结合,以创建与学习者无关的合成数据集,即推广到不同的潜在学习者架构和初始化。

4.4 隐私、安全性和稳健性

        机器学习遭受了广泛的隐私攻击 [110],例如模型反转攻击 [111]、会员船推理攻击 [112]、属性推理攻击 [113]。数据集蒸馏提供了一种仅从数据开始、保护隐私并提高模型健壮性的视角。

        数据集蒸馏有一些直接的应用来保护数据集的隐私,因为合成数据可能看起来不真实,无法识别实际标签,并且在不知道目标模型的架构和初始化的情况下,很难用合成数据重现结果。例如,远程训练[114]传输带有提炼标签的合成数据集,而不是原始数据集,以保护数据隐私。        对于数据隐私保护,Dong et al. [16] 指出,数据集蒸馏可以提供隐私保护,以防止数据意外泄露。他们将数据集蒸馏技术引入隐私社区,并对数据集蒸馏和差分隐私之间的联系进行了理论分析。此外,他们还实证验证了合成数据集在 L2 和 LPIPS 的相似性指标方面对原始数据是不可逆的 [115]。Chen等[116]应用数据集蒸馏来生成高维数据,并为具有较低内存和计算成本的私有数据共享提供不同的隐私保证。

        至于模型改进的鲁棒性,Tsilivis 等人 [117] 提出数据集蒸馏可以为解决鲁棒优化问题提供新的视角。它们将对抗性训练和 KIP [20]、[21] 相结合,以高效优化训练数据而不是模型参数。优化后的数据可以与其他模型一起部署,并提供良好的可传递性,这是有益的。此外,它对PGD攻击具有令人满意的鲁棒性[118]。Huang等[119]研究了鲁棒数据集学习问题,使得在数据集上训练的网络是对抗鲁棒的。他们将稳健的数据集学习表述为最小-最大、三级优化问题,其中对抗数据对稳健数据参数化模型上的稳健误差最小。

        此外,传统的后门攻击(将触发器注入原始数据并使用恶意数据来训练模型)无法对提炼的合成数据集起作用,因为它太小而无法注入,而检查可以快速缓解此类攻击。然而,Liu等[120]提出了一种新的后门攻击方法DOORPING,该方法在数据集蒸馏过程中进行攻击,而不是在模型训练之后进行攻击。具体来说,DOORPING contin 在更新合成数据集之前,在每个 epoch 中都会优化触发器,以确保触发器保留在合成数据集中。实验结果表明,模型级 [121]、[122]、[123]、输入级 [124]、[125]、[126] 和数据集级 [127]、[128]、[129] 三个级别的后门攻击的九种防御机制无法有效缓解攻击。

4.5 图神经网络

        图神经网络 (GNN) [130]、[131]、[132]、[133] 用于分析图结构数据,代表许多现实世界的数据,如社交网络 [134] 和化学分子 [135]。尽管 GNN 与传统的深度神经网络类似,但它们都存在数据密集型问题:需要大规模数据集来学习强大的表示。在数据集蒸馏的激励下,图结构数据也可以被提炼成合成和简化的数据,以提高训练效率,同时保持性能。

        Jin et al. [136] 在图解析中应用梯度匹配 [22],提炼出图结构和节点属性。值得注意的是,图结构和节点特征可能有连接,因此节点特征可以表示图结构矩阵 [137]。在这种情况下,优化目标只是节点特征,避免了计算复杂度随合成图节点数量的二次增加。基于此,Jin 等 [138] 提出了一种更有效的图压缩方法,该方法通过没有训练网络的一步梯度匹配。为了处理离散数据,他们将图结构表述为可以以可微分方式学习的概率模型。Liu等[139]在图压缩中采用分布匹配[24],合成了一个与原始图具有相同感受野分布的小图

4.6 推荐系统

        推荐系统 [140]、[141] 旨在通过大量动态生成的信息(例如项目特征、用户过去的行为和其他用户做出的类似决定)为用户提供每个语音化的推荐、内容或服务。推荐系统研究还面临着一系列挑战,即在海量数据集上训练模型会导致沉重的计算开销,这可能涉及数十亿个用户-项目交互日志。同时,还应考虑用户数据的安全性 [142]。在这种情况下,Sachdeva et al. [143] 开发了一个数据蒸馏框架,将协作数据提炼成小型、高保真数据摘要。他们从 KIP [20]、[21] 中汲取灵感来构建一个高效的框架。为了处理推荐建议的离散性问题,该方法不是直接优化交互矩阵,而是为每个用户-项目对学习一个连续先验,并从学习到的分布中对交互矩阵进行采样

4.7 文本分类

        文本分类 [144] 是自然语言处理中的经典问题之一,其目的是为文本单元分配标签或标签。最新开发的语言模型 [145] 需要大量的数据集,训练、微调和使用起来都很麻烦。在数据集蒸馏的激励下,可以生成一个小得多的数据集来覆盖原始数据集中的知识,并提供更高效的数据集来训练模型。然而,文本数据的离散性使数据集蒸馏成为一个具有挑战性的问题。在这种情况下,Li等[146]建议生成词嵌入而不是实际的文本词,以形成合成数据集,并采用性能匹配[18]作为优化目标。此外,标签蒸馏也可以应用于文本分类任务。Sucholutsky et al. [100] 提议将文本嵌入到一个连续的空间中,然后用软标签图像蒸馏方法训练嵌入的文本数据。

4.8 知识蒸馏

        大多数现有的 KD 研究 [37]、[38]、[39]、[147]、[148] 在训练过程中转移了整个样本空间的知识提示,而忽略了学生能力在训练过程中的变化。这种丰富的知识会导致两个问题:1. 更多的计算成本,例如内存占用和 GPU 时间;2. 表现不佳,分散了学生模型的注意力,使学生对正确知识的注意力变弱,削弱了学习效率。在这种情况下,Li 等人 [149] 提出了一种新的知识浓缩 KD 范式,它交替进行知识浓缩和模型蒸馏。Asample 根据其值进行压缩,该值由 student 模型的反馈迭代确定。

4.9 医疗

        共享医疗数据集对于建立医疗信息的跨院流和提高医疗服务质量至关重要 [150],例如,构建高精度的计算机辅助诊断系统 [151]。然而,隐私保护 [152]、传输和存储成本方面的潜在问题是不可忽视的。为了解决这个问题,Li等[153]、[154]、[155]利用数据集蒸馏来提取数据集的本质,并构建一个更小的匿名合成数据集用于数据共享。他们通过将大型和高分辨率的医学数据集分成几个补丁并手动将它们标记为不同的类别来处理它们。此外,他们还成功地应用了性能匹配 [18] 和多步骤参数匹配 [81] 对象,以及标签蒸馏 [101] 来生成合成医学数据集。

4.10 时尚、艺术和设计

        数据集蒸馏生成的图像具有一定的视觉欣赏能力。它保留了给定类别的特征和纹理,并产生了艺术片段。Cazenavette等[156]提出了一种生成可平铺的蒸馏纹理的方法,该方法在美学上令人愉悦,可以应用于实际任务,例如服装。它们通过在填充的蒸馏画布上应用随机裁剪并对这些裁剪执行数据集蒸馏来更新画布。对于时尚兼容性学习,Chen等[157]建议使用设计师生成的数据来指导服装兼容性建模。他们从一组时装中提取解开的特征,生成时尚图,并通过数据集蒸馏方案利用设计师生成的数据,这有利于时尚兼容性预测

5 实验

        在本节中,我们对代表性的数据集蒸馏方法进行了两组定量实验,即性能和训练成本评估,这些方法涵盖了三类主要凝聚指标,包括 DD [18]、DC[22]、DSA [23]、DM [24]、MTT [81] 和 FRePo [19]。

5.1 实验设置

        数据集蒸馏的性能主要在分类任务上进行评估。我们遵循数据集蒸馏领域的典型设置,如下所示:

        数据集:我们采用了五个数据集,包括 MNIST [158]、Fashion-MNIST [159]、CIFAR-10 [160]、CIFAR-100 [160] 和 Tiny-ImageNet [161]。这些数据集被广泛用作现有数据集蒸馏工作的基准。

        网络:我们使用作者提供的默认 ConvNet [1] 架构,主要由多个 Conv-ReLU-AvgPooling 块组成。此外,我们还评估了合成数据集在不同架构中的性能。评估模型的网络架构如下:没有归一化层的 ConvNet [1]、没有归一化层和实例也没有归一化层的 AlexNet [1]、具有实例归一化层和批量归一化层的 ResNet [4]、具有实例归一化层和批量归一化层的 VGG [162]。

        评估协议:为了进行性能评估,我们首先通过候选方法生成合成数据集,并使用这些数据集训练目标网络。然后,通过原始数据集的 cor 响应测试集评估训练模型的性能。至于训练成本评估,所有方法都在全批处理训练下进行评估,以便进行公平比较。此外,所有方法都采用作者为蒸馏性能评估提供的默认数据增强策略。而对于泛化评估,我们在评估模型训练过程中采用 DSA [23] 数据增强进行公平比较。此外,我们还测量了不同数据集的每类 1 张、10 张和 50 张图像 (IPC) 的浓缩数据集的蒸馏性能。跨架构实验是在 CIFAR-10 和 10 IPC 上进行的。在具有广泛 IPC 的 CIFAR-10 数据集上进行了效率评估实验。

        实现细节:这里,我们通过作者提供的官方代码实现了 DC、DSA、DM、MTT 和 FRePo。对于 DD,我们通过添加动量项来修改内环优化,这被证明可以显着提高性能 [84]。FRePo 分别在 JAX 和 PyTorch 中实现,其余方法在 PyTorch 中实现。为了公平比较,所有效率评估实验均在单个 A100-SXM4-40GB 上进行

5.2 性能评价

        蒸馏性能。我们在与默认训练模型具有相同架构的模型上评估不同数据集蒸馏方法的每种形式的蒸馏。实验设置是作者提供的默认设置。测试结果如表 1 所示。请参阅附录,了解所有现有 DD 方法的性能。由于 GPU 内存的限制,Tiny-ImageNet 的一些实验结果缺失。如表 1 所示,在大多数情况下,FRePo 实现了最先进的性能,尤其是对于更复杂的数据集,例如 CIFAR-10、CIFAR-100 和 Tiny-ImageNet。同时,MTT 通常达到次优性能。比较 DC 和 DSA 的性能结果,虽然数据集增强不能保证有利于蒸馏性能,但在大多数情况下它会显着影响结果。至于 DD,它在 MNIST 1 IPC、Fashion-MNIST 1 IPC 和 10 IPC 的情况下获得 SOTA 性能。DM 的性能通常不如其他方法好。

        跨架构泛化。在不同的网络工作架构上评估了不同方法的可转移性,在训练过程中使用 10 IPC 的 CIFAR-10 是看不到的。从表 2 所示的结果来看,实例归一化层似乎是几种方法(DD、DC、DSA、DM 和 MTT)的重要组成部分,这可能对可转移性有害。对于大多数方法,当不采用规范化(Conv-NN、AlexNet-NN)时,除 FRePo 外,性能会显著下降。如果归一化层与训练结构不一致,测试结果将明显下降。它表明,这些方法生成的合成数据集对特定训练架构的归纳偏差进行编码。对于 DD,提取的数据高度依赖于训练模型,因此在具有不同归一化层的异构网络上,例如批量归一化,性能会显着下降。此外,比较 DC 和 DSA 的可转移性,我们发现 DSA 数据增强可以帮助训练具有不同架构的模型,尤其是那些具有批量归一化层的模型。

5.3 训练成本评估

        我们测量所选训练成本评估方法所需的运行时和峰值 GPU 内存。为了公平地进行比较,在本节中,内部循环的数量(如果有)基于作者提供的实验设置,并且评估是在全批处理训练下进行的。

        运行时评估。我们分别评估一个外部循环所需的时间和计算一批合成数据的损失函数的时间。至于 DD 和 MTT,网络更新的过程是展开的,因此整个外循环和损失函数所需的时间是相同的。此外,由于 DM 不更新网络,因此这两个过程所需的时间相同。评估结果如图 7(a)(b) 所示。结果表明, DD 需要更长的运行时间来更新合成数据集以进行单次迭代,因为合成数据集的性能匹配损失的梯度计算涉及双层优化。PyTorch 实现的 DC、DSA 和 FRePo 具有类似的所需运行时间。DSA 和 DC比较 ,使用 DSA 增强会使运行时间略长,但可以显著提高性能。当 IPC较小时,FRePo(JAXandPyTorch版本)明显更快,但随着 IPC 的增加,PyTorch 版本类似于第二高效的梯队方法,而 JAX版本接近 DM.MTT 运行第二慢,但由于内存不足,没有更多的数据来分析。Peak GPU Memory Usage.我们评估整个数据集蒸馏过程中的峰值 GPU 内存使用。在这里,我们在实践中记录了峰值 GPU 内存,并在图 7(c) 中展示了结果。结果显示,DM需要的GPU内存最低,而MTT需要的内存最大,当IPC只有50时,MTTen的操作会遇到内存不足的情况。此外,随着 IPC 的逐步发展,JAX 版本 FRePo 显现了内存效率的优势。FRePo的DD和PyTorch版本需要相对较大的GPU内存,前者在反向传播时需要遍历整个训练图,而后者则采用更宽的网络。此外,DC和 DSA 所需的 GPU 内存没有显著差异,表明 DSA 增强对内存友好。

5.4 实证研究

以下结论来自上述经验:

• 由于动量项目,DD 的性能得到了显着改善。但是,DD的通用性相对较差,而且所需的运行时间和GPU内存都相当可观。

• 与 DC和 DSA 相比,采用 DSA 可以显著提高蒸馏性能和泛化能力,同时不会过多增加运行时间和内存要求。

• DM 的性能不如其他方法。但是,DM具有相对较好的泛化性,并且在运行时和 GPU 内存要求方面具有显着优势。

• MTT 总体上性能排名第二,但由于通过反向传播进行展开的梯度计算,因此需要大量的运行时间和空间。

• FRePo在 IPC 较小时实现 SOTA性能,无论性能或训练成本如何。但是,随着 IPC 的增加,FRePodoes 的性能并不具备可比性。

6 挑战和可能的改进

        数据集蒸馏的研究前景广阔,许多算法已被应用在各个领域。尽管现有的方法已经实现了合理的性能,但仍存在一些挑战和问题。在本节中,我们总结了关键挑战并讨论了可能的改进方向。

6.1 计算成本

        DD 的动机是训练一个小型的信息量数据集,以便模型训练可以实现与在原始数据集上训练相同的效果,从而减少 GPU时间。然而,问题在于生成合成数据集通常很昂贵,并且在提取大规模数据集时所需的时间会迅速增加。这种高计算成本主要是由于通过展开的计算图进行反向传播以更新合成数据集造成的。例如,MTT [81] 在内存和运行时问题上都不能很好地扩展,其中使用 IPC50 展开 30 步 CIFAR10 需要 47GBGPU 内存,并且在 ImageNet-1K[163] 等大规模问题中是令人望而却步的,如表 3 所示。

        为了解决这个问题,已经针对不同的 DD框架提出了许多工作来降低计算成本。一种直观的方式是避免 inner-loop网络训练。在性能匹配方面,提出了基于 KRR 的方法 ods [19]、[20]、[21]、[85]、[93]以提高 DD[18] 的计算效率,为线性模型进行凸优化和结果为闭式解,避免了广泛的内环训练。在分布匹配方面,DM[24] 使用随机网络作为特征提取器提高了效率,无需训练,避免了昂贵的双级优化。然而,高效率牺牲了性能。

        对于 MTT,Cui 等人 [95] 重新组织了梯度的计算流程,将内存成本降低到恒定复杂性。尽管如此,它仍然需要在原始数据集上预训练数百种教师模型,这对时间和内存效率产生负面影响。模型增强方法如 Zhangetal。[93]可能有助于缓解该问题

6.2 扩大规模

        现有的数据集蒸馏方法主要评估合成数据设置的性能,以达到大约 50IPC。在实际应用中,可能需要提高压缩率以获得整个数据集的更多信息,而采用的数据集和网络可能更大更复杂。在这种情况下,大多数现有的数据蒸馏方法无法满足需要。总之,数据集蒸馏的放大问题体现在三个方面:用更大的IPC难以获得信息丰富的合成数据集;挑战在大规模数据集(如 ImageNet)上执行数据集蒸馏算法;不易适应大型、复杂的模型。

        如图 8 所示,总体上,随着 IPC 的增加,数据集蒸馏方法的准确性提高得更慢。此外,只有当 IPC 小于 200 时,数据集显示的方法明显优于基于选择的方法。随着IPC的进一步增加,数据集蒸馏法和基于选择的方法之间的差距大大缩小,最后,基于选择的方法略优于数据集蒸馏方法。以上观察表明,随着合成数据集的增加,数据集压缩真实数据集知识的能力并没有明显增加,即使某些方法的内存效率可以支持更大的IPC。

        较大的原始数据集。另一个扩展问题是,许多现有的数据集蒸馏方法都具有挑战性,要应用于大规模数据集sdueto高GPU内存需求和广泛的GPU小时,如表3 inSection6.1.As 所示,只有少数方法可以处理ImageNet1K上的DD任务。此外,在相同的压缩率下,对于更复杂的原始数据集,通过数据集分散方法得到的合成数据集可能具有较弱的能力或存储性能。原始数据集,即在 SandT 上训练的模型的测试精度之比。

        更大的网络。许多数据集蒸馏方法包括 Bi-level Meta Optimization 的过程。更大、更复杂的网络结构需要更多的 GPU 内存和运行时来计算和存储数据集蒸馏过程中的梯度。同时,如表 4 所示,当在复杂网络上评估生成的数据集时,其性能明显低于简单网络。由于合成数据集的体积较小,复杂网络容易在小型训练数据集上训练出现过拟合问题。

6.3 跨不同架构的泛化

        跨不同网络架构的合成数据集的泛化性是评估 DD方法性能的必要标准,因为它表明了在实践中的可用性。然而,现有的DD方法在异质模型上生成的合成数据的评估结果并未达到均匀的性能。通过表 2 所示的结果,如果合成数据集和训练架构在优化过程中紧密结合,则会损害生成的合成数据集的可传递性。此外,归一化层的选择会显著影响可传递性。

        要解决这个问题,一个直观的思路就是解绑网络和合成数据集,比如 DM[24] 和 IDC[82] 的实践。DM 将网络视为特征提取或不进行更新,而 IDC 在真实数据集而不是合成数据集上更新训练网络。从结果来看,这些策略在某种程度上是有效的。但是,DM的性能相对较差,IDC 需要额外的运行时间来在真实数据集上训练网络,尤其是在提炼大规模数据集ImageNet时。另一种方式是增加训练架构的多样性,其中专用方案是必要的,以协调他们的训练和他们对合成数据的影响

6.4 其他任务和应用的设计

        现有的 DD 方法主要集中在分类任务上。在这里,我们期望未来的工作将 DD 应用于计算机视觉的更多任务中,例如语义分割[164]、[165]和目标检测[166]、自然语言处理(例如机器翻译[167]和多模态场景[6]。

6.5 安全和隐私

        现有工作侧重于改进方法以生成更多信息丰富的合成数据集,同时忽视了 DD 的潜在安全性和隐私性.最近的一项工作[120] 提供了一种新的后门攻击方法 DOORPING,该方法在数据集蒸馏过程中进行攻击,而不是在模型训练之后进行,作为引入 Section4.4。可能的防御机制和更多的安全和隐私问题留给未来的工作

7 结论

        本文旨在对近期流行的研究主题数据集蒸馏 (DD) 进行全面综述,为了性能相似,合成给定原始大数据集的小数据集。我们提出了现有 DD方法的系统分类法,并按优化目标将它们分为三大流:性能匹配、参数匹配和分布匹配。理论分析揭示了它们的潜在联系。对于一般理解,我们抽象了一个适用于所有当前方法的通用算法框架。还涵盖了 D 各种主题的应用,包括持续学习、神经架构搜索、隐私等。不同的方法在实验上比较了技术、时间效率和可扩展性,指出了该领域的一些关键挑战,留给未来的研究

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值