基于CNN-LSTM模型: 用EEG自动诊断精神分裂症

2023-11-10

精神分裂症(SZ)会阻碍大脑发育,严重损害思想、情感表达以及对现实的感知。大多数研究表明大脑结构和功能异常会产生很大影响,不过目前导致SZ的原因仍不明确。据世界卫生组织报告,全世界近2100万人患有这种脑部疾病,开始受该疾病影响的平均年龄是青年时期,男性18岁,女性25岁,在男性中更为普遍。

SZ自动诊断方法中,神经影像技术具有很大潜力,其中结构性磁共振成像(sMRI)和弥散张量成像提供有关大脑结构的信息,而脑电图(EEG)、脑磁图、功能性MRI、功能性近红外光谱成像提供有关大脑功能的信息。功能性神经影像学方法中,EEG较实用、便宜,以高时间分辨率和适当的空间分辨率记录了大脑电活动,还有多个通道可以长时间记录信号。

应用人工智能(AI)方法的EEG-SZ自动诊断有传统机器学习(ML)和深度学习(DL)包含:预处理、特征提取和选择、特征分类,其中特征提取是最重要的部分。传统机器学习中,EEG信号中提取的特征主要分为:1.时域、2.频域、3.时频、4.非线性。Siuly等人在在预处理中使用经验模态分解(EMD),从EMD子带中提取各种统计特征,使用集成袋装树法进行分类。Jahmunah分别在特征提取、分类中使用非线性特征和具有径向基函数核的支持向量机(SVM)。Devia提供了基于事件相关场特征的SZ诊断方法,提取了极端随机树 (ERT) 特征,在分类中使用了线性判别分析。Prabhakar提取稳态视觉诱发电位的统计特征,通过k近邻(KNN)进行分类。Shim提供了诊断SZ的新方法,在特征提取中使用传感器级和源级特征,使用Fisher分数进行特征选择,最终使用SVM方法取得理想结果。

传统的机器学习中,为SZ诊断选择合适的特征提取算法是一项艰巨的任务,需要大量信号处理和人工智能领域的知识。为克服这个问题,近年提出基于EEG与DL的方法,在没有深层的情况下提取特征。Shalbaf等人通过EEG信号建立SZ诊断的迁移学习模型,使用ResNet-18模型提取特征,SVM用于分类。一些学者基于EEG研究了卷积网络(CNN)模型在SZ诊断中的作用。CNN-RNN(递归神经网络)模型是重要的DL网络,可通过EEG信号诊断各种脑部疾病,CNN-LSTM(长短期记忆)模型已用于SZ诊断并得到理想结果。

本文将使用多种DL和传统ML方法研究EEG信号的SZ诊断,方法小结见图1。研究使用了波兰华沙精神病学和神经病学研究所的数据集,预处理对EEG进行z分数标准化和L2正则,输入的传统ML模型包括SVM、KNN、决策树(DT)、朴素贝叶斯、随机森林(RF)、ERT、袋装(bagging)法,DL网络包括各种一维(1D)-CNN、LSTM、1D-CNN-LSTM模型,用于执行特征提取与分类。研究将观察九种基于LSTM、1D-CNN、1D-CNN-LSTM的DL方法。本文还概述了几种用于比较的基线处理方法和用于分析、验证模型的统计指标。 本文发表在Frontiers in Neuroinformatics杂志。

图1.研究将观察的模型

2 材料与方法

2.1 数据集

数据集包括14名女性和男性(27.9至28.3岁)的EEG信号,以及14名与患者年龄、性别相匹配的普通人的信号,每次记录15分钟闭眼时的信号。使用标准10-20系统,以250Hz的采样频率进行记录,使用电极包括:Fp1、Fp2、F7、F3、Fz、F4、F8、T3、C3、Cz、C4、T4、T5、P3、Pz、P4、T6、O1和O2。SZ情况和正常情况的EEG示例如图2、图3所示。

图2.SZ患者的EEG案例

图3.普通人的EEG案例

2.2.预处理

19个通道的EEG分为无重叠的25s的帧,每个帧包括6250个点。每个帧都通过Z分数和L2正则处理,这有助于提高传统ML和DL模型的准确性和性能。

2.3.传统机器学习方法

研究观察的传统ML方法包括SVM、KNN、DT、朴素贝叶斯 、RF、ERT和袋装法。

(1)支持向量机
支持向量机(SVM)在高维或无限维空间中构造一个/组超平面(与类的所有数据点距离最大-功能边距),边距越大,分类器的泛化误差越低。

(2)k近邻
k近邻(KNN)给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例,这K个实例的多数属于某类,就把该输入实例分类到这个类中。

(3)决策树
决策树(DTs)是监督学习算法,每个样本都有一组属性和一个分类结果,通过学习这些样本得到一个决策树,这个决策树能够对新的数据给出正确分类。

(4)朴素贝叶斯
朴素贝叶斯是监督学习算法,基于贝叶斯定理,假设特征条件之间相互独立,通过已给定的训练集学习从输入到输出的联合概率分布,再基于学习到的模型求出使后验概率最大的输出。

(5)随机森林
随机森林(RF)是袋装法的延展,以DT(决策树)为基学习器,在袋装法的基础上加入随机属性的选择。在基DT的结点可选择输入特征的子集,这使得集成中的每个DT更加不同。

(6)ERT
极端随机树(ERT)与RF一样是几个DT的集成,但ERT在原始训练集上拟合DT,并在选定划分特征后随机选择一个特征值来划分DT。

(7)袋装法

袋装法(Bagging)是集成算法,采用有放回的抽样方法生成训练数据。袋装法将来自多个基学习器的预测值结合,投票或平均形成最终预测。

2.5.深度学习模型

CNN多用于医学信号处理,在时序信号处理上的表现优异。CNN模型具有卷积、池化、全连接(FC)层。在1D-CNN模型中,信号的时间可以被视为空间维度,如2D图像的高/宽。1D-CNN模型被认为是时序处理中RNN模型的重要竞争对手。其计算成本比RNN模型更低。本节提供了三种基于1D-CNN的模型。

(1)1D-CNN第一版
如表1,该模型包括九个不同的层,卷积层有64个3×3维度的过滤器,各种激活函数如 ReLU、Leaky ReLU、seLU用于卷积层,最大池化层用于降低维度,不同速率的dropout层用于防止过拟合,flatten层用于将矩阵转换为向量,密集层用于分类,密集层使用sigmoid函数,用于二进制分类。

(2)1D-CNN第二版
如表2,该模型包括三个卷积层,核大小为2,有四个不同速率的dropout层、一个flatten层、两个dense层。第一个密集层使用ReLU函数,最后一个密集层使用sigmoid函数。

(3)1D-CNN第三版

如表3,该由两个卷积层组成,有一个最大池化层,核大小为2,有不同速率的dropout层,有一个flatten层、两个密集层,密集层的激活函数分别为ReLU和sigmoid型。

表1.1D-CNN第一版

表2.1D-CNN第二版

表3.1D-CNN第三版

2.6. LSTM 模型

循环神经网络(RNN)多用于语音识别、自然语言处理和生物医学信号处理。CNN模型属于前馈神经网络,而RNN加入了反馈层,在时间方向上将前一时刻隐藏层的激活值反馈给下一时刻,与当前时刻的信号输入共同作为当前时刻的输入,共同训练每级的网络,从而使网络具有记忆功能。简单RNN、LSTM和GRU(门控循环单元)是三种重要的RNN模型。这里观察LSTM,包含两个版本,构架信息见表4与表5。第二版在第一版的基础上加入了一个核大小为50的LSTM层,用于比较加入LSTM层对EEG-SZ诊断的影响。

表4.LSTM第一版

表5.LSTM第二版

2.7.CNN-LSTM 模型

CNN-RNN模型中,卷积层用于提取特征并找到局部模式,其输出将应用到RNN层。与RNN相比,卷积层可以更好地提取EEG信号的局部和空间模式,而在RNN中添加卷积层也可以更准确地检查数据。本文观察三个版本的CNN-LSTM,构架信息分别见表6、表7与图4。两个版本的前十层相同,第二版多加入一个密集层和一个dropout层。

表6.CNN-LSTM第一版

表7.CNN-LSTM第二版

图4.CNN-LSTM第二版图示

3.结果

七种传统机器学习模型的结果见表8,机器学习使用scikit-learn库,在2.80GHz的Intel (R) Core (TM) i7-4810MQ CPU中进行。我们还对比了z分数标准化后EEG的机器学习结果。如表8,标准化后的EEG信号使用袋装法获得最高准确度。图5显示了标准化EEG的ML分类算法的ROC曲线。左图为z分数标准化的结果,右图为z分数标准化+L2正则的结果。

表8.传统机器学习各模型的表现

图5.传统机器学习各模型ROC曲线

三个CNN、两个LSTM和两个CNN-LSTM网络的表现使用Keras库分析,在GPU NVidia RTX2080 Ti中进行。最终选择的batch大小和网络超参数值见表9。使用不同激活函数(Leaky ReLU、seLU、ReLU),以及z分数、z分数+L2处理的结果见表10-12。为避免过拟合,我们应用两种正则方法,即Dropout和权重正则化。每个卷积层和LSTM层之后使用的dropout值为0.5,密集层之后使用的dropout值为0.25。架构的所有卷积层、LSTM层和密集层都使用权重正则化,用0.01的L2正则化。使用Leaky ReLU函数时,信号z分数+L2处理后输入CNN-LSTM第二版的准确率最高;使用seLU函数时,z分数标准化的LSTM第二版准确率最高;使用ReLU函数时,信号z分数+L2处理后输入CNN-LSTM第二版的准确率最高。表9.深度学习网络的参数值选择

表10.使用Leaky ReLU函数的深度学习模型性能


表11.使用seLU函数的深度学习模型性能


表12.使用ReLU函数的深度学习模型性能

使用ReLU激活函数的DL模型的ROC曲线见图6,左侧是使用z分数+L2处理的结果,右侧是使用z分数标准化的结果。使用ReLU函数,z分数标准化后的CNN-LSTM学习曲线见图7,z分数+L2处理后的CNN-LSTM学习曲线见图8。

图6.使用ReLU激活函数的DL模型ROC曲线

图7.使用ReLU函数的z分数标准化后CNN-LSTM学习曲线

图8.使用ReLU函数的z分数+L2处理后CNN-LSTM学习曲线

本文研究的所有DL和传统ML方法中,13层CNN-LSTM模型具有最高的准确性和效率。本研究首次研究了该模型的层数、激活函数的选择,并同时使用z分数和L2正则处理信号。图9显示了z分数标准化后使用不同激活函数的DL模型的性能。图10显示了z分数+L2处理后使用不同激活函数的DL模型的性能。与其他方法相比,z分数+L2正则处理后CNN-LSTM第二版的表现最佳。

图9.z分数标准化后不同激活函数的DL模型性能

图10.z分数+L2处理后不同激活函数的DL模型性能

4.研究限制

1.用于SZ诊断的EEG数据集包含病例有限,这使得通过EEG信号和DL模型进行SZ诊断具有挑战性。

2.本研究中的数据集不用于确定疾病的严重程度,仅用于诊断疾病,且不适合预后或早期诊断。

3.分类器没有单独设计和比较不同年龄和性别。

4.分类器属于二元分类,未来可以通过添加相似症状的脑疾病类别来进行多元分类。

5.结论、讨论、未来工作

领域内针对SZ诊断提出了各种基于EEG信号的人工智能诊断方法,包括传统ML以及DL模型。本研究的数据集由14名正常人和14名SZ患者的EEG数据组成,采样频率为250Hz,预处理步骤中将脑电信号分为25秒的帧,之后通过z分数或z分数-L2进行EEG信号处理,每一帧EEG信号大小为19×6250。

本文观察的传统ML方法包括:SVM、KNN、DT、朴素贝叶斯、RF、ERT和袋装法z分数标准化EEG信号输入袋装法模型获得最高准确度,为%81.22±1.74。

本文提出的DL方法包括三个1D-CNN、两个LSTM、两个1D-CNN-LSTM网络,使用激活函数Leaky ReLU、seLU或ReLU实现。13层、z分数+L2正则处理、使用ReLU激活函数的1D-CNN-LSTM可以获得%99.25 ± 0.25的最高准确度。该模型在本研究中首次提出,表13显示了这个1D-CNN-LSTM模型与先前EEG-SZ诊断研究提出模型的对比。如表13所示,本研究提出的模型可以获得更高的准确性。该模型可以在专用软硬件平台上实现,通过EEG信号进行快速SZ诊断,可作为医院的辅助诊断方法。

表13.本研究1D-CNN-LSTM模型与其他EEG -SZ诊断模型的对比

EEG-SZ诊断的未来工作包含:

1.将CNN-AE模型用于EEG-SZ诊断。先前研究表明,CNN-AE模型基于EEG信号诊断神经疾病非常有效。

2.为不同年龄、性别群体提供基于DL的分类模型。

3.结合传统ML和DL模型进行SZ诊断。先从EEG信号中提取不同的非线性特征,然后通过DL模型从原始EEG中提取特征,最终将人工和DL特征结合起来进行分类。

4.基于深度学习的图模型(graph model)是诊断脑部疾病的新领域之一,未来工作可以使用基于DL的图模型进行EEG-SZ诊断。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于CNN-LSTM模型: 用EEG自动诊断精神分裂症 的相关文章

随机推荐

  • ald计算机应用,人工智能可以优化ALD半导体制造工艺

    为了制造计算机芯片 全世界的技术专家都依赖原子层沉积 ALD 法 它可以创造出细到一个原子厚的薄膜 企业通常使用ALD制造半导体设备 但它也应用于太阳能电池 锂电池和其他能源相关领域 今天 制造商越来越多地依靠ALD来制造新型薄膜 但弄清楚
  • 挂机宝和网站服务器,挂机宝SSD硬盘vs普通硬盘访问官网哪个快?

    原标题 挂机宝SSD硬盘vs普通硬盘访问官网哪个快 秒开云硬盘篇 SSD固态硬盘vs机械硬盘 硬盘读写速度越快结构类型 网络服务器中的固态盘 SSD 比SATA磁盘驱动器给予更高的电脑磁盘读 写强度 也称之为键入 导出 I O 性能指标 具
  • 联邦计算在百度观星盘的实践

    导读 本文简短综述联邦计算领域的核心技术点 随着联邦计算在产业界的应用及普及 保护数据隐私与解决数据孤岛 二者可以兼得 为数字广告营销等领域提供了一个全新思路 一 导语 众所周知 数据是AI技术的燃料 更多高质量的数据意味着可以训练出更好性
  • nodejs生成token

    首先安装jsonwebtoken 命令 npm i jsonwebtoken save 代码如下所示 const fs require fs 文件模块 const path require path 路径模块 const jwt requi
  • Spring Cloud配置(四)熔断器

    在Spring Cloud中使用了Hystrix 来实现断路器的功能 Hystrix是Netflix开源的微服务框架套件之一 该框架目标在于通过控制那些访问远程系统 服务和第三方库的节点 从而对延迟和故障提供更强大的容错能力 Hystrix
  • 这些lodash方法真香!!

    前言 Lodash 是一个一致性 模块化 高性能的 JavaScript 实用工具库 Lodash官网 Lodash 通过降低 array number objects string 等等的使用难度从而让 JavaScript 变得更简单
  • Asp.net读取AD域信息的方法<转>

    1 首先新建一个页面 Login aspx 前台代码 Login aspx
  • 怎么解决kafka的数据丢失

    producer端 宏观上看保证数据的可靠安全性 肯定是依据分区数做好数据备份 设立副本数 broker端 topic设置多分区 分区自适应所在机器 为了让各分区均匀分布在所在的broker中 分区数要大于broker数 分区是kafka进
  • 理解gradle和gradlew

    前言 最近在跑grpc官方示例程序的时候 用到了在命令行中使用gradle编译生成代码 对gradle和gradlew做了一些了解 gradle 现在android项目普遍使用androidstudio进行开发 项目的构建和编译都用到了gr
  • MultiValueMap是什么?怎么使用?

    MultiValueMap 可以同一个key下面放多个value 此类来自spring 在spring core里面 代码 public static void main String args MultiValueMap
  • arma模型平稳性和可逆性的条件_时间序列预测模型ARIMA实现

    前段时间整理了一个预测的基本思考框架和常见的方法 其中提到了ARIMA模型 在 大数据预测 那本书里 ARIMA是单独开辟一章讲的 比较复杂和难理解的一个模型 自己最近找了点资料粗浅学习了一下理论 并尝试用Python实现一下 一 时间序列
  • 解决Android Studio运行时报Error:java.lang.NullPointerException (no error message)错误

    今天遇到一个问题 电脑突然关机了 然后重启电脑打开Android studio时 运行程序跑不起来 然后报 Gradle tasks Error Error java lang NullPointerException no error m
  • 【C++】string类的使用

    需要云服务器等云产品来学习Linux的同学可以移步 gt 腾讯云 lt gt 阿里云 lt gt 华为云 lt 官网 轻量型云服务器低至112元 年 新用户首次下单享超低折扣 目录 一 string 1 string的介绍 2 为什么str
  • 修改Nuget缓存包下载路径

    一 打开NuGet config文件 该文件通常在C Users Username AppData Roaming NuGet下 二 添加设置 添加设置 value值设置为自己想要的路径
  • 腾讯、阿里入选首批“双柜台证券”,港股市场迎盛夏升温?

    6月5日 香港交易所发布公告 将于6月19日在香港证券市场推出 港币 人民币双柜台模式 当日确定有21只证券指定为双柜台证券 同时 港交所还表示 在双柜台模式推出前 更多证券或会被接纳并加入双柜台证券名单 港股研究社了解到 首批21只证券包
  • 二叉树(链式存储)基本操作

    目录 1 二叉树链式存储的结构体定义 2 询问法创建二叉树 3 补空法创建二叉树 4 访问结点 5 先序遍历二叉树 根左右 6 中序遍历二叉树 左根右 7 后序遍历二叉树 左右根 8 层序遍历二叉树 按照层次从左到右依次遍历 代码部分 运行
  • 定位相关论文阅读:神经惯性定位(二)Neural Inertial Localization

    如果您对这个论文不太了解 想从总体上先了解这个论文的情况 可以前往Neural Inertial Localization论文简述 快速预览 0 Abstract 0 1 逐句翻译 0 2 总结 1 Introduction 1 1逐句翻译
  • flutter 实现底部tabBar 页面跳转效果

    效果图如下 点击底部tabBar切换页面 代码如下 主页面底部tabbar import package app ftr pages DyPage dart import package flutter material dart impo
  • keil仿真点击三次运行才开始运行

    可能造成该问题的原因 使用了printf函数 未勾选微库编译 使用了仿真器供电 可能有效的解决方法 不适用printf函数 勾选微库编译 使用外部电源供电
  • 基于CNN-LSTM模型: 用EEG自动诊断精神分裂症

    精神分裂症 SZ 会阻碍大脑发育 严重损害思想 情感表达以及对现实的感知 大多数研究表明大脑结构和功能异常会产生很大影响 不过目前导致SZ的原因仍不明确 据世界卫生组织报告 全世界近2100万人患有这种脑部疾病 开始受该疾病影响的平均年龄是