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

论文阅读 EEG-Inception

EEG-Inception: A Novel Deep Convolutional Neural Network for Assistive ERP-Based Brain-Computer Interfaces

        EEG-Inception是第一个集成Inception模块进行ERP检测的模型,它有效地结合了轻型架构中的其他结构,提高了我们方法的性能。

        本研究的主要目标是设计,开发和测试一种新的CNN,以提高基于ERP的拼写器的准确性和校准时间。利用数据集,我们设计了一个新的训练策略,使用跨学科迁移学习微调,以减少测试科目所需的校准时间(校准时间长,难)。最后,我们与最成功的基于ERP的拼写之前的方法提供了一个直接和公平的比较。

        Noteworthy, most studies do not evaluate novel classification algorithms with severely disabled subjects, the end users of these systems. 得注意的是,大多数研究都没有对严重残疾受试者(这些系统的最终用户)的新型分类算法进行评估。

        应该指出的是,据我们所知,之前的研究未能在运动障碍受试者身上测试他们的深度学习模型。这些症状在个体之间,甚至在患有相同疾病的个体之间都存在很大差异,这使得严重残疾的受试者尤其具有异质性,对ERP检测具有挑战性。因此,需要对这一群体进行综合评估,以评估辅助BCI应用新模型的性能。(跨被试)

1.模型结构

1.1预处理

        简单的预处理管道。首先,信号被抽取到128 Hz,以降低模型的计算成本。在0.5到45 Hz之间应用带通滤波器,保留最具鉴别性的信息,并消除50 Hz的电力线频率(工频滤波)。还应用了通用平均参考(CAR)空间滤波器来提高ERP的信噪比。最后,从刺激开始后的0到1000ms提取epoch。

        因此,模型输入是一个形状为128×8的数组,第一个维度是时间轴(即样本),而第二个维度对应于空间轴。(每个通道提取1秒的epoch,内有128个数据128Hz)

        应该注意的是,每个卷积块(即2D卷积和深度2D卷积)都包括用于归一化特征图的批归一化、用于引入非线性的激活函数[29]和用于防止过拟合的丢弃正则化。

图1 卷积层、BN层、激活函数、dropout

         bn层在卷积和池化之间 丢弃层要在激活之后, bn层要在激活之前。

1.2 EEG Inception的架构

1.2.1 block 1

        该模块根据卷积块C1、C2和C3(提取时间特征)的核大小,分别为64×1、32×1和16×1,对每个EEG通道的3个不同时间尺度的信号进行处理。因此,由于输入的采样率为128Hz,这些大小对应于500ms、250ms和125ms的时间窗口。

        在这些层之后,D1、D2和D3(提取空间特征)使用深度卷积在空间域中处理信号。深度卷积首先用于图像分类领域,通过分别作用于每个输入通道,将卷积核分解为更小的核,从而减少了参数的总量。当应用于EEG处理时,它们提供了一种方法来学习前一层提取的每个时间模式的最佳空间滤波器(即通道权重)。然后,级联层N1合并来自D1、D2和D3的输出特征。最后,对d应用平均池。

        总结:第一个block交叉提取时间、空间特征信息,顺序为:

        交叉使用的作用:充分利用了时间卷积的same填充的方式,能够多次提取有价值的空间特征

        1、先时间卷积:时间卷积核(A,1)的设计与采样率密切相关(核为采样率128的几分之几,则时间尺寸为整个时间尺寸的几分之几,例:卷积核设计为(64,1),则在500ms的尺寸上提取特征;卷积核设计为(32,1),则在250ms的尺寸上提取特征;卷积核设计为(16,1),则在125ms的尺寸上提取特征)

        2、后空间卷积:EEG - Inception在block1中多次提取,空间卷积核大小(1,B)=Channel等于通道数=8

        Block - 1解析:

        对8个通道,1000ms(对应128个数据点 )的数据逐级提取特征

        1. 先进行时间维度处理,后进行空间维度处理。

        2. 时间卷积和空间卷积堆叠使用。

        3. 时间卷积核提取3个不同时间尺寸(500ms、250ms、125ms,分别对应卷积核大小为64、32、16 )长度的特征,空间卷积核大小都是8(等于通道数channel)。

        4. 时间卷积的填充方式padding=same,空间卷积的填充方式padding=valid。

        5. 滤波器: - 3层时间卷积的滤波器数量都是8(这里推测与原始EEG通道有关,设计滤波器时可作参考)。 - 3层深度卷积深度都是2,将前一层的Conv2D滤波器数量乘以2倍。

        6. 时间卷积Conv2D 的构成 = torch.nn.Conv2d+批量归一化BN+修正线性单元RELU+随机失活Drop 。

        7. N1将三个空间卷积的输出合并,此时输出维度为·128*1*48(每层空间卷积输出维度为128*1*16) 。

        8. 平均二维池化:用于降维,池化核大小为4*1 ,这与下一个block的时间卷积核大小设置相关。如果下一个block要提取时间特征(提取空间特征的核大小保持不变),那么提取相同时长特征的卷积核大小会缩小为原来的四分之一(呈负相关关系)。 

1.2.2 block 2

        该模块与前一个模块组织一致。它由3个分支组成,在500ms、250ms和125ms的3个时间尺度上处理EEG信号。

        注意的是,在第一个块的平均池化层之后,这些尺度对应于16×1、8×1和4×1的核大小。该模块在更高层次的抽象中提取额外的时间特征,考虑所有EEG通道。如前所述,卷积块C4、C5和C6的输出被级联。然后,还应用了用于降维的平均池。

        Block - 2解析:

         一、三个时间卷积(C4、C5、C6 )采用堆叠的方式,在更高层次、更抽象的层面上,提取500ms、250ms、125ms这三个时间尺度下额外且更精细化的时间信息。由于上一个block的平均池化核大小为4*1,所以这三层卷积的卷积核大小相较于block - 1的三个时间卷积核,分别除以4。

        二、卷积填充方式为same,滤波器数量F=8(等于通道数channel),卷积核大小分别为16*1、8*1、4*1 ,每层卷积输出的shape相同,均为32*1*8 。

        三、经过N1操作,合并三次时间特征信息后,输出的shape为32*1*24 。

        四、进行池化操作,池化核大小为2*1(依旧是偶数,按倍数增减),池化后输出的shape变为16*1*24 。

1.2.3 block 3

        最后两个卷积层被设计用于提取最有意义的模式以进行最终分类,将信息压缩成几个特征。值得注意的是,过滤器的数量逐渐减少,这与平均池化层一起降低了维度,以避免过拟合。事实上,只有24个特征被馈送到最终的分类层。最后,softmax输出估计每个类别(目标和非目标)的概率[26]。

        该模型使用以下配置进行训练:Adam优化器,默认超参数β1=0.9和β2=0.999[38];分类交叉熵损失函数[39];小批量1024;500个时代。为了加快训练速度并避免过拟合,当验证集的损失在连续10个周期内没有改善时,我们应用了早期停止[29],恢复了最小化该指标的权重。

        深度学习模型中超参数的选择对于实现这一目标至关重要。

        Block-3解析:

        1. 运用2层二维卷积,提取最具价值的特征用于分类。(此处并非提取时间和空间特征,而是在已提取的特征中筛选出有利于分类的特征,纯粹是特征提取操作,与时间、空间相关性无关)    两个卷积核大小分别为8*1和4*1。

        2. 二维卷积和二维池化交叉使用,两层池化的核大小均为2*1,起到进一步降低维度的作用。         3. 两层卷积的滤波器数量分别为F = 12、F = 6,F值逐渐减小,这和池化一样能实现降维效果,还可避免过拟合。此前滤波器数量F一直为8,整体来看就经历了8 - 12 - 6这样的变化,符合滤波器倒瓶颈的先进结构。

2.论文复现

相关文章:

论文阅读 EEG-Inception

EEG-Inception: A Novel Deep Convolutional Neural Network for Assistive ERP-Based Brain-Computer Interfaces EEG-Inception是第一个集成Inception模块进行ERP检测的模型,它有效地结合了轻型架构中的其他结构,提高了我们方法的性能。 本研究的主要目…...

基于opencv消除图片马赛克

以下是一个基于Python的图片马赛克消除函数实现,结合了图像处理和深度学习方法。由于马赛克消除涉及复杂的图像重建任务,建议根据实际需求选择合适的方法: import cv2 import numpy as np from PIL import Imagedef remove_mosaic(image_pat…...

计算机毕业设计SpringBoot+Vue.js陕西民俗网(源码+文档+PPT+讲解)

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...

【算法方法总结·三】滑动窗口的一些技巧和注意事项

【算法方法总结三】滑动窗口的一些技巧和注意事项 【算法方法总结一】二分法的一些技巧和注意事项【算法方法总结二】双指针的一些技巧和注意事项【算法方法总结三】滑动窗口的一些技巧和注意事项 【滑动窗口】 数组的和 随着 右边指针 移动一定是 非递减 的,就是 …...

IO的概念和标准IO函数

作业&#xff1a; 1.使用标准IO函数&#xff0c;实现文件的拷贝 #include <stdio.h>int main(int argc, char *argv[]) {// 检查是否提供了源文件和目标文件if (argc ! 3) {printf("Usage: %s <source_file> <destination_file>\n", argv[0]);re…...

tauri2+typescript+vue+vite+leaflet等的简单联合使用(一)

项目目标 主要的目的是学习tauri。 流程 1、搭建项目 2、简单的在项目使用leaflet 3、打包 准备项目 环境准备 废话不多说&#xff0c;直接开始 需要有准备能运行Rust的环境和Node&#xff0c;对于Rust可以参考下面这位大佬的文章&#xff0c;Node不必细说。 Rust 和…...

【流程图】在 .NET (WPF 或 WinForms) 中实现流程图中的连线算法

在 .NET (WPF 或 WinForms) 中实现流程图中的连线算法&#xff0c;通常涉及 图形绘制 和 路径计算。常见的连线方式包括 直线、折线 和 贝塞尔曲线。以下是几种方法的介绍和示例代码。 1. 直线连接&#xff08;最简单&#xff09; 适用场景&#xff1a; 两个节点之间没有障碍…...

IDEA集成DeepSeek,通过离线安装解决无法安装Proxy AI插件问题

文章目录 引言一、安装Proxy AI1.1 在线安装Proxy AI1.2 离线安装Proxy AI 二、Proxy AI中配置DeepSeek2.1 配置本地部署的DeepSeek&#xff08;Ollama方式&#xff09;2.2 通过第三方服务商提供的API进行配置 三、效果测试 引言 许多开发者尝试通过安装Proxy AI等插件将AI能力…...

【流行病学】Melodi-Presto因果关联工具

title: “[流行病学] Melodi Presto因果关联工具” date: 2022-12-08 lastmod: 2022-12-08 draft: false tags: [“流行病学”,“因果关联工具”] toc: true autoCollapseToc: true 阅读介绍 Melodi-Presto: A fast and agile tool to explore semantic triples derived from …...

详细分析KeepAlive的基本知识 并缓存路由(附Demo)

目录 前言1. 基本知识2. Demo2.1 基本2.2 拓展2.3 终极 3. 实战 前言 &#x1f91f; 找工作&#xff0c;来万码优才&#xff1a;&#x1f449; #小程序://万码优才/r6rqmzDaXpYkJZF 基本知识推荐阅读&#xff1a;KeepAlive知识点 从实战中学习&#xff0c;源自实战中vue路由的…...

【Go】Go viper 配置模块

1. 配置相关概念 在项目开发过程中&#xff0c;一旦涉及到与第三方中间件打交道就不可避免的需要填写一些配置信息&#xff0c;例如 MySQL 的连接信息、Redis 的连接信息。如果这些配置都采用硬编码的方式无疑是一种不优雅的做法&#xff0c;有以下缺陷&#xff1a; 不同环境…...

zabbix“专家坐诊”第277期问答

在线答疑:乐维社区 问题一 Q&#xff1a;这个怎么解决呢&#xff1f; A&#xff1a;缺少这个依赖。 Q&#xff1a;就一直装不上。 A&#xff1a;装 zabbix-agent2-7.0.0-releasel.el7.x86 64 需要前面提示的那个依赖才可以装。 问题二 Q&#xff1a;大佬&#xff0c;如果agen…...

大模型工程师学习日记(十一):FAISS 高效相似度搜索和密集向量聚类的库

Facebook AI Similarity Search (Faiss /Fez/) 是一个用于高效相似度搜索和密集向量聚类的库。它包含了在任意大小的向量集合中进行搜索的算法&#xff0c;甚至可以处理可能无法完全放入内存的向量集合。它还包含用于评估和参数调整的支持代码。 Faiss 官方文档&#xff1a;We…...

python学习第三天

条件判断 条件判断使用if、elif和else关键字。它们用于根据条件执行不同的代码块。 # 条件判断 age 18 if age < 18:print("你还是个孩子&#xff01;") elif age 18:print("永远十八岁&#xff01;") else:print("你还年轻&#xff01;")…...

深入解析 Svelte:下一代前端框架的革命

深入解析 Svelte&#xff1a;下一代前端框架的革命 1. Svelte 简介 Svelte 是一款前端框架&#xff0c;与 React、Vue 等传统框架不同&#xff0c;它采用 编译时&#xff08;Compile-time&#xff09; 方式来优化前端应用。它不像 React 或 Vue 依赖虚拟 DOM&#xff0c;而是…...

C++20 中位移位运算符的统一行为:深入解析与实践指南

文章目录 1. 位移位运算符的基础1.1 左移运算符&#xff08;<<&#xff09;1.2 右移运算符&#xff08;>>&#xff09; 2. C20 对位移位运算符的统一2.1 移位数量超出操作数位宽2.2 负数移位 3. 实践中的注意事项4. 示例代码5. 总结 在 C 的发展历程中&#xff0c;…...

Linux——基本指令

我们今天学习Linux最基础的指令 ls 指令 语法&#xff1a; ls [选项] [⽬录或⽂件] 功能&#xff1a;对于⽬录&#xff0c;该命令列出该⽬录下的所有⼦⽬录与⽂件。对于⽂件&#xff0c;将列出⽂件名以及其他信 息。 命令中的选项&#xff0c;一次可以传递多个 &#xff0c…...

MySql面试总结(二)

WHERE 子句优化 截至2024年7月,MySQL最新稳定版本是8.2,并不存在MySQL 8.4 。下面从常见的几个方面为你介绍 MySQL 8.x 中 WHERE 子句的优化方法: 1. 确保使用索引 原理:索引可以加快数据的查找速度,当 WHERE 子句中的条件列有索引时,MySQL 可以直接定位到符合条件的数…...

Pytorch中的主要函数

目录 一、torch.manual_seed(seed)二、torch.cuda.manual_seed(seed)三、torch.rand(*size, outNone, dtypeNone, layouttorch.strided, deviceNone, requires_gradFalse)四、给大家写一个常用的自动选择电脑cuda 或者cpu 的小技巧五、torch.version.cuda&#xff1b;torch.bac…...

Java实现大数据量导出报表

一、实现方式 在Java中&#xff0c;导出数据到Excel有多种方式&#xff0c;每种方式都有其优缺点&#xff0c;适用于不同的场景。以下是常见的几种方式及其特点&#xff1a; 1.1 Apache POI Apache POI 是 Java 中最流行的库&#xff0c;支持读写 Excel 文件&#xff08;包括…...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具&#xff0c;该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具&#xff0c;其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利&#xff0c;如安装和调试…...

day52 ResNet18 CBAM

在深度学习的旅程中&#xff0c;我们不断探索如何提升模型的性能。今天&#xff0c;我将分享我在 ResNet18 模型中插入 CBAM&#xff08;Convolutional Block Attention Module&#xff09;模块&#xff0c;并采用分阶段微调策略的实践过程。通过这个过程&#xff0c;我不仅提升…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...

跨链模式:多链互操作架构与性能扩展方案

跨链模式&#xff1a;多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈&#xff1a;模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展&#xff08;H2Cross架构&#xff09;&#xff1a; 适配层&#xf…...

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

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

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!

简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求&#xff0c;并检查收到的响应。它以以下模式之一…...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学&#xff1f;传统医学奠基期&#xff08;远古 - 17 世纪&#xff09;近代医学转型期&#xff08;17 世纪 - 19 世纪末&#xff09;​现代医学成熟期&#xff08;20世纪至今&#xff09; 中医的源远流长和一脉相承远古至…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

算法:模拟

1.替换所有的问号 1576. 替换所有的问号 - 力扣&#xff08;LeetCode&#xff09; ​遍历字符串​&#xff1a;通过外层循环逐一检查每个字符。​遇到 ? 时处理​&#xff1a; 内层循环遍历小写字母&#xff08;a 到 z&#xff09;。对每个字母检查是否满足&#xff1a; ​与…...

SQL慢可能是触发了ring buffer

简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...