当前位置: 首页 > news >正文

帕金森早期诊断准确率提高至 90.2%,深圳先进院联合中山一院提出 GSP-GCNs 模型

中山大学附属第一医院&中科大先进院等研究团队,提出了一种深度学习模型——图信号处理-图卷积网络 (GSP-GCNs),利用从涉及声调调节的特定任务中获得的事件相关脑电图数据来诊断帕金森病。

震颤、动作迟缓、表情僵硬……提起帕金森病,多数人会率先想到「手抖」,殊不知,在患病中晚期,患者甚至还会出现平衡障碍、翻身困难等问题,下肢、头部都会不自主地抖,严重影响生活质量。

中国康复医学会于 2023 年 4 月发布的数据显示,我国现有帕金森病患者 300 多万,超过全世界总数的四分之一,并且每年新增加约 10 万,预计到 2030 年,我国帕金森病患者总数将达到 500 万人,几乎达到全球患病人数的一半

然而目前帕金森病的发病机制尚未可知,仅 20% 的病例可归因于特定的遗传因素,因此早期诊断面临重大挑战。

静息态脑电 (electroencephalogram,EEG) 因其无创性以及捕捉高时序分辨率脑活动的能力,已成为帕金森病诊断的重要途径。近年来,已经有相关研究开始将深度学习与 EEG 结合,进行帕金森病的早期诊断。然而,这些方法大多需要基于平稳的 EEG 信号才能奏效,无法捕捉帕金森病相关脑活动变化的动态特征。

针对于此,中国科学院深圳先进技术研究院和中山大学附属第一医院的研究人员,利用帕金森病言语运动任务的异常脑电特征,提出了一种具有可解释性的图信号处理-图卷积网络 (GSP-GCNs) 模型,利用言语基频调控任务脑电数据,通过挖掘帕金森病患者大尺度脑功能网络的神经标记物,实现了帕金森病的高精度智能诊断。

在这里插入图片描述

获取论文:

https://www.nature.com/articles/s41746-023-00983-9
公众号后台回复「帕金森」获取完整 PDF

数据集:百位参与者的发声实验

研究团队邀请到了 100 名参与者,其中包括 52 名被诊断为特发性帕金森病的患者(24 名女性和 28 名男性),和 48 名与患者性别、年龄相匹配的健康对照。所有参与者都进行了发声实验。

在实验过程中,参与者需要持续发出元音 5-6 秒,持续时间为 200 毫秒。每次发声包括 4-5 次扰动,以伪随机方式呈现。参与者连续发声 20-25 次,共进行 100 次试验。

当参与者进行发声实验时,研究人员使用 NetStation 软件,以 1kHz 的采样频率,使用连接到 Net Amps 300 放大器 (EGI) 的 64 导联电极帽来记录 EEG 信号。

GSP-GCNs模型:由4个连续组件组成

GSP-GCNs 模型框架包括 4 个模块:图信号处理模块 (GSP)、图网络模块 (graph-network module)、分类器 (classifier) 和可解释模型 ( interpretable model)

在这里插入图片描述

  • 首先,GSP 模块对大规模 EEG 网络进行分析和处理,识别动态连接模式;
  • 其次,图网络模块捕获这些连接模式作为分类的关键特征;
  • 随后,分类器组件利用这些提取的特征来区分帕金森病患者和健康个体;
  • 最后,可解释性模型通过提供全局可视化学习基本特征,并将其与语音相关的 EEG 微态特征对齐,来增强框架的可解释性。

通过采用这种创新方法,GSP-GCNs 框架旨在提供说明性信息,以促进深度学习模型在具有任务相关 EEG 数据的帕金森病诊断中的使用。

模型效果:具有较好的解释性

该研究提出了四个基于图网络的模型: PCC + GCN、 PLV + GCN、 PCC + GSP-GCN 和 PLV + GSP-GCN。

其中,PCC (Pearson Correlation Coefficient)、PLV (Phase Locking Value) 分别代表用于构建脑网络的不同特征。然而,无论特征类型如何,GSP-GCNs 模型都表现出明显优于 GCNs 模型的性能

如下图所示,该研究所提出的 GSP-GCN 模型的 ROC 值均保持在 0.08 以下。这凸显了 GSP 通过图聚合平衡单跳和多跳网络的局部和全局信息,从而提高分类性能的潜力。

在这里插入图片描述

通过结合局部和全局信息,该研究提出的 GSP-GCNs 模型区分帕金森病患者与正常对照的平均分类准确率达 90.2%,比其他深度学习模型显著提高 9.5%。此外,GCNs 模型显示出比所有基线模型 (baseline models) 更低的计算复杂度。

在这里插入图片描述

GSP-GCNs 模型与其他模型
分类性能、计算复杂度对比

此外,研究团队通过分析 GSP-GCNs 模型的可解释性,揭示了其对大尺度脑电图网络和 MS5 微状态脑电地形图之间差异分布的学习结果。帕金森患者与正常对照在言语基频调控任务中,存在显著差异的脑区主要位于的左腹前运动皮层、颞上回和 Broca 区域,这与既往发现的帕金森病言语运动障碍脑网络存在高度一致性。

这说明,该研究提出的 GSP-GCN 模型能够从大规模网络中识别出独特的脑电图生物标志物,并提供了良好的可解释性

在这里插入图片描述

帕金森病组和正常对照组在言语运动任务中的
ERP 微状态类分布对比
(右上角标注PD为帕金森病组,HC为正常对照组)

更重要的是,该模型可以有效学习帕金森病患者和正常对照组在听觉反馈任务中脑功能网络之间的差异,为分析深度学习应用于疾病诊断分类模型的可解释性提供了新方法。

AI识别生物标志物,助力帕金森病诊断

帕金森病起病隐匿,进展缓慢,尽早诊断、及时干预,对提高疗效极为重要。而帕金森病早期诊断的重要途径在于识别各种行为领域的生物标志物,包括笔迹模式、运动功能、步态模式和语言特征等。

机器学习近年来已成为医学影像领域的一个强大工具,这项技术有助于从复杂的神经成像数据中提取高级特征和模式。此外,由于其卓越的多维分析能力,机器学习还可用于医学影像领域的个体分类。本次中山附医联合研究团队所提出的 GSP-GCNs 模型便是通过挖掘帕金森病患者语言相关的的神经标记物实现诊断,而 AI 深度学习模型运用于帕金森病各种行为领域方面的识别,还有十分可观的发展空间。

与之类似,福建医科大学附属协和医院研究团队近期开发了一种机器学习模型,预测帕金森病患者在个体水平上患冻结步态的风险,可用于早期识别有可能发展成延迟冻结步态的帕金森病患者,从而为临床医生预防和干预帕金森病患者的冻结步态症状提供有价值的指导。

此外,University College London (UCL) 的研究团队使用 300 名帕金森病患者和 300 名健康志愿者的视频数据训练了人工智能算法,使其能够识别帕金森病患者的运动模式,在诊断帕金森病方面的准确率高达 90%。

在未来,期待基于神经成像学的机器学习 AI 能进一步被运用,帮助人们有效识别帕金森病症状相关的各种行为领域的生物标志物,从而推动帕金森病早期诊断的进一步发展。

相关文章:

帕金森早期诊断准确率提高至 90.2%,深圳先进院联合中山一院提出 GSP-GCNs 模型

中山大学附属第一医院&中科大先进院等研究团队,提出了一种深度学习模型——图信号处理-图卷积网络 (GSP-GCNs),利用从涉及声调调节的特定任务中获得的事件相关脑电图数据来诊断帕金森病。 震颤、动作迟缓、表情僵硬……提起帕金森病,多数…...

java servlet果蔬产业监管系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java Web果蔬产业监管系统是一套完善的java web信息管理系统 serlvetdaobean mvc 模式开发 ,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主 要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5…...

Flask 入门

1. 关于 Flask Flask诞生于2010年, Armin Ronacher的一个愚人节玩笑。不过现在已经是一个用python语言基于Werkzeug工具箱编写的轻量级web开发框架,它主要面向需求简单,项目周期短的小应用。 Flask本身相当于一个内核,其他几乎所…...

微信小程序Skyline在手机端不渲染的问题之一及其解决方式

问题:电脑端是skyline渲染,手机端是webview渲染?如何解? 开发者工具 当前渲染模式:Skyline 当进行预览时手机端却是: 请注意看轮播图的显示情况 请注意看轮播图的显示情况 请注意看轮播图的显示情况 从轮播图上来看,手机端是webview渲染…...

怎样做好Code Review

Code Review方案 定义 Code Review代码评审是指在软件开发过程中,通过对源代码进行系统性检查的过程。通常的目的是查找各种缺陷,包括代码缺陷、功能实现问题、编码合理性、性能优化等;保证软件总体质量和提高开发者自身水平 code review …...

臻于至善,CodeArts Snap 二维绘图来一套不?

前言 我在体验 华为云的 CodeArts Snap 时,第一个例子就是绘制三角函数图像,功能注释写的也很简单。 业务场景中,有一类就是需要产出各种二维图形的,比如,折线图、散点图、柱状图等。 为了提前积累业务素材&#xf…...

STM32学习笔记(二) —— 调试串口

我们在调试程序时,经常会使用串口打印相关的调试信息,但是单片机串口不能直接与 PC 端的 USB 接口通讯,需要用到一个USB转串口的芯片来充当翻译的角色。我们使用的开发板上有这个芯片,所以在打印调试信息的时候直接使用USB线连接开…...

Ubuntu20.0.4下设置frpc开机自启动

目录 一、下载frp 二、解压 三、服务端部署 1.配置 2.运行 三、客户端部署 1、配置 2、后台运行 四、开机启动 1、拷贝frpc.service 2、修改配置 3、启用服务 五、ubuntu20.04使用 rc-local.service设置开机启动 1、建立开机服务添加 [Install] 段 2、授权rc-local.service 3、…...

05 Redis之Benchmark+简单动态字符串SDS+集合的底层实现

3.8 Benchmark Redis安装完毕后会自动安装一个redis-benchmark测试工具,其是一个压力测试工具,用于测试 Redis 的性能。 src目录下可找到该工具 通过 redis-benchmark –help 命令可以查看到其用法 3.8.1 测试1 3.9 简单动态字符串SDS 无论是 Redis …...

【C++】priority_queue优先队列

头文件#include <queue> 优先队列具有队列的所有特性&#xff0c;本质是一个堆实现的&#xff0c;和队列基本操作相同: top 访问队头元素 empty 队列是否为空 size 返回队列内元素个数 push 插入元素到队尾 (并排序) emplace 原地构造一个元素并插入队列 pop 弹出队头元素…...

蓝桥杯---三国游戏

问题描述 小蓝正在玩一款游戏。游戏中魏蜀吴三个国家各自拥有一定数量的士兵 X, Y, Z (一开始可以认为都为 0 )。游戏有 n 个可能会发生的事件&#xff0c;每个事件之 间相互独立且最多只会发生一次&#xff0c;当第 i 个事件发生时会分别让 X, Y, Z 增加 Ai , Bi ,Ci 。…...

设计一个分布式ID

为了保证全局唯一性可以用时间作为区分点一部分&#xff0c;时间尽可能细化&#xff0c;可以精确到毫秒&#xff0c;甚至是微秒和纳秒。如果是分布式系统有多态机器&#xff0c;可以根据机器ID再进行以下区分。如哦机器运行的特别快&#xff0c;1毫秒有大量ID生成&#xff0c;可…...

259:vue+openlayers: 显示海量多边形数据,10ms加载完成

第259个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+openlayers项目中通过WebGLVectorLayerRenderer方式加载海量多边形数据。这里相当于将海量的数据放在同一个层的source中,然后通过webglTile的方式渲染出这一层。 本示例数据为5000个多边形,加载速度超级快。 直接…...

Go Zero微服务个人探究之路(十)实战走通微服务前台请求调用的一套流程model->rpc微服务->apiHTTP调用

前言 Go语言凭借低占用&#xff0c;高并发等优秀特性成为后台编程语言的新星&#xff0c;GoZero框架由七牛云技术副总裁团队编写&#xff0c;目前已经成为Go微服务框架里star数量最多的框架 本文记录讲述笔者一步步走通前台向后台发出请求&#xff0c;后台api调用rpc服务的相…...

K8s 安装部署-Master和Minion(Node)

K8s 安装部署-Master和Minion(Node) 操作系统版本&#xff1a;CentOS 7.4 Master &#xff1a;172.20.26.167 Minion-1&#xff1a;172.20.26.198 Minion-2&#xff1a;172.20.26.210&#xff08;后增加节点&#xff09; ETCD&#xff1a;172.20.27.218 先安装部署ETCD y…...

从零学习Linux操作系统 第二十部分 mariadb数据库的管理

一、对于数据库的基本介绍 1.什么是数据库 数据库就是个高级的表格软件 2.常见数据库 Mysql Oracle mongodb db2 sqlite sqlserver … 3.Mysql (SUN -----> Oracle) 4.mariadb (Mysql的一种&#xff09; 数据库中的常用名词 1.字段 &#xff1a;表格中的表头 2.表 &…...

数据脱敏和数据加密有什么区别

数据脱敏&#xff1a;主要是为了兼顾数据安全与数据使用&#xff0c;采用专业的数据脱敏算法。 数据加密:通过对数据进行编码来保护数据&#xff0c;获取实际值的唯一方法是使用解密密钥解码数据。 数据加密是可逆的&#xff0c;数据脱敏是不可逆的。 处理方法不同 保护内容…...

主流排序算法

冒泡排序&#xff08;Bubble Sort&#xff09;&#xff1a; 基本思想&#xff1a;通过比较相邻元素的大小&#xff0c;不断交换相邻元素的位置&#xff0c;使得较大的元素逐渐“浮”到数组的最后。时间复杂度&#xff1a;O(n^2)。 选择排序&#xff08;Selection Sort&#xf…...

MySql的使用方法

一.什么是MySql MySql是一种数据库管理系统&#xff0c;是用来存储数据的&#xff0c;可以有效的管理数据&#xff0c;数据库的存储介质为硬盘和内存。 和文件相比&#xff0c;它具有以下优点&#xff1a; 文件存储数据是不安全的&#xff0c;且不方便数据的查找和管理&#xf…...

C#,数据检索算法之三元搜索(Ternary Search)的源代码

数据检索算法是指从数据集合&#xff08;数组、表、哈希表等&#xff09;中检索指定的数据项。 数据检索算法是所有算法的基础算法之一。 本文发布 三元搜索&#xff08;Ternary Search&#xff09;的源代码。 1 文本格式 using System; namespace Legalsoft.Truffer.Algo…...

Linux链表操作全解析

Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表&#xff1f;1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题&#xff08;可多选&#xff09; 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘&#xff1a;专注于发现数据中…...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码&#xff0c;写上注释 当然可以&#xff01;这段代码是 Qt …...

【Go】3、Go语言进阶与依赖管理

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课&#xff0c;做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程&#xff0c;它的核心机制是 Goroutine 协程、Channel 通道&#xff0c;并基于CSP&#xff08;Communicating Sequential Processes&#xff0…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

浅谈不同二分算法的查找情况

二分算法原理比较简单&#xff0c;但是实际的算法模板却有很多&#xff0c;这一切都源于二分查找问题中的复杂情况和二分算法的边界处理&#xff0c;以下是博主对一些二分算法查找的情况分析。 需要说明的是&#xff0c;以下二分算法都是基于有序序列为升序有序的情况&#xf…...

如何更改默认 Crontab 编辑器 ?

在 Linux 领域中&#xff0c;crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用&#xff0c;用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益&#xff0c;允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...

GO协程(Goroutine)问题总结

在使用Go语言来编写代码时&#xff0c;遇到的一些问题总结一下 [参考文档]&#xff1a;https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现&#xff1a; 今天在看到这个教程的时候&#xff0c;在自己的电…...