SimAM: A Simple, Parameter-Free Attention Module for Convolutional Neural Networks论文阅读


Venue:ICML 2021
Paper address: http://proceedings.mlr.press/v139/yang21o/yang21o.pdf
Github address: https://github.com/ZjjConan/SimAM

Abstract

  本文提出一种概念简单且非常有效的注意力模块。不同于现有的通道/空域注意力模块,该模块无需额外参数为特征图推导出3D注意力权值。具体来说,本文基于著名的神经科学理论提出优化能量函数以挖掘神经元的重要性。本文进一步针对该能量函数推导出一种快速解析解并表明:该解析解仅需不超过10行代码即可实现。该模块的另一个优势在于:大部分操作均基于所定义的能量函数选择,避免了过多的结构调整。最后,本文在不同的任务上对所提注意力模块的有效性、灵活性进行验证。

Motivation

  1. 现有的注意力模块。比如空间注意力、通道注意力、他们只能沿着通道或空间维度细化特征,要么平等地对待一个通道中的所有神经元,要么平等地对待一个空间位置上的所有神经元,这限制了他们学习跨通道和空间变化的注意力权重的灵活性。
  2. 注意力模块的另一个重要因素是权重生成方法。大多数现有的工作基于一些无基础的启发式算法来计算注意力权重。即现有注意力的结构设计需要大量的工程性实验

Contributions

  1. 受启发于人脑注意力机制,本文提出一种3D注意力模块并设计了一种能量函数用于计算注意力权值;
  2. 本文推导出了能量函数的解析解加速了注意力权值的计算并得到了一种轻量型注意力模块;
  3. 将所提注意力嵌入到现有ConvNet中在不同任务上进行了灵活性与有效性的验证。

Method

  在正式介绍本文所提注意力模块之前,作者先对现有代表性注意力模块(比如SE、CBAM、GC)进行简要总结;然后,我们再引出本文所提完全不同架构的注意力模块。

Overview of Existing Attention Modules

在这里插入图片描述
上图a与b列出了现有两种类型的注意力模块:

  1. 通道注意力:1D注意力,它对不同通道区别对待,对所有位置同等对待;
  2. 空域注意力:2D注意力,它对不同位置区别对待,对所有通道同等对待。

一方面:
作者在论文里面举了一个例子:
以下图为例,SE注意力机制缺失了关于"grey_whale"的某些重要成分。我们认为3D注意力比1D和2D更佳,进而提出了上图c的3D注意力模块。
在这里插入图片描述
另一方面:
现有注意力模块的另一个重要影响因素:权值生成方法。现有注意力往往采用额外的子网络生成注意力权值,比如SE的GAP+FC+ReLU+FC+Sigmoid。更多注意力模块的操作、参数量可参考下表。总而言之,现有注意力的结构设计需要大量的工程性实验。我们认为:注意力机制的实现应当通过神经科学中的某些统一原则引导设计。

在这里插入图片描述

Our Attention Module

  已有研究BAM、CBAM分别将空域注意力与通道注意力进行并行或串行组合。然而,人脑的两种注意力往往是协同工作,因此,我们提出了统一权值的注意力模块。
  为更好的实现注意力,我们需要评估每个神经元的重要性。在神经科学中,信息丰富的神经元通常表现出与周围神经元不同的放电模式。而且,激活神经元通常会抑制周围神经元,即空域抑制。换句话说,具有空域抑制效应的神经元应当赋予更高的重要性。最简单的寻找重要神经元的方法:度量神经元之间的线性可分性。因此,我们定义了如下能量函数:

在这里插入图片描述
  其中, t ^ = w t t + b t \hat{t}={w_t}t+b_t t^=wtt+bt, x i ^ = w t x i + b t \hat{x_i}={w_t}{x_i}+b_t xi^=wtxi+bt。最小化上述公式等价于训练同一通道内神经元t与其他神经元之间的线性可分性。为简单起见,我们采用二值标签,并添加正则项,最终的能量函数定义如下:
在这里插入图片描述
  理论上,每个通道有 M = H × W M={H}\times{W} M=H×W个能量函数。幸运的是,上述公式具有如下解析解:

在这里插入图片描述
  其中, μ t = 1 M − 1 ∑ i = 1 M − 1 x i \mu_t=\frac {1} {M-1}\sum_{i=1}^{M-1} {x_i} μt=M11i=1M1xi, σ t 2 = 1 M − 1 ∑ i = 1 M − 1 ( x i − μ t ) 2 \sigma_t^{2}=\frac {1} {M-1}{\sum_{i=1}^{M-1} (x_i-\mu_t)^2} σt2=M11i=1M1(xiμt)2。因此,最小能量可以通过如下公式得到:

在这里插入图片描述
  上述公式意味着:能量越低,神经元t与周围神经元的区别越大,重要性越高。因此,神经元的重要性可以通过 1 e t ∗ \frac {1} {e_t^{*}} et1得到。
到目前为止,我们推导了能量函数并挖掘了神经元的重要性。按照注意力机制的定义,我们需要对特征进行增强处理:
在这里插入图片描述
  下图给出了SimAM的pytorch风格实现code。
在这里插入图片描述

Experiments

Experiments 1

在这里插入图片描述
上表给出了Cifar数据集上的性能对比,从中可以看到:

  • 相比其他注意力机制,所提SimAM取得了最佳性能;
  • 在小网络方面,PreResNet56在CIFAR10数据集上取得了最佳性能(92.47/69.13),显著优于其他注意力;
  • 在大网络方面,所提SimAM同样优于SE与CBAM等注意力机制;
  • 上述实验结果均表明:所提无参注意力SimAM是一种通用注意力机制,并不局限于特定网络。

Experiments 2

在这里插入图片描述
上表给出了ImageNet数据集上不同注意力机制的性能对比,从中可以看到:

  • 所有注意力模块均可以提升基线模型的性能;

  • 所提SimAM在ResNet18与ResNet101基线上取得了最佳性能提升;

  • 对于ResNet34、ResNet50、ResNeXt50、MobileNetV2,所提SimAM仍可取得与其他注意力相当性能;

  • 值得一提的是,所提SimAM并不会引入额外的参数; 在推理速度方面,所提SimAM与SE、ECA相当,优于CBAM、SRM。

Experiments 3

在这里插入图片描述
上图对比了不同$$的性能对比,从中可以看到:

  • 所提注意力机制对于超参非常鲁棒;
  • λ = 0.0001 \lambda=0.0001 λ=0.0001得了最佳的性能均衡。

Experiments 4

在这里插入图片描述
上图采用Grad-CAM对所提SimAM进行了可视化,可以看到:经由SimAM提炼的特征可以更好的聚焦主体目标。

Experiments 5

在这里插入图片描述
上表对比了COCO检测、分割任务上的性能,可以看到:

  • SE与SimAM均可大幅提升基线模型的性能;

  • 对于检测任务,两种注意力模块取得了非常相似的性能;

  • 对于实例分割任务,所提SimAM取得了稍优性能。

  • 值得一提,SimAM不会引入额外参数量,而SE则会引入额外的参数量。比如,SE-ResNet50引入了2.5M参数量,SE-ResNet101引入了4.7M参数量。

Highlights

  1. 现有注意力模块的另一个重要影响因素:权值生成方法。现有注意力往往采用额外的子网络生成注意力权值,比如SE的GAP+FC+ReLU+FC+Sigmoid.我们认为,注意力机制的实现应该由神经计算中的一些统一原则来指导。因此,我们基于一些成熟的神经科学理论提出了一种新的方法SimAM。

  2. 在神经科学中,信息丰富的神经元通常表现出与周围神经元不同的放电模式。而且,激活神经元通常会抑制周围神经元,即空域抑制。换句话说,具有空域抑制效应的神经元应当赋予更高的重要性。最简单的寻找重要神经元的方法:度量神经元之间的线性可分性。

  • 2
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: simam是一种简单的、无需参数的注意力模块,用于卷积神经网络。它可以帮助网络更好地捕捉输入数据中的重要信息,提高模型的性能。simam的设计简单,不需要额外的参数,可以方便地集成到现有的卷积神经网络中。 ### 回答2: SimAM(简单、无需参数的注意力模块)是一种卷积神经网络的注意力机制,旨在显著提高图像分类和物体检测任务的性能。这个模块可以自适应地学习到不同层的特征,并对其进行加权,以便更好地捕获相关信息并抑制噪声。 SimAM模块的核心思想是将一组特征向量传递到一个简单的多头自注意力层,以便为不同特征之间的联系评分,并生成那些较为重要的特征向量,这些向量随后用于后续的网络计算中。具体来说,SimAM模块将输入特征张量分为若干个通道,并将每个通道作为输入,送入多头自注意力层。该层是由若干个子层堆叠而成的,其中每个子层都包括一个多头自注意力机制和一些前向反馈层。自注意力机制可以捕捉到输入特征张量内部各个通道之间的关系,并生成相应的权重矩阵。前向反馈层可以帮助模型更好地适应各种难以预测的数据。 SimAM模块与传统的注意力机制相比,具有以下优点: 1.不需要额外的参数:SimAM模块不需要任何额外的参数,仅仅依靠了平移不变性和自注意力机制即可提取图像特征。 2.易于训练:模块中的每个子层都具有非常简单的结构,可以很容易地进行训练和调整参数。 3.高效:SimAM模块的计算成本低,且可以与传统的卷积神经网络结构相结合,以提高图像分类或物体检测的精度。 总之,SimAM模块是一种非常优秀的注意力机制,具有简单而有效的设计,可用于各种计算机视觉应用中。相信随着更多研究人员的关注,SimAM模块会在未来得到更多的应用和发展。 ### 回答3: Simam是一种简单的、无参数的卷积神经网络注意力模块,它能够提高卷积神经网路的性能。该模块的主要目的是为了实现对卷积层特征的自适应加权,从而优化卷积神经网络的训练过程。 在卷积神经网络中,每个卷积层都会生成一系列特征图,这些特征图可以被看作是卷积层对输入图像的不同抽取方式。在经过多层的卷积操作后,这些特征图逐渐变得抽象和复杂,也变得更具有区分度。然而,由于不同的特征图的质量和作用是不同的,因此,需要一种方法来自适应地对它们进行加权,以便提高整个网络的性能。 Simam模块的核心思想是使用特定的权重来实现对特征图进行加权。这些权重的计算不需要任何参数,而是通过应用一些简单的非线性映射来实现的。具体来说,Simam模块会对特征图进行归一化,然后通过一些非线性函数(如ReLU)进行变换,最终得到一个类似于置信度的分数,从而决定特征图的相对重要性。 在使用Simam模块的卷积神经网络中,该模块被添加在卷积层之后,可以作为一种自适应加权机制来对特征图进行加权。这种机制能够更加准确地区分每个特征图的质量和作用,从而提高整个卷积神经网络的性能。 总之,Simam模块是一种简单而有效的自适应加权机制,可以提高卷积神经网络的性能。在实际应用中,它可以被广泛应用于图像分类、物体检测、语义分割等领域,从而提高计算机视觉的精度和效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值