前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >单路径NAS: 在四小时内设计出给定硬件内最有效的网

单路径NAS: 在四小时内设计出给定硬件内最有效的网

作者头像
小白学视觉
发布于 2022-09-28 02:54:50
发布于 2022-09-28 02:54:50
4000
举报

写在最前面

这篇paper[Single-Path NAS: Designing Hardware-Efficient ConvNets in less than 4 Hours]是2019年4月在arxiv上的新文章,来自CMU、微软和哈工大,论文提出了Single-Path NAS,将搜索时间从200 GPU时降低至4 GPU时,同时在ImageNet上达到了74.96% top-1的准确率。

概述

目前网络结构搜索(NAS)的解决方案已经逐渐从强化学习,演变算法转至基于梯度的方案,并取得了很好的效果.然而,NAS问题由于需要巨大的组合设计空间,导致需要很长的搜索时间(至少200 GPU-hours).为了缓解这个问题,作者提出了Single-Path NAS,一个硬件有效的新颖的可微分NAS方法,在四小时内搜索出效率最高的网络结构.

最终的contribution如下:

  1. Single-path search space: 和之前的可微分NAS方法相比, Single-Path NAS使用一个single-path的超参数化(over-paramerterized)的卷积网络来编码所有的架构可能性,同时有共享的卷积核参数.因此能够急剧地减少需要训练的参数和搜索所需要的epoch数量;
  2. Hardware-efficient ImageNet classification: 在ImageNet上达到了74.96%的top-1分类准确率,同时在Pixel 1手机上的延迟是79ms,达到了state-of-the-art的结果;
  3. NAS efficiency: 搜索消耗仅仅需要8 epochs(30 TPU-hours), 比之前的方法快了5,000倍
  4. Reproducibility: 开放了源码,地址在: https://github.com/dstamoulis/single-path-nas

之前的multi-path NAS的低效性: 当前的NAS方法放松找到最优结构的联合优化问题为一个operation/path的选择问题. 首先,构建一个多path的supernet,然后对于每个layer,每个候选的操作作为一个分离的可训练的path添加,如上图左所示.然后NAS解决multi-path supernet的path分布来寻求到最优的架构.

一个最直观的限制就是: 在搜索的过程中随着每层layer的候选操作的数目的线性增加,可训练参数的数量也需要维持和更新,这样就引起显存爆炸的问题.目前的解决方案比如在proxy数据集上搜索, 或者在搜索过程中只更新multi-paths的一个子集(比如ProxylessNAS).然而,他们的方法仍然非常耗时,至少需要200GPU-hours.

如上图右所示,在这篇文章中主要的insight是观测到在NAS中不同的候选的卷积操作可以看成是一个过参数化(over-parameterized)的单独的"superkernel"的子集。这个观测就允许把NAS组合问题看成是找到在某一层中kernel weights子集的问题。通过卷积核的参数共享,就能把所有候选的NAS operations编码成一个单独的"superkernel"中.

2.方法部分

手机卷积网络搜索空间: 一个全新的视角

2.1

网络的搭建基础是MobileNetV2.整个网络的搭建使用7个Block,每个Block中包含4个MBConv.每个MBConv由一个point-wise(1x1)卷积,一个kxk卷积核一个线性1x1卷积组成.除非这个layer是下采样的,否则都会加上残差连接.

每一个MBConv layer由k和e两个参数决定,其中k表示depthwise conv的kernel size,e表示第一个1x1卷积的输出和输入的ratio.除此之外,也有 skip-op "layer",即直接将两个1x1卷积相连.

上面也提到过,在这篇文章中主要的insight是观测到在NAS中不同的候选的卷积操作可以看成是一个过参数化(over-parameterized)的单独的"superkernel"的子集。这个观测就允许把NAS组合问题看成是找到在某一层中kernel weights子集的问题。这个观测十分重要,因为它允许在不同的MBConv架构选择中共享kernel参数.如图所示,把所有候选的NAS操作编码到单独的"singlekernel"中,换句话说,single path而不是multi-path.

提出的方法: Single-Path NAS表达

2.2

不失一般性,给出了如下的例子,对于MBConv Layer中3x3和5x5的kernel的选择,可以看成:3x3的卷积核权重可以看成是5x5卷积核权重除去"outer"shell的剩余部分(如上图左).因此可以写成如下公式:

其中1(.)表示编码了NAS架构选择的指示函数(3x3 or 5x5).

为了将这种表示转为可训练的参数,作者提出使用潜在变量来控制决定(e.g. 一个阈值)是否选择kernel 5x5.值得注意的是,阈值的选择并非手动设置而是作为可训练参数由梯度下降法学到.特别地,为了计算阈值的梯度,将指示函数放松到了sigmoid函数.

对于expansion ratio和skip-op,同样也可以看成在channel数量维度上的"zeroing"操作,加上'skip-op' path,整个可以形式化到如下式子:

Single-Path VS. Existing Multi-Path

2.3

单路径NAS和多路径NAS的比较分为以下几个方面:

  • 参数方面:

在多路径NAS如(DARTs)中,参数量包括所有path网络本身的参数和架构搜索编码参数,参数量非常巨大;而单路径NAS直接用一个superkernel表示了网络的参数.参数量瞬间减小了许多.

  • 优化方面:

之前的多路径NAS采用迭代优化的方式(优化网络本身的参数和架构结构参数),存在bi-level优化的难题,而单路径NAS需要优化的仅仅是“superkernel”的权重,至于一些上述的变量,都是来自于权重的.因此,这样的优化是非常有效的.

硬件特定的可微分运行损失

2.4

对于现在网络在不同硬件设备上的延时,可以通过在训练过程中加入一项延时正则,来使用梯度下降一起联合优化.

其中,CE表示交叉熵损失,R表示在特定硬件平台上的NAS搜索出的模型运行时间(ms),lamda为平衡两个loss的系数.

3.实验部分

实验在Google Pixel 1手机上作为目标平台,使用Tensorflow实现,最终的效果在ImageNet上达到了74.96% top-1的准确率(手机上inference时间小于80ms),并且搜索时间和之前的方法对比大大降低.比ProxylessNAS搜索耗时快了25倍,比MnasNet快了5000倍,比FBNet快了11倍.在搜索的过程中,仅仅需要8个epoch.

下图是搜索过程中CE和R的可视化曲线.

也可视化出了最终model的可视化结构.

4.总结

目前为止,基于梯度的NAS可以分成单路径和多路径两种方案,目前来看,单路径的NAS确实在搜索效率和显存占用情况要大大优于多路径NAS.除此之外,本文提到的方法不仅仅可以适用于基于梯度的NAS,也同样可以迁移到基于强化学习和演变算法等的网络结构搜索解决方案中.

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-06-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小白学视觉 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
考研竞赛每日一练 day 6 利用幂级数性质积分和求导关系求解和函数
利用幂级数性质积分和求导关系求解和函数 求幂级数 \displaystyle \sum_{n=1}^{\infty}\dfrac{(-1)^{n}x^{2n+1}}{n(2n-1)} 的和函数 【分析】:首先根据幂级数的收敛域的定义确定收敛域,再先提取 x ,先对函数求积分,利用性质,先求和再积分,最后还原即可,另外,端点值再单独讨论。 【解析】:根根收敛域的定义,可以直接求出收敛域为 [-1,1] ,设原幂级数的和函数为 S(x) , S(x)=x\displaystyle \sum_{n=1}^{\in
用户9628320
2022/11/23
4590
每日一练6.13
解;根据\ln(1+x)0时,所以\ln(\frac{n+1}{n})=\ln(1+\frac{1}{n})<\frac{1}{n}
用户9628320
2022/11/23
3580
每日一练6.14
好了,今天的题目就到这里了,主要就是求收敛域的几种判别法,注意多加练习,一般根据不同的类型选择不同的方法,再进行讨论。有问题欢迎留言。
用户9628320
2022/11/23
3400
大学生数学竞赛非数专题一(2)
专题一 函数与极限 (2) 1.2 竞赛题精彩讲解 1.2.2 利用四则运算求极限 例1.3 (江苏省2008数学竞赛题) 当 a,b 满足什么条件时,有 \displaystyle\underset{x \rightarrow\infty}{\lim}\frac{ax+2|x|}{bx-|x|}\arctan x=-\frac{\pi}{2} 解:分左右极限,当 x\rightarrow+\infty 时,原式 =\displaystyle\underset{x\rightarrow-\infty}{
用户9628320
2022/11/23
4540
大学生数学竞赛非数专题一(3)
有问题的可以找小编,前面四个题目均是应用夹逼定理来做题,后面两个是关于单调有界来做题。
用户9628320
2022/11/23
4260
大学生数学竞赛非数专题三(5)
专题三 一元积分学 (5) 3.5 变限积分的应用 知识点:变限积分的几个公式 3.14 (南京大学1995年竞赛题) 求 \displaystyle\underset{x\rightarrow \infty}{\lim}\sqrt{x}\int_{x}^{x+1}\frac{dt}{\sqrt{t+\sin t+x}} . 解:根据积分的放缩,有 \displaystyle\int_{x}^{x+1}\dfrac{dt}{\sqrt{t+\sin t+x}}\leq \int_{x}^{x+1}\df
用户9628320
2022/11/23
4060
考研(大学)数学 积分(7)
今天基础篇讲的均是广义积分的敛散性 基本知识:敛散判别法,一种是存在下瑕点,一种是区间无穷。总共分为四个定理。
用户9628320
2022/11/23
4310
考研竞赛每日一练 day 11 一道微分方程加上幂级数拆分以及应用的综合题
【分析】:(1)由原函数与函数的关系,将原等式关系可以变成函数的微分方程,后面利用三角函数的周期性可以解出;(2)收敛域根据定义求,和函数采用裂项拆分成两个幂级数的和,再利用马克劳林公式求和即可。
用户9628320
2022/11/23
2990
考研数学综合题5
的表达式,但是直接积分是求不出来的,可以采用累次积分,后面根据函数展开成幂级数,对比对应项即可求解。
用户9628320
2022/11/23
3810
考研(大学)数学 极限与连续(2)
的重要极限,虽然直接看不出来,但是可以观察凑出来。再用等价无穷小。接着对分子有理化,同时乘以一个公因式
用户9628320
2022/11/23
4930
matlab习题 —— 符号运算相关练习
一、题目 1. 计算下列极限 (1) \lim\limits_{x \to 0}\frac{\sqrt{1+x}-\sqrt{1-x}}{\sqrt[3]{1+x}-\sqrt[3]{1-x}} (2) \lim\limits_{x \to 0}(\frac{3x+2}{3x-1})^{2x-1} (3) \lim\limits_{x \to 0}(\frac{1}{x^2}-\frac{1}{\sin^2x}) (4) \lim\limits_{x \to 0}(\frac{\pi}{2}-
繁依Fanyi
2023/05/07
4910
matlab习题 —— 符号运算相关练习
非数竞赛专题三(5)
非数专题三 一元积分学 (5) 3.5 变限积分的应用 知识点:变限积分的几个公式 3.14 (南京大学1995年竞赛题) 求 \underset{x\rightarrow \infty}{\lim}\sqrt{x}\int_{x}^{x+1}\frac{dt}{\sqrt{t+\sin t+x}} . 解:根据积分的放缩,有 \int_{x}^{x+1}\frac{dt}{\sqrt{t+\sin t+x}}\leq \int_{x}^{x+1}\frac{dt}{\sqrt{x-1+x}}=\fra
用户9628320
2022/11/23
4430
武忠祥老师每日一题|第356 - 367题
对于没有 抽象函数 在的极限,我们的手段就很多了,这里既可以 拆项 做,也可以 洛必达
一只野生彩色铅笔
2022/09/20
9160
大学生数学竞赛非数专题四(5)
专题四 多元函数积分学 (5) 4.5 曲线积分的计算 ---- 4.14 (江苏省2016年竞赛题) 设 \varGamma 为曲线 y=2^x+1 上从点 A(0,2) 到点 B(1,3) 的一段弧,试着求曲线积分 \displaystyle \int_{\varGamma}e^{xy}(1+xy)dx+e^{xy}x^2dy 【解析】:可以采用曲线积分与路径无关或者直接计算法 【法一】:记 P=e^{xy}(1+xy) , Q=e^{xy}x^2 , \dfrac{\partial Q}{\par
用户9628320
2022/11/14
4260
武忠祥老师每日一题|第224 - 239题
先考虑一下 交换积分次序 的手段,能否解决这个问题(答案是显然的,因为积分域是一个三角形)
一只野生彩色铅笔
2022/09/20
8270
考研(大学)数学 极限与连续(1)
的进行比较,或者直接将两个式子相除,直接进行极限的计算。首先对含参数的积分式子进行分析,发现当
用户9628320
2022/11/23
3360
考研(大学)数学 积分(4)
积分(5) 基础 设 f\left( x \right) 连续,且 \underset{x\rightarrow 0}{\lim}\frac{f\left( x \right)}{x}=2 ,求 \underset{x\rightarrow 0}{\lim}\dfrac{\displaystyle\int_0^x{f\left( x-t \right) dt}}{x-\ln \left( 1+x \right)} 解:令 x-t=m , \displaystyle \int_0^x{f\left( x
用户9628320
2022/11/23
4370
考研(大学)数学 极限与连续(4)
解题思路:一般给出递推数列的极限问题一般就是用单调有界准则去做去做,证明有界可采用放缩法,此题使用数学归纳法比较好,数学归纳先假设,先假设
用户9628320
2022/11/23
2960
每日一练5.30
今天的题目就到这里了,主要利用积分的计算方法,直角坐标和极坐标,注意应用的条件,一般带有绝对值的函数求
用户9628320
2022/11/23
4370
考研竞赛每日一练 day 22 一道级数证明题(幂级数展开和求幂级数的和的应用)
分析:思路一:左边往右边证明,将函数幂级数展开,利用积分和求导关系证明;思路二:从右边往左边证明,求幂级数的和函数,同样利用积分和求导关系。
用户9628320
2022/11/23
5210
推荐阅读
相关推荐
考研竞赛每日一练 day 6 利用幂级数性质积分和求导关系求解和函数
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档