SENet

SENet

在本文中,我们研究了网络设计的另一个方面——通道之间的关系。我们引入了一个新的架构单元,我们称之为Squeeze-and-Excitation(SE)块,目的是通过显式模拟其卷积特征通道之间的相互依赖关系来提高网络产生的representations的质量。为此,我们提出一种机制,允许网络执行特征重新校准,通过这种机制,它可以学习使用全局信息,有选择地强调有用的特征,并抑制不太有用的特征。

SE构件的结构如图1所示。

SENet

对于任意给定的变换 FtrF_{tr}(如卷积) 将输入X映射到特征U,其中 URH×W×CU \in R^{H \times W \times C} ,我们可以构造一个相应的SE块来进行特征重新校准。特征U首先通过挤压(squeeze)操作,通过对其空间维度(H×W)的特征图进行聚合,生成channel descriptor。descriptor的功能是产生一个全局分布的channel-wise特征响应的嵌入,使网络的全局receptive field的信息能够被网络的所有层使用。aggregation之后是excitation操作,它采用简单的a simple self-gating mechanism的形式,将嵌入作为输入,并产生每个通道的modulation weights的集合。这些权重被应用到特征图U上,以产生SE块的输出,而SE块的输出可以直接反馈到网络的后续层中。

3 SQUEEZE-AND-EXCITATION BLOCKS

Squeeze-and-Excitation块是一个计算单元,它可以建立在转换映射 FtrF_{tr} 输入 XRH×W×CX\in R^{H'\times W'\times C'} 到特征映射 URH×W×CU\in R^{H \times W\times C} 的基础,在接下来的符号中我们把 FtrF_{tr} 看作卷积运算符,用 V=[v1,v2,...,vC]V=[v_1,v_2,...,v_C] 表示所学习的filter kernels集,其中vcv_c为第c个滤波器的参数。我们可以把输出写出U=[u1,u2,...,uC]U=[u_1,u_2,...,u_C]

uc=vcX=Σs=1Cvcsxsu_c = v_c*X = \Sigma^{C'}_{s=1}v^s_c*x^s

这里*代表卷积,vc=[vc1,vc2,...,vcC]v_c=[v_c^1,v_c^2,...,v_c^{C'}]X=[x1,x2,...,xC]X=[x^1,x^2,...,x^{C'}]ucRH×Wu_c\in R^{H\times W}vcsv_c^svcv_c的单个通道的一个二维空间核,作用于X的相应通道。为了简化符号,省略了偏置项。由于输出是通过所有通道的总和产生的,所以通道依赖关系隐式地嵌入在vcv_c中,但与filters捕获的本地空间相关性纠缠在一起。由卷积建模的通道关系本质上是隐式的和局部的(除了最顶层的那些)。我们期望通过显式地对通道相关性建模来增强对卷积特性的学习,从而使网络能够增加对可由后续转换利用的信息特性的敏感性。因此,我们希望为其提供全局信息的访问,并分两步重新校准过滤器的响应。squeeze 和 excitation,在它们被送入下一个转换之前,SE块的结构示意图如图1所示。

3.1 Squeeze: Global Information Embedding

每一个学过的滤波器都在局部接受场中运行,因此,每一个变换输出单元U都无法利用该区域以外的上下文信息。

为了缓解这个问题,我们建议将全局空间信息压缩到一个通道descriptor中。这是通过使用全局平均池化来生成按channel-wise的统计数据来实现的。形式上是一个统计量zRCz\in R^C 是通过U的空间维数H X W来缩小U,从而得到z的第c个元素,计算方法为:

zc=Fsq(uc)=1H×WΣi=1HΣj=1Wuc(i,j)z_c=F_{sq}(u_c)=\frac{1}{H\times W}\Sigma^H_{i=1}\Sigma^W_{j=1}u_c(i,j) (2)

讨论。转换U的输出可以解释为局部描述符的集合,这些描述符的统计信息表示整个图像。利用这些信息在之前的特征工程工作中是很普遍的,[61],[62]。我们选择了最简单的聚合技术,全球平均池,注意到这里也可以使用更复杂的策略。

3.2 Excitation: Adaptive Recalibration

为了利用在squeeze操作中聚合的信息,我们在此之后进行第二个操作,其目的是完全捕获通道依赖关系。函数来实现这个目标,必须满足两个条件:第一,它必须灵活(特别是,它必须有能力学习通道之间的非线性相互作用),第二,它必须学习一种非互斥的关系,因为我们希望确保多个通道被强调(而不是强制执行one-hot**)。为了满足这些标准,我们选择采用了简单的门控机制,并采用了 sigmoid**。

s=Fex(z,W)=σ(g(z,W))=σ(W2δ(W1z))s=F_{ex}(z,W)=\sigma(g(z,W))=\sigma(W_2\delta(W_1z)) (3)

其中 δ\delta 对应ReLU函数,W1RCr×CW_1\in R^{\frac{C}{r}\times C}W2RC×CrW_2\in R^{C\times\frac{C}{r}}

为了限制模型的复杂度和帮助泛化,我们通过在非线性周围形成两个完全连接的bottleneck (FC)层来对门控机制进行参数化,即一个维度减少层,减少率为r(这个参数选择在第6.1节中讨论),一个ReLU,然后一个维度增加层返回到变换输出U的通道维度。块的最终输出是通过对U的**量s进行重新缩放得到的。

xc~=Fscale(uc,sc)=scuc\tilde{x_c}=F_{scale}(u_c,s_c)=s_cu_c (4)

X~=[x1~,x2~,...,xC~]\tilde{X}=[\tilde{x_1},\tilde{x_2},...,\tilde{x_C}]Fscale(uc,sc)F_{scale}(u_c,s_c) 表示标量scs_c与特征映射ucu_c之间的信道乘法

讨论。激励算子将输入特定描述符z映射到一组信道权值。在这方面,SE块本质上引入了依赖于输入的动态,它可以被看作是卷积滤波器响应的不局限于局部接收域的通道上的一个自注意函数。

SENet

3.3 Instantiations