导读
所提出的方法在CIFAR-10数据集上修剪了40%的训练样本,使收敛时间减半,同时测试准确率仅降低了1.3%,这一表现优于之前的基于评分的样本选择方法。
摘要
深度学习的巨大成功在很大程度上依赖于日益增长的训练数据规模,这带来了巨大的计算和基础设施成本。这引发了一些关键问题:所有的训练数据是否都对模型的性能有贡献?每个单独的训练样本或子训练集如何影响模型的泛化能力?如何从整个训练数据中构建最小的子集作为代理训练集,而不会显著牺牲模型的性能?为了回答这些问题,我们提出了数据集修剪,这是一种基于优化的样本选择方法,可以(1)以理论保证的方式检查移除特定训练样本集合对模型泛化能力的影响,并且(2)构建一个最小的训练数据子集,该子集产生的泛化差距受到严格限制。数据集修剪的实证观察到的泛化差距与我们的理论预期基本一致。此外,所提出的方法在CIFAR-10数据集上修剪了40%的训练样本,使收敛时间减半,同时测试准确率仅降低了1.3%,这一表现优于之前的基于评分的样本选择方法。
1 介绍
过去几十年里,深度学习的巨大进展得益于越来越大的模型处理越来越多的数据。然而,这种成功是以巨大的计算和基础设施成本为代价的,这些成本涉及网络训练、网络推理、超参数调整以及模型架构搜索等方面。尽管许多研究努力试图通过裁剪冗余参数来降低网络推理成本,但对于数据冗余问题的关注却相对较少,而这个问题对于提高网络训练和参数调整效率至关重要。
探讨数据冗余问题不仅有助于提高训练效率,也有助于我们理解少量数据的表示能力,以及对于一个学习系统而言,需要多少训练样本才是充分的。此前关于子集选择的研究尝试根据一些标准计算出的标量分数对训练数据的一部分进行排序和选择,例如距离类别中心的距离、与其他选定样本的距离、遗忘分数以及梯度范数。然而,这些方法(a)具有启发性且缺乏对选定数据泛化能力的理论保证,同时也(b)忽略了联合效应,即如果两个高梯度范数样本的梯度方向相反,它们平均梯度向量的范数可能为零。
为了超越这些限制,一个自然的问题是,特定训练样本组合对模型泛化能力的贡献有多大?然而,简单地评估移除每个可能子集导致的测试性能下降是不可接受的,因为对于大小为n的数据集来说,这需要重新训练模型次。因此,数据集修剪的关键挑战在于:(1)如何高效估计所有可能子集的泛化影响而不必迭代地重新训练模型,以及(2)如何识别原始训练数据中具有严格限定泛化差距的最小子集。
在这项工作中,我们提出了一种基于优化的数据集修剪方法,能够识别整个训练数据集中最大的冗余子集,同时满足(a)理论保证的泛化差距和(b)考虑所有收集数据的联合影响。具体来说,我们将训练样本的参数影响定义为由于省略该样本而导致的模型参数变化。通过影响函数可以在线性近似的情况下无需重新训练模型即可估计参数影响。随后,我们将子集选择表述为一个离散优化问题,目标是在不超过给定阈值ϵ的前提下最大化收集样本的数量,并惩罚因移除收集子集而导致的网络参数变化。我们进行了广泛的理论和实证分析,证明了所提出的数据集修剪的泛化差距可以由预定义的阈值ϵ上限。与先前基于评分的样本选择方法相比,我们提出的方法在CIFAR-10数据集上修剪了40%的训练样本,将收敛时间缩短了一半,并且只导致了1.3%的测试准确率下降。在深入细节之前,我们总结了本文的主要贡献如下:
本文提出了数据集修剪问题,将样本选择问题从基数约束扩展到了泛化约束。具体而言,以往的样本选择方法寻找固定大小预算下的数据子集并试图提升其性能,而数据集修剪则旨在确定满足预期泛化能力的最小子集。
本文提出利用影响函数来近似估算省略每个个体训练样本造成的网络参数变化。然后,提出了一种基于优化的方法来识别满足预期参数变化的最大子集。
我们证明了移除识别子集导致的泛化差距可以由数据集修剪过程中严格限制的网络参数变化上界限定。观察到的实证结果与我们的理论预期基本一致。
在数据集修剪和神经架构搜索(NAS)上的实验结果显示,所提出的数据集修剪方法在提升网络训练和架构搜索效率方面极为有效。
本文其余部分组织如下:第2节简要回顾现有的样本选择和数据集浓缩研究,并讨论我们提出的数据集修剪方法与先前方法的主要区别。第3节介绍数据集修剪问题的形式化定义。第4节和第5节介绍我们基于优化的数据集修剪方法及其泛化边界。第6节进行广泛的实验,以验证理论结果的有效性和数据集修剪的效果。最后,在第7节中,我们总结全文。
2 相关工作
数据集修剪与小样本学习是正交的。小样本学习旨在有限的训练数据下提高性能,而数据集修剪的目标是在不显著损害性能的前提下减少训练数据。
数据集修剪与数据选择方法密切相关,后者试图识别最具代表性的训练样本。传统的数据选择方法主要关注聚类问题。最近,越来越多的数据选择方法被提出用于持续学习和主动学习,以确定哪些样本需要存储或标记。数据选择方法通常依赖于预定义的标准来为每个训练样本计算一个标量分数,比如紧凑性、多样性、遗忘性或梯度范数,然后根据计算出的分数对训练数据进行排名和选择。然而,这些方法具有启发性且缺乏泛化保证,同时忽略了所收集样本之间的相互影响。我们提出的数据集修剪方法克服了这些缺点。
另一种减少训练数据的工作线是数据集蒸馏或数据集浓缩。这一系列工作专注于合成一个小但有信息量的数据集作为原有大数据集的替代品。例如,数据集蒸馏试图通过直接最小化在真实训练数据上的分类损失来学习合成数据集,其中神经网络是在合成数据上训练的。Cazenavette等(2022)提出通过匹配训练轨迹来学习合成图像。Zhao等(2021);Zhao & Bilen(2021a;b)提议通过匹配梯度和特征来学习合成图像。但是,由于计算能力的限制,这些方法通常只能合成极少数的样本(如每类50张图像),并且性能远未令人满意。因此,数据集蒸馏和数据集修剪的性能不具备直接可比性。
我们的方法受到了统计机器学习中影响函数的启发。从训练数据集中移除一个训练样本而不损害泛化表明该样本对预期测试损失的影响很小。早期的工作集中在研究从线性模型中移除训练点的影响,后来的工作将此扩展到了更一般的模型。Liu等(2014)使用影响函数研究模型的鲁棒性,并在核方法中进行快速交叉验证。Kabra等(2015)定义了一个专门针对有限假设类别的不同影响概念。Koh & Liang(2017a)研究了加权样本对模型参数的影响。Borsos等(2020)提出通过学习每个样本的权重得分来构建核心集,提出的选取规则最终会收敛到影响函数的公式(Koh & Liang,2017b)。但是,与我们的工作不同的是,Borsos等(2020)没有直接利用影响函数来选择样本,并不能保证所选样本的泛化能力。
3 问题定义
给定一个大规模数据集包含n个训练点,其中,X是输入空间,Y是标签空间。数据集修剪的目标是从D中尽可能多地识别一组冗余的训练样本并移除它们以降低训练成本。被识别出的冗余子集应当对学习到的模型有最小的影响,即在修剪前后的训练集上学到的模型的测试性能应该非常接近,如下所述:
其中P(D)是数据分布,L是损失函数,而和分别是修剪前后训练集D上的经验风险最小化解,即 和。考虑到神经网络是一种局部平滑函数,相似的权重意味着在局部邻域内的映射相似,从而导致泛化性能相似。因此,我们可以通过获得一个与非常接近的 (与 之间的距离小于给定的一个非常小的值来实现方程 (1)。为此,我们首先从模型参数变化的角度定义数据集修剪问题,随后将在第5节中提供理论证据,证明方程 (1) 中的泛化差距可以由参数变化上限界定。
定义1 (ϵ-冗余子集)。给定一个包含n个训练点的数据集,其中,考虑是D的一个子集,即,。我们说是D的一个-冗余子集,如果,其中且,则记为。这意味着从D中移除后,模型参数的变化幅度不超过,确保了修剪后的模型与原模型在参数上的接近性,从而保证了修剪前后模型的泛化性能相近。
数据集裁剪:给定一个数据集D,数据集裁剪的目标是找到其最大的-冗余子集,即对于所有的,有 ,这样就可以构建裁剪后的数据集。通过这种方式,可以去除那些对模型训练影响较小的数据点,从而减少计算成本并可能提高模型的泛化能力。
4 方法
为了实现数据集裁剪的目标,我们需要评估移除每个可能的子集后模型参数的变化。然而,对于一个包含n个样本的数据集D,重新训练模型次来获得是不可行的。在本节中,我们提出了一种高效的方法来近似,而无需重新训练模型。
4.1 参数影响估计
我们首先研究从训练集中移除每个单独训练样本z对模型参数变化的影响。这种变化可以形式化地表示为,其中。通过重新训练模型n次来估计每个训练样例的参数变化也是不可接受的耗时操作,因为n通常达到数万甚至数十万的数量级。
作为替代方案,影响函数研究为我们提供了一种准确且快速估计由于对某个样例z赋予权重而引起的参数变化的方法。假设训练过程中给定训练样例z赋予了小权重 ,那么经验风险最小化器可以写为。将赋值给 相当于移除了训练样例z。然后,赋予z权重对参数的影响由下式给出:
其中是海森矩阵,并假定它是正定的,,N是网络参数的数量。之后,我们可以通过计算来线性近似移除z后的参数变化,而无需重新训练模型。同样,我们可以通过累积移除每个样例的参数变化来近似移除子集D'引起的参数变化,即。
累积的个体影响能够准确反映移除一组数据的影响,
4.2 数据集裁剪作为离散优化问题
结合定义1和参数影响函数(等式 (2)),很容易推导出如果子集D' 的参数影响满足,那么它就是D的一个-冗余子集。设 ,为了找到最大的-冗余子集,该子集同时满足条件 (1)和条件 (2) 对所有,有,我们将泛化保证下的数据集裁剪表述为如下的离散优化问题:
其中W是一个需要被优化的离散变量。对于每个维度i,表示训练样本被选入,而表示训练样本没有被裁剪。在解出等式 (3) 中的W后,最大的-冗余子集可以构建为。对于某些场景,当我们需要指定移除的子集时,可以通过的集合来确定这些被移除的样本。这样,通过优化W,我们可以精确地控制哪些样本被保留,哪些样本被移除,进而实现对数据集的有效管理。
5 泛化性能分析
在本节中,我们理论上制定了由裁剪后的数据集给出的最小化器的泛化保证。我们的理论分析表明,所提出的数据集裁剪方法在给定足够小的时,对期望测试损失有一个相对较紧的上界。
为了简化起见,我们首先假设只裁剪一个训练样本z (即, 是一维的)。根据经典的结果,我们可以写出测试损失的影响函数为:
这表示测试损失关于 的一阶导数。
如果我们让成为一个m维向量并且,那么我们可以很容易地将理论分析推广到裁剪m 个训练样本的情况。然后,我们可以写出测试损失影响函数的多维形式为:
这是一个的矩阵,其中N表示参数的数量。
我们定义在数据分布上的期望测试损失为,并定义由于数据集裁剪导致的泛化差距为 。通过使用测试损失的影响函数,我们得到了定理 1,该定理表述了泛化差距的上界。
定理 1 显示,如果我们希望有效降低因数据集裁剪而产生的泛化差距的上界,我们应该专注于限制甚至直接最小化 。所提出的基于优化的数据集裁剪方法的基本思想正是通过离散优化来惩罚,如公式 3 和公式 4 所示。
定理 1(数据集裁剪的泛化差距)。假设原始数据集为D,裁剪后的数据集为。如果,那么我们有泛化差距的上界为:
此外,我们在下一部分中的实证结果成功验证了估计的泛化差距。对于 CIFAR-10 和 CIFAR-100 数据集,所提出的基于优化的数据集裁剪方法估计的泛化差距大约为 的数量级,比随机数据集裁剪估计的泛化差距小了一个数量级以上。
6 实验
在接下来的段落中,我们将通过实验来验证理论结果的有效性和所提出的数据集裁剪方法的有效性。在第6.1节中,我们将介绍所有实验细节。在第6.2节中,我们将经验性地验证定理1的有效性。在第6.3节和第6.4节中,我们将我们的方法与几种基线方法在数据集裁剪性能和跨架构泛化能力上进行比较。最后,在第6.5节中,我们将展示所提出的数据集裁剪方法在提高训练效率方面极为有效。
6.1 实验设置与实现细节
我们在CIFAR10、CIFAR100和TinyImageNet数据集上评估了数据集裁剪方法。CIFAR10和CIFAR100分别包含来自10个和100个类别的50,000个训练样本。TinyImageNet是一个更大的数据集,包含来自200个类别的100,000个训练样本。我们对三个不同复杂度的流行深度神经网络验证了裁剪后数据集的跨架构泛化能力,例如SqueezeNet(1.25M参数)、ResNet18(11.69M参数)和ResNet50(25.56M参数)。所有超参数和实验设置在数据集裁剪前后的训练过程中都被控制为相同。具体来说,在所有实验中,我们使用128的批量大小、0.01的学习率以及余弦退火学习率衰减策略训练模型200个周期,优化器为带有0.9动量和5e-4权重衰减的SGD,数据增强包括随机裁剪和随机水平翻转。在公式2中,我们采用二阶优化技巧计算海森矩阵的逆,这可以显著加快海森矩阵逆估计的时间。为了进一步提高估计效率,我们仅针对最后一个线性层计算公式2中的参数影响。在公式3和公式4中,我们使用模拟退火法解决离散优化问题,这是一种在给定时间预算内解决复杂离散优化问题的流行启发式算法。
6.2 理论分析验证
我们提出的基于优化的数据集裁剪方法试图通过限制参数影响ϵ来收集最小的子集。在定理1中,我们证明了数据集裁剪的泛化差距可以被O(nϵ + nm²)上界所限定。由于m/n²项通常比nϵ小得多,因此可以简单地忽略不计。为了验证数据集裁剪泛化保证的有效性,我们将数据集裁剪前后观察到的经验测试损失差L(θ̂−D̂) − L(θ̂)与我们的理论预期nϵ进行了比较,如图2所示。可以清楚地看到,实际的泛化差距与我们的理论预测高度一致。我们还可以观察到,裁剪后数据集的泛化与ϵ之间存在强烈的关联,因此方程3通过限制ϵ有效地保证了数据集裁剪的泛化性能。与随机裁剪相比,我们提出的基于优化的数据集裁剪展现出更小的ϵ值和更好的泛化能力。
6.3 数据集裁剪
在前一节中,我们通过限制或直接最小化选定数据子集的网络参数影响来激发基于优化的数据集裁剪方法。理论结果和实证证据表明,限制参数影响可以有效地控制裁剪后数据集的泛化差距。在本节中,我们对提出的基于优化的数据集裁剪方法进行了实证评估。我们展示了训练于裁剪后数据集上的网络测试准确率与训练于完整数据集上的网络测试准确率相当,并且与其他基准方法具有竞争力。
我们使用随机初始化的ResNet50网络He等人进行了裁剪。我们将提出的方法与以下基线方法进行了比较:(a) 随机裁剪,即随机选择预期数量的训练样本。(b) 选择最接近每个类别聚类中心的预期数量的训练样本。(c) 忘记,即选择容易被遗忘的训练样本。(d) 选择损失梯度范数较大的训练样本。(e) EL2N ,即选择误差向量范数较大的训练样本,该误差向量是预测类别概率减去one-hot标签编码的结果。(f) 影响分数,即选择影响函数在方程2中的范数较高的训练样本,而不考虑‘群体效应’。为了让我们的方法能够与这些基数基线裁剪方法相比较,我们按照方程4中所述的基数保证数据集裁剪方法进行了数据集裁剪。在数据集裁剪并选择一个训练子集之后,我们仅在裁剪后的数据集上重新训练一个新的随机初始化的ResNet50网络以获得测试准确率。所有方法的重新训练设置都保持相同。实验结果如图1所示。在图1中,我们的方法始终超过所有基线方法。在所有基线方法中,当裁剪比率较小时,忘记和EL2N方法的性能非常接近我们的方法,而随着裁剪比率的增加,性能差距也随之增大。作为我们方法的一个直接基线,影响分数方法与我们的优化方法相比表现较差。这是因为所有这些基线方法都是基于评分的,它们通过移除得分最低的样本来进行裁剪,而没有考虑到高分样本和低分样本之间的相互影响。一组高分样本组合的影响可能是微不足道的,反之亦然。我们的方法通过设计的优化过程考虑了一个子集而非单个样本的影响,从而克服了这个问题。对群体效应的考虑使我们的方法在裁剪比率较高时尤其优于基线方法。
6.4 未知架构泛化
我们进行了实验以验证裁剪后的数据集是否能很好地泛化到那些在数据集裁剪过程中无法访问的未知或更大网络架构。为此,我们使用较小的网络来裁剪数据集,然后进一步利用裁剪后的数据集来训练更大的网络架构。如图3所示,我们在两个未知且更大的架构,即ResNet18和ResNet50 上评估了由SENet 裁剪后的CIFAR10数据集。SENet包含125万个参数,ResNet18包含1169万个参数,而ResNet50包含2556万个参数。实验结果显示,裁剪后的数据集在网络架构未知的情况下具有良好的泛化能力。这表明,无论特定的网络架构如何,裁剪后的数据集都可以应用于广泛的应用场景。此外,结果还表明,我们可以使用小型网络来裁剪数据集,而裁剪后的数据集可以很好地泛化到更大的网络架构。这两个结论使得数据集裁剪成为减少神经架构搜索(NAS)时间消耗的一种合适技术。
6.5 数据集裁剪提高了训练效率
裁剪后的数据集可以在保持性能的同时显著提高训练效率,这一点在图4中有所展示。因此,当需要在同一数据集上进行大量训练试验时,所提出的数据集裁剪方法非常有益。一个这样的应用场景是神经网络搜索的目标是在特定数据集上寻找能够实现最佳性能的网络架构。如果裁剪后的数据集与原始数据集具有相同的能力来识别最佳网络,那么通过在较小的裁剪数据集上搜索架构可能是加速NAS的一个潜在强大工具。我们构建了一个包括不同深度、宽度、池化、激活和归一化层的720个ConvNets的搜索空间。我们在整个CIFAR10训练集以及四个较小的代理数据集上训练所有这720个模型,这些代理数据集分别是通过随机选择、herding方法和我们提出的裁剪方法构建的。所有四个代理数据集每类仅包含100张图片。我们对所有模型进行了100个epoch的训练。代理数据集总共包含1000张图片,其存储成本仅为完整数据集的2%。
表1报告了以下几点:(a) 在整个数据集上训练的最佳选定架构的平均测试性能;(b) 在代理数据集和整个数据集上训练选定的前10个模型所获得的验证准确率之间的Spearman等级相关系数;(c) 在Tesla V100 GPU上训练720个架构所需的时间;(d) 内存成本。表1显示,在整个数据集上搜索720个架构带来了巨大的时间成本。从整个数据集中随机选择2%的数据集来进行架构搜索可以将搜索时间从3029分钟减少到113分钟,但这种情况下搜索到的架构在完整数据集上的训练表现要差得多,远非最佳架构。与基线方法相比,我们提出的裁剪方法不仅实现了最佳性能(最接近于整个数据集的表现),而且显著减少了搜索时间(仅为整个数据集的3%)。
7 结论
本文提出了一种数据集裁剪的问题,目标是从训练样本中移除那些对模型性能影响较小的冗余样本。通过对移除特定子集训练样本对网络参数的影响进行理论分析,本文提出了将样本选择过程建模为一个约束离散优化问题的方法。在样本选择过程中,我们在限制网络参数变化的同时最大化收集的样本数量。这样,所收集的训练样本就可以从训练集中移除。广泛深入的理论和实证研究表明,所提出的基于优化的数据集裁剪方法在提高训练效率的同时,能够保持模型的泛化能力,效果极其显著。
请长按或扫描二维码关注本公众号
喜欢的话,请给我个在看吧!