🏡作者主页:点击!
🤖编程探索专栏:点击!
⏰️创作时间:2024年11月18日10点39分
神秘男子影,
秘而不宣藏。
泣意深不见,
男子自持重,
子夜独自沉。
论文连接
点击开启你的论文编制之旅https://www.aspiringcode.com/content?id=17233502496862
3D神经元注意力:为每一个神经元分配权重!(算法)
本文提出了一种概念简单但非常有效的卷积神经网络注意模型。与现有的基于通道和空间的注意力模型相比,该模型在不增加参数的情况下,为一个层中的特征映射推断3D注意力权重.具体地说,作者基于一些著名的神经科学理论,提出了优化能量函数来确定每个神经元的重要性。之后,进一步推导了能量函数的快速闭式解,并表明该解可以在不到10行的代码中实现。该模块的另一个优点是,大多数算子是基于对所定义的能量函数的解来选择的,从而避免了太多的结构调整工作。对多种视觉任务的定量评价表明,该模型灵活有效地提高了多个ConvNets的表示能力.
此外,我将该算法应用到了多模态情感计算和抑郁症检测任务中,利用该算法为每个单模态神经元生成一个3D权重,并提升后续inter-modal间的交互效率;
同时,由于现如今大多数的情感计算数据集都是基于英文语言开发的,我还加入了中文多模态情感计算数据集(SIMS, SIMSv2)应用在模型中,以开发适用于国人的情感计算分析模型,并应用在情感疾病(如抑郁症、自闭症)检测任务,为医学心理学等领域提供帮助。
【注】 我们文章中所用到的数据集,都经过重新特征提取形成新的数据集特征文件(.pkl),另外该抑郁症数据集因为涉及患者隐私,需要向数据集原创者申请,申请和下载链接都放在了我们附件中的 readme文件中,感兴趣的小伙伴可以进行下载,谢谢支持!
一、概述
这篇文章,我讲解并复现了一篇经典有效的注意力算法 – SimAM,并将他应用在多模态情感计算和抑郁症检测任务中,此外,它还可以应用在多种任务中,比如计算机视觉,NLP等等
原创部分为将该算法应用在了情感计算和抑郁症数据集以实现抑郁症检测任务,以及在图像分类(COCO,CIFAR10),SIMS数据集和SIMV2多种数据集上进行实验。
二、研究背景
卷积神经网络(ConvNets)在大规模数据集(例如,ImageNet)大大提升了许多视觉任务的性能,例如图像分类、目标检测和视频理解。多项研究表明,一个更好的ConvNet结构可以显著提高在各种问题上的性能。因此,构建一个强的ConvNet是视觉研究中的一个重要任务。现代的ConvNet通常有多个阶段,每个阶段都由几个块组成。这种块是由卷积、池化、激活等操作符或某种定制的元结构(本文称之为模块)构成的。最近,许多工作集中在构建高级块以提高ConvNets的表示能力。叠加卷积、残差单元和密集连接是最具代表性的,已经广泛应用于现有架构中。然而,设计这些模块需要丰富的专业知识和大量的时间。然而,现有的注意力模块存在两个问题。首先,它们只能沿通道或空间维度沿着细化特征,限制了它们学习跨通道和空间变化的注意力权重的灵活性。其次,它们的结构是由一系列复杂的因素构成的,例如,池的选择。
三、主要贡献
- 受人脑注意机制的启发,本文提出了一个具有全三维权重的注意模型,并设计了一个能量函数来计算权重;
- 导出能量函数的封闭形式的解,其加速了权重计算并且允许整个模块的轻量形式;
- 将提出的模块集成到一些著名的网络中,并在各种任务上对它们进行评估。我们的模块在精度、模型大小和速度方面与其他流行模块相比表现良好。
四、模型结构和代码
为了成功地实现注意力,我们需要估计单个神经元的重要性。如何根据层中的特征图计算单个神经元的重要性?在视觉神经科学中,信息量最大的神经元通常是那些与周围神经元表现出不同放电模式的神经元。此外,活跃的神经元还可以抑制周围神经元的活动,这种现象被称为空间抑制。换句话说,显示清楚的空间抑制效应的神经元应当被给予更高的优先级(即,重要性)。找到这些神经元的最简单的实现是测量一个目标神经元和其他神经元之间的线性可分性。基于这些神经科学的发现,我们为每个神经元定义了以下能量函数:
这里,𝑡^=𝑤𝑡𝑡+𝑏𝑡t^=wtt+bt 和 𝑥^𝑖=𝑤𝑡𝑥𝑖+𝑏𝑡x^i=wtxi+bt 是 𝑡t 和 𝑥𝑖xi 的线性变换,其中 𝑡t 和 𝑥𝑖xi 是输入特征 𝑋∈𝑅𝐶×𝐻×𝑊X∈RC×H×W 中单个通道的目标神经元和其他神经元。𝑖i 是空间维度上的索引,𝑀=𝐻×𝑊M=H×W 是该通道上的神经元的数量。𝑤𝑡wt 和 𝑏𝑡bt 是对变换的加权和偏置。等式(1)中的所有值都是标量。当 𝑛n 等于 𝑦𝑡yt 并且所有其他 𝑛𝑥𝑖nxi 都是 𝑦𝑜yo 时,方程(1)达到最小值,其中 𝑦𝑡yt 和 𝑦𝑜yo 是两个不同的值。通过最小化该等式,等式(1)等效于找到目标神经元 𝑡t 和同一通道中的所有其他神经元之间的线性可分性。为简单起见,我们采用二进制标签(即,1 和 -1),并且还将正则化器添加到等式(1)中。最终的能量函数由下式(2)给出:
理论上,对于每个通道,我们有 𝑀M 个能量函数。通过一些迭代求解器(如 SGD)来求解所有这些方程在计算上是非常繁重的。幸运的是,关于 𝑤𝑡wt 和 𝑏𝑡bt 的方程 (2) 有一个快速的闭式解,可以通过以下方式轻松获得:
μt=M−11∑i=1M−1xi 和 𝜎𝑡2=1𝑀−1∑𝑖=1𝑀−1(𝑥𝑖−𝜇𝑡)2σt2=M−11∑i=1M−1(xi−μt)2 分别是在该通道中所有神经元(除了目标神经元𝑡t)上的均值和方差。由于公式(3)和公式(4)的现有解是在单个通道上获得的,因此可以合理地假设单个通道中的所有像素都遵循相同的分布。基于这一假设,均值和方差可以在所有神经元上计算,并在该通道的所有神经元上重复使用。这样可以显著减少计算成本,避免为每个位置重复计算𝜇μ 和 𝜎σ。最终的最小能量可以通过以下公式计算:
其中,𝜇^=1𝑀∑𝑖=1𝑀𝑥𝑖μ^=M1∑i=1Mxi 和 𝜎^2=1𝑀∑𝑖=1𝑀(𝑥𝑖−𝜇^)2σ^2=M1∑i=1M(xi−μ^)2。公式 (5) 表明,能量 𝑒𝑡∗et∗ 越低,神经元 𝑡t 就越能从周围的神经元中脱颖而出,对于视觉处理而言也更为重要。因此,每个神经元的重要性可以通过 1/𝑒𝑡∗1/et∗ 来表示。与我们的方法类似,研究了一个用于语义部分匹配的类似函数,但他们的方法需要计算一个大的协方差矩阵,这不适合用于深度神经网络。与不同的是,我们操作单个神经元,并将这种线性可分性集成到一个端到端框架中。此外,我们还从神经科学的角度提供了全面的理解。
截至目前,我们已经推导出一个能量函数并找出了每个神经元的重要性。根据 (Hillyard et al., 1998) 的研究,哺乳动物大脑中的注意力调节通常表现为对神经元反应的增益(即缩放)效应。因此,我们采用缩放操作而非加法来进行特征精炼。我们模块的整个精炼阶段为:
其中 𝐸E 将所有通道和空间维度上的 𝑒𝑡∗et∗ 进行汇总。为了限制 𝐸E 中过大的值,使用了 sigmoid 函数。由于 sigmoid 函数是单调函数,这不会影响每个神经元的相对重要性。
五、数据集介绍
1. 计算机视觉数据集:
- COCO: COCO 数据集是一个广泛用于计算机视觉任务的大型数据集,特别是物体检测、分割和图像标注。其中包含超过 20 万张图像,包含 80 个对象类别,提供了详细的标注信息,包括物体的边界框、分割掩膜、关键点(如人体姿态估计)以及图像的描述性文字;
- CIFAR: CIFAR 数据集由加拿大高级研究院(CIFAR)提供,主要用于图像分类任务。它包含了不同场景和对象的小尺寸图像,广泛用于机器学习和深度学习算法的基准测试。CIFAR-10 包含 60,000 张图像,其中 50,000 张用于训练,10,000 张用于测试。CIFAR-100 包含 60,000 张图像,其中 50,000 张用于训练,10,000 张用于测试。CIFAR-10: 10 个类别(飞机、汽车、鸟类、猫、鹿、狗、青蛙、马、船、卡车)。
CIFAR-100: 100 个类别(从 CIFAR-10 中的类别扩展,涵盖更广泛的对象和场景)。
2. 多模态情感计算数据集:
- CMU-MOSI: CMU-MOSI数据集是MSA研究中流行的基准数据集。该数据集是YouTube独白的集合,演讲者在其中表达他们对电影等主题的看法。MOSI共有93个视频,跨越89个远距离扬声器,包含2198个主观话语视频片段。这些话语被手动注释为[-3,3]之间的连续意见评分,其中-3/+3表示强烈的消极/积极情绪。
- CMU-MOSEI: CMU-MOSEI数据集是对MOSI的改进,具有更多的话语数量,样本,扬声器和主题的更大多样性。该数据集包含23453个带注释的视频片段(话语),来自5000个视频,1000个不同的扬声器和250个不同的主题
- SIMS/SIMSV2: CH-SIMS数据集[35]是一个中文多模态情感分析数据集,为每种模态提供了详细的标注。该数据集包括2281个精选视频片段,这些片段来自各种电影、电视剧和综艺节目,每个样本都被赋予了情感分数,范围从-1(极度负面)到1(极度正面)
3. 多模态抑郁检测数据集:
- AVEC2019: AVEC2019 DDS数据集是从患者临床访谈的视听记录中获得的。访谈由虚拟代理进行,以排除人为干扰。与上述两个数据集不同的是,AVEC2019中的每种模态都提供了几种不同的特征。例如,声学模态包括MFCC、eGeMaps以及由VGG和DenseNet提取的深度特征。在之前的研究中,发现MFCC和AU姿势分别是声学和视觉模态中两个最具鉴别力的特征。因此,为了简单和高效的目的,我们只使用MFCC和AU姿势特征来检测抑郁症。数据集用区间[0,24]内的PHQ-8评分进行注释,PHQ-8评分越大,抑郁倾向越严重。该基准数据集中有163个训练样本、56个验证样本和56个测试样本。
六、性能展示
- 在情感计算任务中,可以看到加入 SimAM 算法后性能有了明显提升,证明了其有效性;
- 抑郁症检测任务,以下是 加入SimAM 算法后在抑郁症数据集AVEC2019中的表现:
Model | CCC | MAE |
Baseline | 0.111 | 6.37 |
EF | 0.34 | – |
Bert-CNN & Gated-CNN | 0.403 | 6.11 |
Temporal Dilated CNN | 0.430 | 4.39 |
+ SimAM | 0.458 | 4.07 |
六、复现过程
在下载附件并准备好数据集并调试代码后,进行下面的步骤,附件已经调通并修改,可直接正常运行;
1. 数据集准备
下载附件中多种数据集已提取好的特征文件。把它放在"./dataset”目录。
2. 下载预训练语言模型
下载附件中SentiLARE语言模型文件,然后将它们放入"/pretrained-model / sentilare_model”目录。
3. 下载需要的包
pip install -r requirements.txt
4. 进行训练
$ python train.py
七、运行过程
- 训练过程
2.最终结果
SimAM总结
SimAM: A Simple, Parameter-Free Attention Module for Convolutional Neural Networks
研究背景
近年来,注意力机制在深度学习中,尤其是在卷积神经网络(CNN)中的应用,取得了显著进展。传统的注意力模块,如SE(Squeeze-and-Excitation)模块和CBAM(Convolutional Block Attention Module),通过调整不同通道和空间位置的权重来增强CNN的特征表达能力。然而,这些方法通常依赖于复杂的结构设计和大量的参数,这在某些情况下会增加模型的计算成本,并且在实际应用中可能会受限。
SimAM的主要内容
SimAM(Simple Attention Module) 是一种新型的注意力机制,旨在通过简化注意力模块的结构来减少计算复杂度,同时保持高效的特征增强能力。SimAM的核心特点包括:
- 参数无关:SimAM模块不引入任何额外的可训练参数。这意味着在模型的训练和推理过程中,SimAM不会增加计算成本或内存占用。
- 基于神经科学的动机:SimAM的设计灵感来自于神经科学,尤其是对单个神经元行为的模拟。它通过计算每个神经元在特征图中的“响应强度”来确定该位置的重要性。响应强度的计算基于输入特征的均方误差(MSE),模拟了神经元对输入刺激的响应。
- 简单的实现:SimAM通过简单的数学运算(如均方误差和Sigmoid函数)来计算注意力分数,这使得它易于实现,并且能够与现有的CNN架构无缝集成。
- 增强特征表示:SimAM能够有效地增强重要的特征表示,从而提高模型在图像分类、目标检测等任务中的表现。
应用场景
- 图像分类:SimAM可以应用于各种图像分类任务,通过增强特征表示,提升CNN模型的分类准确性。
- 目标检测:在目标检测任务中,SimAM能够突出目标区域的特征,从而提高检测模型的精度和鲁棒性。
- 语义分割:SimAM有助于在语义分割任务中增强重要区域的特征表示,提高分割的精度。
- 轻量级模型:由于SimAM不引入额外的参数,因此非常适合在移动设备或嵌入式系统中部署轻量级的深度学习模型。
研究的影响与贡献
SimAM的提出为注意力机制的设计提供了一个新思路,即通过简化模型结构和减少参数数量来提高效率,同时保持甚至提升性能。这种方法在一些计算资源有限的应用场景中具有重要的应用价值,也为未来的注意力机制研究提供了启发。
成功的路上没有捷径,只有不断的努力与坚持。如果你和我一样,坚信努力会带来回报,请关注我,点个赞,一起迎接更加美好的明天!你的支持是我继续前行的动力!"
"每一次创作都是一次学习的过程,文章中若有不足之处,还请大家多多包容。你的关注和点赞是对我最大的支持,也欢迎大家提出宝贵的意见和建议,让我不断进步。"
神秘泣男子