基于深度学习的SSVEP分类算法简介

基于深度学习的SSVEP分类算法简介

  • 1、目标与范畴
  • 2、深度学习的算法介绍
  • 3、参考文献

1、目标与范畴

稳态视觉诱发电位(SSVEP)是指当受试者持续注视固定频率的闪光或翻转刺激时,在大脑枕-额叶区域诱发的与刺激频率相关的电生理信号。与P300、运动想像(MI)和其他脑电图信号相比,SSVEP具有更高的信噪比,可以产生更高的ITR,使其成为长期以来最有前途的脑电图范式之一。然而,传统的信号处理算法在解码SSVEP信号时依赖于手动特征提取,在各种极端情况下(数据长度短、刺激数目多、校准数据量小)性能较差,无法满足行业的实际需求。深度学习技术作为人工智能的主要研究分支之一,已被应用于计算机视觉、自然语言处理、推荐系统等各个领域的研究。由于其强大的特征表达能力和极高的灵活性,它颠覆了这些领域的算法设计思想,并取得了显著的成果。

近年来,随着深度学习技术在脑机接口领域的各个方面都具有不错的应用前景,并取得了十分可观的实验效果,从而逐渐受到脑机接口领域研究人员的青睐。SSVEP-BCI系统的研究者们也把握了这个时代机遇,开始尝试探索使用深度学习技术研发SSVEP频率识别算法。因此,本文致力于追踪与介绍前沿研究者们提出的基于深度学习的SSVEP信号识别方法,并提供复现他们模型的Python实现代码。复现的方法包括EEGNet1-2、C-CNN3、FBtCNN4、ConvCA5、SSVEPNet6和SSVEPformer7。代码里使用了Nankanish Masaki在Github上提供的12分类公共数据集8评估模型性能。

2、深度学习的算法介绍

  • EEGNet: EEGNet是一种专门为处理脑电信号数据而设计的卷积神经网络模型,它接收时域脑电数据作为网络输入。EEGNet由4层组成。第一层是卷积层,用于模拟对每个通道数据进行的带通滤波操作。第二层是空间滤波层,通过深度卷积对每个通道的数据进行加权。第三层是用于提取类别信息的独立卷积层。第四层是用于分类的完全连接层。自提出以来,EEGNet已被用于各种脑电任务,如运动图像、P300、SSVEP等 1-2
    在这里插入图片描述

  • CCNN: CCNN也是一个卷积神经网络模型。不同的是,C-CNN使用富含振幅和相位信息的频域数据作为网络输入。值得注意的是,为了获得网络的输入,CCNN使用了基于填充的FFT算法,该算法可以获得任何数据长度的220个数据点,包括110个实部数据和110个虚部数据。CCNN网络结构由两个卷积层和一个完全连接层组成。第一卷积层是空间滤波层,第二卷积层是时间滤波层,全连接层用于分类。CCNN的出现表明光谱数据有利于SSVEP的分类3
    在这里插入图片描述

  • FBtCNN: 对于SSVEP频率识别过程中,在频域输入的范式下,短期窗口下的特征可能不明显,每个通道的时间差异可能被忽略。考虑到谐波信息中嵌入了大量关于频率识别的有效信息,研究人员提出了一种基于滤波器组技术的CNN架构,称为FBtCNN。FBtCNN使用时域信号作为网络输入,并使用滤波器组融合来自不同频带的特征信息,以提高网络的分类性能4
    在这里插入图片描述

  • ConvCA: 从不同电极通道收集的SSVEP信号彼此具有非线性关系,因此来自多个通道的EEG信号的线性组合可能不是对SSVEP进行分类的最准确的解决方案。为了进一步提高SSVEP-BCI的性能,研究人员提出了一种基于CNN的非线性相关分析网络,称为ConvCA。ConvCA有两个分支,一个是将多通道脑电图信号降级为单通道脑电图信号的信号网络,另一个是把多通道参考信号解释为单通道参考信号的参考网络。ConvCA通过分析信号网络输出和参考网络输出之间的相关性来完成SSVEP的分类过程5
    在这里插入图片描述

  • SSVEPNet: SSVEPNet是卷积神经网络和长短期记忆网络的混合网络模型,接受时域数据作为网络输入。SSVEPNet由三部分组成:卷积神经网络、长短期记忆网络和全连接网络。其中,CNN用于提取脑电的时空特征,双向LSTM用于基于时空特征之间的依赖性进行编码,由三个全连接层组成的全连接网络用于最终分类。此外,为了抑制网络训练过程中可能出现的过拟合,在网络实现过程中结合了频谱归一化标签平滑技术,进一步提高了模型的泛化能力。即使只有少量的校准数据,SSVEPNet仍然可以实现非常好的分类性能,并且这一特性已经在4类、12类和40类数据集上得到了验证6
    在这里插入图片描述

  • SSVEPformer: 基于注意力机制的Transformer已被应用至计算机视觉、自然语言处理等多个领域,并取得了举世瞩目的成果。近年来,Transformer也逐渐被引入至脑电信号的解码分析中来,揭示了Transformer应用至SSVEP-BCI系统的潜在可能性。正愁于当前SSVEP解码算法依赖于大量的被试校准数据,研究者们提出了基于Transformer的SSVEP分类网络SSVEPformer以实现零校准高性能网络。SSVEPformer与C-CNN的网络输入一致,使用频域信号作为输入,并结合CNN与MLP网络完成Transformer的特征编码与注意力学习过程。SSVEPformer可以在跨被试实验中取得十分可观的分类性能,显著优于其它分类网络。此外,结合滤波器组技术,研究者们提出了改进版网络FB-SSVEPformer,以进一步地提升网络性能。

在这里插入图片描述
所有深度学习模型的实现代码: https://github.com/YuDongPan/DL_Classifier

3、参考文献


  1. Lawhern V J, Solon A J, Waytowich N R, et al. EEGNet: a compact convolutional neural network for EEG-based brain–computer interfaces[J]. Journal of neural engineering, 2018, 15(5): 056013. https://iopscience.iop.org/article/10.1088/1741-2552/aace8c/meta ↩︎ ↩︎

  2. Waytowich N, Lawhern V J, Garcia J O, et al. Compact convolutional neural networks for classification of asynchronous steady-state visual evoked potentials[J]. Journal of neural engineering, 2018, 15(6): 066031. https://iopscience.iop.org/article/10.1088/1741-2552/aae5d8/meta ↩︎ ↩︎

  3. Ravi A, Beni N H, Manuel J, et al. Comparing user-dependent and user-independent training of CNN for SSVEP BCI[J]. Journal of neural engineering, 2020, 17(2): 026028. https://iopscience.iop.org/article/10.1088/1741-2552/ab6a67/meta ↩︎ ↩︎

  4. Ding W, Shan J, Fang B, et al. Filter bank convolutional neural network for short time-window steady-state visual evoked potential classification[J]. IEEE Transactions on Neural Systems and Rehabilitation Engineering, 2021, 29: 2615-2624. https://ieeexplore.ieee.org/abstract/document/9632600/ ↩︎ ↩︎

  5. Li Y, Xiang J, Kesavadas T. Convolutional correlation analysis for enhancing the performance of SSVEP-based brain-computer interface[J]. IEEE Transactions on Neural Systems and Rehabilitation Engineering, 2020, 28(12): 2681-2690. https://ieeexplore.ieee.org/abstract/document/9261605/ ↩︎ ↩︎

  6. Pan Y, Chen J, Zhang Y, et al. An efficient CNN-LSTM network with spectral normalization and label smoothing technologies for SSVEP frequency recognition[J]. Journal of Neural Engineering, 2022, 19(5): 056014. https://iopscience.iop.org/article/10.1088/1741-2552/ac8dc5/meta ↩︎ ↩︎

  7. Chen J, Zhang Y, Pan Y, et al. A Transformer-based deep neural network model for SSVEP classification[J]. Neural Networks, 2023, 164: 521-534. https://www.sciencedirect.com/science/article/abs/pii/S0893608023002319 ↩︎

  8. Nakanishi M, Wang Y, Wang Y T, et al. A comparison study of canonical correlation analysis based methods for detecting steady-state visual evoked potentials[J]. PloS one, 2015, 10(10): e0140703. https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0140703 ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/667643.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C系列-柔性数组

🌈个人主页: 会编程的果子君 ​💫个人格言:“成为自己未来的主人~” 目录 ​编辑 柔性数组 柔性数组的特点 柔性数组的使用 柔性数组的优势 柔性数组 也许你从来没有听说过柔性数组这个概念,但是它确实是存在的,C99中&#…

PyTorch 2.2 中文官方教程(十八)

开始使用完全分片数据并行(FSDP) 原文:pytorch.org/tutorials/intermediate/FSDP_tutorial.html 译者:飞龙 协议:CC BY-NC-SA 4.0 作者:Hamid Shojanazeri,Yanli Zhao,Shen Li 注意…

Hudi学习 6:Hudi使用

准备工作: 1.安装hdfs https://mp.csdn.net/mp_blog/creation/editor/109689143 2.安装spark spark学习4:spark安装_hzp666的博客-CSDN博客 3.安装Scala Hudi学习6:安装和基本操作_hzp666的博客-CSDN博客 spark-shell 写入和读取hudi 2.…

python常用pandas函数nlargest / nsmallest及其手动实现

目录 pandas库 Series和DataFrame nlargest和nsmallest 用法示例 代替方法 手动实现 模拟代码 pandas库 是Python中一个非常强大的数据处理库,提供了高效的数据分析方法和数据结构。它特别适用于处理具有关系型数据或带标签数据的情况,同时在时间序列分析方面也有着出…

基于springboot地方美食分享网站源码和论文

基于springboot地方美食分享网站源码和论文361 首先,论文一开始便是清楚的论述了系统的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然…

嵌入式中经典面试题分析

1.关键字static的作用是什么?为什么static变量只初始化一次? 1)修饰局部变量:使得变量变成静态变量,存储在静态区,存储在静态区的数据周期和程序相同, 在main函数开始前初始化,在退…

7min到40s:SpringBoot 启动优化实践!

目录 背景 1 耗时问题排查 1.1 观察 SpringBoot 启动 run 方法 1.2 监控 Bean 注入耗时 2 优化方案 2.1 如何解决扫描路径过多? 2.2 如何解决 Bean 初始化高耗时? 3 新的问题 3.1 SpringBoot 自动化装配,让人防不胜防 3.2 使用 sta…

泡泡清新文艺的微社区系统PHP源码

泡泡微社区,小巧而强大,为您带来卓越的社区交流体验。 凭借GoZinc的先进架构,泡泡在保持轻盈身姿的同时,功能一应俱全。前端采用Vue3匠心打造,界面清新简约,三栏式布局仿若Twitter,让您一见倾心…

四、Redis之配置文件

redis配置文件的名称 redis.conf 通过命令 find / -name redis.confvim redis.conf通过 : set nu 设置行号: set nonu 取消行号/关键字 搜索关键字: set noh 取消高亮选择4.1 Units 配置大小单位,开头定义了一些基本的度量单位,只支持 bytes&#…

基于Springboot的校园失物招领网站(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的校园失物招领网站(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构…

【数据结构】排序---C语言版

七大排序算法 一、对于排序的分类:二、插入排序1、直接插入排序(1)基本思想:(2)直接插入排序:(3)代码实现:(4)总结: 2、希…

【Django】ORM关系映射

关系映射 在关系型数据库中,通常不会把所有数据都放在同一张表中,不易于扩展,常见的关系映射有: 一对一映射,如一个身份证对应一个人。 一对多映射,如一个班级可以有多个学生。 多对多映射,如…

初始数据库

华子目录 什么是数据库DBMS(数据库管理系统)数据库系统和文件系统的区别文件系统数据库系统对比区别优缺点总结 常见数据库关系型数据库ACID原则关系型数据库的优缺点优点缺点 非关系型数据库存储方式常见的非关系型数据库非关系型数据库的优缺点优点缺点…

Vivado Tri-MAC IP的例化配置(三速以太网IP)

目录 1 Tri-MAC IP使用RGMII接口的例化配置1.1 Data Rate1.2 interface配置1.3 Shared Logic配置1.4 Features 2 配置完成IP例化视图 1 Tri-MAC IP使用RGMII接口的例化配置 在网络设计中,使用的IP核一般为三速以太网IP核,使用时在大多数场景下为配置为三…

Java tomcat 使用spring-task,实现定时任务功能

前言 今天接触到一个需求,需要添加一个定时任务功能,第一反应是启动类EnableScheduling、定时任务方法使用Scheduled实现,导入项目后才发现,这个项目是ssm整合框架的tomcat项目,没有启动类, 于是改变了思路…

有趣的CSS - 鼠标悬浮线条动态变化

鼠标悬浮线条动态变化 整体效果核心代码html 代码:css 部分代码: 完整代码如下html 页面:css 样式:页面渲染效果: 整体效果 这个链接悬浮效果主要用 css3 的 animation 属性配合 :hover 伪选择器来实现的。 此效果可以…

get通过发送Body传参-工具类

1、调用方式 String url "http://ip/xxx/zh/xxxxx/xxxx/userCode"; //进行url中的对应的参数 url2 url2.replace("ip",bancirili); url2 url2.replace("zh",zh); url2 url2.replace("userCode",userCode);String dateTime xxxx; //组…

深度学习系列55:深度学习加速技术概述

总体有两个方向:模型优化 / 框架优化 1. 模型优化 1.1 量化 最常见的量化方法为线性量化,权重从float32量化为int8,将输入数据映射在[-128,127]的范围内。在 nvdia gpu,x86、arm 和 部分 AI 芯片平台上,均支持 8bit…

全自动网页生成系统重构版源码

全自动网页生成系统重构版源码分享,所有模板经过精心审核与修改,完美兼容小屏手机大屏手机,以及各种平板端、电脑端和360浏览器、谷歌浏览器、火狐浏览器等等各大浏览器显示。 为用户使用方便考虑,全自动网页制作系统无需繁琐的注…

PMP资料怎么学?PMP备考经验分享

PMP考试前大家大多都是提前备考个一两个月,但是有些朋友喜欢“不走寻常路”,并不打算去考PMP认证,想要单纯了解PMP,不管要不要考证,即使是仅仅学习了解一下我个人都非常支持,因为专业的基础的确能提高工作效…