计算机系统应用教程网站

网站首页 > 技术文章 正文

深度学习之重读经典(七)SENet 关于重读经典的名句

btikc 2024-10-15 09:06:55 技术文章 8 ℃ 0 评论

前言

本系列文章,之前有讲到VGGNet、ResNet、DenseNet、GoogLeNet等模型,它们的效果已经被充分验证,而且被广泛应用在各类计算机视觉任务上。这里我们介绍一篇优秀作品,SENet是ImageNet最后一届(ImageNet 2017)的图像识别冠军,全称是Squeeze-and-Excitation Networks,由Momenta公司所作并发布于2017 CVPR。SENet的思路很简单,也很容易扩展到已有的网络结构当中。



介绍

SENet网络的创新点在于关注channel之间的关系,希望模型可以自动学习到不同channel特征的重要程度。为此,SENet提出了Squeeze-and-Excitation (SE)模块,如下图所示:

SE模块首先对卷积得到的特征图进行Squeeze操作,得到channel级的全局特征,然后对全局特征进行Excitation操作,学习各个channel间的关系,也得到不同channel的权重,最后乘以原来的特征图得到最终特征。本质上,SE模块是在channel维度上做attention或者gating操作,这种注意力机制让模型可以更加关注信息量最大的channel特征,而抑制那些不重要的channel特征。另外一点是SE模块是通用的,这意味着其可以嵌入到现有的网络架构中。



操作

  • Squeeze操作

原始feature map的维度为H×W×C,其中H是高度(Height),W是宽度(width),C是通道数(channel)。Squeeze就是用global average pooling把H×W×C压缩为1×1×C。H×W压缩成一维后,相当于这一维参数获得了之前H×W全局的视野,感受区域更广。

  • Excitation操作

Sequeeze操作得到了全局描述特征,接下来需要另外一种运算来抓取channel之间的关系。 用两个全连接层来学习通道间的相关性,第一个FC层起到降维的作用,然后采用ReLU激活。最后的全连接层恢复原始的维度。

  • Reweight

将Excitation的输出权重作为经过特征选择后的每个特征通道的重要性,然后通过乘法逐通道加权到先前的特征上,完成在通道维度上的对原始特征的重标定。



应用

SE模块的灵活性在于它可以直接应用现有的网络结构中。这里以Inception和ResNet为例。对于Inception网络,没有残差结构,这里对整个Inception模块应用SE模块。对于ResNet,SE模块嵌入到残差结构中的残差学习分支中。具体如下图所示:


提升效果

SE 模块应用到不同的分类模型,均有一定程度的提升,具体如下图右侧的括号。可以看到虽然参数略有提高,但是在嵌入SENet之后的ResNet-50的效果已经达到了ResNet-101的精度了。

总结

SENet模型主要是实现了一种通道注意力,提升模型对于图像通道之间的特征的感知能力。增加少量计算,提升模型性能。

编程实战实践

完整训练流程与实现见:

https://github.com/PopSmartTech/deeplearning



参考文献

  1. Jie, Shen, Samuel, et al. Squeeze-and-Excitation Networks.[J]. IEEE transactions on pattern analysis and machine intelligence, 2019 (https://arxiv.org/abs/1709.01507)

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表