一、本文介绍
本文记录的是基于SimAM注意力模块的YOLOv11目标检测方法研究。SimAM注意力模块
通过优化能量函数来获得每个神经元的三维权重,而==无需引入额外的参数==或增加计算复杂度。若是有轻量化需求的小伙伴,无参的注意力模块也许是一个不错的选择。
专栏目录:YOLOv11改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进
专栏地址:YOLOv11改进专栏——以发表论文的角度,快速准确的找到有效涨点的创新点!
二、SimAM注意力原理
SimAM(A Simple, Parameter-Free Attention Module for Convolutional Neural Networks)
是一种简单且无参数的注意力模块,主要用于卷积神经网络。
2.1、原理
- 基于神经科学理论定义能量函数:
- 在视觉神经科学中,最具信息量的神经元通常是那些与周围神经元具有不同激发模式的神经元。并且,一个活跃的神经元可能会抑制周围神经元的活动,这种现象被称为空间抑制。
- 基于此,
SimAM
为每个神经元定义了如下能量函数:$e{t}\left(w{t}, b{t}, y, x{i}\right)=\left(y{t}-\hat{t}\right)^{2}+\frac{1}{M - 1} \sum{i = 1}^{M - 1}\left(y{o}-\hat{x}{i}\right)^{2}$,其中$\hat{t}=w{t}t + b{t}$和$\hat{x}{i}=w{t}x{i}+b{t}$是线性变换,$t$和$x{i}$是输入特征$X\in R^{C\times H\times W}$单个通道中的目标神经元和其他神经元。$i$是空间维度上的索引,$M = H\times W$是该通道上的神经元数量。$w{t}$和$b_{t}$是线性变换的权重和偏置。 - 为了简化计算,采用二进制标签(即 1 和 -1)用于$y{t}$和$y{o}$,并添加一个正则项,最终的能量函数为:
$e{t}\left(w{t}, b{t}, y, x{i}\right)=\frac{1}{M - 1} \sum{i = 1}^{M - 1}\left(-1-\left(w{t}x{i}+b{t}\right)\right)^{2}+\left(1-\left(w{t}t+b{t}\right)\right)^{2}+\lambda w_{t}^{2}$。
- 推导能量函数的闭式解:
- 通过对上述能量函数求解,得到关于$w{t}$和$b{t}$的闭式解为:$w{t}=-\frac{2\left(t-\mu{t}\right)}{\left(t-\mu{t}\right)^{2}+2\sigma{t}^{2}+2\lambda}$,$b{t}=-\frac{1}{2}\left(t+\mu{t}\right)w{t}$。其中$\mu{t}=\frac{1}{M - 1}\sum{i}x{i}$和$\sigma{t}=\sqrt{\frac{1}{M - 1}\sum{i}\left(x{i}-\mu{t}\right)^{2}}$是该通道上除(t)以外所有神经元的均值和方差。
- 由于上述解是在单个通道上得到的,假设单个通道中的所有像素遵循相同的分布,那么可以对所有神经元计算一次均值和方差,并在该通道上重复使用,得到最小能量计算公式:$e{t}^{*}=\frac{4\left(\hat{\sigma}^{2}+\lambda\right)}{(t-\hat{\mu})^{2}+2\hat{\sigma}^{2}+2\lambda}$,其中$\hat{\mu}=\frac{1}{M}\sum{i}x{i}$和$\hat{\sigma}^{2}=\frac{1}{M}\sum{i}\left(x_{i}-\hat{\mu}\right)^{2}$。
- 能量$e{t}^{*}$越低,神经元$t$与周围神经元的区别就越大,在视觉处理中就越重要。因此,每个神经元的重要性可以通过$1/e{t}^{*}$获得。
- 注意力模块的特征细化:
- 根据哺乳动物大脑中的注意力调制通常表现为对神经元响应的增益效应,
SimAM
使用缩放运算符而不是加法来进行特征细化。整个模块的细化阶段公式为:$\tilde{X}=\text{sigmoid}\left(\frac{1}{E}\right)\odot X$,其$E$是所有通道和空间维度上的$e_{t}^{*}$的集合,$\text{sigmoid}$函数用于限制$E$中的值过大,它是一个单调函数,不会影响每个神经元的相对重要性。
- 根据哺乳动物大脑中的注意力调制通常表现为对神经元响应的增益效应,
2.2、优势
- 全三维注意力权重:
- 与现有的注意力模块不同,SimAM可以直接推断出全三维注意力权重,同时考虑空间和通道维度,而不是只沿通道或空间维度生成一维或二维权重。这使得网络能够学习到更具判别性的特征,更好地捕捉图像中的有价值线索,与图像标签更加一致。
- 基于神经科学理论,可解释性强:
SimAM
基于神经科学理论设计,其实现注意力的方式是估计单个神经元的重要性,这种方法来源于对哺乳动物大脑中视觉处理机制的理解,具有较强的可解释性。相比其他大多基于启发式方法计算注意力权重的模块,SimAM
更加科学合理。
- 参数自由:
SimAM
通过推导能量函数的闭式解,实现了无需向原始网络添加额外参数的特性。这在实际应用中具有很大的优势,轻量化,不会增加模型的复杂度和计算负担,同时能够有效地提升各种卷积神经网络在不同视觉任务中的表现。
论文:https://proceedings.mlr.press/v139/yang21o/yang21o.pdf
源码:https://github.com/ZjjConan/SimAM
三、实现代码及YOLOv11修改步骤
模块完整介绍、个人总结、实现代码、模块改进、二次创新以及各模型添加步骤参考如下地址: