Skipnet: Learning Dynamic rounting in convolutional network

Skipnet: Learning Dynamic rounting in convolutional network

Abstract: uses a gating network to selectively skip connectional blocks based on the activations of the previous layer.

Dynamic skipping problem

顺序决策的背景下制定动态跳跃问题,并提出一种混合学习算法,该算法结合了监督学习和强化学习,以应对不可微分跳过决策的挑战。

1. Introduction

Deeper networks are more accurate

大多数图像不需要网络深度加倍,并且最佳深度取决于输入图像。

在本文中,我们引入了SkipNets(参见图1),它是带有门控单元的修改后的残余网络,可以动态选择在推理过程中应跳过卷积神经网络的哪些层。我们将动态跳过问题构建为顺序决策问题,其中先前层的输出用于决定是否绕过后续层。然后,动态跳过问题的目标是跳过尽可能多的层,同时保持整个网络的准确性。跳过政策不仅可以显着降低模型推理的平均成本,而且还可以洞察单个层的收益和作用递减。

Skipnet: Learning Dynamic rounting in convolutional network

强化学习效应也不是那么好

Gating module to each group of layers.Gating module maps the previous layer activations to the binary decision to skip or execute the subsequent layer.We train the gating module in two stages.

First,we use a softmax relaxation of the binary skipping decisions by adopting the reparameterization trick,and train the layers and gates jointly with stangard cross entropy loss used by the orignal model.Then,we treat the probabilistic gate outputs as an initial skipping poily and use reinforce to refine the poily without relaxation.

 

2. Related work

加速现有卷积网络

Skipnet不会提前退出,而是根据前进层的输出有条件的绕过单个层,我们会议更高的准确性来衡量成本权重。

 

3. Skipnet model design

SkipNets是卷积网络,其中针对给定输入选择性地包括或排除各个层。 每个输入的层选择是使用插入层之间的小门控网络完成的。 门控网络将前一层或一组层的输出映射到二进制决策,以执行或绕过后续层或层组,如图2所示。

Skipnet: Learning Dynamic rounting in convolutional network

 

Skipnet: Learning Dynamic rounting in convolutional network

解决精度和计算成本之间的权衡,我们探索了一系列门控网络设计。

门控网络设计需要具有足够的表现力,以准确地确定跳过哪些层,同时计算上也便宜。 为了解决精度和计算成本之间的这种权衡,我们探索了一系列门控网络设计(第3.1节),其中包括前馈卷积架构,以及具有不同程度参数共享的循环网络。 在任何一种情况下,估算门控网络参数都会因离散门决策和最大化精度和最小化成本的竞争目标而变得复杂。 为了学习门控网络,我们引入了一个两阶段训练算法,该算法将监督预训练(第3.3节)与基于策略优化(第3.2节)结合使用混合奖励函数,该函数将预测精度与计算成本相结合。

 

3.1 Gating network Design

FFGate-1

FFGate-11

RNNGate

Skipnet: Learning Dynamic rounting in convolutional network

3.2 Skipping policy learning with Hybrid RL

在推理期间,最可能的动作取自每个门编码的概率分布:跳过或执行该层。 这种固有的离散且因此不可区分的决策过程为我们训练SkipNets的方式带来了独特的挑战。类似于公路网[27]中使用的自然近似,将是在训练期间使用可微分的软最大决策,然后在推理期间恢复到硬判决。虽然这种方法可以实现基于梯度的训练,但由于网络参数在推理期间未针对随后的硬门控进行优化,因此导致预测准确性较差(第4.3节)。 因此,我们探索使用强化学习来学习不可微分决策过程的模型参数。

3.3 Supervised Pre-training

   Skipnet: Learning Dynamic rounting in convolutional network

 

CNN为了追求精度,层数提升已经很多,但层次带来的精度编辑提升却不断减小,或者对某些输入的图片而言,真正所需的layers并非那么多,只有一些真正模糊、特征不明显、即使人看上去也比较难分辨的图片才需要较多的layers处理最终得到能分别其类别的表达特征。

 

Skipnet以此假设出发,通过在传统CNN的每个layer上设置判断其是否需要执行的Gate module来决定是否需要真的执行此层计算,若判断为否则直接将activation feature maps传入到下一层,越过当下层运算不做。有效的节省了传统CNN在部署时进行推理工作的时间。

 

对于每一层操作而言,SkipNet可表示为:xi+1 = GiFi(xi)+(1-Gi)xi。其中xi和Fi(xi)分别表示第ith layer的输入与输出feature maps;Gi ∈{0,1} 为第ith layer的Gate函数。

 

对于此处的Gate函数,作者实验了两种不同的表示方法。Paper中SkipNet基于的CNN网络为Resnet,其中Gate即可以被独立地添加在各个Residual block上面作为单独的个体,有着不同的参数即Feed-forward Gate;还可以所有的Residual blocks复用一个Gate module即Recurrent Gate。

 

Gate module 设计

Feed-forward Gate

FFGate-1:  Maxpool(2*2) – Conv(3*3,1) – Conv(3*3,2) – AvgPool – FC

计算量约为residual block的19%,在论文中主要用于一些较浅的网络(层数小于100)

FFGate-11: Conv(3*3,2) – Avgpool – FC

计算量约为residual block的12.5%,主要用于较深的网络(层数大于100)

Recurrent Gate

RNNGate: AvgPool – Conv(1*1) – LSTM(10 hidden units) – FC

计算量约为residual block的0.04%,首选Gate 函数,在深层次网络中它相对于feed-forward gate有较大的性能与分类精度优势,只是在较浅的城市上它精度略低,但计算开销仍有较大优势。

 

使用Hybrid Rl的skipping policy学习

目标函数

Skipnet: Learning Dynamic rounting in convolutional network

反向传播也包括两部分:表示学习分类精度的额监督学习损失,第二部分是要接合RL最终学习出来的反映计算节省的skip learning policy.

Skipnet: Learning Dynamic rounting in convolutional network