YOLOv11改进入门篇 | 手把手讲解改进模块如何实现高效涨点,以SimAM注意力模块为例

简介: YOLOv11改进入门篇 | 手把手讲解改进模块如何实现高效涨点,以SimAM注意力模块为例

一、本文介绍

本文记录的是基于SimAM注意力模块的YOLOv11目标检测方法研究SimAM注意力模块通过优化能量函数来获得每个神经元的三维权重,而==无需引入额外的参数==或增加计算复杂度。若是有轻量化需求的小伙伴,无参的注意力模块也许是一个不错的选择。


专栏目录:YOLOv11改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进
专栏地址:YOLOv11改进专栏——以发表论文的角度,快速准确的找到有效涨点的创新点!

二、SimAM注意力原理

SimAM(A Simple, Parameter-Free Attention Module for Convolutional Neural Networks)是一种简单且无参数的注意力模块,主要用于卷积神经网络。

2.1、原理

  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}$。
  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}^{*}$获得。
  3. 注意力模块的特征细化
    • 根据哺乳动物大脑中的注意力调制通常表现为对神经元响应的增益效应,SimAM使用缩放运算符而不是加法来进行特征细化。整个模块的细化阶段公式为:$\tilde{X}=\text{sigmoid}\left(\frac{1}{E}\right)\odot X$,其$E$是所有通道和空间维度上的$e_{t}^{*}$的集合,$\text{sigmoid}$函数用于限制$E$中的值过大,它是一个单调函数,不会影响每个神经元的相对重要性。

在这里插入图片描述

2.2、优势

  1. 全三维注意力权重
    • 与现有的注意力模块不同,SimAM可以直接推断出全三维注意力权重,同时考虑空间和通道维度,而不是只沿通道或空间维度生成一维或二维权重。这使得网络能够学习到更具判别性的特征,更好地捕捉图像中的有价值线索,与图像标签更加一致。
  2. 基于神经科学理论,可解释性强
    • SimAM基于神经科学理论设计,其实现注意力的方式是估计单个神经元的重要性,这种方法来源于对哺乳动物大脑中视觉处理机制的理解,具有较强的可解释性。相比其他大多基于启发式方法计算注意力权重的模块,SimAM更加科学合理。
  3. 参数自由
    • SimAM通过推导能量函数的闭式解,实现了无需向原始网络添加额外参数的特性。这在实际应用中具有很大的优势,轻量化,不会增加模型的复杂度和计算负担,同时能够有效地提升各种卷积神经网络在不同视觉任务中的表现。

论文:https://proceedings.mlr.press/v139/yang21o/yang21o.pdf
源码:https://github.com/ZjjConan/SimAM

三、实现代码及YOLOv11修改步骤

模块完整介绍、个人总结、实现代码、模块改进、二次创新以及各模型添加步骤参考如下地址:

https://blog.csdn.net/qq_42591591/article/details/142656545

目录
相关文章
|
7月前
|
Serverless 计算机视觉
YOLOv11改进策略【小目标改进】| Shape-NWD:融合改进,结合Shape-IoU和NWD 更好地适应小目标特性
YOLOv11改进策略【小目标改进】| Shape-NWD:融合改进,结合Shape-IoU和NWD 更好地适应小目标特性
1210 9
|
7月前
|
人工智能
YOLOv11改进策略【损失函数篇】| 2024 引进Focaler-IoU损失函数 加强边界框回归 (Focaler-DIoU、Focaler-GIoU、Focaler-CIoU)
YOLOv11改进策略【损失函数篇】| 2024 引进Focaler-IoU损失函数 加强边界框回归 (Focaler-DIoU、Focaler-GIoU、Focaler-CIoU)
1265 4
|
7月前
|
机器学习/深度学习 资源调度 算法
YOLOv11改进策略【损失函数篇】| 引入Soft-NMS,提升密集遮挡场景检测精度,包括GIoU-NMS、DIoU-NMS、CIoU-NMS、SIoU-NMS、 EIou-NMS
YOLOv11改进策略【损失函数篇】| 引入Soft-NMS,提升密集遮挡场景检测精度,包括GIoU-NMS、DIoU-NMS、CIoU-NMS、SIoU-NMS、 EIou-NMS
3036 6
|
10月前
|
机器学习/深度学习 计算机视觉 Python
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力本文提出了一种简单且高效的卷积神经网络(ConvNets)注意力模块——SimAM。与现有模块不同,SimAM通过优化能量函数推断特征图的3D注意力权重,无需添加额外参数。SimAM基于空间抑制理论设计,通过简单的解决方案实现高效计算,提升卷积神经网络的表征能力。代码已在Pytorch-SimAM开源。
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力
|
7月前
|
机器学习/深度学习 数据可视化 算法
YOLOv11改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进
YOLOv11改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进
1358 6
YOLOv11改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进
|
7月前
|
编解码 计算机视觉
YOLOv11改进策略【YOLO和Mamba】| 替换骨干 Mamba-YOLOv11-T !!! 最新的发文热点
YOLOv11改进策略【YOLO和Mamba】| 替换骨干 Mamba-YOLOv11-T !!! 最新的发文热点
1152 7
YOLOv11改进策略【YOLO和Mamba】| 替换骨干 Mamba-YOLOv11-T !!! 最新的发文热点
|
7月前
|
机器学习/深度学习 存储 TensorFlow
YOLOv11改进策略【Head】| (独家改进)轻量化检测头:利用 EfficientNet 中的移动倒置瓶颈模块 MBConv 改进检测头
YOLOv11改进策略【Head】| (独家改进)轻量化检测头:利用 EfficientNet 中的移动倒置瓶颈模块 MBConv 改进检测头
1736 11
YOLOv11改进策略【Head】| (独家改进)轻量化检测头:利用 EfficientNet 中的移动倒置瓶颈模块 MBConv 改进检测头
|
7月前
|
机器学习/深度学习 文件存储 异构计算
YOLOv11改进策略【模型轻量化】| 替换骨干网络为EfficientNet v2,加速训练,快速收敛
YOLOv11改进策略【模型轻量化】| 替换骨干网络为EfficientNet v2,加速训练,快速收敛
806 18
YOLOv11改进策略【模型轻量化】| 替换骨干网络为EfficientNet v2,加速训练,快速收敛
|
7月前
|
资源调度 自然语言处理 网络架构
YOLOv11改进策略【Neck】| 使用CARAFE轻量级通用上采样算子
YOLOv11改进策略【Neck】| 使用CARAFE轻量级通用上采样算子
536 11
YOLOv11改进策略【Neck】| 使用CARAFE轻量级通用上采样算子
|
7月前
|
机器学习/深度学习 PyTorch TensorFlow
YOLOv11改进策略【卷积层】| SPD-Conv 针对小目标和低分辨率图像的检测任务
YOLOv11改进策略【卷积层】| SPD-Conv 针对小目标和低分辨率图像的检测任务
312 12
YOLOv11改进策略【卷积层】| SPD-Conv 针对小目标和低分辨率图像的检测任务