Resnet50网络的应用—抑郁症诊断

2023-12-29 06:50

本文主要是介绍Resnet50网络的应用—抑郁症诊断,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

写在前边

本人研究生阶段的研究内容为抑郁症诊断,最近一直在想搭建件简单有效的网络,提升自己编码能力的同时,推动科研的进展。本文是总结了最近两周学习的论文中,应用到Resnet_50网络的,在此进行整理和总结。欢迎相同方向的同学交流学习。

正文

相比于之前的思路,本部分选择的是三个论文,都是借助Resnet_50网络作为核心网路的,我觉得这个方向是可以进行相应的学习和研究的。


论文名称:DEPRESSION DETECTION BASED ON DEEP DISTRIBUTION LEARNING

数据集:AVEC2013、AVEC2014

创新点:本文的出发角度是很好的,解决现在部分模型中,损失函数是基于标记的面部图像,没有明确地探讨所有面部图像与抑郁水平之间的序数关系。通过对整个个体图片的完全整理,实现对所有图对相应的抑郁分数的对应,从而降低误差。

整体结构:

整体模型图如下图:

本文将抑郁症诊断问题作为分类问题处理的,整体以一个样本的所有图片作为一个样本,对应一个label。

本文提出  expectation loss 来描述抑郁分数的分布,首先针对输入的 i 个图片Xi,Yi为对应所以的label,Zi表示系统的输出抑郁症分数,计算获取概率,

为了求得分布,先计算下期望值,其中j表示label:

 

期望损失函数就可以表示为,其中M为bath_size:

实验部分:

 预处理:1>采样,AVEC2013每100帧取一帧,AVEC2014每10帧取一帧;2>人脸对齐裁剪MTCNN工具

 模型:在VGG FACE 上训练过的Resnet_50 

 评价标准 : MSE和RMS

结果:结果效果相比于之前的模型还是有很大的进步的,这也鼓励大家从整体的角度来考虑诊断的问题。

 现阶段思路的问题:实验中,作者是将一个vedio裁剪的图片一次送入到网络中吗?图片特别多,硬件不支持的问题是怎么处理的那?


论文名称:Learning content-adaptive feature pooling for facial depression recognition in videos

数据集:AVEC2014

创新点:作者发现,针对每个图片,模型认定其对最终结果的影响权重都是一样的。显然,这样是存在问题的,因为有的帧图片中的姿势、角度并不适合系统进行相应分数诊断。所以,作者借助memory attention mechanism 来对帧图片进行权重的分配,以使得效果较好的图片对结果起到主导作用。

整体结构:

从整体来看,网络是分为两部分:Resnet_50网络提取图片特征,级联的两层attention网络进行权重分配,最后的全连层输出抑郁诊断结果,网络整体结构如下图:

通过Resnet_50网络的到的特征,然后希望通过attention机制得到聚合向量h,其中\alpha表示的是权重

       \alpha的计算如下,首先通过一纬卷积核\theta ^T的卷积计算得到重要性系数c^{_{k}}将结果输入到softmax中得到相应的权重其实仔细的考虑,这获取权重的方式正是最正经的attention的应用。

由于是级联attention机制,所以两者的关系为:

最后的损失函数可以定义为:

实验结果:相比来看,结果没有一个论文的结果好。其实在再次思考论文的时候,我意识到,在之前attention机制是对一张图使用,抓住图种表达信息的关键信息,比如常见的输出人脸的哪个表达信息的图。在本文中,是将多个图看作是主体,使用attention机制选择出贡献较好的图片


论文名称:ENCODING TEMPORAL INFORMATION FOR AUTOMATIC DEPRESSION RECOGNITION

FROM FACIAL ANALYSIS

数据集:AVEC2013、AVEC2014

创新点:在传统双流的基础上,对时间特征的预处理做了新的处理,使用的提取高级语义特征的网络为Resnet_50网络

整体结构:

从时间和空间两个角度进行抑郁症诊断的模型从2015年首次使用抑郁症诊断就开始 了,通过看这个模型图可以感受到依旧是从双流的角度出发的,不同的是主体的网络已经不再是之前的CNN网络。本文的主要创新点在于这个时间流的特征。


其实,本文考虑的问题也是各种抑郁症诊断过程中不可避免的问题-----过拟合。 文中提出了一种新的时间池方法来捕获和编码视频剪辑的时空动态到图像地图。其实在早期的文章中,也是会通过光流图实现时间特征的提取。其实现过程如下所示:

实验:

 预处理:1>采样,AVEC2013每100帧取一帧,AVEC2014每10帧取一帧;2>人脸对齐裁剪MTCNN工具

 模型:在VGG FACE 上训练过的Resnet_50 

 评价标准 : MSE和RMS

结果:这个结果如果是真实的,那么他就是我见过的最好的结果。


总结:

这是一部分我对论文的总结,其中还是有很多自己不理解的地方。由于这些论文作者都没公开代码,所以还有一些理解上的问题。现阶段,我选择使用Resnet_50网络开始搭建网路。

这篇关于Resnet50网络的应用—抑郁症诊断的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

SpringBoot使用OkHttp完成高效网络请求详解

《SpringBoot使用OkHttp完成高效网络请求详解》OkHttp是一个高效的HTTP客户端,支持同步和异步请求,且具备自动处理cookie、缓存和连接池等高级功能,下面我们来看看SpringB... 目录一、OkHttp 简介二、在 Spring Boot 中集成 OkHttp三、封装 OkHttp

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

Java中&和&&以及|和||的区别、应用场景和代码示例

《Java中&和&&以及|和||的区别、应用场景和代码示例》:本文主要介绍Java中的逻辑运算符&、&&、|和||的区别,包括它们在布尔和整数类型上的应用,文中通过代码介绍的非常详细,需要的朋友可... 目录前言1. & 和 &&代码示例2. | 和 ||代码示例3. 为什么要使用 & 和 | 而不是总是使

Python循环缓冲区的应用详解

《Python循环缓冲区的应用详解》循环缓冲区是一个线性缓冲区,逻辑上被视为一个循环的结构,本文主要为大家介绍了Python中循环缓冲区的相关应用,有兴趣的小伙伴可以了解一下... 目录什么是循环缓冲区循环缓冲区的结构python中的循环缓冲区实现运行循环缓冲区循环缓冲区的优势应用案例Python中的实现库

使用Python高效获取网络数据的操作指南

《使用Python高效获取网络数据的操作指南》网络爬虫是一种自动化程序,用于访问和提取网站上的数据,Python是进行网络爬虫开发的理想语言,拥有丰富的库和工具,使得编写和维护爬虫变得简单高效,本文将... 目录网络爬虫的基本概念常用库介绍安装库Requests和BeautifulSoup爬虫开发发送请求解

SpringBoot整合MybatisPlus的基本应用指南

《SpringBoot整合MybatisPlus的基本应用指南》MyBatis-Plus,简称MP,是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,下面小编就来和大家介绍一下... 目录一、MyBATisPlus简介二、SpringBoot整合MybatisPlus1、创建数据库和

python中time模块的常用方法及应用详解

《python中time模块的常用方法及应用详解》在Python开发中,时间处理是绕不开的刚需场景,从性能计时到定时任务,从日志记录到数据同步,时间模块始终是开发者最得力的工具之一,本文将通过真实案例... 目录一、时间基石:time.time()典型场景:程序性能分析进阶技巧:结合上下文管理器实现自动计时