当前位置: 首页 > 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;包括…...

docker详细操作--未完待续

docker介绍 docker官网: Docker&#xff1a;加速容器应用程序开发 harbor官网&#xff1a;Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台&#xff0c;用于将应用程序及其依赖项&#xff08;如库、运行时环…...

简易版抽奖活动的设计技术方案

1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

django filter 统计数量 按属性去重

在Django中&#xff0c;如果你想要根据某个属性对查询集进行去重并统计数量&#xff0c;你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求&#xff1a; 方法1&#xff1a;使用annotate()和Count 假设你有一个模型Item&#xff0c;并且你想…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?

论文网址&#xff1a;pdf 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若有发现欢迎评论指正&#xff01;文章偏向于笔记&#xff0c;谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

Python 包管理器 uv 介绍

Python 包管理器 uv 全面介绍 uv 是由 Astral&#xff08;热门工具 Ruff 的开发者&#xff09;推出的下一代高性能 Python 包管理器和构建工具&#xff0c;用 Rust 编写。它旨在解决传统工具&#xff08;如 pip、virtualenv、pip-tools&#xff09;的性能瓶颈&#xff0c;同时…...

Python 高效图像帧提取与视频编码:实战指南

Python 高效图像帧提取与视频编码:实战指南 在音视频处理领域,图像帧提取与视频编码是基础但极具挑战性的任务。Python 结合强大的第三方库(如 OpenCV、FFmpeg、PyAV),可以高效处理视频流,实现快速帧提取、压缩编码等关键功能。本文将深入介绍如何优化这些流程,提高处理…...

Python训练营-Day26-函数专题1:函数定义与参数

题目1&#xff1a;计算圆的面积 任务&#xff1a; 编写一个名为 calculate_circle_area 的函数&#xff0c;该函数接收圆的半径 radius 作为参数&#xff0c;并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求&#xff1a;函数接收一个位置参数 radi…...

ArcGIS Pro+ArcGIS给你的地图加上北回归线!

今天来看ArcGIS Pro和ArcGIS中如何给制作的中国地图或者其他大范围地图加上北回归线。 我们将在ArcGIS Pro和ArcGIS中一同介绍。 1 ArcGIS Pro中设置北回归线 1、在ArcGIS Pro中初步设置好经纬格网等&#xff0c;设置经线、纬线都以10间隔显示。 2、需要插入背会归线&#xf…...

goreplay

1.github地址 https://github.com/buger/goreplay 2.简单介绍 GoReplay 是一个开源的网络监控工具&#xff0c;可以记录用户的实时流量并将其用于镜像、负载测试、监控和详细分析。 3.出现背景 随着应用程序的增长&#xff0c;测试它所需的工作量也会呈指数级增长。GoRepl…...