
本文教的是方法,也给出几种改进方法,二次创新结构,百变不离其宗,一文带你改进自己模型,科研路上少走弯路。CBAMCBAM是一个简单而有效的注意力模块,用于前馈卷积神经网络。给定一个中间特征图,我们的模块按顺序推断两个独立维度(通道和空间)的注意力图,然后将注意力图乘以输入特征图以进行自适应特征细化。由于 CBAM 是一个轻量级的通用模块,因此它可以无缝集成到任何 CNN 架构中,开销可以忽略不计,并且可以与基础 CNN 一起进行端到端训练。结构如下图所示(摘自论文):CBAM 将注意力分为两个子模块,依次串联:通道注意力模块:与 SE 类似,但同时使用了平均池化和最大池化来收集信息。空间注意力模块:在通道维度上做平均和最大池化,得到一个 2D 权重图,再通过7 × 7 7 \times 77×7卷积提取空间重要区域。理论详解可以参考链接:论文地址代码可在这个链接找到:代码地址SE卷积神经网络(CNN)的核心构建模块是卷积算子,它使网络能够通过在每一层的局部感受野内融合空间和通道信息来构建有信息的特征。大量先前的研究探讨了这种关系的空间成分,试图通过提高整个特征层次中空间编码的质量来增强CNN的表征能力。作者提出了一种新颖的架构单元,称之为“Squeeze-and-Excitation”(SE)块,该块通过显式建模通道之间的相互依赖关系来自适应地重新校准通道特征响应。SE 模块通过显式建模通道间的相互依赖关系来重塑特征。它分为两个步骤:Squeeze(压缩):通过全局平均池化(GAP)将每个通道的H × W H \times WH×W空间信息压缩成一个实数(全局描述符)。Excitation(激发):使用两个全连接层(FC)学习通道间的非线性关系,生成每个通道的权重,最后乘回原特征图。理论详解可以参考链接:论文地址代码可在这个链接找到:代码地址CACA注意力机制,将位置信息嵌入到信道注意力中称之为“协调注意力”。与渠道关注不同通过2D全局池将特征张量转换为单个特征向量,坐标注意力因子将通道注意力转化为两个1D特征编码过程,这两个过程分别沿着两个空间方向聚合特征。通过这种方式,可以沿着一个空间方向捕获长程依赖性和均值,同时可以沿着另一个空间方向。生成的特征图为然后分别编码为一对方向感知和位置敏感注意力图,其可以被完全应用于输入特征图以增加感兴趣对象的表示。坐标保持简单,可以灵活插入经典网络。结构如下图所示(摘自论文):为了解决传统池化丢失位置信息的问题,CA 将通道注意力分解为两个 1D 特征编码过程。逻辑:分别沿水平(X)和垂直(Y)方向进行全局池化,生成两个带有精确位置信息的特征图。优势:能够捕获跨通道的信息,同时保留长距离的空间位置依赖关系。理论详解可以参考链接:论文地址代码可在这个链接找到:代码地址GAM全局注意力机制(GAM),通过减少信息减少和放大全局交互表示来提高深度神经网络的性能。引入了带有多层感知器的 3D 排列,用于通道注意力以及卷积空间注意力子模块。结构如下图所示(摘自论文):它是对 CBAM 的改进,旨在减少信息损失并放大全局交互。逻辑:在通道注意力部分,使用了 3D 排列(Permutation)来保持三维信息,并使用多层感知机(MLP);在空间注意力部分,使用两个卷积层来进一步融合特征。理论详解可以参考链接:论文地址代码可在这个链接找到:代码地址EMA在各种计算机视觉任务中,通道或空间注意力机制在生成更具辨识度的特征表示方面表现出显著的效果。然而,通过通道维度减少来建模跨通道关系可能会在提取深度视觉表示时带来副作用。高效多尺度注意力(EMA)模块模块重点在于保留每个通道的信息并降低计算开销,将部分通道重新排列到批次维度,并将通道维度分组为多个子特征,使得空间语义特征在每个特征组内分布均匀。结构如下图所示(摘自论文):EMA 注意机制侧重于在不进行维度缩减的情况下利用多尺度信息。逻辑:将通道分为多个组,并行提取不同空间尺度上的特征。利用了类似 CA 的坐标信息嵌入方法,但引入了跨空间学习机制,让不同分支的特征进行交互融合。理论详解可以参考链接:论文地址代码可在这个链接找到:代码地址ECA一种高效信道衰减(ECA)模块,该模块只涉及少数参数,同时带来明显的性能增益。通过解剖实证地展示了SENet中的通道注意力模块避免降维对学习很重要信道注意力和适当的跨信道交互可以在显著降低模型复杂度的同时保持性能。因此,提出了一种不降维的局部跨通道交互策略,该策略可以通过1D卷积有效地实现。此外,还开发了一种自适应选择的方法1D卷积的核大小,确定局部跨通道相互作用的覆盖范围。结构如下图所示(摘自论文):作者认为 SE 的全连接层降维会损害通道间的直接对应关系。逻辑:去掉全连接层,在全局平均池化后,直接使用一个1D 卷积实现跨通道交互。理论详解可以参考链接:论文地址代码可在这个链接找到:代码地址DADA 是一种可变形自注意模块,其中键和值对在自我注意中的位置是以数据相关的方式选择。这种灵活的方案使自我关注模块能够专注于相关的区域,并捕捉更多信息特征。在此基础上,提出了可变形注意力变换器,一个具有可变形注意力的两幅图像主干模型分类和密集预测任务。结构如下图所示(摘自论文):理论详解可以参考链接:论文地址代码可在这个链接找到:代码地址训练代码参考和下载:手把手教你使用ConvNeXt训练自己数据集和推理,ConvNeXt模型训练(CVPR 2022),一个能挑战 Vision Transformer 的卷积神经网络,含完整代码和数据集文章目录CBAMSECAGAMEMAECADA🐴一、实战细节⚡⚡实验结果画图⚡⚡改进模块代码☑️cbam.py☑️se.py☑️ca.py☑️gam.py☑️ema.py☑️eca.py☑️da.py☑️nblock.py⚡⚡使用教程☑️步骤1☑️步骤2☑️步骤3☑️步骤4🐴二、模型结构分析⚡⚡ 注意机制结构分析⚡⚡ConvNeXt 结构分析☑️CNBlock 结构图⚡⚡二次创新实战☑️第一种改进手法📐模块的传参分析教程☑️第二种改进手法☑️第三种改进手法🐴三、论文常用的评估指标☑️准确率 (Accuracy, ACC)☑️精确率 (Precision)☑️召回率 (Recall)☑️F1分数 (F1 Score)总结🐴一、实战细节⚡⚡实验结果画图画图效果如下,代码可一键运行画图代码:# -*- coding: utf-8 -*-""" @Auth :落花不写码 @File :画图.py @IDE :PyCharm @Motto :学习新思想,争做新青年 """importmatplotlib.pyplotaspltimportpandasaspd