Learning Dynamic Routing for Semantic Segmentation——在线动态定义网络结构

Paper Link: https://arxiv.org/abs/2003.10401

GitHub (PyTorch): https://github.com/yanwei-li/DynamicRouting

Introduction

  • 如何有效应对输入图像中目标尺度的差异与多样性,是语义分割面临的一个难题;
  • 传统的解法主要是设计良好的静态网络结构:
  1. FCN, U-Net, PSPNet, Conv-Deconv, SegNet等;
  • 针对特定场景与目标硬件,也可以通过NAS自动搜索有效的网络结构:
  1. Auto-DeepLab等;
  • 然而,单一、静态的网络结构,缺乏对真实世界中多样化尺度分布的良好适应能力;
  • 本文提出了动态路由方法 (dynamic routing):
  1. 推理时能够生成数据依赖路径,即网络结构会随着输入的变化而变化,以适应不同的目标尺度分布情况,从而在获得良好语义表征的同时、确保较高的执行效率;
  2. 类似于SuperNet、DARTS的结合与延伸,Dynamic Routing将超网络作为主体,根据实时输入数据生成网络结构参数,用于在线、动态地选择网络结构;
  3. 具体例子如下:

Dynamic Routing结构

  • Dynamic Routing的总体结构如上图所示,具体描述为:
  1. Stem Block:包含三个网络层(SepConv3x3),负责1/4降采样;
  2. Routing Space:
    1. 包含L个网络层,每层包含若干个cell,支持skip connection与multi-path routes;
    2. 相邻cell之间,降采样率或上采样率=2;
    3. 相比于输入,降采样率最高可达32,因此每个layer的cell数最多为4;
    4. 每个cell的输出,存在三条尺度变换路径,即:
      1. up-sampling:conv1x1+bilinear interpolation;
      2. down-sampling:conv1x1 with stride=2;
      3. keeping resolution;
    5. 在cell内部,会执行特征变换/聚合(feature aggregation)、与尺度变换路径选择操作;
  • Routing Process:
  1. 输入特征相加:将cell的多尺度输入特征予以相加:

  2. Cell操作与特征聚合:
    1. 基本的操作路径包括SepConv、与identity mapping,其中每条SepConv路径由若干SepConv3x3堆叠而成 (实验表示两个SepConv3x3堆叠,效果最好);
    2. 将不同操作路径的输出予以相加或聚合,获得Hidden state:

  3. Soft Conditional Gate:
    1. 每条尺度路径的选择概率,由Gate function生成;Gate function是轻量的、可微分的卷积操作模块:

    2. 归一化的选择概率、或激活因子,由生成,即;其中B表示batch size,数字3表示三条尺度变换路径都有各自的激活因子;
    3. 针对第j 条尺度变换路径 (),其输出特征可表示为:

      其中表示尺度变换操作 (up-sampling、keeping resolution或down-sampling);
  4. 综上所述,Routing Process可表示为:

    Learning Dynamic Routing for Semantic Segmentation——在线动态定义网络结构_第1张图片

    根据data-dependent激活因子的实际取值,能够支持cell drop、multi-path routes等dynamic routing,从而在线生成能够有效应对多样化尺度分布的动态网络结构。而一些经典的分割网络模型,其静态网络结构亦可从routing space抽取表示:

    Learning Dynamic Routing for Semantic Segmentation——在线动态定义网络结构_第2张图片

  5. 资源预算约束与训练loss:
    1. 考虑到每个操作的计算成本 (比如FLOPS),基于资源约束的loss function定义如下,其中C表示整个routing space的实际资源开销,表示衰减因子:

      Learning Dynamic Routing for Semantic Segmentation——在线动态定义网络结构_第3张图片

    2. 则训练时,结合资源约束的联合loss表示为:

Experiments

  • 数据集包括Cityscapes、PASCAL VOC;
  • 不同网络结构的对比:
  1. 经典静态网络:FCN-32s, U-Net, DeepLabV3, HRNetV2, and Auto-DeepLab;
  2. 从routing space采样的静态网络:

    Learning Dynamic Routing for Semantic Segmentation——在线动态定义网络结构_第4张图片

  3. Dynamic routing,Dynamic-A、B、C的资源约束 (FLOPS)分别为45G、55G、65G;
  4. 对比结果:

    Learning Dynamic Routing for Semantic Segmentation——在线动态定义网络结构_第5张图片

  • Cell操作对比:对比了BottleNeck、MBConv与SepConv,实验结果表明堆叠两个SepConv3x3作为特征变换,效果最好;
  • 激活因子生成函数:实验表明效果最好;
  • 在Cityscapes、PASCAL VOC上的实验结果:

你可能感兴趣的:(深度学习,动态网络结构,语义分割,机器学习,神经网络,深度学习)