Squeeze-and-Excitation Networks(SENet)

论文原文

  http://arxiv.org/abs/1709.01507

摘要

  CNN的核心操作是卷积操作,之前的很多工作都关注如何加强空间上的编码能力。本文更关注的是通道之间的关系,并且提出了一个新的结构单元。称之为”压缩奖惩”单元。它能够通过对channel间的相互依赖性明确建模,来自适应地校准通道间的特征响应。SE模块可以直接应用在任何卷积网络上来提升性能。

引言

  假设变换F将输入X映射称特征图U,首先对U进行压缩的操作,通过在空间上组合特征图生成一个channel descriptor,作用是生成通道间特征响应间全局分布的一个embedding,使得全局接受域的信息被每一层所使用。之后是奖惩操作,使用的是自动门控技术(sigmoid)的形式,接收embedding作为输入,输出一系列每层通道的调和权重。这些权重应用在U上,来生成SE模块的输出,这个输出可以直接输送给网络的后续层。

压缩奖惩模块

  
  压缩奖惩模块如图所示,卷积操作Ftr将X(H’×W’×C’)映射成U(H×W×C),设V=[V1,V2,…,VC]表示卷积核,卷积输出为U=[u1,u2,…,uC],则:
\displaystyle u_c=v_c * X=\sum_{s=1}^{C^{\prime}} v_c^s * x^s
  其中*表示卷积操作。
  压缩(全局信息嵌入,即图中的Fsq)。使用的是全局平均值池化,统计值z由U在空间维度上压缩得出。z的第c个元素可以由下式计算:
\displaystyle z_{c}=F_{s q}(u_{c})=\displaystyle\frac{1}{H \times W} \sum_{i=1}^{H} \sum_{j=1}^{W} u_{c}(i, j)
  奖惩(自适应校准)。要得到各个channel的权重,需要设计一个函数,它需要满足:

 1. 能够拟合非线性
 2. 不互相排斥,因为要突出多个channel的作用,不能像one-hot一样只突出一个。

  文中使用的是一个简单的门控机制,可以表示为:
\displaystyle s=F_{e x}(z, W)=\sigma(g(z, W))=\sigma(W_{2} \delta(W_{1} z))   其中σ表示sigmoid函数,δ表示relu函数,W1是形状为\frac{C}{r}×C的参数,W2是形状为C×\frac{C}{r}的参数,这样就形成了一个衰减率为r的瓶颈(C \rightarrow \displaystyle\frac{C}{r} \rightarrow C),这样一些重要的channels就会被突出。
  重新调节后的U可以表示为:
\displaystyle\widetilde x_{c}=F_{s c a l e}(u_{c}, s_{c})=s_{c} u_{c}
  即乘以各自的权重。