Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >只需搜一次的NAS算法: Once-for-all

只需搜一次的NAS算法: Once-for-all

原创
作者头像
marsggbo
修改于 2021-07-26 02:26:40
修改于 2021-07-26 02:26:40
1.3K0
举报

1. 介绍

论文:https://arxiv.org/abs/1908.09791

GitHubhttps://github.com/mit-han-lab/once-for-all

早期的NAS算法大都是针对某一个具体的硬件平台做模型搜索。换句话说,对于新的平台则需要重新搜索,这样既耗时又耗资源。所以这篇文章(简称OFA)的主要目的是只需要搜索一次就能为不同的平台找到合适的模型结构,所以论文名字取为 Once for All。

2. 搜索空间

OFA采用的也是权重共享的搜索策略,Supernet结构基于MobileNet的设计。

整个搜索空间(如Figure 2)主要包含三大块:

  • Depth (D):Supernet可以看成是由多个Block组成的结构,而每个Block包含不同数量的layers,即为深度(Depth),论文中每个Block的layer数量搜索范围是 4,3,2
  • Width (W):每个layer可以理解成是一个inverted residual module,其通道数由expand ratio控制,即为宽度(Width),论文中每个layer的expand ratio搜索范围是 6,4,3
  • Kernel size (K):这个很好理解,就是卷积核大小。论文中搜索范围是 7,5,3
  • OFA还额外搜索了不同分辨率的ImageNet数据输入,这可不会对模型结构有什么影响,只不过能提高模型对不同大小的数据的泛化能力

OFA中的Supernet由5个block组成,而每个block的搜索空间大小是 S_i=(3\times3)^2+(3\times3)^3+(3\times3)^4,所以整个搜索空间大小为 S=\prod_1^5S_i\approx2\times10^{19}

3. 搜索策略

再强调一遍,OFA的目的希望是只做一次搜索,之后就可以根据这个搜索的结果自动去找适合于指定平台的模型结构。

形式化的数学表达如下:

\min {W{o}} \sum{a r c h{i}} \mathcal{L}{\text {val }}\left(C\left(W{o}, \operatorname{arch}_{i}\right)\right)

说人话就是 让所有候选架构在验证集上的结果都尽可能的好,即最小化所有架构的期望损失函数之和。

但是搜索空间非常大,不可能遍历所有模型,所以一个很naive的思路是是通过随机采样的方式来近似优化。但是如何采样确实很有门道的,OFA就提出了 渐进式收缩 (progressive shrinking, PS)的采样策略.

其实,PS 这个策略其实也很符合直觉,我们看Figure 2,它把整个训练过程划分成多个phases:

  1. Full Network:首先就是训练最大的模型,即每个Block由4个layer组成,每个layer的通道expand ratio设置为6,kernel size设置为7。这个模型会作为Teacher net来做知识蒸馏。这一过程使用32个GPU训练了180个epoch,batch size为2048,使用初始学习率是2.6的SGD优化器。
  2. Elastic Kernel Size:之后固定D和W,搜索K,每次只采样一个模型。训练了125个epoch,初始学习率是0.96,其余参数和phase-1一样
  3. Elastic Depth:固定W,搜索D和K。这个phase又划分成了两个stage:
    1. stage-1:D的搜索范围是 4, 3,训练了25个epoch,学习率是0.08
    2. stage-2: D的搜索范围是 4, 3, 2,训练了125个epoch,学习率是0.24
  4. Elastic Width:同时搜索D,K,W。类似Phase-3,这个过程也分成了两个stage,不再赘述。

4. 算法实现细节

4.1 搜索Kernel Size

卷积核大小搜索范围是 3,5,7,在算法实现层面其实是共用一个7X7的卷积核,而要得到5X5的卷积核,OFA的做法是先截取中间的5X5的矩阵,然后把这个矩阵展开成一维向量,长度为25,然后再通过一个25X25的可学习的矩阵得到新的5X5的卷积核。3X3的卷积核的处理办法类似,不过是基于变换后的5X5卷积再做变换得到的。

4.2 搜索Depth

上图中的Unit可以理解成Supernet中的一个Block,所有Block初始化都是由4个layer组成。

在搜索depth的时候,假如搜索的结果是3,那么最后一个layer就不会参与计算。(如上图第二个unit所示)

4.3 搜索Width

宽度的搜索其实就是通道数的搜索,OFA提出的策略是根据L1norm计算每个通道的重要性,然后对这些通道排序,最重要的排前面。比如总共有10个通道,某一时刻搜索的结果是只需要5个通道,那么就会对这个10个通道做排序,只用前5个通道做计算。我有试过这种策略,一旦对通道权重重新排序后,模型性能就会崩掉了,不过具体是我复现的代码有问题还是其他问题就没有细究了。

5. 实验结果

微信公众号:AutoML机器学习

https://pic3.zhimg.com/80/v2-87083e55cd41dbef83cc840c142df48a_720w.jpeg
https://pic3.zhimg.com/80/v2-87083e55cd41dbef83cc840c142df48a_720w.jpeg

MARSGGBO♥原创

如有意合作或学术讨论欢迎私戳联系~

邮箱:marsggbo@foxmail.com

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
论文解读 Once for all: Train One Network and Specialize it for Efficient Deployment
早期的NAS算法大都是针对某一个具体的硬件平台做模型搜索。换句话说,对于新的平台则需要重新搜索,这样既耗时又耗资源。所以这篇文章(简称OFA)的主要目的是只需要搜索一次就能为不同的平台找到合适的模型结构,所以论文名字取为 Once for All。
marsggbo
2021/07/27
9430
【神经网络搜索】Once for all
【GiantPandaCV导语】Once for all是韩松组非常有影响力的工作,其最大的优点是解耦了训练和搜索过程,可以直接从超网中采样出满足一定资源限制的子网,而不需要重新训练。该工作被ICLR20接收。
BBuf
2021/07/01
4520
【神经网络搜索】Once for all
【AI系统】EfficientNet 系列
本文主要介绍 EfficientNet 系列,在之前的文章中,一般都是单独增加图像分辨率或增加网络深度或单独增加网络的宽度,来提高网络的准确率。而在 EfficientNet 系列论文中,会介绍使用网络搜索技术(NAS)去同时探索网络的宽度(width),深度(depth),分辨率(resolution)对模型准确率的影响。以及如何加速训练推理速度。
用户11307734
2024/12/05
3080
单路径NAS: 在四小时内设计出给定硬件内最有效的网
这篇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的准确率。
小白学视觉
2022/09/28
4390
进阶版OFA算法:CompOFA: Compound Once-for-all Networks
这篇论文(简称CompOFA)主要是基于 Once for all: Train One Network and Specialize it for Efficient Deployment 论文的改进,其主要的改进就是把原来OFA的搜索空间简化,带来的好处有
marsggbo
2021/07/24
7980
进阶版OFA算法:CompOFA: Compound Once-for-all Networks
Retiarii:微软在NAS框架上的新动作,已被顶会OSDI2020接收
神经网络架构搜索(NAS, Neural Architecture Search)俨然成为目前最热门的AI研究方向之一,它的目的是让算法去找到最优的模型结构,将人们从繁琐的调参和试错中解救出来。如果你对NAS技术还不太熟悉,建议你参考阅读一下我之前的文章AutoML综述。
marsggbo
2021/05/14
9210
论文笔记系列--MnasNet:Platform-Aware Neural Architecture Search for Mobile
MnasNet的目的很简单就是设计出表现又好,效率又高的网络。在介绍之前简单回顾一下现有的一些提高网络效率的方法:
marsggbo
2020/01/22
1.4K0
论文笔记系列--MnasNet:Platform-Aware Neural Architecture Search for Mobile
ICCV 2021 | BossNAS: Exploring Hybrid CNN-transformers with Block-wisely Self-supervised NAS
BossNAS整体的的训练方式和DNA不太一样,在DNA里,学生网络每个block彼此之间的训练是独立开来的,比如学生网络 的输入是教师网络 的输出,然后使用知识蒸馏(MSE loss)来使得学生网络的输出尽可能和教师网络输出保持一致。BossNAS认为这样会使得搜到的子网和教师网络高度相关,即搜索结果是带有bias的。
marsggbo
2021/12/27
4490
ICCV 2021 | BossNAS: Exploring Hybrid CNN-transformers with Block-wisely Self-supervised NAS
论文笔记系列--MnasNet:Platform-Aware Neural Architecture Search for Mobile
MnasNet的目的很简单就是设计出表现又好,效率又高的网络。在介绍之前简单回顾一下现有的一些提高网络效率的方法:
marsggbo
2020/06/12
4920
FBNet/FBNetV2/FBNetV3:Facebook在NAS领域的轻量级网络探索 | 轻量级网络
论文: FBNet: Hardware-Aware Efficient ConvNet Design via Differentiable Neural Architecture Search | CVPR 2019
VincentLee
2021/06/02
1.5K0
BERT和GAN咋压缩,且看咱PaddleSlim新利器—— OFA
目前在深度学习领域,一方面需要追求更高的性能,采用强大、复杂的模型网络和实验方法;另一方面又需要关注如何将算法更稳定、高效地在硬件平台上落地。复杂的模型固然展现更好的性能,但过高的存储空间需求和计算资源消耗,是影响在各硬件平台上的落地的重要原因之一。尤其在NLP领域,以BERT、GPT为代表的预训练模型规模越来越大。
用户1386409
2021/04/20
6920
BERT和GAN咋压缩,且看咱PaddleSlim新利器—— OFA
NAS-ViT | 超低FLOPs与Params实现50FPS的CPU推理,精度却超越ResNet50!!!
在中小型网络架构上,ViT的性能仍低于CNN,特别是与经过神经架构搜索(NAS)高度优化的CNN架构,如AlphaNet, FBNetV3等相比。
集智书童公众号
2022/05/26
1.7K0
NAS-ViT | 超低FLOPs与Params实现50FPS的CPU推理,精度却超越ResNet50!!!
【深度学习】后ResNet时代的顶流EfficientNet
其实,我对于EfficientNet流派的网络是排斥的,暴力搜索的方法看起来跟创新背道而驰,总觉得不太光彩,这对于深度学习的良性发展会产生一定的负面影响,EfficientNet可能是这个算力爆炸时代的必经之路吧,对工业界来说还是有一定的可取之处的。
黄博的机器学习圈子
2021/04/16
2.1K0
【深度学习】后ResNet时代的顶流EfficientNet
GPUNet | 英伟达打造最强轻量化模型,让你享受高精度、高速度的同时简单部署
长期以来,神经网络的进展已经与实际部署脱离。深度学习的研究人员致力于发明新的构建块,而DL工程师在现实任务中部署这些构建块,煞费苦心地重新组合它们,以找到满足设计要求的架构。
集智书童公众号
2022/05/26
1.4K0
GPUNet | 英伟达打造最强轻量化模型,让你享受高精度、高速度的同时简单部署
论文笔记系列--Progressive Differentiable Architecture Search:Bridging the Depth Gap between Search and Eva
进来有很多种NAS技术相继提出,主要有基于强化学习的,基于进化算法的,还有基于梯度下降的,不同算法有不同优缺点。本文的PDARTS就是基于梯度下降的,其实看名字也能知道它其实是对DARTS的改进算法。
marsggbo
2020/06/12
7250
[CVPR2021] AttentiveNAS: Improving Neural Architecture Search via Attentive Sampling
该篇论文(AttentiveNAS)聚焦的是Two-stage NAS,比较出名的算法有 BigNAS,Once-for-all NAS (OFA), SPOS等等,不过他们都采用的uniform的采样去训练Supernet,即把所有的子网一视同仁,尽可能分配相等的采样机会。Two-stage NAS算法通常包含如下两个步骤:
marsggbo
2022/05/11
7650
[CVPR2021] AttentiveNAS: Improving Neural Architecture Search via Attentive Sampling
RepLKNet:不是大卷积不好,而是卷积不够大,31x31卷积了解一下 | CVPR 2022
论文: Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs
VincentLee
2022/03/21
8830
RepLKNet:不是大卷积不好,而是卷积不够大,31x31卷积了解一下 | CVPR 2022
AutoML综述更新 【AutoML:Survey of the State-of-the-Art】
下面是整个AutoML的pipeline,全文也是围绕这个pipeline对AutoML技术做了回顾和总结。
marsggbo
2020/07/13
9210
AutoML综述更新 【AutoML:Survey of the State-of-the-Art】
APQ:联合搜索网络架构、剪枝和量化策略
本文提出APQ,以便在资源受限的硬件上进行有效的深度学习推理。与以前分别搜索神经体系结构,修剪策略和量化策略的方法不同,本文以联合方式优化它们。为了应对它带来的更大的设计空间问题,一种有前途的方法是训练量化感知的准确性预测器,以快速获得量化模型的准确性,并将其提供给搜索引擎以选择最佳拟合。但是,训练此量化感知精度预测器需要收集大量量化的<model,precision>对,这涉及量化感知的微调,因此非常耗时。为了解决这一挑战,本文建议将知识从全精度(即fp32)精度预测器转移到量化感知(即int8)精度预测器,这将大大提高采样效率。此外,为fp32精度预测器收集数据集只需要通过从预训练的 once-for-all 网络中采样就可以评估神经网络,而无需任何训练成本。ImageNet 上的大量实验证明了联合优化方法的好处。与MobileNetV2 + HAQ 相比,APQ 以相同的精度将延迟降低2倍,能耗降低1.3倍。与单独的优化方法(ProxylessNAS + AMC + HAQ )相比,APQ可提高ImageNet精度2.3%,同时减少GPU数量级和CO2排放量,从而推动了绿色AI在环保方面的前沿。
AI异构
2021/01/07
1.5K0
论文笔记系列--P-Darts
进来有很多种NAS技术相继提出,主要有基于强化学习的,基于进化算法的,还有基于梯度下降的,不同算法有不同优缺点。本文的PDARTS就是基于梯度下降的,其实看名字也能知道它其实是对DARTS的改进算法。
marsggbo
2020/01/23
5760
推荐阅读
论文解读 Once for all: Train One Network and Specialize it for Efficient Deployment
9430
【神经网络搜索】Once for all
4520
【AI系统】EfficientNet 系列
3080
单路径NAS: 在四小时内设计出给定硬件内最有效的网
4390
进阶版OFA算法:CompOFA: Compound Once-for-all Networks
7980
Retiarii:微软在NAS框架上的新动作,已被顶会OSDI2020接收
9210
论文笔记系列--MnasNet:Platform-Aware Neural Architecture Search for Mobile
1.4K0
ICCV 2021 | BossNAS: Exploring Hybrid CNN-transformers with Block-wisely Self-supervised NAS
4490
论文笔记系列--MnasNet:Platform-Aware Neural Architecture Search for Mobile
4920
FBNet/FBNetV2/FBNetV3:Facebook在NAS领域的轻量级网络探索 | 轻量级网络
1.5K0
BERT和GAN咋压缩,且看咱PaddleSlim新利器—— OFA
6920
NAS-ViT | 超低FLOPs与Params实现50FPS的CPU推理,精度却超越ResNet50!!!
1.7K0
【深度学习】后ResNet时代的顶流EfficientNet
2.1K0
GPUNet | 英伟达打造最强轻量化模型,让你享受高精度、高速度的同时简单部署
1.4K0
论文笔记系列--Progressive Differentiable Architecture Search:Bridging the Depth Gap between Search and Eva
7250
[CVPR2021] AttentiveNAS: Improving Neural Architecture Search via Attentive Sampling
7650
RepLKNet:不是大卷积不好,而是卷积不够大,31x31卷积了解一下 | CVPR 2022
8830
AutoML综述更新 【AutoML:Survey of the State-of-the-Art】
9210
APQ:联合搜索网络架构、剪枝和量化策略
1.5K0
论文笔记系列--P-Darts
5760
相关推荐
论文解读 Once for all: Train One Network and Specialize it for Efficient Deployment
更多 >
交个朋友
加入AI趋势交流群
追踪大模型新动态 探索多模态应用场景
加入腾讯云技术交流站
洞悉AI新动向 Get大咖技术交流群
加入CloudBaseAI生成专属群
AI生成式应用探索 专属技术答疑空间
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档