SimAM: A Simple, Parameter-Free Attention Module for Convolutional Neural Networks

6 篇文章 0 订阅

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

作者:Lingxiao Yang, Ru-Yuan Zhang, Lida Li, Xiaohua Xie

Code:https://github.com/ZjjConan/SimAM

介绍

本文提出了一种简单有效的3D注意力模块,基于著名的神经科学理论,提出了一种能量函数,并且推导出其快速解析解,能够为每一个神经元分配权重。主要贡献如下:

  • 受人脑注意机制的启发,我们提出了一个具有3D权重的注意模块,并设计了一个能量函数来计算权重;
  • 推导了能量函数的封闭形式的解,加速了权重计算,并保持整个模块的轻量;
  • 将该模块嵌入到现有ConvNet中在不同任务上进行了灵活性与有效性的验证。

相关工作

image-20210722184726269

就目前而言,网络表达能力的提升主要体现在两个方面:网络结构注意力模块

网络结构:从AlexNet到VGG再到ResNet越来越深的网络堆叠结构,或是GoogLeNet等更宽的结构赋予了网络更强的表达能力,也有相当多的工作使用AutoML来避免人工设计。

然而,作者的目标是设计一个轻量级的即插即用的模块以应用于各种任务,而无需对网络结构做出较大的改变

注意力模块

以SENet为代表的通道注意力模块或是一些空间注意力模块,虽然取得了不错的效果,但是其计算权重的算法多是人工设计,需要大量的计算量,当然也有一些模块受到神经科学的启发。

局限性:对于通道注意力/空间注意力来说,他们往往只是对不同通道/位置区别对待,而对所有的位置/通道同等对待;并且其往往需要额外的子网络来生成权重。

方法

作者认为注意机制的实现应该遵循神经计算中的一些统一原则。因此,基于一些成熟的神经科学理论提出了一种新的方法。

在视觉神经学中,那些信息量(most informative)最大的神经元通常与周围神经元拥有不同的放电模式。

同时,一个活跃的神经元也可能一直周围的神经元活动,这种现象被称为”空间抑制“。

换言之,在视觉中,表现出明显空间一直效应的神经元应该被赋予更高的重要性,而找到这些神经元的最简单方式就是测量一个目标神经元与其他神经元之间的线性可分性。

能量函数

基于以上科学发现,提出了以下的能量函数(公式来源参考):
e t ( w t , b t , y , x i ) = ( y t − t ^ ) 2 + 1 M − 1 ∑ i = 1 M − 1 ( y 0 − x ^ i ) 2 . (1) e_t(w_t,b_t,\mathbf{y},x_i) = (y_t-\hat{t})^2+\frac{1}{M-1}\sum_{i=1}^{M-1}(y_0-\hat{x}_i)^2.\tag{1} et(wt,bt,y,xi)=(ytt^)2+M11i=1M1(y0x^i)2.(1)
t t t x i x_i xi是输入 X ∈ R C × H × W X\in \mathbb{R}^{C\times H\times W} XRC×H×W中单通道上的目标神经元和其他神经元

t ^ = w t t + b t \hat{t}=w_tt+b_t t^=wtt+bt x ^ i = w t x i + b t \hat{x}_i=w_tx_i+b_t x^i=wtxi+bt t t t x i x_i xi的线性变换, w t w_t wt b t b_t bt分别代表线性变换的权重和偏置

i i i是空间维度上的索引, M = H × W M=H\times W M=H×W代表该个通道上神经元的个数

( 1 ) (1) (1)式中的所有量都是标量,当 y t = t ^ y_t=\hat{t} yt=t^和所有 x i = y o x_i=y_o xi=yo时取得最小值,其中, y t y_t yt y o y_o yo是两个不同的值

求解 ( 1 ) (1) (1)式的最小值等价于求解目标神经元和其他所有神经元之间的线性可分性

简便起见,使用二值标签,即 y t = 1 y o = − 1 y_t=1\quad y_o=-1 yt=1yo=1,并且添加了正则项,则最终的能量函数如下:
e t ( w t , b t , y , x i ) = 1 M − 1 ∑ i = 1 M − 1 ( − 1 − ( w t x i + b t ) ) 2 + ( 1 − ( w t t + b t ) ) 2 + λ w t 2 . (2) e_t(w_t,b_t,\mathbf{y},x_i) = \frac{1}{M-1}\sum_{i=1}^{M-1}(-1-(w_tx_i+b_t))^2+(1-(w_tt+b_t))^2+\lambda w_t^2.\tag2 et(wt,bt,y,xi)=M11i=1M1(1(wtxi+bt))2+(1(wtt+bt))2+λwt2.(2)

公式的来源应该是SVM,将当前神经元设置为正类,其余神经元设置为负类,来衡量他们之间的差异性。

解析解

理论上, 每个通道拥有 M M M个能量函数,逐一求解是很大的计算负担

幸运的是,可以获得 ( 2 ) (2) (2)的闭式解(即解析解),如下:
w t = − 2 ( t − μ t ) ( t − μ t ) 2 + 2 σ t 2 + 2 λ , (3) w_t=-\frac{2(t-\mu_t)}{(t-\mu_t)^2+2\sigma_t^2+2\lambda},\tag3 wt=(tμt)2+2σt2+2λ2(tμt),(3)
b t = − 1 2 ( t − μ t ) w t . (4) b_t=-\frac{1}{2}(t-\mu_t)w_t.\tag4 bt=21(tμt)wt.(4)

其中 μ 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,实际上就是该通道中除去目标神经元的均值和方差

由于解析解是在单个通道上获得的,因此可以合理假设每个通道中所有像素遵循相同的分布,最小能量即为:
e t ∗ = 4 ( μ 2 + λ ) ( t − μ ) 2 + 2 σ 2 + 2 λ . (5) e_t^*=\frac{4(\mu^2+\lambda)}{(t-\mu)^2+2\sigma^2+2\lambda}.\tag5 et=(tμ)2+2σ2+2λ4(μ2+λ).(5)
能量越低,神经元t与周围神经元的区别越大,重要性越高。因此,神经元的重要性可以通过 1 / e t ∗ 1/e_t^* 1/et得到。

根据以往的神经学研究,哺乳动物大脑中的注意力调节通常表现为神经元反应的增益效应,因此使用放缩运算而非加法来实现加权:
X ~ = s i g m o i d ( 1 E ) ⊗ X , (6) \widetilde{X}=sigmoid(\frac{1}{E})\otimes X,\tag6 X =sigmoid(E1)X,(6)
同时 s i g m o i d sigmoid sigmoid函数还可以限制 E E E中的过大值,并且不会影响每个神经元的相对重要性

Pytorch代码为:

def forward(X,lambda):
	n = X.shape[2] * X.shape[3] - 1
	d = (X - X.mean(dim=[2,3])).pow(2)
	v = d.sum(dim=[2,3])/n
	E_inv = d / (4 * (v + lambda)) +0.5
	return X * torch.sigmoid(E_inv)

实验

在各类任务上都取得了相当好的效果。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值