当前位置: 首页 > 科技观察

《百分之一》:如何加快超网训练的收敛和搜索速度

时间:2023-03-19 12:46:58 科技观察

随着深度学习的发展,神经网络结构的设计逐渐从人工设计转向算法自动设计。在近期的神经网络设计(NeuralArchitectureSearch,NAS)研究中,现有方法存在一定的缺陷,其结果往往不能真实反映众多子网络的正确排序关系。为解决这一问题,微软亚洲研究院的研究人员提出了一种基于优先路径蒸馏的网络结构搜索方法。这样选择的网络在ImageNet上的分类准确率达到了80.0%,超过了现有的EfficientNet-B0/B1和MobileNetV3。这篇论文已被NeurIPS2020接受。从数亿个神经网络结构中搜索高性能网络是一项具有挑战性但令人向往的研究任务。正如深度学习改变了传统的人工图像特征设计一样,神经网络结构的设计也在逐渐从人工设计向算法自动设计转变。面对数以亿计的网络结构,训练每一种可能的结构来收敛并选择最好的结构是不现实的。在最近的神经网络设计研究中,一种广泛使用的解决方案是先训练一个包含所有可能结构的超网络,在测试某种网络结构的性能时,直接继承超网络训练后的参数。这种方法节省了重新训练的时间,大大加快了网络搜索的速度。然而,预训练超网的方法虽然可以极大地加快网络搜索速度,但难以完全训练所有路径(子模型),因此结果往往不能真实反映众多子网络的正确排序关系。为了解决这个问题,微软亚洲研究院的研究人员提出维护一个优先路径板。也就是说,在训练超网络的某条路径时,利用元网络从组中选择性能较好的子网络进行网络蒸馏(distillation),从而提高超网络与性能的收敛程度。这样选择的网络在ImageNet上的分类准确率达到了80.0%,超过了现有的EfficientNet-B0/B1和MobileNetV3。这篇论文已经被NeurIPS2020接受。Prioritizedpath-basednetworkdistillation现有的超网训练方法多种多样。研究人员采用了一种简单有效的单路径均匀采样策略(single-pathuniformsamplingstrategy)作为基础,即每次从超网中随机选择一条路径。培训。不同的是,在训练单条路径时,会从优先路径组中选出一条路径进行提炼,从而提高训练效果。图1:该方法的示意图。左边是常规的蒸馏方法,使用预训练模型进行蒸馏,右边是提出的基于优先路径的蒸馏方法。优先路径组优先路径组由少数性能优良的路径组成。超网训练会动态维护优先路径组。如果采样网络在效果和复杂度方面优于有限路径组中的网络,则在优先路径组中将其替换。不仅如此,维护这样一个优先路径组还允许在超网训练完成后直接选择最优路径,从而节省了以往方法中使用强化学习方法或进化算法(EvolutionAlgorithm)进行网络结构搜索的时间。选择优先路径时,可以根据公式进行选择,其中M代表元网络,N(*,*,*)代表网络最后一层输出的特征(logits),ρ代表匹配由元网络度预测的两条路径。KnowledgeDistillation知识蒸馏是一种广泛使用的模型压缩方法。通过让小型网络模仿预训练大型网络最后一层的输出特征,小型网络可以获得接近大型网络的性能。研究人员通过对路径进行优先排序来进行蒸馏,从而无需提前训练大型神经网络。更新超网的具体公式如下:其中L_CE为normaltrainingloss,L_KD为distillationloss,ρ仍为上述匹配度。由于子网络结构不同,元网络可能差异很大,因此研究人员希望从优先路径组中选择最有利于子网络训练的优先路径进行知识蒸馏。经过尝试,研究人员采用元网络技术,将采样路径的特征差异与优先路径最后一层的输出输入到元网络中,由元网络判断优先路径之间的匹配程度和采样路径。在训练元网络时,研究人员计算验证集上的损失,通过匹配度ρ进行梯度反向传播,更新元网络M:实验结果基于优先路径蒸馏的网络结构搜索算法的测试在ImageNet上进行。实验结果如图2和表1所示,可以看出,在各种模型尺寸下,该方法的搜索结果均超越了之前的EfficientNet-B0/B1和MobileNetV3,取得了更优越的性能。不仅如此,该方法所需的搜索时间也是各种网络结构搜索算法中最短的。图2:基于优先路径蒸馏的网络结构搜索得到的模型在ImageNet上的性能表1:基于优先路径蒸馏的网络结构搜索得到的模型在ImageNet上的性能该算法在任务上进行了测试,结果如表2所示,可以看出该模型也可以泛化到目标检测任务,在各项指标下相比已有模型有近1%的提升。表2:基于优先级路径蒸馏的网络结构搜索模型在目标检测任务上的表现基于NNI工具接口的源码实现NNI(NeuralNetworkIntelligence)是最流行的开源自动机器学习(AutoML)之一工具,由微软亚洲研究院和微软(亚洲)互联网工程院牵头开发。NNI为机器学习生命周期的各个方面提供全面支持,包括特征工程、神经网络架构搜索、超参数调整和模型压缩。目前,微软亚洲研究院的研究人员已经通过NNI平台的One-Shot算法接口实现了所提出的基于优先路径蒸馏的网络结构搜索算法,提供了完整的搜索、再训练和测试代码和模型。由于NNI提供了统一的接口来表达网络搜索空间,需要将本算法的搜索结果与其他神经网络架构进行比较的用户可以选择本代码实现作为参考。有关代码和更多技术细节,请参阅:https://github.com/microsoft/nni。结论这篇NeurIPS2020论文针对网络结构搜索中超网训练不足的问题,提出了一种利用优先路径进行蒸馏的方法,加快了超网训练的收敛和搜索速度,搜索得到的网络性能超过大多数现有的方法。有算法。尽管如此,该方法仍处于初步探索阶段,未来可能会在优先路径选择中考虑模型延迟,进一步探索优先路径蒸馏的理论基础。更多技术细节参见论文:CreamoftheCrop:DistillingPrioritizedPathsForOne-ShotNeuralArchitectureSearch论文链接:https://arxiv.org/abs/2010.15821代码链接:https://github.com/microsoft/CreamNNI实现链接:https://github.com/microsoft/nni