Squeeze-and-Excitation Networks(SENet)
介绍
本篇论文提出了SENet,获得了最后一届ImageNet比赛的冠军.值得注意的是,它并没有采用特别复杂的结构,提出了一种通道自注意力机制,筛选更有意义的通道特征.本篇只是一个总结,参考了知乎,csdn上的一些论文解读.
解读Squeeze-and-Excitation Networks(SENet)
网络
- Ftr:常规特征提取网络
- Fsq: Global Average Pooling(GAP),对每一层特征进行均值池化.
- Fex: 两层全连接,其中还有一个激活层,输入和输出经过Fex维度不改变,但是线性层的中间层维度比C小,为C/r.
- Fsacle: 进行sigmoid后映射到[0,1]上,然后对原特征图进行加权
几个问题
- 为什么GAP是很简单地进行均值池化?
答:因为最终的scale对通道特征起作用,使用全局均值池化可以消除"空间"的相关性影响,而只保留"通道"上的相关性来形成注意力.
- 为什么需要两层的线性层?
知乎上讲的特别好!这里我直接借用过来.以下是三种方式的对比:
图2最上方的结构: 没有匹配整个数据集直接GAP后进行加权,存在的问题是没有匹配整个数据集,而是只根据一个batch的信息进行相关性计算.
图2中间是经典的卷积结构: 空间,通道混乱有人会说卷积训练出的权值就含有了scale的成分在里面,也利用了通道间的相关性,为啥还要多个SE Block?那是因为这种卷积有空间的成分在里面,为了排除空间上的干扰就得先用GAP压缩成一个点后再作卷积,压缩后因为没有了Height、Width的成分,这种卷积就是全连接了。
图2最下面的结构: 张冠李戴SE模块和传统的卷积间采用并联而不是串联的方式,这时SE利用的是Ftr输入X的相关性来计算scale,X和U的相关性是不同的,把根据X的相关性计算出的scale应用到U上明显不合适。
说白了,SENet其实提出的是一种方便的计算通道注意力的方式!类似于一个模块可以增加到自己的网络
- 论文中给出的两个例子
分别SE模块是和Inception和residual module结合的例子
- SE模块的位置
作者还在消融实验中测试了这四种不同位置的SE模块的效果,发现只有POST版的性能有所下降,这表明SE模块具有很强的鲁棒性,而且最好是被放在靠前的位置.
评论