FBNet/FBNetV2/FBNetV3:Facebook在NAS领域的轻量级网络探索 | 轻量级网络

本文介绍FBNet系列轻量级网络,该系列基于NAS方法。FBNet结合DNAS与资源约束;FBNetV2加入channel和输入分辨率搜索,增加搜索空间;FBNetV3用准确率预测进行快速网络结构搜索,还将训练参数纳入搜索。各版本逐步改进,解决现有搜索方法的问题。

FBNet系列是完全基于NAS方法的轻量级网络系列,分析当前搜索方法的缺点,逐步增加创新性改进,FBNet结合了DNAS和资源约束,FBNetV2加入了channel和输入分辨率的搜索,FBNetV3则是使用准确率预测来进行快速的网络结构搜索

来源:晓飞的算法工程笔记 公众号

FBNet


论文: FBNet: Hardware-Aware Efficient ConvNet Design via Differentiable Neural Architecture Search | CVPR 2019

Introduction

  近期卷积网络的设计除了注重准确率之外,还需要兼顾运行性能,特别是在移动设备上的运行性能,这使得卷积神经网络的设计变得更加难,主要有以下难点:

  • Intractable design space,由于卷积网络参数很多,导致设计空间十分复杂,目前很多方法提出自动化搜索,能够简化人工设计的流程,但这种方法一般需要大量的算力。
  • Nontransferable optimality,卷积网络的性能取决于很多因素,比如输入分辨率和目标设备,不同的分辨率需要调整不同的网络参数,而相同block在不同的设备上的效率也可能大不相同,所以需要对网络在特定的条件下进行特定的调优。
  • Inconsistent efficiency metrics,大多数效率指标不仅与网络结构相关,也和目标设备上的软硬件设置有关。为了简化,很多研究都采用硬件无关的指标来表示卷积的效率,比如FLOPs,但FLOPs并不能总等同于性能,还跟block的实现方式相关,这使得网络的设计更加困难。

  为了解决以上问题,论文提出FBNet,使用可微神经网络搜索(DNAS)来发现硬件相关的轻量级卷积网络,流程如图1所示。DNAS方法将整体的搜索空间表示为超网,将寻找最优网络结构问题转换为寻找最优的候选block分布,通过梯度下降来训练block的分布,而且可以为网络每层选择不同的block。为了更好的估计网络的时延,预先测量并记录了每个候选block的实际时延,在估算时直接根据网络结构和对应的时延累计即可。

Method

  DNAS将网络结构搜索问题公式化为:

  给定结构空间 A \mathcal{A} A,寻找最优的结构 a ∈ A a\in \mathcal{A} aA,在训练好权值 w a w_a wa后,可以满足最小化损失 L ( a , w a ) \mathcal{L}(a, w_a) L(a,wa),论文主要集中于3个因素:搜索空间 A \mathcal{A} A、考虑实际时延的损失函数 L ( a , w a ) \mathcal{L}(a, w_a) L(a,wa)以及高效的搜索算法。

  • The Search Space

  之前的方法大都搜索单元结构,然后堆叠成完整的网络,但实际上,相同的单元结构在不同的层对网络的准确率和时延的影响是大不相同的。为此,论文构造了整体网络结构(macro-architecture)固定的layer-wise搜索空间,每层可以选择不同结构的block,整体网络结构如表1所示,前一层和后三层的结构是固定的,其余层的结构需要进行搜索。前面的层由于特征分辨率较大,人工设定了较小的核数量以保证网络的轻量性。

  layer-wise搜索空间如图3所示,基于MobileNetV2和ShuffleNet的经典结构设计,通过设定不同的卷积核大小 K K K(3或5)、扩展率 e e e以及分组数来构造成不同的候选block。若block的输入和输出分辨率一致,则添加element-wise的shortcut,而若使用了分组卷积,则需要对卷积输出进行channel shuffle。

  论文的实验包含9种候选block,每种block的超参数如表2所示。另外,还有skip结构,直接映射输入到输出,用来缩短整体网络的深度。总体而言,整体网络包含22个需要搜索的层,每层从9个候选block中选择,共有 9 22 9^{22} 922种可能的结构。

  • Latency-Aware Loss Function

  公式1中的损失函数不仅要反映准确率,也要反应目标硬件上的时延。因此,定义以下损失函数:

C E ( a , w a ) CE(a, w_a) CE(a,wa)表示交叉熵损失, L A T ( a ) LAT(a) LAT(a)表示当前结构在目标硬件上的时延, α \alpha

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值