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

运动想象迁移学习系列: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.mzph.cn/news/762227.shtml

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

相关文章

【算法训练营】周测4

清华大学驭风计划课程链接 学堂在线 - 精品在线课程学习平台 (xuetangx.com) 如果需要答案代码可以私聊博主 有任何疑问或者问题,也欢迎私信博主,大家可以相互讨论交流哟~~ 考题11-4 题目描述 输入格式 从标准输入读入数据。 输入第一行为两个正整…

将main打包成jar;idea打包main为jar包运行

将main打包成jar&#xff1b;idea打包main为jar包运行 适用场景&#xff1a;可以封装一些小工具。 配置jar Maven中添加 <packaging>jar</packaging>将其打包为jar。 设置运行入口main 编译jar 看到jar输出 运行效果&#xff1a; 其中&#xff0c;三方依赖也被…

【Unity】获取游戏对象或组件的常用方法

前言 在Unity开发过程中&#xff0c;我们经常需要获取组件&#xff0c;那么在Unity里如何获取组件呢&#xff1f; 一、获取游戏对象 1.GameObject.Find GameObject.Find 是通过物体的名称获取对象的 所以会遍历当前整个场景&#xff0c;效率较低 而且只能获取激活状态的物体…

pytorch多层感知机

目录 1. 多层感知机2. 多层感知机loss梯度推导3. pytorch示例 1. 多层感知机 有多个输入节点、多个中间节点和多个输出节点 2. 多层感知机loss梯度推导 3. pytorch示例

MySQL 字段定义时的属性设置

开发的时候第一步就是建表&#xff0c;在创建表的时候&#xff0c;我们需要定义表的字段&#xff0c;每个字段都有一些属性&#xff0c;比如说是否为空&#xff0c;是否允许有默认值&#xff0c;是不是逐渐等。 这些约束字段的属性&#xff0c;可以让字段的值更符合我们的预期&…

HCIP—BGP路由聚合

在大型网络中&#xff0c;路由条目通常多达成千上万条&#xff0c;甚至几十万条&#xff0c;这给路由设备带来的挑战是&#xff1a;如何存储并有效管理如此众多的路由信息&#xff1f; BGP是一种无类路由协议&#xff0c;支持CIDR、VLSM和路由聚合。路由聚合技术的使用…

[Linux开发工具]——gcc/g++的使用

Linux编译器——gcc/g的使用 一、快速认识gcc/g二、程序的翻译过程2.1 预处理&#xff08;.i文件&#xff09;2.2 编译&#xff08;.s文件&#xff09;2.3 汇编&#xff08;.o文件&#xff09;2.4 链接&#xff08;生成可执行文件或库文件&#xff09; 三、认识函数库3.1 静态库…

微调alpaca-lora遇到的一些问题

1、环境简介 环境&#xff1a; 系统&#xff1a;Ubuntu torch&#xff1a;2.2.1 python&#xff1a;3.10 gpu&#xff1a;V100 16g peft&#xff1a;0.9.0 使用PEFT中的lora方式微调llama-2-7b-hf&#xff0c;项目地址&#xff1a;alpaca-lora 2、混合精度训练Tensor相互计算会…

Jupyter Notebook介绍、安装及使用教程

Jupyter Notebook介绍、安装及使用教程 一、什么是Jupyter Notebook&#xff1f;简介组成部分网页应用文档Jupyter Notebook的主要特点 二、安装Jupyter Notebook先试用&#xff0c;再决定安装安装前提使用Anaconda安装使用pip命令安装 三、运行Jupyter Notebook帮助启动默认端…

macOS 通过 MacPorts 正确安装 MySQL 同时解决无法连接问题

如果你通过 sudo port install 命令正常安装了 MySQL&#xff0c;再通过 sudo port load 命令启动了 MySQL Server&#xff0c;此刻却发现使用 Navicat 之类的 GUI 软件无法连接&#xff0c;始终返回无法连接到 127.0.0.1 服务器。这是一个小坑&#xff0c;因为他默认使用了 So…

零代码编程:用kimichat将srt字幕文件进行批量转换合并

文件夹里面有多个srt字幕文件&#xff0c;借助kimichat可以很方便的对其进行批量合并。 在kimichat中输入提示词&#xff1a; 你是一个Python编程专家&#xff0c;写一个Python脚本&#xff0c;完成一个处理整理文档内容的任务&#xff0c;具体步骤如下&#xff1a; 打开文件…

更新数据库表中的数据

目录 update 加上各种限制条件 update update 表名set 列名1xx,列名2xx 指定更新某列数据如果不添加where子句,则为全列更新 也可以在原有基础上更新: 注意,mysql语法里不支持,必须是列名列名数值 加上各种限制条件 比如加上order by子句,where子句,limit等 这些条件对于up…

【FLOOD FILL专题】【蓝桥杯备考训练】:扫雷、动态网格、走迷宫、画图、山峰和山谷【已更新完成】

目录 1、扫雷&#xff08;Google Kickstart2014 Round C Problem A&#xff09; 2、动态网格&#xff08;Google Kickstart2015 Round D Problem A&#xff09; 3、走迷宫&#xff08;模板&#xff09; 4、画图&#xff08;第六次CCF计算机软件能力认证&#xff09; 5、山…

政安晨:【深度学习实践】【使用 TensorFlow 和 Keras 为结构化数据构建和训练神经网络】(四)—— 过拟合和欠拟合

政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: 政安晨的机器学习笔记 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff01; 通过增加容量或提前停止来提高性能。 在深度学习中&#…

C#对于文件中的文件名判断问题

C#中对于文件名的判断问题&#xff0c;我们使用bool值进行值的传递&#xff0c;首先我们使用内置方法进行文件字符串匹配的bool值回传&#xff0c;我们打印出文件名以及相对应的bool&#xff0c;即可知道文件名是否真正生效 bool isHave fileName.Contains("Hello"…

代码学习记录22--回溯算法第三天

随想录日记part22 t i m e &#xff1a; time&#xff1a; time&#xff1a; 2024.03.17 主要内容&#xff1a;今天主要是结合类型的题目加深对回溯算法的理解&#xff1a;1.组合总和;2.组合总和 ;3.分割回文串。 39. 组合总和 40.组合总和II131.分割回文串 Topic1组合总和 题…

【Node.js从基础到高级运用】十四、Node.js 错误处理与日志记录

引言 在这篇博客文章中&#xff0c;我们将深入探讨Node.js中的错误处理和日志记录的最佳实践。我们会了解如何在Node.js应用程序中有效地捕获和处理错误&#xff0c;并利用日志库如morgan来记录应用程序的活动和错误信息。 第1部分&#xff1a;Node.js中的错误处理 同步代码中…

Spring AI Embeddings 和 Vector 入门

在前面 Spring AI Chat 简单示例 中介绍了 Chat 的基本用法&#xff0c;本文在此基础&#xff08;主要是pom.xml&#xff09;上继续探索 Embedding 和 Vector。 官方文档&#xff1a; embeddings: https://docs.spring.io/spring-ai/reference/api/embeddings/openai-embedding…

断点重训教程:如何有效地保护深度学习模型训练进度

在深度学习领域&#xff0c;长时间训练是常见的需求&#xff0c;然而&#xff0c;在训练过程中可能会面临各种意外情况&#xff0c;比如计算机故障、断电等&#xff0c;这些意外情况可能导致训练过程中断&#xff0c;造成已经投入的时间和资源的浪费。为了应对这种情况&#xf…

Avue框架实现图表的基本知识 | 附Demo(全)

目录 前言1. 柱状图2. 折线图3. 饼图4. 刻度盘6. 仪表盘7. 象形图8. 彩蛋8.1 饼图8.2 柱状图8.3 折线图8.4 温度仪表盘8.5 进度条 前言 以下Demo&#xff0c;作为初学者来说&#xff0c;会相应给出一些代码注释&#xff0c;可相应选择你所想要的款式 对于以下Demo&#xff0c…