运动想象 (MI) 迁移学习系列 (3) : MSFT
运动想象迁移学习系列:MSFT
- 0. 引言
- 1. 主要贡献
- 2. 数据增强方法
- 3. 基于度量的空间滤波转换器
- 3.1 空间过滤
- 3.2 脑电图ViT
- 3.2.1 变压器编码器层
- 3.2.2 基于度量的损失函数
- 4. 实验结果
- 4.1 消融实验
- 4.2 基线任务对比
- 4.3 跨主体
- 5. 总结
- 欢迎来稿
论文地址:https://www.sciencedirect.com/science/article/abs/pii/S1746809422005249#aep-article-footnote-id1
论文题目:Excellent fine-tuning: From specific-subject classification to cross-task classification for motor imagery
论文代码:暂未找到
0. 引言
随着深度学习的普及,基于特征提取器和分类器的运动意象脑电图(MI-EEG)识别表现良好。然而,大多数模型提取的特征没有足够的区分性,仅限于特定主题分类。我们提出了一种新的模型,基于度量的空间滤波变压器(MSFT),该模型利用加性角裕量损失来强制实施深度模型,以提高类间可分离性,同时增强类内的紧凑性。此外,在模型中应用了一种称为脑电图金字塔的数据增强方法。
1. 主要贡献
- 基于
微调的算法具有加性角裕度损失,可以解耦特征提取器和分类器的训练,以提取更具通用性和辨别性的特征。 - 提出了一种新的
数据增强方法,即脑电图金字塔,它可以从脑电图中的多个时间窗口探索局部信息。 - 该方法不仅在
特定主题分类方面优于近年来许多流行的算法,而且无缝地适应了跨主题甚至跨任务的分类。
2. 数据增强方法
本文提出了一种数据增强方法:脑电图金字塔。脑电图金字塔结构的主要操作流程如下图所示:

主要包含以下操作步骤:
- 记原始脑电信号为 ( S , T ) (S, T) (S,T)。 其中, S S S 表示
脑电通道数, T T T 表示脑电信号采集时间(数据点个数)。 - 将原始信号记为第0层,依次对下一层信号进行
上采样。上采样率为: 1 + l ( m − 1 ) c − 1 1+\frac{l(m-1)}{c-1} 1+c−1l(m−1)。其中, m m m表示上采样率, c c c表示金字塔层数。使用SciPy库signal.resample来实现上采样。 - 用连续的 T T T数据点
随机截取每层的脑电样本。 - 将截获的所有层的脑电图堆叠在
新的第三维空间(空间维度为c)中,作为脑电图金字塔样本。 - 由于
截取的随机性,试验脑电图数据可以生成多个不同的脑电图金字塔样本。我们将此样本增强参数标记为 M。
3. 基于度量的空间滤波转换器
通过空间滤波将脑电图原始数据转化为中间时空表示,然后通过脑电图金字塔作为ViT的输入,转化为时空金字塔样本。作为特征提取器,ViT 输出一组高级判别特征,这些特征通过加性角裕量损失进行优化。训练特征提取器后,继续训练多层感知器 (MLP) 作为分类器。完整的 MSFT 过程图 2 所示。

(a) 空间滤波将脑电图原始数据转换为时空金字塔样本。
(b) 基于度量的脑电图ViT包括特征提取器和分类器。
(c)ArcFace损失提高了类间的可分离性,有利于提高分类精度。
3.1 空间过滤
按照论文内容的意思:这里的空间滤波就是一个OVR-CSP结构,就不再展开说了。
3.2 脑电图ViT
深度模型EEG ViT由三部分组成:段嵌入层、变压器编码器层和分类头层。输入通过线段嵌入层转换为具有特定形状的嵌入(存在困惑,不知道为啥非要这样做?)。然后,通过变压器编码器层提取隐藏特征,通过平均得到e区分特征;同时,存在基于指标的损失,以增强类内紧密性和类间差异。训练完两层后,我们冻结两层的参数,继续训练分类头层。
3.2.1 变压器编码器层
变压器编码器层结构如下所示:

3.2.2 基于度量的损失函数
基于指标的损失函数 ArcFace 损失派生自 Softmax loss。Softmax loss表示如下:

传统的 Softmax loss 在应用于分类时,并没有明确优化深度特征,以加强类内相似性和类间差异。而ArcFace损失的计算公示如下所示:

softmax 损失在嵌入决策边界的可分离特征上产生明显的模糊性,而 ArcFace 损失显然可以在最接近的类之间强制执行更明显的间隙,如图 4 所示。

4. 实验结果
4.1 消融实验
消融实验结果如下表所示:

无空间滤波:我们直接将脑电图原始数据发送到脑电图金字塔后给脑电图ViT,后续过程保持不变。ResNet18 特征提取器:如果直接省略 EEG ViT 的处理,则无法提取深层特征。因此,我们使用另一个高效的主干网 ResNet 来提取特征。基于 ResNet 庞大的参数和较长的训练时间,最轻量级的 ResNet18 有足够的深度信息挖掘能力。变压器编码器编号(r = 1 和 r = 5):变压器编码器的数量表示网络深度。我们探讨了变压器编码器模块的深度对结果的影响。无 ArcFace 损失:我们移除了 ArcFace 损失模块,这样提取的特征就不需要等待训练完成才发送到分类器。换句话说,特征提取器和分类器处于同一训练阶段。
结果表明,空间滤波对解码确实有很大的正向作用,其空间增强有助于特征更具判别性。此外,在我们的方法中,EEG ViT作为特征提取器是比ResNet更好的骨干。 变压器中的注意力机制更适合解码脑电图等时间序列数据。变压器的深度对解码性能有轻微影响。但是,这并不意味着网络越深,分类精度就越高。ArcFace损失对结果的明显影响表明,它促进了深层特征的类内聚类和类间差异。
4.2 基线任务对比
为了突出我们方法的有效性,在IV-2a和IV-2b数据集上与一些特定受试者的基准方法进行了比较,如表2所示。

4.3 跨主体
跨主体训练需要使用一个主体的数据训练 ArcFace 损失中的段嵌入层、transformer 编码器层和参数,然后修复这些参数,然后使用另一个主体的数据微调分类头层。
跨主体训练包含两个训练步骤:训练特征提取器是第一个训练阶段,微调分类头是第二个训练阶段。我们使用一个受试者的数据进行第一阶段的训练,然后分别使用其他受试者的数据完成第二阶段的训练。在IV-2a数据集上获得的结果如图6所示。

从结果可以看出,除了平均准确率为56.88%的跨受试者4外,其他跨受试者结果均超过60%。
5. 总结
到此,使用 MSFT已经介绍完毕了!!! 如果有什么疑问欢迎在评论区提出,对于共性问题可能会后续添加到文章介绍中。
如果觉得这篇文章对你有用,记得点赞、收藏并分享给你的小伙伴们哦😄。
欢迎来稿
欢迎投稿合作,投稿请遵循科学严谨、内容清晰明了的原则!!!! 有意者可以后台私信!!
相关文章:
运动想象 (MI) 迁移学习系列 (3) : MSFT
运动想象迁移学习系列:MSFT 0. 引言1. 主要贡献2. 数据增强方法3. 基于度量的空间滤波转换器3.1 空间过滤3.2 脑电图ViT3.2.1 变压器编码器层3.2.2 基于度量的损失函数 4. 实验结果4.1 消融实验4.2 基线任务对比4.3 跨主体 5. 总结欢迎来稿 论文地址:https://www.s…...
NeRF模型NeRF模型
参考视频:https://www.youtube.com/watch?vHfJpQCBTqZs&ab_channelVision%26GraphicsSeminaratMIT NeRF模型的输入输出: 输入: (x, y, z): 一个三维空间坐标,代表场景中的一个位置点(θ, φ): 视线方向,θ表示与y轴的夹角,φ表示与x轴的夹角,用两个角度可以…...
python爬虫(4)
#前期先说明一下为啥爬虫需要学习数组的存储和处理,只是说在你后期接触到最简单的爬虫后有一个地方可以存放你的数据# 下面为大家带来一个我在做excel表整理时的代码以及上次代码的结果 上次代码的结果: 新的代码: import numpy as np im…...
递归神经网络 (RNN) 及其变体 LSTM (长短期记忆) 和 GRU (门控循环单元)
递归神经网络(RNN, Recurrent Neural Networks)是一类用于处理序列数据的神经网络,特别适合于时间序列数据、语音、文本等连续数据的处理。RNN之所以独特,是因为它们在模型内部维持一个隐藏状态,该状态理论上可以捕获到…...
Redis的HyperLogLog原理介绍
Redis 的 HyperLogLog 数据结构实现了一种基于概率的基数估算算法,用于在占用极小内存的情况下估算一个集合中不重复元素(唯一值)的数量。以下是 HyperLogLog 算法的基本原理: 哈希函数: HyperLogLog 使用一个强散列函…...
微信小程序开发系列(二十六)·小程序运行机制(启动、前后台状态、挂起、销毁)和小程序更新机制
目录 1. 小程序运行机制 1.1 启动 1.2 前台和后台状态 1.3 挂起 1.4 销毁 2. 小程序更新机制 1. 小程序运行机制 1.1 启动 小程序启动可以分为两种情况,一种是冷启动,一种是热启动。 冷启动:如果用户首次打开,或小…...
百度信息流
计划: 流量选择 - 四个维度: 百度信息流 ; 整合了百度APP、WAP、PC各频道信息流和内容详情页的流量资源,广告和信息流内容资讯穿插展现;适合所有产品呢 好看视频; 汇集海量优质的视频内容,通过智能推荐算法为用户推送最适合的视频广告,视频广告在列表页有声…...
JAVA后端开发面试基础知识(十)——设计模式
创建型模式 创建型模式的作用就是创建对象,说到创建一个对象,最熟悉的就是 new 一个对象,然后 set 相关属性。但是,在很多场景下,我们需要给客户端提供更加友好的创建对象的方式,尤其是那种我们定义了类&am…...
红帽认证知识储备-Linux安全
Linux安全 内置安全机制 常见的系统用的centos中用的是SELinux,ubuntu用的是AppArmor,deepin什么都没用 SELINUX 定义 SELinux 是一个 Linux 内核安全模块,它增强了系统的安全性,通过实施强制访问控制策略来限制程序和用户对系…...
Rust 语言中的 dyn 关键字
在 Rust 中,&dyn Error 是一个指向动态类型的 Error trait 对象的引用。这里的 dyn 关键字用于表示一个动态分派的 trait 对象。动态分派允许你在运行时确定实际的对象类型,而不是在编译时。 dyn 关键字在 Rust 中用于替换早期版本中的 & 符号&…...
软件测试实战,Web项目网页bug定位详细分析总结(详全)
目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、前置条件 1&a…...
清除Mac OS上Xcode占用的空间
最近自己的Mac OS存储空间严重不足,想了一下,大概是从安装 Xcode 之后出现,在系统下通过 du 命令分析各目录大小,发现大概下面几个目录占用空间比较大,所以针对这几个名目录作了一下清理,释放了几十个G的空…...
开源的Java图片处理库介绍
在 Java 生态系统中,有几个流行的开源库可以用于图片处理。这些库提供了丰富的功能,如图像缩放、裁剪、颜色调整、格式转换等。以下是几个常用的 Java 图片处理库的介绍,包括它们的核心类、主要作用和应用场景,以及一些简单的例子…...
论文笔记 Where Would I Go Next? Large Language Models as Human Mobility Predictor
arxiv 2023 08的论文 1 intro 1.1 人类流动性的独特性 人类流动性的独特特性在于其固有的规律性、随机性以及复杂的时空依赖性 ——>准确预测人们的行踪变得困难近期的研究利用深度学习模型的时空建模能力实现了更好的预测性能 但准确性仍然不足,且产生的结果…...
农场管理小程序|基于微信小程序的农场管理系统设计与实现(源码+数据库+文档)
农场管理小程序目录 目录 基于微信小程序的农场管理系统设计与实现 一、前言 二、系统设计 三、系统功能设计 1、用户信息管理 2、农场信息管理 3、公告信息管理 4、论坛信息管理 四、数据库设计 五、核心代码 七、最新计算机毕设选题推荐 八、源码获取&#x…...
【前端】vscode快捷键和实用Api整理
vscode的快捷键 创建a.html 生成模板 !回车 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" …...
抖音商家活动信息未在商详展示会有哪些处罚?
一、什么是「违规玩法-活动信息未在商详展示」? 什么是「违规玩法-活动信息未在商详展示」?由于当前平台未提供官方营销工具(例如免单、返现等),但是创作者在进行商品推广(不仅限口播、画面、标题文案等)宣传该类营销玩法,未在商品商详页展示说明&…...
智慧公厕方案_智慧公厕解决方案_智慧公厕整体解决方案
一、什么是智慧公厕? 在现代城市化进程中,公共厕所是不可或缺的基础设施之一。然而,传统的公厕管理模式已经无法满足市民对高效、便捷厕所服务的需求。为了实现公共厕所的信息化管理,智慧公厕整体解决方案应运而生。智慧公厕具体…...
【Python】成功解决IndexError: list index out of range
【Python】成功解决IndexError: list index out of range 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得到您的订…...
对于两个独立随机变量X,Y, E(XY)=E(X)E(Y)
两个独立随机变量X,Y的期望分别是E(X), E(Y), 其乘积XY的期望是多少? 我们可以利用期望的性质来求得XY的期望。由于X、Y是独立随机变量,因此它们的协方差为0,即: cov(X, Y) E(XY) - E(X)E(Y) 0 因此, …...
SATA系列专题之七:NCQ指令重排与FPDMA传输机制深度剖析
1. 从机械臂到智能管家:NCQ如何重塑硬盘工作逻辑 想象一下老式点唱机点播歌曲的场景:机械臂必须按照用户点歌的先后顺序移动到对应黑胶唱片的位置。如果第一首歌在最外侧,第二首歌在最内侧,机械臂就不得不来回摆动——这就是传统硬…...
3步解锁电脑玩手机游戏:scrcpy让你的Android设备变身游戏主机
3步解锁电脑玩手机游戏:scrcpy让你的Android设备变身游戏主机 【免费下载链接】scrcpy Display and control your Android device 项目地址: https://gitcode.com/gh_mirrors/sc/scrcpy 想要在电脑大屏幕上畅玩手机游戏吗?scrcpy这款开源工具能让…...
Scapy实战:从ARP缓存投毒到中间人攻击的攻防演练
1. ARP协议与缓存投毒原理剖析 ARP(Address Resolution Protocol)是局域网通信的基础协议,它的作用就像现实生活中的电话簿,负责将IP地址转换成对应的MAC地址。每台设备都维护着一个ARP缓存表,记录着最近通信过的设备信…...
你的J-Link-OB驱动装对了吗?从驱动安装到MDK5/Keil配置的完整避坑流程
J-Link-OB驱动安装与MDK5配置全流程避坑指南 最近在调试STM32项目时,发现不少开发者卡在了J-Link-OB驱动安装和MDK5配置这个看似简单却暗藏玄机的环节。我自己也曾经因为一个驱动签名问题折腾了大半天,今天就把这些实战经验整理成完整的避坑手册。 1. 驱…...
【STILT模型实操第2期】运行 STILT 模型提供 WRF 示例
目录1. 项目初始化与数据准备1.1 初始化 STILT 项目1.2 下载示例数据1.3 准备转换工具2. 核心操作步骤步骤 1:批量转换 WRF 数据步骤 2:配置 STILT 运行脚本 (r/run_stilt.r)步骤 3:运行 STILT 模型步骤 4:检查输出结果可视化轨迹…...
【Qt】Qt5.15在线安装避坑指南:从代理配置到组件选择的完整实践
1. Qt5.15在线安装前的准备工作 Qt作为跨平台开发框架,5.15版本开始只提供在线安装方式。我在实际项目中多次安装Qt5.15,发现前期准备不足会导致安装过程异常缓慢甚至失败。这里分享几个关键准备步骤: 首先需要确认系统环境。Qt5.15对Windows…...
数据结构(四) 栈和队列 超详细讲解(原理 + 完整代码 + 算法题)
数据结构(四) 栈和队列 超详细讲解(原理 完整代码 算法题) 栈和队列是数据结构中最基础、最常用的两种线性结构,掌握它们是学习算法、操作系统、编译原理的基础。本文带你从概念 → 结构实现 → 高频算法题一站式吃透。 文章目录数据结构(…...
【AGI时代招聘生存指南】:错过2026奇点大会这4个信号,你的技术团队将在6个月内掉队2个代际
第一章:2026奇点智能技术大会:AGI与人才招聘 2026奇点智能技术大会(https://ml-summit.org) AGI招聘范式的结构性转变 传统技术岗位JD正被AGI原生能力模型重构。企业不再仅评估编程语言熟练度,而是聚焦于候选人在多模态推理、自主目标分解、…...
淘金币自动化脚本:每天5分钟,轻松完成淘宝全任务,节省20分钟宝贵时间
淘金币自动化脚本:每天5分钟,轻松完成淘宝全任务,节省20分钟宝贵时间 【免费下载链接】taojinbi 淘宝淘金币自动执行脚本,包含蚂蚁森林收取能量,芭芭农场全任务,解放你的双手 项目地址: https://gitcode.…...
告别复杂BADI:5分钟快速搞定SAP销售订单屏幕增强(利用SAPMV45A预留屏幕8309/8459)
5分钟极速方案:巧用SAPMV45A预留屏幕实现销售订单轻量级增强 每次业务部门临时提出"在销售订单加个字段"的需求时,你是否还在为BADI的复杂实现流程头疼?上周我遇到一个紧急需求:市场部要求在VA01界面增加一个"促销…...
