运动想象 (MI) 迁移学习系列 (14) : EEGNet-Fine tuning

news2024/9/20 4:48:35

运动想象迁移学习系列:EEGNet-Fine tuning

  • 0. 引言
  • 1. 主要贡献
  • 2. 提出的方法
    • 2.1 EEGNet框架
    • 2.2 微调
  • 3. 实验结果
    • 3.1 各模型整体分类结果
    • 3.2 算法复杂度比较
    • 3.3 不同微调方法比较
  • 4. 总结
  • 欢迎来稿

论文地址:https://www.nature.com/articles/s41598-021-99114-1#citeas
论文题目:A transfer learning framework based on motor imagery rehabilitation for stroke
论文代码:无

0. 引言

深度学习网络已成功应用于传递函数,使模型可以从源域适应到不同的目标域。本研究利用多个卷积神经网络对脑卒中患者的脑电图(EEG)进行解码,设计有效的运动意象(MI)脑机接口(BCI)系统。这项研究引入了 “微调” 来传输模型参数并减少训练时间。所提出的框架的性能是通过模型的两类MI识别能力来评估的。

总得来说:这是一篇较老的文章,进一步说明了EEGNet模型的普适性与优越性(效果好且稳定)。

1. 主要贡献

  1. 比较多个模型的实验结果,可以推断EEGNet是所有框架中迁移学习的最佳网络模型
  2. 实验表明,迁移学习可以有效提高脑机接口系统对脑卒中患者康复的性能,也证明了所提框架的有效性和鲁棒性。

2. 提出的方法

2.1 EEGNet框架

在这里插入图片描述

2.2 微调

迁移学习的有效性取决于许多因素。其中,最重要的因素是原始数据与目标数据的相似性。相似度越高,“微调”效果越好。EEGNet的前几层获得的特征是基本的常规特征(例如,从前几层中提取特定的频率空间滤波器)。后几层提取特定特征(例如,模型可以分别汇总每个特征图的内核,并找到特征图的最佳组合)。

为了避免过度拟合,所提出的神经网络的 “微调” 分为以下几个步骤:

  1. 修改最后一层的输出参数。所提出的方法是冻结或重新训练前几层的参数,然后修改softmax层的类别参数。
  2. 调整模型的配置参数,适当降低学习率、步长和纪元。模型的学习率相对较低,因为有效的模型权重用于“微调”。如果学习率太高,模型可以快速更新并破坏原有的良好权重信息。在“微调”后,本研究选择打开所有图层并更新步长参数。EEGNet模型之前是在大规模数据集上进行的,无形中扩展了训练后的脑电数据,其处理性能对数据集非常有利。因此,“微调”可以改进模型,在相对较少的时期后获得更好的结果。
  3. 开始训练并加载预训练模型的参数。

3. 实验结果

3.1 各模型整体分类结果

在这里插入图片描述
模型参数:
在这里插入图片描述

3.2 算法复杂度比较

在这里插入图片描述

3.3 不同微调方法比较

在EEGNet模型上执行了三种处理方法。
第一种方法随机初始化整个网络的权重,然后放入一个新的训练数据集进行重新训练。(处理后的模型称为 EEGNet_0)。
第二种方法是在预训练模型中冻结块 1 的权重,并重新训练以下层的其余部分,以便获得新的权重(处理后的模型称为 EEGNet_1)。
第三种方法与第二种方法类似,只是冻结了块 1 和块 2 的层权重,其余相同(处理后的模型称为 EEGNet_2)。
在这里插入图片描述

4. 总结

到此,使用 EEGNet-Fine tuning 已经介绍完毕了!!! 如果有什么疑问欢迎在评论区提出,对于共性问题可能会后续添加到文章介绍中。

如果觉得这篇文章对你有用,记得点赞、收藏并分享给你的小伙伴们哦😄。

欢迎来稿

欢迎投稿合作,投稿请遵循科学严谨、内容清晰明了的原则!!!! 有意者可以后台私信!!

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

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

相关文章

【Git】第一课:Git的介绍

简介 什么是Git? Git是一个开源的分布式版本控制系统,用于跟踪代码的改变和协同开发。它最初由Linus Torvalds为了管理Linux内核开发而创建,现已成为开源软件开发中最流行的版本控制系统,没有之一。Git允许多人同时在不同的分支上工作&…

ubuntu - 编译 linphone-sdk

业务需求需要定制sdk,首先声明我们需要的是在Android4.4上跑的sdk,因此本次编译的sdk最低支持为19(不同版本需要的环境不一致),编译过程较容易,难点在于环境配置 环境准备 Ubuntu 18.04.6 android-sdk_r24.…

Python解释器介绍及安装和目录文件说明

什么是解释器? Python 的代码必须要通过解释器才能运行, 比如我们自己书写python代码想要实现最近本的文字打印:print(hello world!)。但电脑不知道你写的这句代码是干什么用的,当有了python解释器后,Python 解释器会把…

专业135+总分400+重庆邮电大学801信号与系统考研经验重邮电子信息与通信工程,真题,大纲,参考书。

今年分数出来还是比较满意,专业801信号与系统135,总分400,没想到自己也可以考出400以上的分数,一年的努力付出都是值得的,总结一下自己的复习心得,希望对大家复习有所帮助。专业课:(…

JavaWeb里的控制器Servlet,过滤器Filter,监听器Listener

文章目录 简介控制器servlet控制器(Controller)概述控制器的工作原理控制器的生命周期控制器的种类控制器的应用场景示例代码Servlet控制器示例Spring MVC控制器示例 总结 过滤器filter过滤器(Filter)概述过滤器的工作原理过滤器的生命周期过滤器的链式调用过滤器的应用场景示例…

【案例】一个在本地目录下检索文件内容的应用程序

文章目录 需求分析软件设计使用模块程序流程图InputProcessOutput软件实现源码后记存在问题接下来...需求分析 Windows 环境下,软件提供一个使用友好的交互界面,根据关键字检索指定的本地目录下不同文档中的内容,关键字提供或和且索引方式,并且可以同时指定多个目录。 软…

Linux学习-进程

目录 进程基本概念 进程相关命令 进程的创建 进程的调度 进程相关函数接口 进程的消亡 实例:创建九个子进程 目录 进程基本概念 进程相关命令 进程的创建 进程的调度 进程相关函数接口 进程的消亡 实例:创建九个子进程 exec函数…

量子计算机

近日,在AWS re:Invent全球大会上,亚马逊官宣AWS三箭齐发量子计算组合拳:Braket、AWS量子计算中心和量子解决方案实验室。 随着亚马逊的强势入局,加上此前鼓吹量子霸权的谷歌、起步最早的IBM、暗自发力的微软&#xff…

LabVIEW高效光伏数据监控与管理系统

LabVIEW高效光伏数据监控与管理系统 随着新能源技术的发展,光伏发电系统作为一种清洁、高效的能源获取方式受到了广泛的关注。但是,由于光伏发电的特性受到多种环境因素的影响,其运行效率和安全性成为了关键问题。因此,开发一个高…

【现代C++】范围基于的for循环

现代C中的范围基于的for循环(range-based for loop)是C11引入的一项特性,旨在简化对容器或范围的迭代过程。这种循环语法不仅使代码更清晰易读,还减少了迭代时的错误。以下是范围基于的for循环的详细介绍: 1. 基本用法…

ElasticSearch使用(一)

文章目录 一、简介1. 数据类型2. 倒排索引3. Lucene4. ElasticSearch5. Solar VS ElasticSearch 二、ElasticSearch入门1. 简介2. 分词器3. 索引操作4. 文档操作5. ES文档批量操作 二、ElasticSearch的DSL1. 文档映射Mapping2. Index Template3. DSL 一、简介 1. 数据类型 结…

Shopee如何选品?Shopee爆品市场趋势预测

Shopee母公司Sea近日发布了其截至2023年12月31日的全年财务业绩报告。 在2023财年报告中,Shopee继续保持稳健增长态势,全年总交易额(GMV)达到创纪录的 785亿美元 ,同比去年增长6.8%。 年度营收增至90亿美元 &…

C#非强签名dll搜索顺序

由于不是强签名dll,所以无效考虑全局程序集缓存 (GAC)。 预备工作 新建解决方案ClassLibrary1,新建类库ClassLibrary1,新建控制台程序ShowDllLoc。 利用VS添加引用。 一,利用app.config设置codebase,设置dll的加载路径为:code…

计算结构体的大小(结构体的内存对齐)

一:问题 问题所在:两个结构体应该都是6个字节大小,为什么一个12,一个6??? 二:如何正确的计算结构体大小? 首先得掌握结构体的对齐规则: 第一: 第一…

mysql四种事务隔离级别,2024金三银四

TransactionDefinition.PROPAGATION_MANDATORY:如果当前存在事务,则加入该事务;如果当前没有事务,则抛出异常。 TransactionDefinition.PROPAGATION_NESTED:如果当前存在事务,则创建一个事务作为当前事务的…

Eureka的介绍和作用,以及搭建

一、Eureka的介绍和作用 Eureka是Netflix开源的一种服务发现和注册工具,它为分布式系统中的服务提供了可靠的服务发现和故障转移能力。Eureka是Netflix的微服务架构的关键组件之一,它能够实时地监测和管理服务实例的状态和可用性。 在Eureka架构中&…

哪些事是你当了领导才明白的?

哪些事是你当了领导才明白的? 毕业5年,17年开始带团队,确实很多事不做到管理这一层,就真的意识不到。 带着【执行者】和【管理者】这2个视角,再结合我毕业至今这5年的所有职场经历,聊聊“职场潜规则”。 …

2023最新版Node.js下载安装及环境配置教程(非常详细)从零基础入门到精通,看完这一篇就够了

一、进入官网地址下载安装包 https://nodejs.org/zh-cn/download/ 选择对应你系统的Node.js版本,这里我选择的是Windows系统、64位 Tips:如果想下载指定版本,点击【以往的版本】,即可选择自己想要的版本下载 二、安装程序 &…

分布式锁简单实现

分布式锁 Redis分布式锁最简单的实现 想要实现分布式锁,必须要求 Redis 有「互斥」的能力,我们可以使用 SETNX 命令,这个命令表示SET if Not Exists,即如果 key 不存在,才会设置它的值,否则什么也不做。 …

MQTTnet实现客户端连接

使用MQTTnet(Version4.3.1.873)库实现多客户端连接多服务端,同时实现断线重连; 如下图所示,开启3个客户端连接3个服务端,当其一个服务端出现异常(服务停止,网络异常无法连接)导致连接断开时&am…