首页 > 其他分享 >[重读经典论文]SENet——ILSVRC收官之作

[重读经典论文]SENet——ILSVRC收官之作

时间:2023-04-05 13:36:38浏览次数:50  
标签:channel 特征 ILSVRC SENet 重读 模块 SE 通道

1. 前言

SENet由Momenta公司,在论文《Squeeze-and-Excitation Networks》提出,核心是SE block,它通过对特征通道间的相关性进行建模,把重要的特征进行强化来提升准确率。

作者采用SENet block和ResNeXt结合在ILSVRC 2017(最后一届)的分类项目中拿到第一,在ImageNet数据集上将top-5 error降低到2.251%,比2016年的第一名还要低25%。

2. 主要思想

下载 (2)

在看一张图片的时候,实际上并不会对图片中出现的所有事物都有一样的关心程度,二是有重点的,从而会关注特定的区域,忽略无关区域。在CV领域中,我们知道卷积网络提取出的feature map,每个通道往往代表一种模式,而传统的卷积神经网络中对这些模式都是同等对待的,并没有加上注意力。

作者的动机是希望显式地建模特征通道之间的相互依赖关系。另外,作者并未引入新的空间维度来进行特征通道间的融合,而是采用了一种全新的「特征重标定」策略。具体来说,就是通过学习的方式来自动获取到每个特征通道的重要程度,然后依照这个重要程度去提升有用的特征并抑制对当前任务用处不大的特征。通俗的来说SENet的核心思想在于通过网络根据loss去学习特征权重,使得有效的feature map权重大,无效或效果小的feature map权重小的方式训练模型达到更好的结果。

3. SE模块

image

 

如上图所示就是一个SE Block,名字中的S表示Squeeze,E表示Excitation。

其中Ftr是一个变换,譬如若干个提取特征的卷积层(这部分不属于SE block),输出U,形状为H*W*C。

然后对U进行”Squeeze”操作,即Fsq,将U进行全局平均池化(Global Average Pooling),输出1*1*C。

然后进行“Excitation”操作,即Fex,这一步,目的是提取通道之间的依赖关系,因此有两个原则,一是学习到通道之间的非线性,二是学习的关系不是互斥的,因为这里允许多channel的特征,而不是one-hot形式。

因此作者先接一个神经元个数为C/r的全连接层,然后通过Relu进行激活,然后再接第二个神经元个数为C的全连接层,然后对每个输出进行Sigmod操作,输出权重,如下图的公式所示:

image

这里的结构是一个bottleneck,通过缩减因子r(参数量2*C*C/r),相对直接接两个C个参数的全连接层(参数量C*C)来说,参数量变成了原来的2/r倍,这里r是个超参数,作者通过实验证明r=16是一个权衡性能和计算复杂度后的较佳选择。

最后在将这些权重作为每个通道的权重因子,与原来的输入U直接相乘,就是最后的输出。

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

4. 融合其他模块

SE模块的结构,让它能够很容易就嵌入到其他模块当中,作者将SE模块分别嵌入到Inception模块和ResNet模块中,如下图所示:

imageimage

SE-Inception模块在Inception模块输出后进行嵌入,SE-ReNet模块在卷积的分支输出后进行嵌入。

那么到底引入了SE模块之后增加了多少参数量呢?以ResNet为例,假设ResNet一共包含S个stage,每个Stage包含N个重复的residual block,那么整个添加了SE block的ResNet增加的参数量就是下面的公式:

image

C表示SE模块的输入和输出的通道数,以ResNet为例,如果全部stage都加,大概增加10%的参数量,但是后面作者发现最后两个stage加不加影响不大,最后去掉这两个stage的SE模块,总体增加4%左右的参数。

测试阶段,增加大概0.26%的计算量,训练阶段,由于GPU可能没有优化GAP操作,因此要慢一些,在CPU上则差不多。

5. 测试

作者也将SE模块迁移到ResNeXt, MobileNet和ShuffleNet中,然后在ImageNet2012数据集上进行训练和验证集上测试,结果如下表所示:

image

image

分别是原论文中的数据,原模型复现的数据,及加了SE模块的数据,可以发现加了SE模块后,性能提升,而且计算量只增加了一点点。

6. 总结

SENet把重要通道的特征强化,非重要通道的特征弱化,得到了很好的效果,这是一种全新的思路,在这个方向上将来可能会有更多的成果。

7. 参考

[1] 【CV中的注意力机制】SENet

[2] 解读Squeeze-and-Excitation Networks(SENet)

[3] SENet(Squeeze-and-Excitation Networks)算法笔记

(完)

标签:channel,特征,ILSVRC,SENet,重读,模块,SE,通道
From: https://www.cnblogs.com/harrymore/p/17289249.html

相关文章

  • [重读经典论文]ResNet
    1.前言ResNet由微软亚洲研究院在论文《DeepResidualLearningforImageRecognition》中提出,获得2015年ImageNet图像分类、定位、检测,MSCOCO竞赛检测、分割五条赛道的冠军,通过引入残差连接,有效解决深层网络训练时的退化问题,可以通过加深网络大大提升性能。ResNet在ILSVRC-20......
  • [重读经典论文]VGG——传统串行卷积神经网络的极致
    1.前言VGG是由牛津大学视觉组(VisualGeometryGroup,Vgg的名称也是来源于此)在2014年的论文《VeryDeepConvolutionalNetworksforLarge-ScaleVisualRecognition》中提出的卷积神经网络模型。VGG将LeNet和AlexNet奠定的经典串行卷积神经网络结构的深度和性能发挥到极致,主要......
  • [重读经典论文]Inception V4
    1.前言InceptionV4是google团队在《Inception-v4,Inception-ResNetandtheImpactofResidualConnectionsonLearning》论文中提出的一个新的网络,如题目所示,本论文还提出了Inception-ResNet-V1、Inception-ResNet-V2两个模型,将residual和inception结构相结合,以获得residual......
  • [重读经典论文]GoogLeNet——Inception模块的诞生
    1.前言GoogLeNet,也被称为InceptionV1网络,由Google公司的研究员在2014年的论文《Goingdeeperwithconvolutions》提出。本论文提出了Inception模块,引入并行结构和不同......
  • [重读经典论文] AlexNet笔记
    1.前言AlexNet是一个深度卷积神经网络模型,由AlexKrizhevsky、IlyaSutskever和GeoffreyHinton于2012年设计。这个模型在ImageNet图像识别挑战赛中获得了当时的冠军,并推......
  • J4、ResNet与DenseNet结合探索
    ......
  • 重读vue电商网站49之第三方库使用CDN
    通过externals加载外部CDN资源默认情况下,通过import语法导入的第三方依赖包,最终会被打包合并到同一个文件中,从而导致打包成功后,单文件体积过大的问题。 例如上述chu......
  • J3、DenseNet算法实战与解析
    ......
  • 在ChatGPT爆火后,重读《万物摩尔定律》
    2021年3月16日,YCombinatorCEOSamAltman发表了《万物摩尔定律》,在文中他揭示人工智能的时代会比大多数人认为的更快到来,越来越多人类的工作将被能够思考和学习的软件取......
  • 【目标检测】重读经典之 SSD: Single Shot MultiBox Detector
    原始题目SSD:SingleShotMultiBoxDetector中文名称SSD:一阶段多框检测器发表时间2015年12月8日平台ECCV2016来源北卡罗来纳大学教堂山分校......