Sequeeze-and-Excitation Networks, 简称SENet.获得了ImageNet最后一届竞赛图像分类任务的冠军。SENet通过Sequeeze和Excitation两个操作,让网络关注到channel之间的关系,希望模型可以自动学习到不同channel的重要特征。

SENet网络结构

SENet网络结构

如上图所示,是SENet Block结构。SENet的创新之处在于先对U进行一个全剧平均池化,再将得到的1x1xC数据经过两次全连接,最后用sigmoid函数将其控制在[0,1],把得到的值作为scale乘到U的C个Channel上,作为下一级的输入数据。

网络的SE操作目的是通过scale的值来将不同channel中的重要的特征进行增强,同时将不重要的特征进行减弱。

Sequeeze 操作

对于Global Average Pooling,论文中作者使用了求平均的方法,将空间上所有点的信息都平均成了一个值。这是因为最终要得到的Scale值是要作用于整个通道,这就需要根据通道的整体信息来计算scale。具体计算公式如下: $$ z_c = F_{sq}(u_c) = \frac{1}{W \times H} \sum_{i=1}^{W} \sum_{j=1}^{H} u_c(i, j) $$

Excitation 操作

作者通过两个全连接来实现Excitation,第一个全连接把C个通道压缩成了C/r个通道来降低计算量,第二个全连接层再恢复至C个通道。其中, r指代压缩的比例,文中选用的r=16。此时网络的整体性能和计算量最平衡。

SENet的应用

SENet实际应用

上图是SENet在实际应用中与其他网络结合的例子。左图展示的是SE-Inception结构;右图展示的是SE-ResNet结构,需要注意的是,SE的scale部分放在了ResNet的add结构之前。下表是SE-ResNet的具体的网络结构。

SENet具体网络结构

实验结果

实验结果对比

作者使用ImageNet数据集,分别对不同深度,不同类型的SENet结构和非SENet结构进行测试,上图是实验结果。从表中可以看出,在计算复杂度只有微小提高的情况下,SENet结构要比非SENet结构的效果更好。