在快速发展的人工智能领域,科技的进步往往源于对复杂问题的突破性解决方案。如今,我们正站在一种激动人心的技术创新的前沿——即插即用的3D神经元注意算法。这一前沿技术不仅为计算神经科学提供了全新的视角,也为人工智能的未来打开了新的大门,想象一下,在这个信息爆炸的时代,计算机能够像人类一样,精准地关注和处理多维度的数据,仿佛拥有了第三只眼睛来观察世界。
本文所涉及所有资源均在地址可获取
目录
概述
核心逻辑
复现过程
写在最后
概述
本文提出了一种概念简单但非常有效的卷积神经网络注意模型。与现有的基于通道和空间的注意力模型相比,该模型在不增加参数的情况下,为一个层中的特征映射推断3D注意力权重.具体地说,作者基于一些著名的神经科学理论,提出了优化能量函数来确定每个神经元的重要性。之后,进一步推导了能量函数的快速闭式解,并表明该解可以在不到10行的代码中实现。该模块的另一个优点是,大多数算子是基于对所定义的能量函数的解来选择的,从而避免了太多的结构调整工作。对多种视觉任务的定量评价表明,该模型灵活有效地提高了多个ConvNets的表示能力。
此外,我将该算法应用到了多模态情感计算和抑郁症检测任务中,利用该算法为每个单模态神经元生成一个3D权重,并提升后续inter-modal间的交互效率,同时,由于现如今大多数的情感计算数据集都是基于英文语言开发的,我还加入了中文多模态情感计算数据集(SIMS, SIMSv2)应用在模型中,以开发适用于国人的情感计算分析模型,并应用在情感疾病(如抑郁症、自闭症)检测任务,为医学心理学等领域提供帮助。
这篇文章,我讲解并复现了一篇经典有效的注意力算法 – SimAM,并将他应用在多模态情感计算和抑郁症检测任务中,此外,它还可以应用在多种任务中,比如计算机视觉,NLP等,原创部分为将该算法应用在了情感计算和抑郁症数据集以实现抑郁症检测任务,以及在图像分类(COCO,CIFAR10),SIMS数据集和SIMV2多种数据集上进行实验。
研究背景:卷积神经网络(ConvNets)在大规模数据集(例如,ImageNet)大大提升了许多视觉任务的性能,例如图像分类、目标检测和视频理解。多项研究表明,一个更好的ConvNet结构可以显著提高在各种问题上的性能。因此,构建一个强的ConvNet是视觉研究中的一个重要任务。现代的ConvNet通常有多个阶段,每个阶段都由几个块组成。这种块是由卷积、池化、激活等操作符或某种定制的元结构(本文称之为模块)构成的。
主要贡献:受人脑注意机制的启发,本文提出了一个具有全三维权重的注意模型,并设计了一个能量函数来计算权重;导出能量函数的封闭形式的解,其加速了权重计算并且允许整个模块的轻量形式;将提出的模块集成到一些著名的网络中,并在各种任务上对它们进行评估。我们的模块在精度、模型大小和速度方面与其他流行模块相比表现良好
核心逻辑
为了成功地实现注意力,我们需要估计单个神经元的重要性。如何根据层中的特征图计算单个神经元的重要性?在视觉神经科学中,信息量最大的神经元通常是那些与周围神经元表现出不同放电模式的神经元。
此外,活跃的神经元还可以抑制周围神经元的活动,这种现象被称为空间抑制。换句话说,显示清楚的空间抑制效应的神经元应当被给予更高的优先级(即,重要性)。找到这些神经元的最简单的实现是测量一个目标神经元和其他神经元之间的线性可分性。基于这些神经科学的发现,我们为每个神经元定义了以下能量函数:
这里,t^=wtt+btt^=wtt+bt 和 x^i=wtxi+btx^i=wtxi+bt 是 tt 和 xixi 的线性变换,其中 tt 和 xixi 是输入特征 X∈RC×H×WX∈RC×H×W 中单个通道的目标神经元和其他神经元。ii 是空间维度上的索引,M=H×WM=H×W 是该通道上的神经元的数量。wtwt 和 btbt 是对变换的加权和偏置。等式(1)中的所有值都是标量。当 nn 等于 ytyt 并且所有其他 nxinxi 都是 yoyo 时,方程(1)达到最小值,其中 ytyt 和 yoyo 是两个不同的值。通过最小化该等式,等式(1)等效于找到目标神经元 tt 和同一通道中的所有其他神经元之间的线性可分性。为简单起见,我们采用二进制标签(即,1 和 -1),并且还将正则化器添加到等式(1)中。最终的能量函数由下式(2)给出:
理论上,对于每个通道,我们有 MM 个能量函数。通过一些迭代求解器(如 SGD)来求解所有这些方程在计算上是非常繁重的。幸运的是,关于 wtwt 和 btbt 的方程 (2) 有一个快速的闭式解,可以通过以下方式轻松获得:
μt=M−11∑i=1M−1xi 和 σt2=1M−1∑i=1M−1(xi−μt)2σt2=M−11∑i=1M−1(xi−μt)2 分别是在该通道中所有神经元(除了目标神经元tt)上的均值和方差。由于公式(3)和公式(4)的现有解是在单个通道上获得的,因此可以合理地假设单个通道中的所有像素都遵循相同的分布。基于这一假设,均值和方差可以在所有神经元上计算,并在该通道的所有神经元上重复使用。这样可以显著减少计算成本,避免为每个位置重复计算μμ 和 σσ。最终的最小能量可以通过以下公式计算:
其中,μ^=1M∑i=1Mxiμ^=M1∑i=1Mxi 和 σ^2=1M∑i=1M(xi−μ^)2σ^2=M1∑i=1M(xi−μ^)2。公式 (5) 表明,能量 et∗et∗ 越低,神经元 tt 就越能从周围的神经元中脱颖而出,对于视觉处理而言也更为重要。因此,每个神经元的重要性可以通过 1/et∗1/et∗ 来表示。与我们的方法类似,研究了一个用于语义部分匹配的类似函数,但他们的方法需要计算一个大的协方差矩阵,这不适合用于深度神经网络。与不同的是,我们操作单个神经元,并将这种线性可分性集成到一个端到端框架中。此外,我们还从神经科学的角度提供了全面的理解。
截至目前,我们已经推导出一个能量函数并找出了每个神经元的重要性。根据 (Hillyard et al., 1998) 的研究,哺乳动物大脑中的注意力调节通常表现为对神经元反应的增益(即缩放)效应。因此,我们采用缩放操作而非加法来进行特征精炼。我们模块的整个精炼阶段为,其中 EE 将所有通道和空间维度上的 et∗et∗ 进行汇总。为了限制 EE 中过大的值,使用了 sigmoid 函数。由于 sigmoid 函数是单调函数,这不会影响每个神经元的相对重要性:
复现过程
在情感计算任务中,可以看到加入 SimAM 算法后性能有了明显提升,证明了其有效性:
在下载附件并准备好数据集并调试代码后,进行下面的步骤,附件已经调通并修改,可直接正常运行,数据集准备下载附件中多种数据集已提取好的特征文件。把它放在"./dataset”目录。下载预训练语言模型 下载附件中SentiLARE语言模型文件,然后将它们放入"/pretrained-model / sentilare_model”目录:
pip install -r requirements.txt
$ python train.py
训练过程和最终结果如下所示:
近年来,注意力机制在深度学习中,尤其是在卷积神经网络(CNN)中的应用,取得了显著进展。传统的注意力模块,如SE(Squeeze-and-Excitation)模块和CBAM(Convolutional Block Attention Module),通过调整不同通道和空间位置的权重来增强CNN的特征表达能力。然而,这些方法通常依赖于复杂的结构设计和大量的参数,这在某些情况下会增加模型的计算成本,并且在实际应用中可能会受限,SimAM(Simple Attention Module) 是一种新型的注意力机制,旨在通过简化注意力模块的结构来减少计算复杂度,同时保持高效的特征增强能力。SimAM的核心特点包括:
1)参数无关:SimAM模块不引入任何额外的可训练参数。这意味着在模型的训练和推理过程中,SimAM不会增加计算成本或内存占用。
2)基于神经科学的动机:SimAM的设计灵感来自于神经科学,尤其是对单个神经元行为的模拟。它通过计算每个神经元在特征图中的“响应强度”来确定该位置的重要性。响应强度的计算基于输入特征的均方误差(MSE),模拟了神经元对输入刺激的响应。
3)简单的实现:SimAM通过简单的数学运算(如均方误差和Sigmoid函数)来计算注意力分数,这使得它易于实现,并且能够与现有的CNN架构无缝集成。
4)增强特征表示:SimAM能够有效地增强重要的特征表示,从而提高模型在图像分类、目标检测等任务中的表现。
写在最后
在深入探讨即插即用的3D神经元注意算法后,我们可以清晰地看到,这一技术正将人工智能的未来推向一个全新的高度。通过在三维空间中实现高度精准的感知与分析,这一算法不仅突破了传统二维数据处理的局限,还开创了无数可能性,使计算机能够以更接近人类思维的方式理解和处理复杂信息,即插即用的3D神经元注意算法的出现,标志着人工智能领域的一次深刻变革。从医疗影像分析到虚拟现实体验,从自动驾驶到智能机器人,这一技术正以令人瞩目的速度重新定义着我们与技术互动的方式。它不仅为我们提供了更为精确的数据处理能力,也为各行业带来了革命性的应用前景。
详细复现过程的项目源码、数据和预训练好的模型可从该文章下方附件获取。