深度学习训练损失为none_基于训练集约简的深度学习系统测试

aad053e81db3c3061ab671642fa194e0.png

引用:Spieker H, Gotlieb A. Towards Testing of Deep Learning Systems with Training Set Reduction[J]. arXiv preprint arXiv:1901.04169, 2019.

摘要:

测试深度学习系统及其训练的程序,对于维护可靠的代码基础来说至关重要。现代软件开发中采用的流程,如持续集成,对于软件的变动会进行频繁的集成和测试。然而,对于深度学习系统来说,对于深度学习系统的训练和优化过程的变动是需要进行测试的,每次的变动的评估都是需要进行训练过程的重新运行的。一般来说容易想到的做法就是使用全部的训练数据集进行训练过程的重新执行,这种方法是一种资源密集型的方案,时间、空间和计算资源的开销都很大,频繁的测试代价会很高。可以通过选取训练数据集的子集进行训练来解决上述资源密集型方案带来的缺点。

本文对三种训练集的约简方法进行了评估,度量它们训练出的模型同完整训练集训练的模型的拟合程度。本文强调了训练数据约简的可用性,尤其是在资源有限的环境下,数据约简的可以作为深度学习系统测试的一种有效手段。

技术介绍:

本文讨论和评估了三种训练集约简(TSR, Training Set Reduction)的方法,分别是基于距离的约简(distance-based reduction),基于损失的约简(loss-based reduction)和随机选择约简(random selection)。下面来分别介绍这三种方法。

基于距离的子集选择(Distance-based Subset Selection):该选择策略通过样本数据的彼此的距离(曼哈顿距离,欧氏距离,闵可夫斯基距离等)来选择部分样本数据来替代原始全部的训练数据。对于分类任务来说,依赖于预定义的类别。如果是回归任务,通过离散化来明确样本数据的区分。以分类任务为例,该策略通过使用K-means聚类对每个类的所有训练样本进行聚类处理,聚类的个数n即为对应约简保留的数量,然后对每个聚类通过距离函数寻找距离聚类中心点最近的样本点(如K-nearest算法)。这样基于距离,选择出了在样本空间上最具代表性的子集来代表完整的训练集。

基于损失的子集选择(Loss-based Subset Selection):该方法利用了深度学习模型训练过程中的损失函数(loss function or cost function),该函数描述了DL模型给定的输出和预期输出的近似程度,是计算整个网络的反向传播误差的梯度的核心。对于样本来说,较高的损失,表明模型预测的输出和期望输出差距较大。因此,损失在一定程度上能够用于筛选出数据集中的“钉子户”(即容易被模型识别错误的样本)。基于损失的子集选择的策略,利用一个或多个训练的初始化模型,对数据集数据进行损失计算,选取较高损失的样本来表征整体训练集。这里要指出,虽然初始化模型是随机执行的,但是很多复杂的DNN模型架构是遵循专门设计的初始化策略来控制参数的范围来提高模型的稳健性。此外,使用多种架构的初始化模型也能在一定程度上筛选出相对更容易识别错误的样本。下图是Cifar10数据集在五个流行的CNN模型架构上的损失值的分布。

0fe4af0fe1c491bc69f1d8aa8fe884a5.png

随机子集选择(Random Subset Selection):随机方法是接下来试验中的对照组,是当前的baseline。通常来说,如果选择的子集大小足够大或者选择重复多次,随机抽样应该能选择出具有代表性的子集。但是对于本文的数据约简TSR来说,是尽可能选择少的样本,即无需太多冗余,因为样本数量影响了模型训练的时间等成本。总的来说,随机方案由于其简单,无需额外计算,仍然是当下的最佳实践,尤其是在集成测试的初期阶段。

评估总结:

实验的目标是评估三种约简技术产生的训练集同完整训练集的训练过程的损失过程的拟合程度,这样能够很好的展示训练过程中的差异,绘制损失差异曲线。本实验选取Cifar10作为实验目标训练集,设置了7组数据集选择的子集数量,在简单和复杂的神经网络上面进行了实验(SimpleCNN 和 RestNet-18)。SimpleCNN相对来说较为简单,ResNet亦适用于更大的数据集合的训练,选择复杂模型的也是为了更好地理解过拟合的情况。

通过使用类似标准差的计算方式,对7种子集大小的数据进行拟合原始数据集的损失loss如下表所示。

7ddc7076ab8181c2b99c36056498f939.png

对应的Loss Curves值越低,表示选择的子集模拟原始集合训练的拟合程度越高,由上表可以得出基于损失的子集选择性能最佳,而基于距离和随机的子集选择只有在子集大小较大的情况下,才有较好的拟合性能。基于损失的子集选择除了可以通过更少的数据来拟合原始数据外,只需要使用为训练的随机初始化的模型来计算收集原始数据集样本的损失值,无需进行模型训练,这一步的实现成本较低。

本文总结:

贡献:本文为深度学习系统的持续集成测试提供了约简测试集的三种方案,并进行了实验评估和验证,实验证明基于损失的子集选择方案是相对有效的手段。作者认为测试数据集约简(TSR)在深度学习系统测试领域有着很广阔的前景。

未来工作:1. 将TSR迁移到更多的机器学习ML领域;2. 为TSR研究更多的度量指标和方案;3. 将TSR技术应用到模型的fine-tuning领域。

致谢

此文由南京大学软件学院2018级硕士王栋翻译转述。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值