网站首页 > 技术文章 正文
前言
本系列文章,之前有讲到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
参考文献
- 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)
猜你喜欢
- 2024-10-15 深度学习之重读经典(六)MobileNet
- 2024-10-15 一文看懂Keras和TensorFlow到底哪家强
- 2024-10-15 图像分类网络概述 关于常用的图像分类网络
- 2024-10-15 怎样利用VGG实现手写数字识别? 基于hog特征的手写数字识别
- 2024-10-15 照片解锁手机不能忍?教你用OpenCV做活体检测 | 有代码
- 2024-10-15 VGGNet 一个应用于物体识别的卷积神经网络算法
- 2024-10-15 VGGNet vs ResNet:机器学习中的梯度消失问题
- 2024-10-15 VGGNet算法解释及举例 vgg网络的优缺点
- 2024-10-15 keras 人工智能之VGGNet神经网络的图片识别
- 2024-10-15 keras人工智能神经网络的VGGNet神经网络图片识别
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)