
编者按:随着深度学习的发展,神经网络结构的设计逐渐由手工设计转变为算法自动设计。在近期的神经网络设计(Neural Architecture Search, NAS)研究中,现有的方法存在必定缺陷,结果每每不能真正体现出众多子网络正确的排序关系。为解决这一问题,微软亚洲研究院的研究员们提出了基于优先路径蒸馏的网络结构搜索方法。采用这一方式选出的网络在 ImageNet 上的分类准确率达到了80.0%, 超越了现有的 EfficientNet-B0/B1 和 MobileNetV3。该论文已被 NeurIPS 2020 接收。git
从数亿数量级的神经网络结构中搜索出高性能的网络,是一个充满挑战但又使人向往的研究任务。正如深度学习变革了传统的手工图像特征设计,神经网络结构的设计也正在逐渐由手工设计转变为算法自动设计。github
面对数以亿级的网络结构,将每个可能的结构都训练收敛,并选择其中最好的结构是不现实的。在近期的神经网络设计研究中,一个被普遍使用的解决方法是先训练一个包含了全部可能结构的超网(hypernetwork),当测试某一个网络结构的性能时,直接继承超网训练后的参数。这样的作法省去了从新训练的时间,大大加快了网络搜索的速度。然而,虽然预训练超网的方法可以大幅度加速网络搜索,但由于很难对全部的路径(子模型)进行充分训练,因此其给出的结果每每不能真正体现出众多子网络正确的排序关系。算法
现有的超网训练方式多种多样,研究员们采用了简单有效的均匀采样单条路径(single-path uniform sampling strategy)做为基础,即每一次随机从超网中采一条路径进行训练。与之不一样的是,在训练单条路径时,会从优先路径组中选出一条路径对其进行蒸馏,从而提高训练效果。微信
图1:方法示意图,左侧为常规的蒸馏方法,即采用一个预训练的模型进行蒸馏,右侧为提出的基于优先路径的蒸馏方法。网络
优先路径组架构
优先路径组是由少许性能优异的路径构成的。超网训练会对优先路径组进行动态的维护,若是采样出来的网络在效果和复杂度上均优于有限路径组中的网络,那么就会将其替换到优先路径组中。不只如此,维护这样一个优先路径组还使得超网训练结束后能够直接从中选取最优路径,从而节省以往方法在进行网络结构搜索时运用强化学习方法或进化算法(Evolution Algorithm)的时间。在选取优先路径时,可根据公式app

进行选择,其中



知识蒸馏机器学习
知识蒸馏是一种被普遍应用的模型压缩方法,经过让小型网络来模仿预训练大型网络的最后一层输出特征,可使小型网络达到接近于大型网络的表现。研究员们经过优先路径来进行蒸馏,从而无需提早训练一个大型神经网络。对超网进行更新的具体公式以下:编辑器

其中 为正常的训练损失,
为蒸馏损失,
仍为前面所提到的匹配程度。工具
元网络
因为不一样的子网结构差别可能很是之大,所以研究员们但愿可以从优先路径组中选出最有助于子网训练的优先路径对其进行知识蒸馏。通过尝试,研究员们采用了元网络的技术,将采样路径和优先路径最后一层输出的特征差输入到元网络中,由元网络判断优先路径与采样路径的匹配程度。当训练元网络时,研究员们会在验证集上计算损失,经过匹配程度 进行梯度回传并更新元网络
:

对基于优先路径蒸馏的网络结构搜索算法的测试是在 ImageNet 上进行的。实验结果如图2和表1所示。能够看出,在各类模型大小下,该方法的搜索结果均超越了此前的 EfficientNet-B0/B1 和 MobileNetV3,实现了优越的性能。不只如此,该方法搜索所须要的时长也是各类网络结构搜索算法中最短的。

图2:基于优先路径蒸馏的网络结构搜索获得的模型在 ImageNet 上的性能

表1:基于优先路径蒸馏的网络结构搜索获得的模型在 ImageNet 上的性能
除了图像分类任务外,研究员们还在物体检测任务上对算法进行了测试,结果如表2所示。能够看到,该模型一样可以泛化到物体检测任务上,在各类指标下都比已有模型有近1%的提高。

表2:基于优先路径蒸馏的网络结构搜索模型在物体检测任务上的表现
NNI (Neural Network Intelligence) 是当下最热门的开源自动机器学习(AutoML)工具之一,由微软亚洲研究院与微软(亚洲)互联网工程院领衔开发。NNI 对机器学习生命周期的各个环节都作了较为全面的支持,包括特征工程、神经网络架构搜索、超参调优和模型压缩。
目前,微软亚洲研究院的研究员们已将这次提出的基于优先路径蒸馏的网络结构搜索算法经过 NNI 平台的 One-Shot 算法接口进行了实现,提供了完整的搜索、重训练和测试代码以及模型。因为 NNI 提供了统一的接口表达网络搜索空间,因此有对比此算法与其余神经网络架构搜索结果需求的用户可选择这份代码实现作参考。代码以及更多技术细节,请参见:https://github.com/microsoft/nni。
本篇 NeurIPS 2020 论文针对网络结构搜索中超网训练不充分的问题,提出了使用优先路径进行蒸馏的方法,加快了超网训练的收敛和搜索速度,且搜索获得的网络性能超越了大多数现有算法。尽管如此,该方法目前仍处于初步的探索阶段,将来可能还会将模型延迟考虑到优先路径选择中,并对优先路径蒸馏的理论依据进行进一步的探索。
更多技术细节,详见论文:
Cream of the Crop: Distilling Prioritized Paths For One-Shot Neural Architecture Search
论文连接:https://arxiv.org/abs/2010.15821
代码连接:https://github.com/microsoft/Cream
NNI实现连接:https://github.com/microsoft/nni
END

备注:NAS
AutoML&NAS交流群
自动机器学习、神经架构搜索等技术,
若已为CV君其余帐号好友请直接私信。
微信号:aicvml
QQ群:805388940
微博知乎:@我爱计算机视觉
投稿:amos@52cv.net
网站:www.52cv.net

在看,让更多人看到
本文分享自微信公众号 - 我爱计算机视觉(aicvml)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。