基于深度学习的抑郁症检测混合模型

2023-12-29 06:50

本文主要是介绍基于深度学习的抑郁症检测混合模型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Field: 深度学习、抑郁检测、多模态

Title: A hybrid model for depression detection using deep learning

Journal: Measurement: Sensors

Data: 2022.11

Author:Vandana a, Nikhil Marriwala

Research context:针对语音和文本数据,文章提出构建了三种模型,分别验证三种模型在抑郁倾向上的检测效果,对比研究

Method

提出了三种抑郁症检测模型:

1.textual CNN

2.audio CNN

3.text CNN and audio CNN 混合(混合LSTM,混合Bi-LSTM)

        作者验证了三者的各项指标,accuracy、F1 score、loss and so on,发现audio CNN在抑郁症检测方面上能获得良好的效果,准确率达到98%,损失为0.1%,而text CNN的准确度为92%,损失为0.2%,混合LSTM模型的准确率为0.80%,损失为0.4。Bi-LSTM模型的精度为0.88,高于混合LSTM模型,损失为0.2。这意味着对于抑郁症检测,Bi-LSTM模型比LSTM模型更准确地预测。但是仍低于Audio CNN

Goodness:

        提出了一个基于语音和文本的抑郁症倾向检测的混合模型(混合Bi-LSTM和混合LSTM),文章对比研究了语音数据集在Audio CNN上表现特点、文本数据集在Text CNN、以及语音和文本在混合模型上的性能。

        文章将文本信息转化为向量加入到CNN中,将语音限号每帧的频谱作为图像输入到CNN中

Badness:

        混合模型(混合Bi-LSTM和混合LSTM)的效果并没有Audio CNN 的好,并没有仔细提出实验过程,只是提供了原理

Study:

        1.在文本CNN中进行文本分类的工作,使用了工作嵌入层和CNN层。单词嵌入是单词的矢量或图片表示。Word 2 vec是词到向量的意思,是最流行的词嵌入技术。Word 2 vec的输入是文本数据,输出是矢量或图片。

        2.音频分类的第一步是将音频样本转换为频谱图。这是音频分类的重要步骤。频谱图是信号频率随时间变化的视觉表示。

        在将音频样本转换为频谱图之后,下一步是音频分割。在音频分割中,从音频样本中去除额外的噪声和静音,这一步骤也称为分段。在从音频或语音样本中去除不需要的噪声和静音之后,下一步是数据不平衡。在数据集中,非抑郁症患者的信息量要多于抑郁症患者。这是抑郁症患者数据的四倍。这就是为什么数据不平衡很重要。平衡抑郁症的数据:非降为等数。第三步是频谱转换。采样的音频片段然后被转换成大小为512*512像素的频谱图图像。这些图像以8:2的比例放入训练和验证文件夹中。

        3.LSTM或(长短期记忆)算法是一种递归神经网络(RNN),其中大部分特征与一层到上一层相关联,它还允许信息从过去传递到现在,然后从现在传递到未来。RNN对向量序列进行操作。因此,每一层都依赖于先前的输出。RNN的问题是,随着时间的推移,信息会迅速丢失。

        它们是为了解决RNN中的信息丢失问题而设计的。LSTM能够学习长时间的依赖关系,这使得RNN在记忆事物方面足够聪明。使用LSTM的优势在于,它将有助于数据处理预测和预处理应用。        

        4.neural network层

        (1)卷积层是神经网络的第一层,也是最重要的一层。这一层创建了整个神经网络的构建块。卷积层的主要目的是检测输入的类型,即,文本特征、音频特征或两者。在卷积层,输入图像与相同大小的滤波器卷积,然后得到输出图像。在输出中,开发了特征图。卷积层采用滤波核作为权值,权值在卷积层采用反向传播算法更新。

(2)最大池化层-池化层位于两个卷积层之间。池化层的主要工作是减少输入的大小。这一层帮助模型减少数据的实际大小,并仅使用必要的数据信息更新数据。这一层提高了神经网络的效率。它减少了数据中不需要的特征。池化层在卷积层和全连接层之间创建了一个桥梁。池层也有助于减少神经网络中发生的过拟合问题。

        (3)ReLU作为激活函数- ReLU意味着整流线性单元,该函数描述非线性。该层将所有负值数据替换为零值。该层是重要的层,因为它决定将哪些信息传递到下一个卷积层以及丢弃哪些信息。有许多激活函数,如SoftMax,ReLU,tanH,Sigmoid。

        (4)完全连接层-通常放置在输出分类层之前的完全连接层。在这一层中,分类开始发生,结果会自动更新。在神经网络中,使用一个或两个完全连接的层是很重要的。

        (5)Batch Normalization- Batch Normalization层将前一层的输出归一化。它有助于模型有效地学习特征。它使模型稳定,执行速度更快。它使模型的处理和学习更快。

        (6) Dropout层- Dropout是一个有助于减少模型中过度拟合的层。它随机丢弃神经网络的一些值,使模型学习速度更快。丢弃层放置在完全连接层之后。推荐的dropout值为0.25。它会导致神经网络的训练速度变慢。

这篇关于基于深度学习的抑郁症检测混合模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/548679

相关文章

深度解析Spring Security 中的 SecurityFilterChain核心功能

《深度解析SpringSecurity中的SecurityFilterChain核心功能》SecurityFilterChain通过组件化配置、类型安全路径匹配、多链协同三大特性,重构了Spri... 目录Spring Security 中的SecurityFilterChain深度解析一、Security

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

深度解析Java DTO(最新推荐)

《深度解析JavaDTO(最新推荐)》DTO(DataTransferObject)是一种用于在不同层(如Controller层、Service层)之间传输数据的对象设计模式,其核心目的是封装数据,... 目录一、什么是DTO?DTO的核心特点:二、为什么需要DTO?(对比Entity)三、实际应用场景解析

深度解析Java项目中包和包之间的联系

《深度解析Java项目中包和包之间的联系》文章浏览阅读850次,点赞13次,收藏8次。本文详细介绍了Java分层架构中的几个关键包:DTO、Controller、Service和Mapper。_jav... 目录前言一、各大包1.DTO1.1、DTO的核心用途1.2. DTO与实体类(Entity)的区别1

深度解析Python装饰器常见用法与进阶技巧

《深度解析Python装饰器常见用法与进阶技巧》Python装饰器(Decorator)是提升代码可读性与复用性的强大工具,本文将深入解析Python装饰器的原理,常见用法,进阶技巧与最佳实践,希望可... 目录装饰器的基本原理函数装饰器的常见用法带参数的装饰器类装饰器与方法装饰器装饰器的嵌套与组合进阶技巧

深度解析Spring Boot拦截器Interceptor与过滤器Filter的区别与实战指南

《深度解析SpringBoot拦截器Interceptor与过滤器Filter的区别与实战指南》本文深度解析SpringBoot中拦截器与过滤器的区别,涵盖执行顺序、依赖关系、异常处理等核心差异,并... 目录Spring Boot拦截器(Interceptor)与过滤器(Filter)深度解析:区别、实现

深度解析Spring AOP @Aspect 原理、实战与最佳实践教程

《深度解析SpringAOP@Aspect原理、实战与最佳实践教程》文章系统讲解了SpringAOP核心概念、实现方式及原理,涵盖横切关注点分离、代理机制(JDK/CGLIB)、切入点类型、性能... 目录1. @ASPect 核心概念1.1 AOP 编程范式1.2 @Aspect 关键特性2. 完整代码实

SpringBoot开发中十大常见陷阱深度解析与避坑指南

《SpringBoot开发中十大常见陷阱深度解析与避坑指南》在SpringBoot的开发过程中,即使是经验丰富的开发者也难免会遇到各种棘手的问题,本文将针对SpringBoot开发中十大常见的“坑... 目录引言一、配置总出错?是不是同时用了.properties和.yml?二、换个位置配置就失效?搞清楚加

C++ 检测文件大小和文件传输的方法示例详解

《C++检测文件大小和文件传输的方法示例详解》文章介绍了在C/C++中获取文件大小的三种方法,推荐使用stat()函数,并详细说明了如何设计一次性发送压缩包的结构体及传输流程,包含CRC校验和自动解... 目录检测文件的大小✅ 方法一:使用 stat() 函数(推荐)✅ 用法示例:✅ 方法二:使用 fsee