25、新加坡南洋理工、新加坡国立大学提出FBCNet:完美融合FBCSP的CNN,EEG解码SOTA水准![抱歉老师,我太想进步了!]

前言:

阴阳差错,因工作需要,需要查阅有关如何将FBCSP融入CNN中的文献,查阅全网,发现只此一篇文章,心中大喜,心想作者哪家单位,读之,原来是自己大导(新加坡工程院院士)目前任职的高校,心里斐然,平台在那,这实验室别人喝漏的矿泉水拿过来都能发个CVPR。院士资源,高山仰止。

论文:

《FBCNet: A Multi-view Convolutional Neural Network for Brain-Computer Interface》

2021年3月17日arXiv<Computer Science>

代码:

https://github.com/ravikiran-mane/FBCNet.

本文完美的将机器学习FBCSP与深度学习CNN相结合,性能超越了FBCSP达到了脑电解码的SOTA水准!

0、Abstract:

缺乏足够的训练样本和噪声高维特征是基于脑机接口(BCI)的运动图像(MI)解码算法面临的主要挑战。为了解决这些挑战,受脑梗死神经生理特征的启发,本文提出了一种新的用于脑梗死分类的Filter-Bank卷积网络(FBCNet)。FBCNet采用多视图数据表示和空间滤波来提取光谱空间判别特征。这种多阶段方法可以在训练数据有限的情况下有效地训练网络。更重要的是,在FBCNet中,我们提出了一种新的方差层,可以有效地聚合脑电时域信息。通过这种设计,我们将FBCNet与最先进的(SOTA) BCI算法在四个MI数据集上进行比较:BCI竞赛IV数据集2a (bbic -IV-2a)、OpenBMI数据集和两个来自慢性卒中患者的大型数据集。结果表明,FBCNet为bbic - iv -2a数据集建立了新的SOTA, 4类分类准确率达到76.20%。在其他三个数据集上,FBCNet的二值分类准确率提高了8%。此外,使用可解释的人工智能技术,我们提出了关于健康受试者和中风患者之间判别性脑电图特征差异的首批报告之一。

1、Introduction:

本文的主要贡献如下:

1.提出了一种紧凑且受神经生理学启发的CNN架构FBCNet,用于MI分类

2.为有效提取脑电图时间信息和减少参数,提出了一种新颖的方差层。

3.在慢性中风患者心肌梗死解码中首次将经典机器学习算法和深度学习构架进行了比较

4..我们的研究表明,对于中风患者,经典的机器学习方法可能优于通用的深度学习架构,但在FBCNet中所做的那样,仔细融合深度学习方法和MI的神经生理学知识,可以对健康受试者和中风患者实现最佳的分类精度。

2、Related Works:

许多经典的机器学习技术已经被提出用于EEG-MI分类,在[12]中可以找到它们的广泛总结。其中,FBCSP是最成功的算法之一[6],其设计理念与FBCNet相似。因此,我们直接比较FBCNet和FBCSP的结果。

近年来,许多深度学习架构也被提出用于EEG-BCI领域[7]-[10],[21]。其中,Deep ConvNet[7]和EEGNet[9]是在EEG社区中得到广泛应用的两种架构,并提供了开源代码实现。因此,我们使用这两种架构与FBCNet在所有评估数据集中进行比较。最后,我们根据BCI竞争IV-2a数据集上报告的准确性,将FBCNet与许多最新架构的性能进行了比较。

3、Method:

FBCNet的设计目的是有效地提取MI特征的光谱空间判别信息,同时避免小数据集存在的过拟合问题。FBCNet架构的核心由以下四个阶段组成:

1.多视角数据表示:通过多个窄的带通滤波器对原始脑电图进行频谱滤波,得到脑电数据的多视图表示。

2.空间转换学习:然使用深度卷积层学习每个视图的空间判别模式。

3.时间特征提取:在空间变换的基础上,采用一种新的方差层来有效地提取时间信息

FBCNet模型图

模型解析:

3.1 Spectral Localization by Multi-view Data Representation

其中,输入数据 Raw EEG:

标签y:

C:通道数;T:时间点,Nc:不同类别总数

脑电数据中与心肌梗死相关的信息存在于mu (8- 12hz)和beta (12-32Hz)频段,所以为了定位到这种判别信息,使用多视角数据表示:其中每一个视图代表一个不同频段的滤波器。

多视图表示为:

其中,原始EEG信号=x(上面已提到),滤波器组为:

滤波器组F由Nb个时间滤波器构成,对原始脑电信号x进行滤波操作,沿着XFB的第三维度——时间序列变化进行频谱局域化,即:

其中,

是带通滤波

问题:对于每个滤波器截止频段的设计,论文指出:

1.滤波器组F本可以由任意数量的截止频率不同的滤波器组成

2.但本模型使用Nb=9个滤波器组成滤波器组,每个频带4hz,从4-40hz,每4hz一段(4- 8,8 -12,…), 36-40赫兹)

3.滤波使用切比雪夫II型滤波器过渡带宽为=2Hz阻带纹波为=-30dB

以上这种滤波器组的选择源于FBCSP算法中提出的传统脑电图神经学显著谱带划分,该划分方法已被证明实现了良好的分类精度。

3.2 Spatial Localization by CNN

使用空间卷积块实现EEG信号的空间定位:

Spatial Convolution Block(SCB) = Depth_Conv2d+BN+Swish,kernel_size=(C,1)

注意:

1.深度卷积的使用导致每个滤波器只与一个频带EEG相关联,深度参数m控制每个频带的空间滤波器的数量。

2.卷积核(C,1)可以跨越所有通道,有效地充当空间过滤器

3.在每个卷积核的权重上使用最大范数=2来正则化每个卷积核

此时,之前滤波器组输出为

SCB输出:

所以,SCB输出的时间序列为:

其中,m=32

3.3 Temporal Feature Extraction by Variance Layer

原始EEG数据通常沿时间维度包含大量特征,这些特征表现出最大的类内方差和高噪声含量。因此,为了避免分类模型的过拟合,有必要通过有效提取最相关的时间信息来降低时间维特征。最大池化或平均池化策略是用于降低特征维数的最常用技术。然而,考虑到不同类型的MI的频谱功率(ERD/ERS)不同,方差运算代表给定时间序列的频谱功率成为EEG时间表征更合适的选择。因此,为了有效地提取时间判别信息,我们提出了一种新的方差层,该层通过计算时间序列的方差来表征时间序列。在正向传递中,对于任意时变信号g(t)方差层的输出为:

其中,T=时间总点数;u是g(t)的平均值

在神经网络学习阶段(反向传播阶段),方差层对脑电数据的影响更为显著。对于任意一个神经网络,如果:

方差层的输入损失,那么这一层对输入g(t)的反向传播损失Lg(t):

看出:

方差层的反向传播损耗ug(t)以及信号均值的偏差成正比。

所以:

方差层通过为这些点分配更高比例的输入梯度,为远离均值的信号点提供了更多的重要性。

并且:

这也与脑电图的特征相一致,其中以ERD或ERS的形式偏离平均值是心肌梗死的明显特征。

最后:

SCB的输出被传递到方差层,它计算大小为w的非重叠窗口中单个时间序列的时间方差,整个时间范围内应用方差层将特征的数量从:

减少到:

从而实现了高度的特征减少。窗口长度w=15

3.4 Classification

方差层提取的特征通激活,然后送给FC层。然后将FC的输出传递给softmax层,以获得每个类的输出概率。使用最大范数=0.5对FC层权值进行正则化:

4、Datasets

  1. BCIC-IV-2A Data: A 4 class MI data from BCI Competition IV Dataset 2A [26].

  2. OpenMBI Data: A 2 class MI data from Korea University EEG dataset [27].

  3. Stroke Data: A: A 2 class MI vs rest dataset [4].

  4. Stroke Data: B: A 2 class MI vs rest dataset [28].

5、 Experiments

10折交叉验证:9训练,1测试

Adam,Lr=0.001,betas=0.9,0.999

对数交叉熵损失

早停法,连续epoch=200停

6、Results

FBCNet在2a数据中Average_acc= 79%

7、Academician Dog Egg Black

不是,咱就是说你每天别光睡觉,睡起来就玩小球和逗猫棒,有点远大的抱负好不,比如通过你自己的努力,选上了工程院院士,我也好沾沾狗蛋你的光!

狗蛋:我就是一只小猫咪,我睡会觉咋了?

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

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

相关文章

Docker 学习总结(80)—— 轻松驾驭容器,玩转 LazyDocker

前言 LazyDocker 是一个用户友好的命令行工具,简化了 Docker 的管理。它能够通过单一命令执行常见的 Docker 任务,如启动、停止、重启和移除容器。LazyDocker 还能轻松查看日志、清理未使用的容器和镜像,并自定义指标。 简绍 LazyDocker 是一个用户友好的 CLI 工具,可以轻…

Java小案例-Java实现人事管理系统

前言 《人事管理系统》该项目采用技术jsp、Struts2、Mybatis、dwr、tomcat服务器、mysql数据库 开发工具eclipse/idea。 【项目使用技术】 Struts2Mybatisdwrjqueryjscss等技术 前端使用技术&#xff1a;JSP, dwr、jquery、js、css等 后端使用技术&#xff1a;Struts2Myba…

html之如何设置音频和视频

文章目录 前言一、音频标签&#xff1a;audio1.audio简介2.常用属性controlsautoplayloop代码演示&#xff1a; 二、视频标签&#xff1a;video1.video2.常用的视频元素controlsautoplayloop代码演示&#xff1a; 总结视频元素总结音频元素总结 前言 html中插入音频和视频的方…

macos 上使用 java+opencv记录

自编译 失败很多次之后终于跑起来一个 javaopencv 的demo。 过程 主要步骤如下&#xff1a; 编译需要 Apache Ant brew install ant需要告诉 opencv 需要 javabuild -DBUILD_opencv_javaON brew edit opencv编辑这个我错了很多次 直接编辑完了它会默认下载未修改的openc…

Java 并发编程 —— 透过源码剖析 ForkJoinPool

目录 一. 前言 二. 工作窃取的实现原理 2.1. WorkQueue&#xff08;工作队列&#xff09; 2.2. 工作窃取流程 三. ForkJoinPool 源码解析 3.1. ForkJoinPool 的字段 3.1.1. 常量 3.1.2. 成员变量 3.1.3. ctl&#xff08;5个部分组成&#xff09; 3.2. 构造函数 3.3.…

TensorFlow(3):初始TensorFlow

1 初始TensorFlow TensorFlow程序通常被组织成一个构件图阶段和一个执行图阶段。 在构建图阶段&#xff0c;数据与操作的执行步骤被描述为一个图 在执行图阶段&#xff0c;使用会话&#xff08;调用系统资源&#xff09;执行构建好的图中的操作 图和会话 图&#xff1a;这是…

HarmonyOS引导页登陆页以及tabbar的代码说明 home 下拉刷新页代码 5

下拉刷新页 代码说明 这一页第一次运行时很卡&#xff0c;就是你点击修改&#xff0c;要等一会才出来&#xff0c;加一句&#xff0c;修改的字样原来应是修车二字。只能将错就错。 const TopHeight 200; Component export default struct Car {State list: Array<number&…

​TrustZone之可信固件

Trusted Firmware是Armv8-A设备的安全世界软件的开源参考实现。Trusted Firmware为SoC开发人员和OEM提供了一个符合相关Arm规格&#xff08;包括TBBR和SMCC&#xff09;的参考Trusted代码库。 以下图表显示了Trusted Firmware的结构&#xff1a; SMC调度程序处理传入的SMC。SMC…

基于html5的演唱会购票系统的设计与实现论文

基于html5的演唱会购票系统的设计与实现 摘要 随着信息互联网购物的飞速发展&#xff0c;一般企业都去创建属于自己的电商平台以及购物管理系统。本文介绍了基于html5的演唱会购票系统的设计与实现的开发全过程。通过分析企业对于基于html5的演唱会购票系统的设计与实现的需求…

机器学习之随机森林 python

随机森林是一种集成学习方法&#xff0c;它是由多个决策树组成的模型&#xff0c;其中每棵树都是随机生成的。随机深林包括两种主要类型&#xff1a;随机森林和极端随机树。 废话不说上代码 import numpy as np import matplotlib.pyplot as plt from sklearn.datasets import…

@德人合科技——天锐绿盾 | 图纸加密软件有哪些功能呢?

德人合科技 | 天锐绿盾加密软件是一款全面保障企业电脑数据和安全使用的加密软件 PC端访问地址&#xff1a;www.drhchina.com 它的功能包括但不限于&#xff1a; 实时操作日志&#xff1a;可以实时详细地记录所有终端的操作日志&#xff0c;包括终端上窗口标题的变换、程序的…

本地使用 docker 运行OpenSearch + Dashboard + IK 分词插件

准备基础镜像 注意一定要拉取和当前 IK 分词插件版本一致的 OpenSearch 镜像: https://github.com/aparo/opensearch-analysis-ik/releases 写这篇文章的时候 IK 最新版本 2.11.0, 而 dockerhub 上 OpenSearch 最新版是 2.11.1 如果版本不匹配的话是不能用的, 小版本号对不上…

11种方法判断​软件的安全可靠性​

软件的安全可靠性是衡量软件好坏的一个重要标准&#xff0c;安全性指与防止对程序及数据的非授权的故意或意外访问的能力有关的软件属性&#xff0c;可靠性指与在规定的一段时间和条件下&#xff0c;软件 软件的安全可靠性是衡量软件好坏的一个重要标准&#xff0c;安全性指与防…

通讯录应用程序开发指南

目录 一、前言 二、构建通讯录应用程序 2.1通讯录框架 (1)打印菜单 (2) 联系人信息的声明 (3)创建通讯录 (4)初始化通讯录 2.2功能实现 (1)增加联系人 (2)显示联系人 (3)删除联系人 (4)查找联系人 (5)修改联系人 (6)排序联系人 三、通讯录的优化 3.1 文件存储 …

PhysX——源码编译

从git下载源码 git主页 https://github.com/NVIDIA-Omniverse/PhysXclone地址 https://github.com/NVIDIA-Omniverse/PhysX.git源码编译 运行PhysX需要两个编译器的支持&#xff0c;CMake 3.12 或以上版本以及Python 2.7.6 版本 进入工程的 physx 目录&#xff0c;运行generate…

Java将枚举类转为json返回给前端

Java将枚举类转为json返回给前端 1.后端将枚举类直接返回给前端时只会显示枚举名称2.使用 JsonFormat 注解可以将枚举类转为json再返回给前端。2.1添加maven依赖2.2在枚举类上添加JsonFormat(shape JsonFormat.Shape.OBJECT)2.3编写接口返回给前端 1.后端将枚举类直接返回给前…

『Linux升级路』基础开发工具——gdb篇

&#x1f525;博客主页&#xff1a;小王又困了 &#x1f4da;系列专栏&#xff1a;Linux &#x1f31f;人之为学&#xff0c;不日近则日退 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、背景知识介绍 二、gdb指令介绍 一、背景知识介绍 在软件开发中&#xff0c…

WT2003HX高品质MP3语音芯片,支持立体声输出的应用优势

在当今的音频处理领域&#xff0c;立体声输出已经成为一项基本的需求。许多电子产品都要求能够支持立体声音效&#xff0c;为用户提供更为沉浸式的音频体验。针对这一市场需求&#xff0c;唯创知音推出了WT2003HX高品质MP3语音芯片&#xff0c;该芯片支持立体声输出&#xff0c…

Ubuntu 常用命令之 cal 命令用法介绍

&#x1f4d1;Linux/Ubuntu 常用命令归类整理 cal命令在Ubuntu系统下用于显示日历。它可以显示任何特定月份或整个年份的日历。 cal命令的参数如下 -1&#xff1a;只显示当前月份的日历。-3&#xff1a;显示前一个月、当前月和下一个月的日历。-s&#xff1a;指定日历的开始…

Redis命令参考手册完整版

Redis命令参考手册完整版 Key(键)DELKEYSRANDOMKEYTTLPTTLEXISTSMOVERENAMERENAMENXTYPEEXPIREPEXPIREEXPIREATPEXPIREATPERSISTSORT 获取 name 和 password<br />redis> SORT user_id BY user_level_* DESC GET user_name_* GET<br />user_password_*<br /&…