《Squeeze-and-Excitation Networks》
该文章提出了一种新颖的网络结构,用于对每个通道的特征进行加权处理。在网络的训练过程中,会得到不同数量通道特征,在进行识别的过程中,每一个通道的特征的重要性都被视为是相同的来参与接下来的计算。SENet将不同特征通道的全局池化信息融合到了神经网络的训练过程中,从而能够利用网络的代价函数来对不同通道的权重进行训练。
网络结构:
结构解释
首先对于一个 H′×W′×C′ H ′ × W ′ × C ′ 的特征输入 X X ,进行操作,也就是常规的卷积操作,得到待处理的 W×H×C W × H × C 的特征图 U U 。接着对得到的分别进行两种操作: Fsq F s q 和 Fscale F s c a l e 。
首先是 Fsq F s q 操作。作者在这里对于每一个通道都采用了一种全局平均池化的操作,即将特征图 U U 的个通道分别进行全局平均池化的操作,得到了一个 1×1×C 1 × 1 × C 的特征图 z z 。数学表达形式如下:
其中, uc u c 表示的是 U U 的第个通道。
接着,就是SENet思想最关键的部分了,即SENet将 z z 作为一个全连接神经网络的输入,该神经网络的权重为。 Fex(∗,W) F e x ( ∗ , W ) 表示的是一个全连接层的计算过程。
作者将 Fex(∗,W) F e x ( ∗ , W ) 的计算分成了两个部分,直观来看就是先对第一个全连接层进行计算,接着对第二个全连接层进行计算并输出结果为 1×1×C 1 × 1 × C 的特征图。具体公式如下所示:
其中 δ δ 表示的是 RELU R E L U 函数, W1∈RCr×C W 1 ∈ R C r × C ,且 W2∈RRC×Cr W 2 ∈ R R C × C r 。计算得到的 s s 就是我们要求的不同通道特征图的权重系数。
得到了这个系数以后,通过与对应通道上的特征图进行相乘,以此来表示不同通道的特征图的重要性程度。具体形式如下式所示:
其中 Xc~=[x1~,x2~,...,xc~] X c ~ = [ x 1 ~ , x 2 ~ , . . . , x c ~ ] 。函数 Fscale F s c a l e 表示的是将每个通道的权重值 sc∈R s c ∈ R 与对应通道的特征图 uc∈RH×W u c ∈ R H × W 相乘。
与其他网络结构进行组合
与GoogleNet的Inception网络结构组合,得到的网络结构如下图所示:
与ResNet网络的Block进行组合得到的网络结构如下图所示:
结论
加入该网络结构后,可以提高网络的性能。