论文:https://arxiv.org/abs/2003.08866
代码:https://github.com/zdaxie/SpatiallyAdaptiveInference-Detection
这个论文的关键词是动态网络。如下图所示,动态网络目标是可以对 简单 和 困难 的样本分别 采用不同的网络进行推理。对于简单样本采用小网络,对于困难样本采用大网络,这样可以有效降低计算中的冗余。
这篇论文就是研究动态网络,只对输入feature map部分特征进行卷积,其余部分特征可以通过预测来生成,从而有效减少计算量。论文的整体架构如下图所示,包括两个步骤:
- 第一步:生成 sample mask M M M,采样一部分点,只在采样的点上进行卷积;
- 第二步:feature map 上剩余的点,通过插值来生成。
第一步里,如何生成 M M M 矩阵是一个关键问题,最简单的方法就是定义一个阈值,大于阈值的点就是显著点,很多方法都是这么做的(下图左列所示)。但是作者认为,这样选出来的点,还会存在冗余,因为距离近的点,特征是相似的,还可以再少取一些(sparse sampling)。因此,作者提出使用 Gumbel-Softmax distribution 生成矩阵 M M M。(具体可以参考作者论文,这里不再多说)
第二步里,如何插值生成新的 feature map 是很关键的,作者在局部窗口内,用采样元素加权来计算未采样元素的值。加权方法可以有三种方法,Average pooling, conv, 和 RGF kernel ,作者也利用实验进行了选择。
在实际应用中,可以将 3x3 卷积层替换为这个方法,在ResNet中应用时,有三种方式,三个卷积共用一个 mask ,计算效率最高,但效果最差。经过实验,作者最终选择下图中第二个方案。