遇见 YOLO26: 下一代视觉 AI。
Ultralytics
指南

什么是数据集蒸馏?快速概览

了解数据集蒸馏 (dataset distillation) 如何通过用少量优化后的合成样本替换大数据集来加快模型训练并降低计算成本。

ABAbirami Vina
5 min read
将大数据集压缩为合成样本的数据集蒸馏

训练模型似乎是数据科学家工作中耗时最长的部分。但他们大部分的时间,往往是 60% 到 80%,实际上都花在了准备数据上:收集、清洗并组织数据以供建模使用。随着数据集规模的增长,准备时间也会随之增加,从而拖慢实验进度并增加迭代难度。

为了解决这个问题,研究人员花费多年时间寻找精简训练流程的方法。合成数据、数据集压缩和更好的优化方法等路径,都旨在降低处理大规模数据集的成本和阻力,并加速机器学习工作流。

这引出了一个关键问题:我们能否在大幅缩小数据集的同时,达到与使用完整数据训练模型相同的性能?数据集蒸馏就是一个很有前景的答案。

它创建了一个大型训练数据集的压缩版本,同时保留了模型有效学习所需的基本模式。它为加快训练速度、降低计算需求和提高实验效率提供了一条途径。你可以把它想象成模型的学习“作弊条”,即一小套旨在传授与完整数据集相同核心模式的合成数据示例。

在本文中,我们将探讨数据集蒸馏的工作原理,以及它如何支持跨实际应用的可扩展机器学习和深度学习。让我们开始吧!

Link to this section理解数据集蒸馏#

数据集蒸馏是一个将大型训练数据集压缩成更小数据集合的过程,该集合仍能让模型学到与原始数据集几乎相同的信息。许多研究人员也将这一过程称为数据集浓缩,因为其目标是捕捉整个数据集中出现的基本模式。

蒸馏后的数据集与随机生成的合成数据或仅仅挑选真实图像的一小部分子集是不同的。它既不是一个随机生成的虚假数据集,也不是原始数据的删减副本。

相反,它是经过精心优化以捕捉最重要模式的。在此过程中,每一个像素和特征都会被调整和优化,从而使在蒸馏数据上训练的神经网络的学习效果几乎等同于在整个数据集上训练的结果。

这一想法最早出现在 2018 年由 Tongzhou Wang、Jun-Yan Zhu、Antonio Torralba 和 Alexei A. Efros 发表的一篇 arXiv 论文中。早期测试使用了诸如 MNISTCIFAR-10 这样的简单数据集,这使得展示少量蒸馏样本能够替代数千张真实图像变得非常容易。

使用数据集蒸馏处理图像数据

图 1. 将数据集蒸馏用于图像数据 (来源)

自那时起,后续工作进一步推动了数据集蒸馏的发展,包括在 ICML 和 ICLR 上发表的方法,这些方法使得浓缩过程更加高效且具有可扩展性。

Link to this section数据集蒸馏的意义#

数据集蒸馏提高了训练效率并加快了开发周期。通过减少模型需要学习的数据量,它降低了计算需求。

这对于持续学习(模型随时间更新)、神经架构搜索(测试多种模型设计)以及边缘训练(在内存和功耗有限的小型设备上运行模型)尤其有用。总体而言,这些优势使数据集蒸馏成为快速初始化、快速微调以及在多种机器学习工作流中构建早期原型的绝佳选择。

Link to this section数据集蒸馏的工作原理概述#

数据集蒸馏创建合成的,即人为生成的训练样本。这些样本帮助模型以一种非常类似于在真实数据上进行训练的方式学习。它的工作原理是跟踪正常训练过程中的三个关键因素。

首先是损失函数,这是反映模型预测错误程度的误差分数。其次是模型参数,这是神经网络内部随学习而更新的权重。

第三是训练轨迹,它描述了误差和权重随时间逐步变化的规律。然后,这些合成样本会被优化,这样当模型在其上进行训练时,其误差下降和权重更新的方式会与使用完整数据集时完全一致。

Link to this section数据集蒸馏的分步解析#

以下是关于数据集蒸馏过程的详细介绍:

  • 第 1 步 - 初始化合成像素: 该过程始于充当可学习输入的合成图像。起初,这些图像几乎没有结构,看起来就像空白画布。随着时间的推移,它们被优化为包含丰富信息的示例。
  • 第 2 步 - 通过梯度匹配和反向传播进行优化: 当模型在这些合成图像上进行训练时,它会产生梯度,指示每个像素应如何变化以更好地匹配真实数据的训练行为。反向传播是神经网络用于从错误中学习的方法。它将误差通过模型向后传递,以找出是哪些像素和权重导致了误差,然后对其进行微小更新。利用这些梯度,反向传播逐步调整合成图像,使其对于训练而言更具参考价值。
  • 第 3 步 - 跨训练步骤匹配行为: 该方法还会匹配训练轨迹,即模型在学习过程中经历的逐步变化。这确保了蒸馏后的数据集能够引导模型沿着与在完整数据集上相同的路径进行学习。
  • 第 4 步 - 验证与泛化: 最后,蒸馏后的数据集在真实验证数据上进行评估,以查看训练出的模型在处理新示例时的表现。这旨在检查合成数据是否教授了广泛、实用的模式,而不是导致模型死记硬背特定样本。

了解数据集蒸馏过程

图 2. 数据集蒸馏一瞥 (来源)

Link to this section关键的数据集蒸馏方法#

所有数据集蒸馏方法都建立在相同的核心理念之上,即使它们采用了不同的算法来实现。大多数方法分为三类:性能匹配、分布匹配和参数匹配。

接下来,让我们逐一查看并了解它们的工作方式。

Link to this section性能匹配#

数据集蒸馏中的性能匹配专注于创建一个微小的、经过优化的训练集,使模型能达到与在完整原始数据集上训练几乎相同的准确率。与挑选随机子集不同,蒸馏后的样本经过优化,使得在该数据集上训练的模型,最终能获得与在原始数据集上训练的模型相似的预测结果、相似的训练过程中的损失表现或相似的最终准确率。

元学习是改进此过程的一种常用方法。蒸馏后的数据集通过重复的训练任务进行更新,从而在许多可能的情况下都变得有效。

在这些任务中,该方法会模拟学生模型如何从当前的蒸馏样本中学习,检查该学生模型在真实数据上的表现,然后将蒸馏样本调整为更好的“教师”。随着时间的推移,蒸馏集学会了支持快速学习和强泛化能力,即使学生模型从不同的初始权重开始或使用不同的架构。这使得蒸馏后的数据集更加可靠,且不绑定于某次单一的训练运行。

元学习过程

图 3. 元学习过程 (来源)

Link to this section分布匹配技术#

与此同时,分布匹配生成能匹配真实数据集统计模式的合成数据。这种方法不仅关注模型的最终准确率,还专注于神经网络在学习过程中生成的内部特征。

接下来,我们来看看推动分布匹配的两种技术。

Link to this section单层分布匹配#

单层分布匹配专注于神经网络的单一层,并比较其对真实数据与合成数据产生的特征。这些特征(也称为激活值)捕获了模型在网络该处所学到的内容。

通过让合成数据产生相似的激活值,该方法鼓励蒸馏后的数据集反映与原始数据集相同的关键模式。在实践中,合成样本会被反复更新,直到所选层级的激活值与来自真实图像的激活值紧密匹配。

这种方法相对简单,因为它每次只对齐一个层次的表征。它在较小的数据集或不需要匹配深层、多阶段特征层级的任务中表现尤为出色。通过清晰地对齐一个特征空间,单层匹配为使用蒸馏数据集的学习提供了稳定且有意义的信号。

Link to this section多层分布匹配#

多层分布匹配基于在神经网络的多个层(而非仅仅一层)上比较真实数据与合成数据的理念。不同的层捕获不同种类的信息,从早期层级的简单边缘和纹理,到更深层级的形状和更复杂的模式。

通过跨这些层级匹配特征,蒸馏后的数据集被推动去反映模型在多个级别上学习到的内容。由于它在整个网络中对齐特征,这种方法有助于合成数据保留模型用以区分类别所需的更丰富信号。

这对计算机视觉特别有帮助,即模型学习理解图像和视频的任务,因为有用的模式分布在许多层中。当特征分布在多个深度上都能很好地匹配时,蒸馏后的数据集就会成为原始训练数据更强大、更可靠的替代品。

Link to this section参数匹配方法#

数据集蒸馏中的另一个关键类别是参数匹配。它不匹配准确率或特征分布,而是匹配模型权重在训练过程中的变化方式。通过使在蒸馏数据集上的训练产生与真实数据训练相似的参数更新,模型遵循几乎相同的学习路径。

接下来,我们将介绍两种主要的参数匹配方法。

Link to this section单步匹配#

单步匹配比较模型在真实数据上经过单一训练步骤后权重的变化。然后,蒸馏数据集会被调整,使得在该数据集上训练一步的模型产生非常相似的权重更新。由于它只关注这一步更新,该方法直接且运行速度快。

缺点是这一步无法反映完整的学习过程,特别是对于模型需要多次更新以构建更丰富特征的较难任务。因此,单步匹配往往在较简单的问题或较小的数据集上效果最好,因为在这些情况下,有用的模式可以被快速提取。

Link to this section多步参数匹配#

相比之下,多步参数匹配着眼于模型权重在多次训练步骤中的变化,而不仅仅是一次。这一系列的更新就是模型的训练轨迹。

构建蒸馏数据集时,使得模型在这些合成样本上进行训练时,其轨迹能紧密跟随其在真实数据上采取的路径。通过匹配更长的学习过程,蒸馏集捕获了原始训练过程中更多的结构。

因为它反映了学习随时间展开的过程,多步匹配通常在更大或更复杂的数据集上效果更好,因为模型需要多次更新才能获得有用的模式。它确实需要更多的计算,因为它必须跟踪多个步骤,但它通常能产生比单步匹配泛化更好且性能更优的蒸馏数据集。

Link to this section合成数据集生成和优化的工作原理#

在更好地了解了主要蒸馏方法后,我们现在可以看看合成数据是如何制作的。在数据集蒸馏中,合成样本经过优化以捕获最重要的学习信号,因此一小部分数据就能替代规模大得多的数据集。

接下来,我们将了解这些蒸馏数据是如何生成和评估的。

Link to this section创建和评估蒸馏图像#

在数据集蒸馏过程中,合成像素会在多次训练步骤中不断更新。神经网络从当前的合成图像中学习并发送基于梯度的反馈,这展示了每个像素应如何改变以更好地匹配真实数据集中的模式。

之所以有效,是因为该过程是可微的(意味着每一步都是平滑的并具有定义明确的梯度,因此微小的像素变化会导致可预测的损失变化),这允许模型在梯度下降期间平滑地调整合成数据。

随着优化的继续,合成图像开始形成有意义的结构,包括模型能识别出的形状和纹理。这些精炼后的合成图像通常用于图像分类任务,因为它们捕捉到了分类器学习所需的关键视觉线索。

蒸馏后的数据集通过在它们之上训练模型,并将结果与在真实数据上训练的模型进行比较来评估。研究人员衡量验证准确率,并检查合成集是否保留了模型在区分类别时所依赖的判别特征(即模型用来区分不同类别的模式或信号)。他们还测试在不同运行或模型设置下的稳定性和泛化能力,以确保蒸馏数据不会导致过拟合。

Link to this section数据蒸馏的实际应用#

接下来,我们将仔细查看一些示例,展示蒸馏数据集如何在保持强劲性能的同时加快训练速度并降低计算成本,即使在数据有限或高度专业化的情况下也是如此。

Link to this section将数据集蒸馏用于计算机视觉应用#

当谈到计算机视觉时,目标是训练模型去理解视觉数据,如图像和视频。这些模型学习诸如边缘、纹理、形状和对象之类的模式,然后将这些模式用于图像分类、对象检测或分割等任务。由于视觉问题通常在光照、背景和视角上有巨大的变化,计算机视觉系统通常需要大规模数据集才能良好地泛化,这使得训练变得昂贵且缓慢。

数据集蒸馏示例

图 4. 数据集蒸馏示例 (来源)

对于医疗扫描、野生动物监测或工厂缺陷检测等图像分类用例,模型往往面临准确率与训练成本之间的严峻权衡。这些任务通常涉及海量数据集。

数据集蒸馏可以将原始训练集压缩为少量的合成图像,这些图像仍包含分类器所需的最重要的视觉线索。在 ImageNet 等大型基准测试中,使用仅约 4.2% 的原始数据的蒸馏集已被证明能保持强劲的分类准确率。这意味着微小的合成代理可以用少得多的计算资源替代数百万个真实样本。

Link to this section神经架构搜索#

神经架构搜索,或 NAS,是一种自动探索许多可能神经网络设计以找到最适合任务的设计的技术。由于 NAS 必须训练和评估大量候选模型,在完整数据集上运行它可能会很缓慢且非常消耗计算资源。

数据集蒸馏通过创建一个仍包含原始数据主要学习信号的微小合成训练集来提供帮助,因此每个候选架构都可以被更快速地测试。这使得 NAS 能够高效地比较设计,同时保持好与坏架构排名的相对可靠性,从而在不牺牲太多最终模型质量的情况下降低搜索成本。

Link to this section持续学习与边缘部署#

持续学习系统,即随着新数据到来而不断更新而非训练一次的模型,需要快速且内存高效的更新。摄像机、手机和传感器等边缘设备也面临类似限制,因为它们具有严格的计算和存储预算。

数据集蒸馏在这两种情况下都有所帮助,它将大型训练集压缩为微小的合成集,因此模型可以使用小型的回放集而不是整个数据集来适应或重新训练。例如,基于核的元学习研究表明,仅需 10 个蒸馏样本就能在 CIFAR-10(一个标准的图像分类基准)上达到超过 64% 的准确率。由于回放集非常紧凑,更新变得快捷实用得多,尤其是在模型需要频繁刷新的情况下。

数据集蒸馏还可以与针对大型语言模型的知识蒸馏结合使用。小的蒸馏数据集可以保留教师模型中最重要的任务信号,因此压缩后的学生模型可以在不损失太多性能的情况下更高效地进行训练或刷新。由于这些数据集非常小,它们对于边缘或端侧使用特别有帮助,因为在这些场景中存储和计算受限,但你仍希望模型在更新后保持准确。

Link to this section数据蒸馏的优缺点#

以下是使用数据集蒸馏的一些好处:

  • 非常适合快速实验。 你可以在不每次都在庞大数据集上重新训练的情况下,测试新的架构、损失函数或超参数。
  • 潜在的隐私优势。 共享蒸馏后的合成样本比共享真实用户数据点更安全,因为原始示例不会被直接暴露。
  • 通常比简单的子集挑选更强。 蒸馏不仅仅是选择示例,而是主动优化它们,使其信息量达到最大化。

虽然数据集蒸馏提供了多项优势,但以下是一些需要注意的局限性:

  • 过拟合 蒸馏数据通常最适用于在蒸馏过程中使用的架构,且可能在迁移到非常不同的模型时表现不佳。
  • 对超参数敏感。 结果很大程度上取决于学习率、初始化或蒸馏步骤数等因素。
  • 难以扩展到现实世界的复杂性。 在基准测试中表现良好的方法,在庞大、杂乱或高分辨率的数据集上可能会丧失准确率。

Link to this section关键要点#

数据集蒸馏使得一小套合成样本能够几乎像完整数据集一样有效地训练模型。这使得机器学习变得更快、更高效,且更易于扩展。随着模型不断壮大并需要更多数据,蒸馏后的数据集提供了一种在不牺牲准确率的前提下降低计算成本的实用方法。

加入我们的社区并查看我们的 GitHub 仓库以了解更多关于 AI 的信息。如果你想构建自己的视觉 AI 项目,请查看我们的授权选项。访问我们的解决方案页面,探索更多关于医疗保健中的 AI零售中的视觉 AI 等应用。

Explore solutions

Real-time AI that works with your team

机器人技术中的 AI

使用 Ultralytics YOLO 模型为智能机器赋能。机器人技术中的视觉 AI 可推动自主导航、感知、物体跟踪和实时控制。
了解更多
Real-time AI that works with your team

物流中的 AI

使用 Ultralytics YOLO 模型简化物流。视觉 AI 可实现包裹检查、分拣、车辆跟踪和实时仓库安全监控。
了解更多
Real-time AI that works with your team

零售业 AI

使用 Ultralytics YOLO 模型重塑零售业。视觉 AI 推动库存跟踪、货架监控、队列管理和更智能的客户洞察。
了解更多
Real-time AI that works with your team

医疗保健中的 AI

利用 Ultralytics YOLO 模型构建医疗保健解决方案。医疗保健中的视觉 AI 可助力更快速的医学影像分析、更智能的诊断和患者监测。
了解更多
Real-time AI that works with your team

制造业中的 AI

使用 Ultralytics YOLO 模型优化制造业。视觉 AI 推动质量控制、缺陷检测、PPE 合规性和装配线自动化。
了解更多
Real-time AI that works with your operation

汽车中的 AI

将计算机视觉应用于汽车行业,并配合 Ultralytics YOLO 模型。汽车视觉 AI 可提升道路安全、辅助驾驶和车辆自动化,打造更智能的道路。
了解更多
Real-time AI tailored to your operation

农业中的 AI

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。赋能作物监测、牲畜追踪和精准农业,实现更高、更智能的产量。
了解更多
Real-time AI that works with your team

机器人技术中的 AI

使用 Ultralytics YOLO 模型为智能机器赋能。机器人技术中的视觉 AI 可推动自主导航、感知、物体跟踪和实时控制。
了解更多
Real-time AI that works with your team

物流中的 AI

使用 Ultralytics YOLO 模型简化物流。视觉 AI 可实现包裹检查、分拣、车辆跟踪和实时仓库安全监控。
了解更多
Real-time AI that works with your team

零售业 AI

使用 Ultralytics YOLO 模型重塑零售业。视觉 AI 推动库存跟踪、货架监控、队列管理和更智能的客户洞察。
了解更多
Real-time AI that works with your team

医疗保健中的 AI

利用 Ultralytics YOLO 模型构建医疗保健解决方案。医疗保健中的视觉 AI 可助力更快速的医学影像分析、更智能的诊断和患者监测。
了解更多
Real-time AI that works with your team

制造业中的 AI

使用 Ultralytics YOLO 模型优化制造业。视觉 AI 推动质量控制、缺陷检测、PPE 合规性和装配线自动化。
了解更多
Real-time AI that works with your operation

汽车中的 AI

将计算机视觉应用于汽车行业,并配合 Ultralytics YOLO 模型。汽车视觉 AI 可提升道路安全、辅助驾驶和车辆自动化,打造更智能的道路。
了解更多
Real-time AI tailored to your operation

农业中的 AI

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。赋能作物监测、牲畜追踪和精准农业,实现更高、更智能的产量。
了解更多
Real-time AI that works with your team

机器人技术中的 AI

使用 Ultralytics YOLO 模型为智能机器赋能。机器人技术中的视觉 AI 可推动自主导航、感知、物体跟踪和实时控制。
了解更多
Real-time AI that works with your team

物流中的 AI

使用 Ultralytics YOLO 模型简化物流。视觉 AI 可实现包裹检查、分拣、车辆跟踪和实时仓库安全监控。
了解更多
Real-time AI that works with your team

零售业 AI

使用 Ultralytics YOLO 模型重塑零售业。视觉 AI 推动库存跟踪、货架监控、队列管理和更智能的客户洞察。
了解更多
Real-time AI that works with your team

医疗保健中的 AI

利用 Ultralytics YOLO 模型构建医疗保健解决方案。医疗保健中的视觉 AI 可助力更快速的医学影像分析、更智能的诊断和患者监测。
了解更多
Real-time AI that works with your team

制造业中的 AI

使用 Ultralytics YOLO 模型优化制造业。视觉 AI 推动质量控制、缺陷检测、PPE 合规性和装配线自动化。
了解更多
Real-time AI that works with your operation

汽车中的 AI

将计算机视觉应用于汽车行业,并配合 Ultralytics YOLO 模型。汽车视觉 AI 可提升道路安全、辅助驾驶和车辆自动化,打造更智能的道路。
了解更多
Real-time AI tailored to your operation

农业中的 AI

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。赋能作物监测、牲畜追踪和精准农业,实现更高、更智能的产量。
了解更多

让我们一起构建 AI 的未来!

开启你的机器学习未来之旅