介绍
SENet是ImageNet 2017的冠军,全称为Squeeze-and-Excitation Networks。它将注意力机制通过space与channel两个角度进行了进一步的拓展,并结合了一些比较成熟的网路设计思路,最终实现了比较好的效果。
论文地址:https://arxiv.org/pdf/1709.01507.pdf
结构
介绍SENet之前首先了解一下Attention机制的发展。最早可以追溯到ZFNet,对节点进行可视化。在Learning Deep Features for Discriminative Localization中作者在思考最终导致分类结果的最大相应模块是图像的哪一部分。 作者使用分类器对图像的各个像素进行作用,发现响应最大的确实是目标区域。
Show, Attend and Tell: Neural Image Caption Generation with Visual Attention中作者想到,如果能够知道某个词对应的区域,在LSTM中多强调一下对应的特征便可以更好的生成。从而有了注意力机制。作者提出了两种注意力机制,一种是通过对特征做softmax,另一种是使用二值的注意力机制。其中soft注意力机制与上面提到的激活区域思路很像,归纳一下就有了空域注意力模型。
通过空域注意力模块对原图中重要的区域进行关注然后乘起来,能够更有效地提取特征。
SENet中提出了另一种注意力模型,即通道的注意力模型。首先通过global average pooling变成1 × 1 × C的层,即Squeeze部分,感受野更广。得到Squeeze的1 × 1 × C的表示后,加入一个FC全连接层(Fully Connected),对每个通道的重要性进行预测,得到不同channel的重要性大小后再作用(激励)到之前的feature map的对应channel上,再进行后续操作,即Excitation部分。
可以看出,SENet和ResNet很相似,但比ResNet做得更多。ResNet只是增加了一个skip connection,而SENet在相邻两层之间加入了处理,使得channel之间的信息交互成为可能,进一步提高了网络的准确率。
通过这个模块可以与一些主流的网络进行结合,可以用来提升Inception以及ResNet等。这就是SENet最重要的贡献。而后来CBAM将空域注意力模型与通道注意力模型进行了结合,效果也同样得到了改进。
这样的工作还有很多,包括比较近的ECANet,用1×1卷积替换了全连接,在降低计算量的基础上效果也得到了改善。
思考
SENet代表了对CNN性能的提升的一个方向,即通过Attention机制。之前很多的论文主要在于空域方面的Attention设计,而SENet学习通道之间的相关性,筛选出feature作用更大的channel,尽管稍微怎讲计算量,但效果很明显。这几年主要而以此为基础的空域和通道两个角度的Attention模块设计也有很多,经过实验能够有效提升特征提取的效果。
可以看到,CNN的设计已经变得更加灵活,从宽度深度方面的增大到一些更为高级的连接方式以及模块,充分结合与保留信息,对重要信息进行筛选,最终得到更好的效果。
最后总结一下一些不错的思想:
- 在ResNet思路的基础上加入通道Attention,让模型学习到时候能够更好地聚焦重要的feature map
- 组合一些比较成熟的模块得到更好的效果,例如SENet可以建立在ResNet的基础上
- 通过一些方式结合空域、通道两个角度的Attention来综合提升特征学习效果
- 用1×1卷积替换了全连接以降低参数量(ECANet)
参考资料
https://blog.csdn.net/guanxs/article/details/98544872