RANet : 分辨率自适应网络,效果和性能的best trade-off | CVPR 2020

基于对自适应网络的研究,论文提出了自适应网络RANet(Resolution Adaptive Network)来进行效果与性能上的取舍,该网络包含多个不同输入分辨率和深度的子网,难易样本的推理会自动使用不同的计算量,并且子网间的特征会进行融合,从实验结果来看,在性能和速度上取得了很不错的trade-off

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

论文: Resolution Adaptive Networks for Efficient Inference

Introduction


  深度CNN带来了性能提升的同时也带来了过高的计算量,许多研究放在了如何进行网络加速上面,其中比较直接的是根据样本难易程度进行自动调整的自适应网络。基于对自适应网络的研究,论文提出了自适应网络RANet(Resolution Adaptive Network),思想如图1所示,网络包含多个不同输入分辨率和深度子网,样本先从最小的子网开始识别,若结果满足条件则退出,否则继续使用更大的子网进行识别,子网的特征不是独有的,下一级别的子网会融合上一级别的子网特征,从实验来看,论文在效果和性能上取得了很不错的trade-off。

Method


Adaptive Inference Setting

  构建包含K个分类器的自适应模型,对于输入图片 x x ,第 k k 个分类器的输出如公式1, θ k \theta_k 为分类器对应的子网参数,部分参数是分类器间共享的, p c k [ 0 , 1 ] p_c^k\in [0, 1] c c 类别置信度。

  自适应网络根据图片的复杂程度动态选择合适的计算分支,即若当前分类器的输出达到预期,则退出,论文采用softmax输出的置信度来进行判断,如公式2和公式3所示

Overall Architecture

  RANet的整体结构如图2所示,包含初始层(Initial Layer)和 H H 个对应不同分辨率的子网,每个子网包含多个分类器。具体流程先使用初始层获得不同分辨率的特征图,然后使用最低分辨率的子网进行预测,如果子网没有获得可靠的结果,则使用下一个分辨率稍大的子网进行预测,重复直到获得可靠的结果或者到达最大分辨率子网。
  在重复迭代预测的过程中,高分辨率层会融合低分辨率层的特征。尽管RANet已经在初始层对图片进行了从细​粒度到粗粒度的处理,子网仍然会继续对其进行下采样,直到特征图大小为 s = 1 s=1 scale(表示初始层产生的最小分辨率),分类器只加在最后几个特征图大小 s = 1 s=1 scale的block上。

Network Details

  • Initial Layer

  初始层用于生成 H H 个基础特征,特征有 S S 个尺寸,图2的初始层包含3个不同尺寸的特征,第一个特征通过Regular-Conv层产生,后面的特征通过Strided-Conv层产生

  • Sub-networks with Different Scales

  Sub-network 1处理分辨率最低的特征图 x 0 1 , 1 x_0^{1,1} ,使用图3(a)的 l l 层regular Dense Blocks,每层的输出 x i 1 , 1 x_i^{1,1} 都将传递到Sub-network 2中
  输入大小为 s s scale的Sub-network h h ( h > 1 h>1 )处理基础特征 x s , h x^{s,h} ,并且使用图3(b,c)的Fusion Blocks来融合自Sub-network ( h 1 h-1 )的特征,包含两种类型,一种为图3b的保持特征图大小的类型,另一种为图3c的降低特征图大小类型。对于低维特征的上采样视当前特征的大小使用Up-Conv(Regular-Conv+Bilinear interpolation)或Regular-Conv,对于前后特征也会进行连接,具体结构细节见图3。
  对于输入为 s s scale的Sub-network h h 的建立如下:假设 h h 子网包含 b h b_h blocks,block 1至 block b h 1 ( b h 1 < b h ) b_{h-1}(b_{h-1} < b_{h}) 为Fusion Blocks,特征会下采样 s s 次,保证输出的特征图为 s = 1 s=1 scale进行分类,剩余的block为regular Dense Blocks。

  • Transition layer

  RANet也使用了DeseNet稠密的transition layer,具体为 1 × 1 1\times 1 卷积+BN+ReLU,为了简单没有在图2体现

  • Classifiers and loss function

  分类器加在每个子网的后几个block中,在训练阶段,样本会按顺序传给所有的子网,最终的损失是每个分类器计算交叉熵损失加权累积,具体逻辑和权重跟MSDNet一样

Resolution and Depth Adaptation

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hm4oEdg9-1585622934488)(http://upload-images.jianshu.io/upload_images/20428708-f0db318f53dd94a9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

  RANet的整体结构和MSDNet十分类似,论文与其进行了对比,MSDNet的分类器放到分辨率最低的路径中,如果中间的分类器没有得到符合预期的结果,则会进行下一步全部尺寸的推理预测。而RANet则是从低尺寸到高尺寸逐步使用不同的子网进行推理预测,这样的方式能更好地自适应结合深度和分辨率。

Experiments


Anytime Prediction

  限制单图的计算量FLOPs,直接记录自适应网络中所有分类器的性能以及其计算量进行对比

Budgeted Batch Classification

  限制一批图片的资源总量,需要根据资源总量设定阈值来控制推理的提前退出,记录自适应网络的性能以及对应的资源限制

Visualization and Discussion

  图7展示了RANet识别的一些样例,easy为前阶段的分类器能识别成的样本,hard为前阶段识别失败,但后阶段能识别成功的样本,主要的挑战为多目标、小目标和类间特征不明显的物体

Conclusion


  基于对自适应网络的研究,论文提出了自适应网络RANet(Resolution Adaptive Network)来进行效果与性能上的取舍,该网络包含多个不同输入分辨率和深度的子网,难易样本的推理会自动使用不同的计算量,并且子网间的特征会进行融合,从实验结果来看,在性能和速度上取得了很不错的trade-off

参考内容

  • MSD: Multi-Self-Distillation Learning via Multi-classifiers within Deep Neural Networks - http://arxiv.org/abs/1911.09418



如果本文对你有帮助,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】

work-life balance.