论文: Squeeze-and-Excitation Networks 2017.09
代码: https://github.com/hujie-frank/SENet
论文中用
caffe
实现
PyTorch复现版
更多第三方复现版见
README.md
文件中
Third-party re-implementations部分
一举获得ILSVRC 2017 classification submission冠军
简介
将卷积层通道数进行权值评分
分为压缩(Squeeze)和激励(Excitation)部分
图示中
代表压缩映射,提取全局特征,Fig2中 为压缩比
代表激励,计算出权重值 ,与对应的通道数相乘
SE块不仅可以插入标准网络结构(e.g. VGGNet),而且可以插入残差网络结构(e.g. ResNet)
实验
超参设置
减少比
考虑到参数数量及模型效果,设置减少比(Reduction ratio) 为16
压缩运算
在压缩运算(Squeeze Operator)中,全局平均池化比全局最大池化效果好
使用平均池化更能提取全局特征信息,而最大池化更偏向于局部特征信息
激励运算
在激励运算(Excitation Operator)中,sigmoid激励效果最好
sigmoid在数值映射在[0, 1]范围较强
SE Block插入位置
SE Block插入任意一层都能增强模型效果,
但建议移除Stage_5(占参数总量的4%),因为增幅效果<0.1% top-5 error on ImageNet
此外我看到SE is not working properly after 4th layer
不建议插入残差块加法运算,其他插入位置效果极为相似。
对比其他模型
完胜,毕竟ILSVRC 2017 classification submission冠军。
理解
SENet对卷积层通道数进行权值评分
1.低层scale相近,共享低层特征(e.g. SE_2_3, SE_3_4)
2.高层scale分离,组合高层特征(e.g. SE_4_6, SE_5_1)
3.最后一层趋近于饱和。SE_5_2 scale 趋近于1,SE_5_3完成分类
小结
SENet对卷积层通道数进行权值评分,可以很好与其他网络(VGG, ResNet)结合
相比于增加模型宽度(WRN中的width, ResNeXt中的cardinality),深度(depth),SE Block权重通道值,增加的参数少,增加的计算量小,增强效果好