即插即用的3D神经元注意算法!

news2024/11/19 12:14:17

🏡作者主页:点击! 

🤖编程探索专栏:点击!

⏰️创作时间:2024年11月18日10点39分


神秘男子影,
  秘而不宣藏。
泣意深不见,
男子自持重,
   子夜独自沉。

论文连接

点击开启你的论文编制之旅icon-default.png?t=O83Ahttps://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的表示能力。叠加卷积、残差单元和密集连接是最具代表性的,已经广泛应用于现有架构中。然而,设计这些模块需要丰富的专业知识和大量的时间。然而,现有的注意力模块存在两个问题。首先,它们只能沿通道或空间维度沿着细化特征,限制了它们学习跨通道和空间变化的注意力权重的灵活性。其次,它们的结构是由一系列复杂的因素构成的,例如,池的选择。

三、主要贡献

  1. 受人脑注意机制的启发,本文提出了一个具有全三维权重的注意模型,并设计了一个能量函数来计算权重;
  2. 导出能量函数的封闭形式的解,其加速了权重计算并且允许整个模块的轻量形式;
  3. 将提出的模块集成到一些著名的网络中,并在各种任务上对它们进行评估。我们的模块在精度、模型大小和速度方面与其他流行模块相比表现良好。

四、模型结构和代码

为了成功地实现注意力,我们需要估计单个神经元的重要性。如何根据层中的特征图计算单个神经元的重要性?在视觉神经科学中,信息量最大的神经元通常是那些与周围神经元表现出不同放电模式的神经元。此外,活跃的神经元还可以抑制周围神经元的活动,这种现象被称为空间抑制。换句话说,显示清楚的空间抑制效应的神经元应当被给予更高的优先级(即,重要性)。找到这些神经元的最简单的实现是测量一个目标神经元和其他神经元之间的线性可分性。基于这些神经科学的发现,我们为每个神经元定义了以下能量函数:

这里,𝑡^=𝑤𝑡𝑡+𝑏𝑡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

七、运行过程

  1. 训练过程

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的核心特点包括:

  1. 参数无关:SimAM模块不引入任何额外的可训练参数。这意味着在模型的训练和推理过程中,SimAM不会增加计算成本或内存占用。
  2. 基于神经科学的动机:SimAM的设计灵感来自于神经科学,尤其是对单个神经元行为的模拟。它通过计算每个神经元在特征图中的“响应强度”来确定该位置的重要性。响应强度的计算基于输入特征的均方误差(MSE),模拟了神经元对输入刺激的响应。
  3. 简单的实现:SimAM通过简单的数学运算(如均方误差和Sigmoid函数)来计算注意力分数,这使得它易于实现,并且能够与现有的CNN架构无缝集成。
  4. 增强特征表示:SimAM能够有效地增强重要的特征表示,从而提高模型在图像分类、目标检测等任务中的表现。
应用场景
  1. 图像分类:SimAM可以应用于各种图像分类任务,通过增强特征表示,提升CNN模型的分类准确性。
  2. 目标检测:在目标检测任务中,SimAM能够突出目标区域的特征,从而提高检测模型的精度和鲁棒性。
  3. 语义分割:SimAM有助于在语义分割任务中增强重要区域的特征表示,提高分割的精度。
  4. 轻量级模型:由于SimAM不引入额外的参数,因此非常适合在移动设备或嵌入式系统中部署轻量级的深度学习模型。
研究的影响与贡献

SimAM的提出为注意力机制的设计提供了一个新思路,即通过简化模型结构和减少参数数量来提高效率,同时保持甚至提升性能。这种方法在一些计算资源有限的应用场景中具有重要的应用价值,也为未来的注意力机制研究提供了启发。

成功的路上没有捷径,只有不断的努力与坚持。如果你和我一样,坚信努力会带来回报,请关注我,点个赞,一起迎接更加美好的明天!你的支持是我继续前行的动力!"

"每一次创作都是一次学习的过程,文章中若有不足之处,还请大家多多包容。你的关注和点赞是对我最大的支持,也欢迎大家提出宝贵的意见和建议,让我不断进步。"

神秘泣男子

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2243379.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mac的Terminal随机主题配置

2024年8月8日 引言 对于使用Mac的朋友,如果你是一个程序员,那肯定会用到Terminal。一般来说Terminal就是一个黑框,但其实Terminal是有10款官方皮肤。 每个都是不一样的主题,颜色和字体都会有所改变。现在就有一个方法可以很平均…

《Probing the 3D Awareness of Visual Foundation Models》论文解析——单图像表面重建

一、论文简介 论文讨论了大规模预训练产生的视觉基础模型在处理任意图像时的强大能力,这些模型不仅能够完成训练任务,其中间表示还对其他视觉任务(如检测和分割)有用。研究者们提出了一个问题:这些模型是否能够表示物体…

泷羽sec学习打卡-云技术基础1-docker

声明 学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 关于云技术基础的那些事儿-Base1 一、云技术基础什么是云架构?什么是云服务?什么…

03-axios常用的请求方法、axios错误处理

欢迎来到“雪碧聊技术”CSDN博客! 在这里,您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者,还是具有一定经验的开发者,相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导,我将…

Spring Boot 与腾讯云 MySQL 监听 Binlog 数据变化,并使用 UI 展示页面效果

引言 在现代的分布式系统和微服务架构中,数据同步和变更监控是保证系统一致性和实时性的核心问题之一。MySQL 数据库的 binlog(二进制日志)功能能够记录所有对数据库的修改操作,如插入(INSERT)、更新&…

Spring Boot汽车资讯:科技与速度的新纪元

摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了汽车资讯网站的开发全过程。通过分析汽车资讯网站管理的不足,创建了一个计算机管理汽车资讯网站的方案。文章介绍了汽车资讯网站的系统分析部分&…

thinkphp6模板调用URL方法生成的链接异常

var uul params.url ;console.log(params.url);console.log("{:Url(UserLog/index)}");console.log("{:Url("uul")}"); 生成的链接地址 UserLog/index /jjg/index.php/Home/UserLog/index.html /jjg/index.php/Home/Index/UserLog/index.html…

NodeJS 百度智能云文本转语音(实测)

现在文本转语音的技术已经非常完善了,尽管网络上有许多免费的工具,还是测试了专业的服务,选择了百度的TTS服务。 于是,在百度智能云注册和开通了文本转语音的服务,尝试使用NodeJS 实现文本转语音服务。但是百度的文档实…

UML 类图讲解

UML 类图符号含义 在 UML 类图中,每个符号都有其特定的含义。以下是常见符号的解释: : Public(公共访问权限)-: Private(私有访问权限)#: Protected(受保护访问权限)~: Package&…

【GAT】 代码详解 (1) 运行方法【pytorch】可运行版本

GRAPH ATTENTION NETWORKS 代码详解 前言0.引言1. 环境配置2. 代码的运行2.1 报错处理2.2 运行结果展示 3.总结 前言 在前文中,我们已经深入探讨了图卷积神经网络和图注意力网络的理论基础。还没看的同学点这里补习下。接下来,将开启一个新的阶段&#…

远程控制步骤

当远在千里之外的朋友想求助你帮他找到他电脑上的文件、或者是给他安装软件时。但是你给他说了他又找不到,那么这时你就可以通过控制对方的电脑去做一系列的操作。 如何远程控制对方的电脑非常关键。 方法一(Windows自带远程桌面功能)&#…

C指针之舞——指针探秘之旅

❤博客主页:折枝寄北-CSDN博客 ❤专栏内容:C语言学习专栏https://blog.csdn.net/2303_80170533/category_12794764.html?spm1001.2014.3001.5482 指针基础学习 在之前的博客文章中,简单总结了指针的基础概念 我们知道了指针的概念&#xf…

前端 JS 浅拷贝与深拷贝

目录 一、问题引出 二、浅拷贝 1、通过解构重构实现浅拷贝 三、深拷贝 1、自定义实现深拷贝 2、JSON实现深拷贝 四、总结 一、问题引出 基础类型的数据存放: let a 100let b aconsole.log("a:" a, "b:" b)a 50console.log("a…

72项!湖北省2024年度第二批省级科技计划项目拟立项项目公示!

本期精选 SCI&EI ●IEEE 1区TOP 计算机类(含CCF); ●EI快刊:最快1周录用! 知网(CNKI)、谷歌学术期刊 ●7天录用-检索(100%录用),1周上线; 免费稿件评估 免费匹配…

uniapp微信小程序转发跳转指定页面

onShareAppMessage 是微信小程序中的一个重要函数,用于自定义转发内容。当用户点击右上角的菜单按钮,并选择“转发”时,会触发这个函数。开发者可以在这个函数中返回一个对象,用于定义分享卡片的标题、图片、路径等信息。 使用场…

[N1CTF 2018]eating_cms

打开题目 只有个登录框,其他什么都没有,尝试了一下弱口令,没能成功 尝试访问一下register.php,看看能不能注册个账号 注册页面,随便注册个账号登陆一下 url中感觉是个注入点,尝试使用file伪协议读取一下us…

PMP–一、二、三模、冲刺–分类–5.范围管理–技巧–引导

文章目录 技巧一模5.范围管理--3.定义范围--工具与技术--引导--在研讨会和座谈会中使用引导技能来协调具有不同期望或不同专业知识的关键干系人,使他们就项目可交付成果以及项目和产品边界达成跨职能的共识。引导:题干关键词 “需求不同、需求差异、需求…

C语言-字符串指针及多变的访问方式

1、字符串指针 示例;输出字符串数组 1. #include <stdio.h> 2. #include <string.h> 3. 4. int main(){ 5. char str[] "<http://baidu.com>"; 6. int len strlen(str), i; 7. //直接输出字符串 8. printf("%s\\n", str); 9. //每次…

Linux之vim模式下全选命令

在Linux系统中&#xff0c;使用Vim编辑器进行全选操作可以通过以下几种方式实现&#xff1a; 1.使用键盘快捷键 按下 ”ggVG”&#xff08;先按下”g”&#xff0c;再按下”g”&#xff0c;再按下”V”&#xff0c;最后按下”G”&#xff09;可以全选当前文件内容。其中 ”g…