Paper | Spatially Adaptive Computation Time for Residual Networks

Paper | Spatially Adaptive Computation Time for Residual Networks,第1张

Paper | Spatially Adaptive Computation Time for Residual Networks

目录

  • 摘要
  • 故事
  • SACT机制
    • ACT机制
    • SACT机制
  • 实验

发表在2017年CVPR。


摘要

在图像检测任务中,对于图像不同的区域,我们可以分配不同层数的网络予以处理。


本文就提出了一个基于ResNet的层数可调网络,可以端到端训练、确定的(deterministic)并且是问题不可知的(problem-agnostic),即可用于其他计算机视觉任务。


作者发现,该网络不仅能提高ResNet计算效率,而且其表现也与人类的注意力机制相符,如图1。


故事
  • DCNN被广泛应用于各种计算机视觉问题,并且逐渐成为SOTA方法必不可少的组分 =>

  • 然而,DCNN最大的问题在于其计算负担重 =>

  • 一种自然的方法是像人类一样,采取注意力机制 =>

  • 例如,glimpse-based注意力模型只处理少数重点区域。


    显然这种方法不适用于图像转换问题或逐像素预测问题,如分割。


    并且,预测重点区域需要额外的子网络或启发过程[1] =>

  • 除此之外,我们还可以采取空域软注意力模型。


    但它们压根不会节省计算量,反而可能增加计算量(计算权值) =>

  • 为此,我们采用最近用于RNN的ACT(Adaptive Computation Time)[12]机制。


    我们将展示:ACT可以动态决策ResNet的层数 =>

  • 进一步,我们提出空域自适应的计算时间算法SACT,可以根据空域计算量完成ACT。


    在COCO上的实验证明:SACT超过了ACT和非适应算法。


SACT机制

SACT是一个可以端到端训练的结构。


其将注意力机制融入ResNet。


它学习的是一种确定性的决策模式:若特征变得足够好,那么某个空域位置上的计算就将停止。


由于SACT会在图像和特征图之间保持对齐(maintains the alighment),因此SACT适用于逐像素预测任务。


ACT机制

ResNet由多个Residual block组成,而每一个block内有多个residual unit。


每一个unit就是一个\(F(x) = x + f(x)\)函数,其中后者是一个3层卷积:首先是1x1卷积降通道数,然后3x3卷积通道尺寸不变,最后是1x1卷积还原通道数。


为了实现ACT,作者在每个unit的输出端都加入一个分支,预测停止得分(halting score):一个在0、1之间的标量。


如图3,该得分会在一个block内累积。


当累积至1时,推导就停止,后面的unit都会被跳过。


并且,根据这个得分,我们还可以计算剩余得分R,以及最终的停留成本ponder cost(见2.1节)。


最终的输出也是前面特征的加权求和,权值就是各unit得分。


为什么要这么设计呢?因为我们通过惩罚这个停留成本,可以让网络尽早停止(ponder cost惩罚经过的unit数量),同时又能得到可靠的输出(最终输出是各unit的加权求和)。


该ponder cost会被加权,然后计入总损失函数。


注意,每个block内都会单独执行一次ACT。


具体而言,该停止得分是通过一个简单的线性方程得到的。


其先对输入平均池化,然后输入线性方程,经sigmoid输出。


SACT机制

上面的ACT机制,是对每一个unit设计了一个停止得分,然后不断累加。


在这里,SACT就是对空域特征设计了停止得分,如图4。


如果某个位置被停止,那么其将直接复制(相当于设置残差为0),从而继续完成下一次卷积。


实验

看图很有意思。


停留成本高,说明该区域需要经过较长推理,很难节省计算量。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/586990.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-12
下一篇 2022-04-12

发表评论

登录后才能评论

评论列表(0条)

保存