翻译:杨毅远
校对:王琦
本文长度为1800字,建议阅读7分钟
在许多任务中我们会用可获得的海量数据来训练深度网络,那么在实际训练中我们怎样可以快速确定应该使用哪些数据呢?像主动学习(active learning)和核心集选择(core-set selection)之类的数据选择方法是确定训练数据的强大手段,但是这些方法计算花销大且难以大规模使用。
在最近ICLR 2020的工作中(https://openreview.net/pdf?id=HJg2b0VYDr),我们提出了一种将数据选择速度提高多达41.9倍的方法。我们使用一种规模较小、精度较差的模型作为规模较大目标模型的低代价的代理,并用此来选择用于训练的“核心”数据。尽管这些代理模型准确性较低,但它们选择的是不会对最终模型的准确性产生较大影响(通常在0.1%以内)的高质量数据。另外,在不影响ResNet-164模型准确性的情况下,上述代理模型可以清洗掉50%以上的CIFAR-10训练数据,从而使端到端模型的训练速度提升40%。
我们在ICLR 2020(https://iclr.cc/) 上发表了关于SVP(selection via proxy)方法的论文,并且代码可在github中获得。
论文链接:
https://openreview.net/pdf?id=HJg2b0VYDr
代码链接:
https://github.com/stanford-futuredata/selection-via-proxy
从宏观上来看,数据选择方法中的迭代过程包括以下三个步骤:
其中第三步是深度学习的主要瓶颈。模型需要花费数小时甚至数天的时间进行训练,因此对于我们选择的每个样本,从头开始训练模型都不划算。在SVP背后我们核心见解是,虽然较大的模型更准确,但它们排序并且选择相似样本的能力跟规模更小、准确率更低的模型一样。
例如,下图显示了来自相似模型架构不同模型之间的相关程度。我们可以利用这些高相关性来创建代理模型,从而将数据选择速度提高一个数量级。
在ImageNet数据集下模型架构的排名。 上图为在ImageNet数据集上PyTorch预训练模型与最大熵排名之间的Spearman相关性。大多数模型架构之间相关性很高。例如,MobileNet V2基于熵的排名与ResNet50模型高度相关,尽管该模型参数要少得多(3.5M vs 25.6M)。
我们探索了两种创建代理模型的主要方法:
对于具有多层的深层模型,我们可以减小隐藏层的大小或数量,这是在权衡模型精度下减少训练时间的简单方法。例如,ResNet20模型在26分钟内在CIFAR10数据集中取得了7.6% 的 top-1误差,而更大的ResNet164模型花费了4小时才减少了2.5%的误差。
在训练期间,大部分时间都花在了误差减少相对较小的时间段。例如,在训练ResNet20模型时,几乎一半的训练时间(26分钟中的12分钟)都花费在改进测试集的1.4%错误率上。基于这些观察,我们还研究了可以更快地获得目标模型决策边界的近似值并且使用较少迭代次数的代理训练模型。
为了评估SVP对数据选择运行时间和质量的影响,我们将SVP使用在主动学习和核心集选择中来对于以下五个数据集进行数据选择:CIFAR10,CIFAR100,ImageNet,Amazon Review Polarity和Amazon Review Full。对于主动学习,SVP在数据集中达到了相似甚至更高的准确率,并且在标签预算(labeling budgets)的数据选择的运行时间上提升了多达41.9倍:
主动学习中的SVP表现。使用最小置信度不确定性采样(通过不同的代理模型和在四个数据集上的标签预算)来进行3次主动学习的平均(±1std)数据选择加速。粗体的加速表明使用相同模型来进行选择和使用最终预测的基准方法的设置不是误差较低就是误差在平均top-1误差的1 std之内。在整个数据集中,SVP加快了数据选择速度的同时没有显著增加最终结果的误差。
对于核心集选择,代理模型在选择保持高精度数据子集时的性能几乎与目标模型相同甚至更好。
特别是在CIFAR10上,小规模代理模型删除了50%的数据,但不会影响在子集上训练的更大、更准确的模型的最终准确性。此外,在所有数据上训练代理模型,选择要保留的样本以及在子集上训练目标模型的整个过程仅花费了2小时23分钟,相比于在完整数据集上训练目标模型的标准方法,端到端的训练速度提高了1.6倍,如下图所示:
在有无代理选择数据的情况下,ResNet164(带有预激活)在CIFAR10上的训练曲线。浅红色线表示训练代理模型(ResNet20)。红色实线表示在使用代理的图像子集上训练目标模型(ResNet164)。使用代理的方法,删除了50%的数据且不会影响ResNet164的最终准确性,将端到端的训练时间从3小时49分钟缩短到2小时23分钟。
SVP方法可以通过在数据选择期间用计算花销小的代理模型来代替计算花销大的模型,从而提高了深度学习中主动学习和核心集选择的计算效率。在主动学习中,SVP的数据选择运行时间最多可提高41.9倍,同时误差没有显著增加(通常在0.1%以内);在核心集选择中,SVP可以从CIFAR10中删除多达50%的数据,并使训练目标模型花费的时间缩短为原来的十分之一,从而使端到端模型的训练速度提高1.6倍。
原文链接:
https://dawn.cs.stanford.edu/2020/04/23/selection-via-proxy/
如需转载,请在开篇显著位置注明作者和出处(转自:数据派ID:DatapiTHU),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。
发布后请将链接反馈至联系邮箱(见下方)。未经许可的转载以及改编者,我们将依法追究其法律责任。