DRNet:Learning Dynamic Routing for Semantic Segmentation

DRNet不同以往的静态网络结构,而是使用了一种Gate函数控制在路由空间动态选择路径,以便能寻找出最适合尺度的网络结构,总的来说,该结构网络固定,但是使用的路径是根据输入来定

什么是 DRNet ?

  • DRNet-20230408142930
  • 近年来,大量手工设计和基于搜索的网络被用于语义分割,希望在预定义的静态网络结构中处理不同规模的输入。在本文中,作者研究了一种缓解语义表示中尺度差异的新方法——动态路由(dynamic routing) ,该方法根据图像的尺度分布,来生成与数据相关的路由
  • 在推理过程中,动态路由能够生成与数据相关的路径,这意味着特定的网络结构随输入而变化。通过这种方法,具有不同尺度的实例可以分配到相应的分辨率模块。如上图所示,具有不同尺度分布的输入图像将选择不同的路径进行特征变换。本文研究侧重于语义表征,旨在克服尺度的差异,提高网络效率
  • 在动态路由方面,作者设计了一种依赖于输入数据的门,称为软条件门(soft conditional gate) ,用于根据输入图像选择每条路径。通过提出的路由门,每个基本单元以及分辨率转换路径都可以基于每个数据样本来单独考虑。因此,所提出的路由门构造成了一个可微模块,用于端到端优化。考虑到有限的计算预算,贡献较小的单元将被动态丢弃

DRNet 的网络结构?

  • DRNet-20230408142930-1
  • 输入:网络的起点是一个固定的3层“STEM”块 ,将分辨率降低到1/4
  • Routing Space:设计了一个带有 L 层的空间,称为路由空间 。在路由空间中,相邻 cell 之间的比例因子被限制为2。因此,最小尺度设置为1/32。在这些约束条件下,每个层中的候选数量最多为4个,即1/4,1/8,1/16和1/32。每个候选模块中最多有3条尺度变换路径,即上采样 、保持分辨率 和下采样。在每个候选模块中,cell 用于特征聚合,而 gate 用于路径选择。逐层向上采样模块被固定在网络末端,用于生成预测

DRNet 的Routing Process

  • DRNet-20230408142930-1
  • 给定多个节点的路由空间,作者在每个节点内分别采用一个 celll 和一个对应的 gate 来聚合多尺度特征,以及进行路由路径的选择。给定上一层不同尺度的输出 Ys/2l1,Ysl1,Y2sl1\mathbf{Y}_{s/2}^{l-1},\mathbf{Y}_{s}^{l-1},\mathbf{Y}_{2s}^{l-1},第 l 层的输入可以表示为Xsl=Ys/2l1+Ysl+Y2sl1\mathbf{X}_{s}^{l}=\mathbf{Y}_{s/2}^{l-1}+\mathbf{Y}_{s}^{l}+\mathbf{Y}_{2s}^{l-1},聚合的输入将用于在 Cell 和 Gate 内部进行特征转换
  • Cell Operation:在 Cell 中,对于输入 XslRB×C×W×H\mathbf{X}_{s}^{l}\in\mathbb{R}^{B\times C\times W\times H},作者使用卷积和残差连接,其中,隐藏状态 HslRB×C×W×H\mathbf{H}^{l}_{s}\in\mathbb{R}^{B\times C\times W\times H} 可以表示如下,其中 O 代表操作,包括卷积和残差链接。然后是激活因子 αl\alpha^l,生成的特征变换到不同尺度

    Hsl=OiOOi(Xsl)\mathbf{H}^{l}_{s}=\sum\limits_{O^{i}\in\mathcal{O}}O^{i}\left(\mathbf{X}^{l}_{s}\right)

  • Soft Conditional Gate:每条路径的路由概率由 Gate 函数生成,作者在 Gate 函数采用了轻量级的卷积来学习一个基于输入的向量 GslG_s^l,其中,F (⋅,⋅)代表卷积操作,σ代表 ReLU 激活函数,N 和 G 分别代表 BatchNorm 和 GlobalPooling。ω,β代表了卷积的参数

    Gsl=F(ωs,2l,G(σ(N(F(ws,1l,Xsl)))))+βsl\mathbf{G}_s^l=\mathcal{F}\left(\omega_{s,2}^l,\mathcal{G}\left(\sigma\left(\mathcal{N}\left(\mathcal{F}\left(w_{s,1}^l,\mathbf{X}_s^l\right)\right)\right)\right)\right)+\beta_s^l

  • 动态选择通路:为了获得每条路径的概率,作者对得到的特征 GslRB×3×1×1\mathbf{G}_{s}^{l}\in\mathbb{R}^{B\times3\times1\times1} 采用了激活函数δ,因此,激活因子 αslRB×3×1×1\alpha_{s}^{l}\in\mathbb{R}^{B\times3\times1\times1} 可通过 δ(Gsl)\delta(G_s^l) 计算得到,其值域为[0,1]。当 iαsjl=0\mathrm{i}\alpha_{s\rightarrow j}^{l}=0 时,那么尺度 s 到 j 的路径将会被关闭;否则,路径保留

    δ()=max(0,Tanh())\delta(\cdot)=\max(0,\operatorname{Tanh}(\cdot))

  • 总结:通过 Gate 生成的 αslRB×3×1×1\alpha_{s}^{l}\in\mathbb{R}^{B\times3\times1\times1} 控制下一层的路径,即将聚合特征 Hsl\mathbf{H}^{l}_{s} 往那个路径传

DRNet 是运行时确定结构?还是运行前?如果是运行时,如何确保推理结构固定?

  • DRNet-20230408142930-1
  • 在运行时确定模型结构,不是提前确定的,包括推理时,也不是固定的
  • 总结:模型整体结构是固定的,但是前向计算时没有走所有通路

DRNet 的损失函数?

  • DRNet 除了除了考虑目标任务的损失,还增加计算资源的约束,其中 LN 和 LC 分别表示目标任务的损失函数和限制计算资源的损失函数。λ1和λ2分别用于平衡网络预测和计算成本的优化过程

    L=λ1LN+λ2LC\mathcal{L}=\lambda_1\mathcal{L}_\mathrm{N}+\lambda_2\mathcal{L}_\mathrm{C}

参考资料:
安全验证 - 知乎