6

后 ResNet 时代:SENet 与 SKNet

 3 years ago
source link: https://bbs.cvmart.net/articles/365
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

后 ResNet 时代:SENet 与 SKNet

1年前 ⋅ 3625 ⋅ 0 ⋅ 0

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

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

本篇介绍两个图像分类方面的工作: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 迁移学习,实现医学图像识别分类工程项目

微信公众号: 极市平台(ID: extrememart )
每天推送最新CV干货

版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK