超越 EfficientNet与MobileNetV3,NeurIPS 2020 微软NAS方向最新研究

2023-11-15

编者按:随着深度学习的发展,神经网络结构的设计逐渐由手工设计转变为算法自动设计。在近期的神经网络设计(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)作为基础,即每一次随机从超网中采一条路径进行训练。与之不同的是,在训练单条路径时,会从优先路径组中选出一条路径对其进行蒸馏,从而提升训练效果。

图1:方法示意图,左侧为常规的蒸馏方法,即采用一个预训练的模型进行蒸馏,右侧为提出的基于优先路径的蒸馏方法。

优先路径组

优先路径组是由少量性能优异的路径构成的。超网训练会对优先路径组进行动态的维护,如果采样出来的网络在效果和复杂度上均优于有限路径组中的网络,那么就会将其替换到优先路径组中。不仅如此,维护这样一个优先路径组还使得超网训练结束后可以直接从中选取最优路径,从而节省以往方法在进行网络结构搜索时运用强化学习方法或进化算法(Evolution Algorithm)的时间。在选取优先路径时,可根据公式


进行选择,其中 代表元网络,代表网络最后一层输出的特征(logits),代表元网络所预测的两条路径的匹配程度。

知识蒸馏

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

其中  为正常的训练损失, 为蒸馏损失, 仍为前面所提到的匹配程度。

元网络

由于不同的子网结构差异可能非常之大,因此研究员们希望能够从优先路径组中选出最有助于子网训练的优先路径对其进行知识蒸馏。经过尝试,研究员们采用了元网络的技术,将采样路径和优先路径最后一层输出的特征差输入到元网络中,由元网络判断优先路径与采样路径的匹配程度。当训练元网络时,研究员们会在验证集上计算损失,通过匹配程度 进行梯度回传并更新元网络 

实验结果

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

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

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

除了图像分类任务外,研究员们还在物体检测任务上对算法进行了测试,结果如表2所示。可以看到,该模型同样能够泛化到物体检测任务上,在各种指标下都比已有模型有近1%的提升。

表2:基于优先路径蒸馏的网络结构搜索模型在物体检测任务上的表现

基于NNI工具接口的源码实现

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

参考资料:

[1] Hieu Pham, Melody Guan, Barret Zoph, Quoc Le, and Jeff Dean. Efficient neural architecture search via parameters sharing. In ICML, 2018

[2] Mingxing Tan and Quoc V. Le. Efficientnet: Rethinking model scaling for convolutional neural networks. In ICML, 2019

[3] Andrew Howard, Mark Sandler, Grace Chu, Liang-Chieh Chen, Bo Chen, Mingxing Tan, Weijun Wang, Yukun Zhu, Ruoming Pang, Vijay Vasudevan, et al. Searching for mobilenetv3. In ICCV, 2019.

[4] Zichao Guo, Xiangyu Zhang, Haoyuan Mu, Wen Heng, Zechun Liu, Yichen Wei, and Jian Sun. Single path one-shot neural architecture search with uniform sampling. In ECCV, 2020.

[5] Han Cai, Chuang Gan, Tianzhe Wang, Zhekai Zhang, and Song Han. Once for all: Train one network and specialize it for efficient deployment. In ICLR, 2020.

[6] Changlin Li, Jiefeng Peng, Liuchun Yuan, Guangrun Wang, Xiaodan Liang, Liang Lin, and Xiaojun Chang. Blockwisely supervised neural architecture search with knowledge distillation. In CVPR, 2020

[7] Jiahui Yu, Pengchong Jin, Hanxiao Liu, GabrielBender, Pieter-Jan Kindermans, Mingxing Tan, Thomas Huang, Xiaodan Song,Ruoming Pang, and Quoc Le. Bignas: Scaling up neural architecture search with big single-stage models. In ECCV, 2020.

[8] Hieu Pham, Qizhe Xie, Zihang Dai, and Quoc V Le. Meta pseudo labels. arXiv:2003.10580, 2020

[9] Hanxiao Liu, Karen Simonyan, and Yiming Yang. DARTS: Differentiable architecture search. In ICLR, 2019

END

备注:NAS

AutoML&NAS交流群

自动机器学习、神经架构搜索等技术,

若已为CV君其他账号好友请直接私信。

我爱计算机视觉

微信号:aicvml

QQ群:805388940

微博知乎:@我爱计算机视觉

投稿:amos@52cv.net

网站:www.52cv.net

在看,让更多人看到  

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

超越 EfficientNet与MobileNetV3,NeurIPS 2020 微软NAS方向最新研究 的相关文章

随机推荐

  • WebSocket -- 扫盲篇

    一 WebSocket是HTML5出的东西 协议 也就是说HTTP协议没有变化 或者说没关系 但HTTP是不支持持久连接的 长连接 循环连接的不算 首先HTTP有1 1和1 0之说 也就是所谓的keep alive 把多个HTTP请求合并为
  • 剑指 Offer 31. 栈的压入、弹出序列—思路和心得

    思路来自于 LeetCode力扣刷题 剑指Offer 31 栈的压入 弹出序列 哔哩哔哩 https b23 tv mvsIvAi import java util Stack class Solution 思路 模拟一个栈进行相应的弹出操
  • java实现冒泡排序

    冒泡排序 算法重复走访要排序的数列 一次比较两个元素 如果它们顺序错误就交换它们的位置 这样最大的数就到了最后 重复操作即可得到有序数列 冒泡排序算法运行 1 比较相邻的元素 如果第一个比第二个大 就交换他们两个 2 对每一对相邻元素作同样
  • STM32之flash的读写

    文章目录 一 创建STM32CUBEMX工程 二 KEIL下的配置 三 参考 一 创建STM32CUBEMX工程 芯片选择F103C8 配置定时器 打开外部时钟 配置时钟 配置PC13为output对应板子上的LED 设置堆栈大小为4K 导
  • Css Pc端默认样式(适用于大部分项目开发)

    5b8b 4f53 yh Microsoft Yahei body textarea input select option font size 14px color 333 font family Hiragino Sans GB Mic
  • C++期末作业翻牌消消乐小游

    C 期末作业翻牌消消乐小游戏 适合初学者学习使用 附答辩PPT和项目报告 详细情况请看下图 点我下载资源 点我下载资源
  • 前端追梦人CSS教程

    一 基础概念 1 1 什么是CSS 层叠样式表 英文全称 Cascading Style Sheets 是一种用来表现HTML 标准通用标记语言的一个应用 或XML 标准通用标记语言的一个子集 等文件样式的计算机语言 1 2 语法 选择器
  • 腾讯T3亲自教你,338页网易面经

    前言 19年6月份从网易云音乐离开 放弃了留学机会 开始了人生的第一次创业 前后尝试了两个项目 因为个人能力与时机因素都失败了 虽然没能享受到创业所能够带来高杠杆物质上的回报 但是对个人软技能和自我边界认知上都有了很大的提升 投递公司与拿到
  • ROS环境下大疆tello无人机源码安装&驱动代码解读

    大疆tello无人机是一款微小型无人机 可以支持多种开发模式 这里用的是ROS1的kinetic版本进行开发 参考文档来自http wiki ros org tello driver 1 kinetic下tello源码安装 打开终端 键入以
  • 开发 web 服务程序

    github 任务目标 熟悉 go 服务器工作原理 基于现有 web 库 编写一个简单 web 应用类似 cloudgo 使用 curl 工具访问 web 程序 对 web 执行压力测试 根据代码提示 按照cloud go应用 编写相应的W
  • 把WPS/Excel里的单元格为图片url链接转换为图片显示

    原始数据 步骤 可以创建新的一列作为显示图片用 修改下表格的单元格行高和行宽 这里有个技巧 我们点击下表格的左上角的三角符 再拉动行高 这样会自动修改每一个行高 我们准备给图片设置成50x50像素 大概也就是2cmx2cm 下面我们给B2里
  • 矩阵求导、几种重要的矩阵及常用的矩阵求导公式

    矩阵求导 几种重要的矩阵及常用的矩阵求导公式 Norstc的博客 CSDN博客
  • 服务器文件主从实时同步

    服务器列表 1 主 192 168 199 230 2 从 192 168 199 183 192 168 199 105 第一步 分别配置好SSH免登陆 参考 点这里 第二步 分别装好 rsync yum y install rsync
  • PDF颜色翻转以方便打印处理

    用于将黑色背景的pdf笔记转成白色背景 方便打印 使用到PyMuPDF库 pip install PyMuPDF 代码如下 import datetime import os from PIL import Image import PIL
  • <转>javascript之Object.assign()痛点

    最近也一直会用JavaScript 然后中间使用的一些组件 如Echarts 会有非常复杂的配置文件 而大部分配置可能都是一样的 所以想着写一份通用配置 然后 其他地方需要使用的时候 用这份配置深拷贝一份配置 然后在上面继续改 就如下 co
  • 独家

    转自 http nooverfit com wp E7 8B AC E5 AE B6 EF BD 9Cgan E5 A4 A7 E7 9B 98 E7 82 B9 EF BC 8C E8 81 8A E8 81 8A E8 BF 99 E4
  • 哈希密码的加盐强化

    点进来你就是我的人了博主主页 戳一戳 欢迎大佬指点 欢迎志同道合的朋友一起加油喔 目录 一 什么是哈希加密 二 哈希加密的问题 三 加盐哈希加密 四 Java中的加盐哈希加密实践 1 加盐加密代码实例 2 验证加盐加密的密码代码实例 五 M
  • (十一)python网络爬虫(理论+实战)——html解析库:BeautfulSoup详解

    系列文章 python网络爬虫专栏 目录 序言 本节学习目标 特别申明
  • yolov5目标检测多线程Qt界面

    上一篇文章 yolov5目标检测多线程C 部署 V1 基本功能实现 mainwindow h pragma once include
  • 超越 EfficientNet与MobileNetV3,NeurIPS 2020 微软NAS方向最新研究

    编者按 随着深度学习的发展 神经网络结构的设计逐渐由手工设计转变为算法自动设计 在近期的神经网络设计 Neural Architecture Search NAS 研究中 现有的方法存在一定缺陷 结果往往不能真正体现出众多子网络正确的排序关