基于少样本学习EEG/SEEG数据癫痫预警和脑电识别

2024-04-17 13:58

本文主要是介绍基于少样本学习EEG/SEEG数据癫痫预警和脑电识别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近的三篇文章都中了。因此有时间来整理之前的工作;       

立体脑电数据包含了大脑癫痫电信号,具有高信噪比,高采样率,可以进行病灶定位等特点。因此对立体脑电进行数据分析和数据挖掘具有很大的医学研究价值。但是目前基于立体脑电信号数据挖掘工作还较少,尤其是基于深度学习等方法的工作。立体脑电采集成本较高,受试者较少,所以需要大量训练数据的传统的神经网络分类模型并不能很好解决立体脑电分类任务。同时,立体脑电数据的电极位置不固定,头皮脑电的数据预处理方法不适用于立体脑电数据。因此从立体脑电数据出发,如何进行的数据预处理,利用立体脑电多信道信息,构建出泛化能力较好的深度学习网络对立体脑电癫痫信号识别是一大挑战。

在实验中我们会经常发现,在训练集上效果较好的模型在新的病人身上的性能并不好。这是因为脑电信号带有很明显的个体差异;这种差异会干扰模型的判别。少样本学习是很好的一个途径去解决量较少的情况。少样本学习通过构造众多的数据集,可以提高模型的泛化能力。

少样本学习的核心思想是学习多个任务的先验知识,使模型适用于有监督的已知少量样本标签的新任务。Vinyals等人采用了基于深度神经网络的度量学习的思想(Matching networks),将一个标记好的数据集映射到未标记的数据集上实现模型的快速拟合。Snell等人学习到一个度量空间(Prototypical networks),通过计算每个类的原型的表示距离从而对其分类。Sung等人则构建一个端到端的关系网络(Relation Network),它是基于深度学习的度量网络,关系网络可以通过计算查询样本与每一个新的类别样本之间的关系得分来对新的类别进行分类,从而无需整体地更新整个网络。Finn 等人提出了一种模型无关的少样本学习方法(Meta Learning),该方法目标是针对于各种学习任务来训练模型,通过二次的梯度更新策略,通过少量已知标签样本就可以适应于新的学习任务。

如下是两个人不同的SEEG数据信道分布图;之后我会介绍如何合理的处理这种信道数据图。

我们通过特定的方法来排列信道构成矩阵,然后通过切割矩阵来获得数据片段。这个数据片段就是模型的输入,首先对于每一类的数据可以通过VAE编解码,这样能够提取到每一类的脑电数据的特征,然后通过水机采样的方法来构建任务集。再结合MAML(Model Agnostic Meat Lrarning)来实现模型的分类,这样做的好处能够借助于变分自编码器和少样本学习提高模型的泛化能力。

具体的结构图如下;

具体的算法如下:

数据集

实验的数据如下,我们采集了5位病人的数据,采用留一法进行验证;

实验的结果如下,可以看到我们的模型取得了最好的结果。

 对提取的特征分成5类进行聚类分析并且可视化如下:

 

 我们在特征分析中发现了模型的性能和某种特征密度相关,如下所示。

 以上就是我论文的内容,改论文已经被American Medical Informatics Association: AMIA录用,论文题目为:Characterizing Brain Signals for Epileptic Pre-ictal Signal Classification。等见刊了大家可以看看论文细节。

 

这篇关于基于少样本学习EEG/SEEG数据癫痫预警和脑电识别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

使用Python开发一个Ditto剪贴板数据导出工具

《使用Python开发一个Ditto剪贴板数据导出工具》在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读... 目录前言运行结果项目需求分析技术选型核心功能实现1. Ditto数据库结构分析2. 数据库自动定位3

pandas数据的合并concat()和merge()方式

《pandas数据的合并concat()和merge()方式》Pandas中concat沿轴合并数据框(行或列),merge基于键连接(内/外/左/右),concat用于纵向或横向拼接,merge用于... 目录concat() 轴向连接合并(1) join='outer',axis=0(2)join='o

批量导入txt数据到的redis过程

《批量导入txt数据到的redis过程》用户通过将Redis命令逐行写入txt文件,利用管道模式运行客户端,成功执行批量删除以Product*匹配的Key操作,提高了数据清理效率... 目录批量导入txt数据到Redisjs把redis命令按一条 一行写到txt中管道命令运行redis客户端成功了批量删除k

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

C#监听txt文档获取新数据方式

《C#监听txt文档获取新数据方式》文章介绍通过监听txt文件获取最新数据,并实现开机自启动、禁用窗口关闭按钮、阻止Ctrl+C中断及防止程序退出等功能,代码整合于主函数中,供参考学习... 目录前言一、监听txt文档增加数据二、其他功能1. 设置开机自启动2. 禁止控制台窗口关闭按钮3. 阻止Ctrl +

java如何实现高并发场景下三级缓存的数据一致性

《java如何实现高并发场景下三级缓存的数据一致性》这篇文章主要为大家详细介绍了java如何实现高并发场景下三级缓存的数据一致性,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 下面代码是一个使用Java和Redisson实现的三级缓存服务,主要功能包括:1.缓存结构:本地缓存:使

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分

C#解析JSON数据全攻略指南

《C#解析JSON数据全攻略指南》这篇文章主要为大家详细介绍了使用C#解析JSON数据全攻略指南,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、为什么jsON是C#开发必修课?二、四步搞定网络JSON数据1. 获取数据 - HttpClient最佳实践2. 动态解析 - 快速

MyBatis-Plus通用中等、大量数据分批查询和处理方法

《MyBatis-Plus通用中等、大量数据分批查询和处理方法》文章介绍MyBatis-Plus分页查询处理,通过函数式接口与Lambda表达式实现通用逻辑,方法抽象但功能强大,建议扩展分批处理及流式... 目录函数式接口获取分页数据接口数据处理接口通用逻辑工具类使用方法简单查询自定义查询方法总结函数式接口