Squeeze-and-Excitation Networks SE-net

ImageNet 2017夺冠架构:SENet   paper传送门

参考链接:传送门1

               传送门2

核心思想我认为是:不再使用传统的对输入通道经卷积后的结果通道们,进行简单的叠加,而是去寻找各通道间的相关性,给予各通道不同的权值,然后再进行加权求和。

这个通道间的权值,通过学习得到。

上图:

  S:

首先是压缩,squeeze()把一个通道的map(尺寸为 mxn )压缩成一个数值(1x1),这方便后续的寻找通道间的相关性。


E:



                                                        左边嵌入inception,右边嵌入resnet。。。


由最后一张图可知,卷积后得到的通道间的相关性,及去确定该通道给多少权值(weights值)?是通过两个fc层,和一个sigmoid层(所谓的门机制)来解决的。(这个sigmoid门机制看一下机器学习里的logistic就会更好理解了~)

第一层fc降低了特征的维度(c/16),减少了参数;然后加上了一个relu激活层,增加非线性;再接着又接一个fc层将维度恢复(c);最后通过sigmoid得到要给在各个通道上的权值(weights)们。


再给点我自己的手稿吧。。。。



嗯,感觉已经很清楚了吧,这个SEnet. 

这里不得不说,网络有前后向反馈就是好!我需要的权值(weights)或者说参数,我只要搭好网络层(网络结构)(fc1 fc2 和那个sigmoid)就好,其他的就可以啥都不管了。让你网路自己去学习,去前后向计算,梯度啊,loss啊,然后去更新得到最合适的weights。weights到手了,直接乘上来用就是。。。我认为这真的是负反馈的精髓啊,给个监督然后让网络自主学习更新weights值。很强!!!


一般,senet结构是用在resnet或者inception里,而没有说是每一次的卷积层都这样操作(就是每次的卷积都对不同通道的特征图加权叠加,这样会引入很多参数)。如上图:


看resnet的block模块,每个block尾部都加入了两层fc层。第三列的那个c=32是什么意思我还不太懂,等知道了再来补充。。。


猜你喜欢

转载自blog.csdn.net/jiachen0212/article/details/80542516
今日推荐