EEG Conformer:Convolutional Transformer for EEG Decoding and Visualization

原文链接:EEG Conformer

代码链接:EEG Conformer

背景

        当前已经开发了各种模式识别方法来解码来自嘈杂的脑电图信号的有用信息。这些方法提取特征并针对不同的任务执行分类。例如:通用空间模式 (CSP) 用于增强运动图像 (MI) 任务的空间特征。连续小波变换(CWT)用于从脑电信号中提取时频特征以检测痴呆。

        通过这些特征可以使用支持向量机和多层感知机完成分类任务。然而,大多数传统的特征提取方法都依赖于任务,这意味着特征是针对不同的 BCI 范式和有限的泛化使用特定的先验知识获得的。

        最近,由于对全局依赖关系的固有感知,基于attention的 Transformer 模型在自然语言和图像处理领域掀起了波澜。Transformer模型也被应用到了EEG分析领域,但是由于没有详细的分析和可视化来阐明 Transformer 如何用于 EEG 解码。Transformer 模型仍在脑电图领域进行探索。

        作者提出了一个卷积transformer架构来解决上述问题。该架构包括三个部分卷积模块,自注意力模块,分类器模块。

        在卷积模块:作者首先使用时间和空间卷积来分别捕获局部时间和空间特征。

        然后,作者将时间维度中每个点的所有卷积通道视为一个标记,并将它们输入到自注意力模块中,该模块进一步学习具有自注意力层的全局时间依赖关系。

        最后,利用简单的全连接层得到解码结果。

方法

简介

        在本文中,作者提出了一种新的框架,称为EEG Conformer,可以直接结合CNN和Transformer进行端到端的EEG分类。借鉴CNN和Transformer的思想,Conformer使用卷积来学习局部时间和空间特征,然后采用自我注意力来封装全局时间特征。

        整体框架如上图所示。整个架构包括三部分组成,一个卷积模块,一个自注意模块和一个全连接分类器。

        在卷积模块中,以原始二维脑电图作为输入,分别沿时间维度和电极通道维度使用时间和空间卷积层。然后使用平均池化层来降低噪声并提高泛化性。

        在自注意力模块中,以卷积得到的时空表示作为输入。自注意力模块通过测量特征图中不同时间位置之间的全局相关性,进一步提取长期时间特征。

        最后,由几个全连接层构成的分类器被用来解码输出。

预处理

        原始EEG信号的格式是ch x sp,其中ch表示电极通道,sp表示时间样本。在不引入额外的与任务相关的先验知识的情况下,作者只使用几个步骤来预处理原始脑电图数据。首先,使用带通滤波去除外来的高频和低频噪声(这里使用六阶切比雪夫滤波器)。然后,进行 Z 分数标准化以减少波动和非平稳性

        其中xi和xo表示带通滤波数据和标准化输出。μ和σ^2表示均值和方差,由训练集得到,并直接应用于测试集。

网络架构

        如图1所示,EEG Conformer包括三步:卷积模块,自注意力模块和全连接分类器。输入是一组预处理的EEG数据包括通道和采样两维,输出是不同脑电图类别的概率。

        1)卷积模块:作者将将二维卷积算子分成两个一维时间和空间卷积层。第一层CNN使用k个大小为(1, 25)的卷积核,在输入数据的时间维度上进行卷积操作,步幅为(1, 1)。第二层CNN保留了k个大小为(ch, 1)的卷积核,在 EEG 数据的电极通道维度上进行卷积操作,步幅为(1, 1)。这一层充当了一个空间滤波器,用于学习不同电极之间交互的表示。随后,采用批量归一化来促进训练过程并缓解过拟合。第三层是沿时间维度的平均池化层,内核大小为 (1, 75),步幅为 (1, 15)。通过这种方式,我们将每个时间点的所有特征通道作为标记送到下一个模块中。

        2)自注意力模块:假设低维时空特征中的上下文相关表示将有利于脑电图解码,因为神经活动是连贯的。卷积模块中得到的token将被线性地转换为相同形状的三份,称为Query (Q)、Key (K) 和Value (V)。具体过程为:先对Q和K进行点积,然后Scaling,将结果通过Softmax函数输出来获取权重矩阵,即attention score。然后用点积对 V用attention score进行加权。这个过程可以写为:

其中k表示token的长度。此外,后面连接了两个全连接层,以增强fit能力。此过程的输入和输出大小保持不变。整个注意力计算在自注意力模块中重复 N 次。

        3)分类器模块:最后,采用两个全连接层作为分类器模块,在Softmax函数后输出一个M维向量。整个架构的损失函数用的是交叉熵。

M是分类的类别数,y和y hat分别是真实label和预测label,Nb是每一批中测试的数量。

实验

作者在三个著名的EEG数据集上进行了实验,包括BCI competition IV dataset 2a https://www.bbci.de/competition/iv/desc_2a.pdf,competition IV dataset 2b https://www.bbci.de/competition/iv/desc_2b.pdf​​​​​​,SEED SEED Dataset。

        

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

机器学习和深度学习-- 李宏毅(笔记与个人理解)Day10

Day 10 Genaral GUidance training Loss 不够的case Loss on Testing data over fitting 为什么over fitting 留到下下周哦~~ 期待 solve CNN卷积神经网络 Bias-Conplexiy Trade off cross Validation how to split? N-fold Cross Validation mismatch 这节课总体听下来比较…

云原生__K8S

createrepo --update /var/localrepo/# 禁用 firewall 和 swap [rootmaster ~]# sed /swap/d -i /etc/fstab [rootmaster ~]# swapoff -a [rootmaster ~]# dnf remove -y firewalld-*[rootmaster ~]# vim /etc/hosts 192.168.1.30 harbor 192.168.1.50 master 192.168.1.…

力扣19. 删除链表的倒数第 N 个结点

Problem: 19. 删除链表的倒数第 N 个结点 文章目录 题目描述思路及解法复杂度Code 题目描述 思路及解法 1.创建虚拟头节点dummy指向并将其next指向head;指针fast、slow指向dummy; 2.遍历链表获取其长度len; 3.先使fast走n 1步,再…

Mac安装配置ElasticSearch和Kibana 8.13.2

系统环境:Mac M1 (MacOS Sonoma 14.3.1) 一、准备 从Elasticsearch:官方分布式搜索和分析引擎 | Elastic上下载ElasticSearch和Kibana 笔者下载的是 elasticsearch-8.13.2-darwin-aarch64.tar.gz kibana-8.13.2-darwin-aarch64.tar.gz 并放置到个人…

图像生成:Pytorch实现一个简单的对抗生成网络模型

图像生成:Pytorch实现一个简单的对抗生成网络模型 前言相关介绍具体步骤准备并读取数据集定义生成器定义判别器定义损失函数定义优化器开始训练完整代码 训练生成的图片 前言 由于本人水平有限,难免出现错漏,敬请批评改正。更多精彩内容&…

【网站项目】校园失物招领小程序

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

java数据结构与算法刷题-----LeetCode210. 课程表 II

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 文章目录 深度优先遍历但不进行逆拓扑排序(不用栈)…

三年Android开发经验面试经历分享

最近,参加了多家公司的面试,下面是我所经历的一些面试问题及自己的回答思路。 一、京东面试 一面: 项目内容:主要讲述了在实习期间参与的项目,以及在项目中负责的工作和取得的成果。MVP模式:解释了MVP模…

特征融合篇 | YOLOv8改进之将Neck网络更换为多级特征融合金字塔HS-FPN | 助力小目标检测

前言:Hello大家好,我是小哥谈。HS-FPN(Hierarchical Scale Feature Pyramid Network)是一种用于目标检测任务的网络结构。它是在传统的Feature Pyramid Network(FPN)基础上进行改进的。HS-FPN的主要目标是解决目标检测中存在的多尺度问题。在传统的FPN中,通过在不同层级…

机器学习实训 Day1

线性回归练习 Day1 手搓线性回归 随机初始数据 import numpy as np x np.array([56, 72, 69, 88, 102, 86, 76, 79, 94, 74]) y np.array([92, 102, 86, 110, 130, 99, 96, 102, 105, 92])from matplotlib import pyplot as plt # 内嵌显示 %matplotlib inlineplt.scatter…

Android自定义控件ScrollView实现上下滑动功能

本文实例为大家分享了Android ScrollView实现上下滑动功能的具体代码,供大家参考,具体内容如下 package com.example.zhuang; import android.content.Context; import android.util.AttributeSet; import android.util.DisplayMetrics; import android…

什么是生成式AI?有哪些特征类型

生成式AI是人类一种人工智能技术,可以生成各种类型的内容,包括文本、图像、音频和合成数据。那么什么是人工智能?人工智能和机器学习之间的区别是什么?有哪些技术特征? 人工智能是一门学科,是计算机科学的一…

日志监控思路分享,只监控日志内容,不存储

有一个这样的需求,就是实时监控日志文件的内容,不需要存储,仅当某行日志内容触发某个规则时调用一段业务逻辑就行了。比如用户触发限流规则,就将其封禁并发送钉钉通知到运维群。 看到这个需求首先想到的就是日志采集工具&#xff…

【ARM 裸机】汇编 led 驱动之原理分析

1、我们为什么要学习汇编??? 之前我们或许接触过 STM32 以及其他的 32 位的 MCU ,都是基于 C 语言环境进行编程的,都没怎么注意汇编,是因为 ST 公司早已将启动文件写好了,新建一个 STM32 工程的时候&#…

网站HTTP升级成为HTTPS的方法

将网站从HTTP免费升级为HTTPS,您可以按照以下步骤操作: 1. 选择证书颁发机构(CA): - 为了免费升级,您可以选择使用JoySSL这样的公益项目。JoySSL提供免费、自动化的SSL/TLS证书颁发服务,适用于各…

HAL STM32F4内部温度读取+ADC阻塞式读取

HAL STM32F4内部温度读取ADC阻塞式读取 📍相关篇《STM32F103VET6基于STM32CubeMX 配置非DMA方式获取内部温度》 🔖对于大多数stm32型号,基本上内部都集成了温度传感器。 ⛳不同型号的STM32单片机,计算温度的公式差异 &#x1f33f…

Vue2和Vue3组件通信:父子与兄弟间的桥梁

🌟 前言 欢迎来到我的技术小宇宙!🌌 这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。📚 无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。🔍 &#x…

网盘——登录跳转

在界面设计这块,当登录界面上输入的账号和密码都正确的情况下,直接跳转到好友界面,否则不跳转 1、在opewidget.h里面定义一个单例模式 static OpeWidget &getInstance(); 2、添加定义 产生一个静态的操作界面的对象。操作界面这个对象他…

《零秒思考》像麦肯锡精英一样思考 - 三余书屋 3ysw.net

零秒思考:像麦肯锡精英一样思考 大家好,今天我们要深入探讨的著作是《零秒思考》。在领导提出问题时,我们常常会陷入沉思,却依然难以有所进展,仿佛原地踏步,但是身边的同事却能够立即给出清晰的回答。这种…

Rust面试宝典第1题:爬楼梯

题目 小乐爬楼梯,一次只能上1级或者2级台阶。楼梯一共有n级台阶,请问总共有多少种方法可以爬上楼? 解析 这道题虽然是一道编程题,但实际上更是一道数学题,着重考察应聘者的逻辑思维能力和分析解决问题的能力。 当楼梯只…