• 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$,第$k$个分类器的输出如公式1,$ heta_k$为分类器对应的子网参数,部分参数是分类器间共享的,$p_c^kin [0, 1]$为$c$类别置信度。

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

    Overall Architecture

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

    Network Details

    • Initial Layer

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

    • Sub-networks with Different Scales

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

    • Transition layer

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

    • Classifiers and loss function

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

    Resolution and Depth Adaptation

      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

    参考内容



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

    work-life balance.

  • 相关阅读:
    【WinAPI】User32.dll注释
    Unity 用ml-agents机器学习造个游戏AI吧(1) (Windows环境配置)
    Unity C#笔记 容器类
    Unity C#笔记 委托/事件/Action/Func/Lambda表达式
    Unity C#笔记 协程
    游戏AI之模糊逻辑
    游戏AI之路径规划
    游戏设计模式——黑板模式
    游戏AI之决策结构—行为树
    游戏AI之感知
  • 原文地址:https://www.cnblogs.com/VincentLee/p/12813010.html
Copyright © 2020-2023  润新知