经典网络结构总结--SENet系列
SENet系列:SENet,(cSENet,sSENet,csSENet),SKNet
1.SENet
论文:Squeeze-and-Excitation Networks
- Motivation:借助注意力机制,使模型可以自动学习到不同channel的重要程度。
- SE模块
- 具体实现
- 解释:对于尺寸为H×W×C的特征图,首先通过全局平均池化对每个feature map进行压缩,得到1×1×C的实数数列,这一步骤称作Squeeze;然后引入两个全连接层进行Excitation,通过sigmoid将其归一化到0~1之间,即每个通道的权重;最后通过将权重与原始输入对位相乘,实现通道的重标定。
- 为什么使用两个全连接层:限制模型复杂度,增加泛化
2.cSENet,sSENet,csSENet
论文:Concurrent Spatial and Channel ‘Squeeze & Excitation’ in Fully Convolutional Networks
- cSENet:与SENet本质相同,区别在于升降维度的超参数 r 取值为2或16,兼顾模型的复杂度和准确率
- sSENet:从空间角度引入注意力机制。将尺寸为H×W×C的特征图经过1×1卷积降维,得到H×W×1的特征图。然后再经过特征重标定,与原来的U对应空间上相乘得到U^。
- csSENet:从通道和空间两个角度同时引入注意力机制,相当于cSENet和sSENet的结合。
3.SKNet
- Motivation:我们在看不同尺寸不同远近的物体时,视觉皮层神经元接受域大小是会根据刺激来进行调节的。那么对应于CNN网络,一般来说对于特定任务特定模型,卷积核大小是确定的,那么是否可以构建一种模型,使网络可以根据输入信息的多个尺度自适应的调节接受域大小呢?
- SK Block
- SK Block分为三个步骤:
1.Split:对于h×w×C的特征图(X)分别通过3×3卷积和5×5卷积,然后通过add得到U
2.Fuse:首先通过全局平均池化得到S,然后通过一个全连接层得到Z,这部分和SE Block相同,后面的部分比较不好理解。按照我个人的理解,Z后面接2个并行的全连接层(M = 2, M为分支数),得到两个1×1×C,然后对其进行拼接,得到2×C的矩阵,最后对列方向上进行softmax,得到不同尺度同一个通道的权重。有错误欢迎指正!
3.Select:将权重分别与Split后的两个不同尺度特征图乘积求和。