作者:Cody Coleman, Peter Bailis, and Matei Zaharia
时间:2020年4月23日
摘要:全文约1800字,建议阅读时间为7分钟。本文主要介绍了SVP方法。作为一种用于深度学习的数据选择方法,其可以在保证识别准确率的同时,有效地提高深度学习中的计算效率。例如,在主动学习中,SVP的运行速度最多可提高到基础的41.9倍,同时误差没有显著增加,这对于深度学习中提高模型训练速度来说是一个有效的方法。
在许多任务中我们会面对海量的有效数据来训练深度网络,那么在实际的训练中我们怎样可以快速确定应该使用哪些数据呢?类似于主动学习(active learning)和核心集选择(core-set selection)等方法是确定训练数据的有效手段,但是上述方法计算花销大且难以大规模使用。
在最近的ICLR 2020中,Cody Coleman等人提出了一种将数据选择速度提高多达41.9倍的方法。他们使用一种规模较小、精度较差的模型作为规模较大的目标模型的简单替代模型,并用此来选择用于训练的“核心”数据。尽管这些替代模型的准确性较低,但它们选择的是不会对最终模型的准确性产生较大影响(通常在0.1%以内)的高质量数据。另外,在不影响ResNet-164模型准确性的情况下,上述替代模型可以清洗掉50%以上的CIFAR-10训练数据,从而使端到端模型的训练速度提升40%。
Cody Coleman等人在ICLR 2020 上发表了此论文,并且代码可在github中获得。
直觉:与模型架构对数据的排名相似
从宏观上来看,数据选择方法中的迭代过程包括以下三个步骤:
1.根据一些信息量度(例如:熵)对数据集进行排序
2.选择排名最高的数据集
3.根据选定的数据集更新模型
其中的第三步是深度学习的主要瓶颈。模型需要花费数小时甚至数天的时间进行训练,因此对于我们选择的每个数据集,从头开始训练模型都不划算。在SVP下我们发现的重要一点是,当较大模型变得越来越准确时,他们将选择与规模更小、准确率更低的模型相同的数据。例如,下图显示了来自相似模型架构的不同模型之间的相关程度。我们可以利用这些高相关性来创建替代模型,从而将数据选择的速度提高一个数量级。
在ImageNet数据集下模型架构的排名。 上图为在ImageNet上来自PyTorch预训练模型的最大熵排名之间的Spearman相关性。大多数的模型架构之间相关性很高。例如,MobileNet V2基于熵的排名与ResNet50模型高度相关,尽管该模型的参数要少得多(3.5M vs 25.6M)。
创建有效且可用的替代模型
文章中提出了两种创建替代模型的主要方法:
1.缩小网络规模。对于具有多层的深层模型,我们可以减小隐藏层的大小或数量,这也是在权衡模型精度下减少训练时间的简便方法。例如,ResNet20模型在26分钟内在CIFAR10数据集中实现了top-1误差为7.6%,而更大的ResNet164模型则花费了4小时才减少了2.5%的误差。
2.训练轮数减少。在训练期间,大部分时间都花在了误差减少相对较小的时间段。例如,在训练ResNet20模型时,几乎一半的训练时间(26分钟中的12分钟)都花费在了优化测试集1.4%的错误率上。基于上述结论,文章还研究了可以更快地获得目标模型决策边界的近似值并且使用较少迭代次数的替代训练模型。
结果
为了评估SVP对数据选择运行时间和质量的影响,我们将SVP使用在主动学习和核心集选择中来对于以下五个数据集进行数据选择:CIFAR10,CIFAR100,ImageNet,Amazon Review Polarity和Amazon Review Full。对于主动学习,SVP在数据集和标签预测中达到了相等甚至更高的准确率,并且在标签选择的运行时间上提升了多达41.9倍:
主动学习中的SVP表现。使用最小置信度不确定性采样(具有不同的替代模型和四个数据集)来进行3次主动学习的平均(±1std)数据加速。粗体的加速表明使用相同模型进行选择和最终预测的基准方法可以达到较低误差水平或在平均top-1误差的1 std之内。在整个数据集中,SVP加快了数据选择速度的同时并没有显着增加最终结果的误差。
对于核心集选择,替代模型在选择保持高精度的数据子集时的性能几乎与目标模型相同甚至更好。
特别是在CIFAR10上,小规模的替代模型删除了50%的数据,但不会影响在子集上训练的更大、更准确的模型的最终准确性。此外,在所有数据上训练替代模型,选择要保留的数据以及在子集上训练目标模型的整个过程仅花费了2小时23分钟,相比于在完整数据集上训练目标模型的标准方法,端到端的训练速度提高了1.6倍,如下图所示:
使用带有和不带SVP方法的CIFAR10上具有预激活功能的ResNet164的训练曲线。浅红色线表示训练替代模型(ResNet20)。红色实线表示在使用SVP的图像子集上训练目标模型(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/