后 ResNet 时代:SENet 与 SKNet

写在前面:一直以来,极市得到了许许多多开发者的关注和支持,极市的成长离不开各位开发者的见证,为此我们特开设极市开发者祝愿帖,期待听到您真实的心声和建议~φ (> ω<*) :

极市开发者祝愿活动 (有奖回馈)

本篇介绍两个图像分类方面的工作:SENet和SKNet,听这名字就知道,这两个是兄弟。SENet提出了Sequeeze and Excitation block,而SKNet提出了Selective Kernel Convolution. 二者都可以很方便的嵌入到现在的网络结构,比如ResNet、Inception、ShuffleNet,实现精度的提升。
作者:我爱馒头
来源:https://zhuanlan.zhihu.com/p/60187262

SENet

Motivation

目前的卷积是在2D空间中做卷积,其本质上来说只建模了图像的空间信息,并没有建模通道之间的信息。于是,作者就尝试对Channel之间的信息进行显式建模。


网络结构

file
左边为file的特征图,经过一系列卷积,pooling操作file之后,得到file大小的特征图。接下来进行一个Sequeeze and Excitation block。

  • Sequeeze:对file进行global average pooling,得到file大小的特征图,这个特征图可以理解为具有全局感受野。
  • Excitation :使用一个全连接神经网络,对Sequeeze之后的结果做一个非线性变换。
  • 特征重标定:使用Excitation 得到的结果作为权重,乘到输入特征上。

总结

总体来说思路很清晰,Motivation也有一定的道理。此外,这个结构可以作为任意网络的子模块添加进去以提升精度,而且引入的计算量非常小。

但是有一个问题在于,卷积过程本身在Channel之间也会有一个乘数,这个乘数是不是可以理解为建模了Channel之间的信息呢?如果作者对前面的卷积使用 C 路的Group Convlution,然后与加入Sequeeze and Excitation block前后的精度进行对比,或许文章会更有说服力一些。

最终结果很不错,计算量几乎没变化,但是精度上升了,取得了ImageNet2017的冠军。

SKNet

Motivation

SKNet使用了两个思路在提高精度:

  • 很多网络使用了各种Trick来降低计算量,比如ResNeXt,计算量大大减少,精度却略有提升。那么如果不牺牲那么多计算量,能否精度提高一些呢?比如使用大一点的Kernel,如 5x5 的卷积提升精度。
  • 结合现在普遍使用的Attention操作

加了上面两个操作之后,显然计算量会上去,于是作者再加了一个Group Convlution来做trade off。

网络结构

file
上述结构可以分为三个步骤:

  • Split:输入为 file 的特征图,file均表示Group Convlution。这里使用Group Convlution以减少计算量。注意,这里两路Group Convlution使用的卷积核大小不一致,原因在于Motivation中说的第一点,提升精度。
  • Fuse:通过Split操作分成两路之后,再把两路结果进行融合,然后就是一个Sequeeze and Excitation block。
  • Select:Select模块把Sequeeze and Excitation block模块的结果通过两个softmax以回归出Channel之间的权重信息。然后把这个权重信息乘到file 中。这个过程可以看做是一个soft attention。最好把两路的特征图进行相加得到输出特征图 file


总结

整体感觉融合了较多的trick,Select部分使用soft attention和Sequeeze and Excitation block中对特征图加权蛮像的,区别在于Sequeeze and Excitation block考虑的是Channel之间的权重,而Select部分的attention不仅考虑了Channel之间的权重,还考虑了两路卷积的权重。

同样的,SKNet可以很容易的嵌入到其他网络结构中。下图是基于ResNeXt-50的SENet和SKNet计算量,以及精度对比。可以看到,计算量(GFLOPs)只是略有上升,精度方面相比于ResNeXt-50涨了1.4%左右:
file

参考资料:
Hu J, Shen L, Sun G. Squeeze-and-excitation networks[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2018: 7132-7141.




推荐阅读
图像分类算法优化技巧:《Bag of Tricks for Image Classification with Convolutional Neural Networks》
VGG16 迁移学习,实现医学图像识别分类工程项目

CV干货 微信公众号: 极市平台
ID: extrememart