编者按:随着深度学习的发展,神经网络结构的设计逐渐由手工设计转变为算法自动设计。在近期的神经网络设计(Neural Architecture Search, NAS)研究中,现有的方法存在一定缺陷,结果往往不能真正体现出众多子网络正确的排序关系。为解决这一问题,微软亚洲研究院的研究员们提出了基于优先路径蒸馏的网络结构搜索方法。采用这一方式选出的网络在 ImageNet 上的分类准确率达到了80.0%, 超越了现有的 EfficientNet-B0/B1 和 MobileNetV3。该论文已被 NeurIPS 2020 接收。
从数亿数量级的神经网络结构中搜索出高性能的网络,是一个充满挑战但又令人向往的研究任务。正如深度学习变革了传统的手工图像特征设计,神经网络结构的设计也正在逐渐由手工设计转变为算法自动设计。
面对数以亿级的网络结构,将每一个可能的结构都训练收敛,并选择其中最好的结构是不现实的。在近期的神经网络设计研究中,一个被广泛使用的解决方法是先训练一个包含了所有可能结构的超网(hypernetwork),当测试某一个网络结构的性能时,直接继承超网训练后的参数。这样的做法省去了重新训练的时间,大大加快了网络搜索的速度。然而,虽然预训练超网的方法能够大幅度加速网络搜索,但因为很难对所有的路径(子模型)进行充分训练,所以其给出的结果往往不能真正体现出众多子网络正确的排序关系。
为了解决这一问题,微软亚洲研究院的研究员们提出维护一个优先路径组(prioritized path board)。也就是说,在训练超网的某一条路径时,使用元网络(meta-network)从组中选出一条性能较好的子网对其进行网络蒸馏(distillation),从而提升超网的收敛程度与性能。采用这种方式选出的网络在 ImageNet 上的分类准确率达到了80.0%, 超越了现有的 EfficientNet-B0/B1 和 MobileNetV3。该论文已被 NeurIPS 2020 接收。
基于优先路径的网络蒸馏
现有的超网训练方式多种多样,研究员们采用了简单有效的均匀采样单条路径(single-path uniform sampling strategy)作为基础,即每一次随机从超网中采一条路径进行训练。与之不同的是,在训练单条路径时,会从优先路径组中选出一条路径对其进行蒸馏,从而提升训练效果。