ECCV 2020 Oral | 北大提出S2DNAS:动态推理网络搜索,加速推理,可转换任意网络!

2020 年 8 月 7 日 CVer

点击上方“CVer”,选择加"星标"置顶

重磅干货,第一时间送达

本文转载自:晓飞的算法工程笔记


S2DNAS最核心的点在于设计了丰富而简洁的搜索空间,从而能够使用常规的NAS方法即可进行动态推理网络的搜索,解决了动态推理网络的设计问题,可进行任意目标网络的转换  

论文: S2DNAS: Transforming Static CNN Model for Dynamic Inference via Neural Architecture Search

  • 论文地址:https://arxiv.org/abs/1911.07033v2

Introduction


  最近,动态推理作为提升网络推理速度的有效方法,得到了大量关注。相对于剪枝、量化等静态操作,动态推理能够根据样本的难易程度选择合适的计算图,可以很好地平衡准确率和计算消耗,公众号之前也发过一篇相关的Resolution Adaptive Networks for Efficient Inference,有兴趣可以看看。为了实现动态推理,大多数的工作都需要专门的策略来动态地根据输入样本跳过某些计算操作。

  一种经典的方法上在常规卷积网络上添加中间预测层,如图a所示,当中间预测结果的置信度大于阈值,则提前退出。但早期的分类器没有利用深层的语义特征(低分辨率的高维特征),可能会导致明显的准确率下降。

  为了解决上述问题,MSDNet设计了二维(Layer-Scale)多阶段架构来获取各层的粗粒度特征和细粒度特征,如图b所示,每个预测层都能利用深层的语义特征,可达到较好的准确率。然而,MSDNet是精心设计的专用网络结构,若需要转换其它目标网络,则需要重新设计类似的范式。

  为了解决上述问题且不需要重新设计网络结构,论文提议将目标网络转换成channel-wise多阶段网络,如图c所示。该方法保持目标网络的结构,在channel层面将目标网络分成多个阶段,仅在最后的卷积层添加预测器。为了降低计算量,每个阶段的channel数都相对减少。基于图c的思想,论文提出通用结构S2DNAS,能够自动地将目标网络转换成图c架构的动态网络。

Overview of S2DNAS


  给定目标网络,S2DNAS的转换流程如图2所示,主要包含两个模块:

  • S2D(static-todynamic),生成目标网络特定的搜索空间,由目标网络通过预设的转换方法生成的多阶段网络组成。
  • NAS,在生成的搜索空间中使用强化学习搜索最优的模型,设计了能够反映准确率和资源消耗的回报函数。

The Details of S2D


  给定目标网络 ,S2D生成包含由 转换的多个网络的搜索空间 ,如图3所示,转换过程包含split操作和concat操作:

  • split操作在channel层面上将目标网络分割成多阶段子网,在每个阶段最后添加分类器。
  • concat操作是为了增加阶段间的特征交互,强制当前阶段的分类器复用前面阶段的某些特征。

Notation

  首先定义一些符号,为第 层输入, 为输入维度, 为输出维度, ,转换操作的目标是将目标网络 转换成多阶段网络 阶段的分类器。

Split

  Split操作将输入维度的子集赋予不同阶段的分类器,假设阶段数为 ,直接的方法将输入维度分成 个子集,然后将 个子集赋予 个分类器,但这样会生成较大的搜索空间,阻碍后续的搜索效率。为了降低搜索空间的复杂度,论文先将输入维度分成多组,然后将组分成 个子集赋予不同的分类器。
  具体地,将输入维度分成 组,每组包含 维,以 层为例,分组为。当分组完成后,使用分割点标记分组的分配, 为两个特殊点,将维度分组分给 阶段的分类器

Concat

  Concat操作用于增加阶段间的特征交互,使得分类器能够复用前面阶段的特征。指示矩阵 用来表明不同位置的特征是否复用, 为层数, 为网络的深度,成员 表明是否在 阶段复用 阶段的 层特征。这里有两个限制,首先只能复用前面阶段的特征$m^{(k)}_{ij}=0, j<i, \forall="" k="" <="" l$,其次$l$层必须复用前面所有阶段的特征。<="" p="">

Architecture Search Space

  基于上面的两种转换操作,S2D可以生成包含丰富多阶段网络的搜索空间。不同分割点和指示矩阵有不同的意义,调整分割点能够改变分组特征的分配方式,从而改变不同阶段分类器在准确率和资源消耗上的trade-off,而调整指示矩阵则伴随特征复用策略的改变。为了降低搜索空间的大小,在实验时规定目标网络中相同特征大小的层使用相同的分割点和指示矩阵。

The Details of NAS


  在生成搜索空间后,下一个步骤就是找到最优的动态网络结构,搜索过程将网络 表示为两种转换的设置,并标记 为包含不同设置的空间。论文采用NAS常用的policy gradient based强化学习方法进行搜索,该方法的目标是优化策略 ,进而通过策略 得到最优的网络结构,优化过程可公式化为嵌套的优化问题:

是网络 的权值, 是用来生成转换设置的策略, 标记验证集和训练集, 为验证多阶段网络性能的回报函数。为了解决公式1的优化问题,需要解决两个子问题,根据 优化策略 和优化网络

Optimization of the Transformation Settings

  与之前的NAS方法类似(公众号有很多NAS的论文解读,可以去看看),使用RNN生成目标网络每层的不同转换设置的分布,然后policy gradient based算法会优化RNN的参数来最大化回报函数:

为准确率, 为动态推理的平均资源消耗。为了与其它动态推理研究比较,采用FLOPs表示计算消耗, 为平衡准确率和资源消耗的超参数。

Optimization of the Multi-stage CNN

  使用梯度下降来优化内层的优化问题,修改常规的分类损失函数来适应多阶段模型的训练情况:

为交叉熵损失函数,公式3可认为是连续训练不同阶段的分类器,可使用SGD及其变种进行参数 的优化。为了缩短训练时间,仅用几个训练周期来接近 ,没有完整地训练网络到收敛。训练完成后,在测试集进行回报函数的测试,优化RNN。最后选择10个搜索过程中最优的网络结构进行完整地训练,选择性能最好的网络结构输出。

Dynamic Inference of the Searched CNN

  对于最优的多阶段网络 后,在使用时为每个阶段预设一个阈值。按计算图依次进行多阶段推理,当该阶段的预测结果达到阈值时,则停止后续的推理,直接使用该阶段结果。

Experiments


  与多种类型的加速方法对比不同目标网络的转化后性能。

  与MSDNet进行DenseNet转换性能对比。

  不同目标网络转换后各阶段的性能对比。

  准确率与计算量间的trade-off。

  多阶段ResNet-56在CIFAR-10上的模型。

Conclustion


  S2DNAS最核心的点在于设计了丰富而简洁的搜索空间,从而能够使用常规的NAS方法即可进行动态推理网络的搜索,解决了动态推理网络的设计问题,可进行任意目标网络的转换。不过S2DNAS没有公布搜索时间,而在采用网络训练的时候仅用少量训练周期,没有列出验证训练方式和完整训练得出的准确率是否有偏差。此外,S2DNAS的核心是将静态网络转换成动态网络,如果转换时能够将静态网络的权值用上,可以更有意义,不然直接在目标数据集上搜索就好了,没必要转换。


下载1


在CVer公众号后台回复OpenCV书籍,即可下载《Learning OpenCV 3》书籍和源代码。注:这本书是由OpenCV发起者所写,是官方认可的书籍。其中涵盖大量图像处理的基础知识介绍,虽然API还是基于OpenCV 3.x,但结合此书和最新API,可以很好的学习OpenCV。



下载2


在CVer公众号后台回复:CVPR2020,即可下载CVPR2020 2020代码开源的论文合集

在CVer公众号后台回复:ECCV2020,即可下载ECCV 2020代码开源的论文合集


重磅!CVer-NAS 交流群成立


扫码添加CVer助手,可申请加入CVer-NAS 微信交流


同时也可申请加入CVer大群和细分方向技术群,细分方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch和TensorFlow等群。


一定要备注:研究方向+地点+学校/公司+昵称(如NAS+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群


▲长按加微信群


▲长按关注CVer公众号

整理不易,请给CVer点赞和在看

登录查看更多
0

相关内容

专知会员服务
51+阅读 · 2020年7月16日
【CVPR2020-北京大学】自适应间隔损失的提升小样本学习
专知会员服务
85+阅读 · 2020年6月9日
【CVPR2020】视觉推理-可微自适应计算时间
专知会员服务
13+阅读 · 2020年4月28日
【ICLR2020-】基于记忆的图网络,MEMORY-BASED GRAPH NETWORKS
专知会员服务
110+阅读 · 2020年2月22日
语义分割中的Attention和低秩重建
极市平台
37+阅读 · 2019年9月1日
图像超分辨率网络:RCAN
极市平台
7+阅读 · 2019年8月18日
CVPR2019 oral | CPNet : 对应提议网络
极市平台
4+阅读 · 2019年6月17日
【泡泡点云时空】PointConv: 3D点云的深度卷积网络
泡泡机器人SLAM
23+阅读 · 2019年6月12日
谷歌提出MorphNet:网络规模更小、速度更快!
全球人工智能
4+阅读 · 2019年4月20日
【泡泡一分钟】基于视频修复的时空转换网络
泡泡机器人SLAM
5+阅读 · 2018年12月30日
行人对齐+重识别网络(论文解读)
极市平台
7+阅读 · 2017年10月11日
Arxiv
9+阅读 · 2020年2月15日
SlowFast Networks for Video Recognition
Arxiv
4+阅读 · 2019年4月18日
Arxiv
12+阅读 · 2018年9月5日
Arxiv
19+阅读 · 2018年6月27日
Arxiv
8+阅读 · 2018年3月20日
VIP会员
相关VIP内容
相关资讯
语义分割中的Attention和低秩重建
极市平台
37+阅读 · 2019年9月1日
图像超分辨率网络:RCAN
极市平台
7+阅读 · 2019年8月18日
CVPR2019 oral | CPNet : 对应提议网络
极市平台
4+阅读 · 2019年6月17日
【泡泡点云时空】PointConv: 3D点云的深度卷积网络
泡泡机器人SLAM
23+阅读 · 2019年6月12日
谷歌提出MorphNet:网络规模更小、速度更快!
全球人工智能
4+阅读 · 2019年4月20日
【泡泡一分钟】基于视频修复的时空转换网络
泡泡机器人SLAM
5+阅读 · 2018年12月30日
行人对齐+重识别网络(论文解读)
极市平台
7+阅读 · 2017年10月11日
相关论文
Arxiv
9+阅读 · 2020年2月15日
SlowFast Networks for Video Recognition
Arxiv
4+阅读 · 2019年4月18日
Arxiv
12+阅读 · 2018年9月5日
Arxiv
19+阅读 · 2018年6月27日
Arxiv
8+阅读 · 2018年3月20日
Top
微信扫码咨询专知VIP会员