基于猕猴Spike运动解码的不同解码方法性能对比

news2025/1/10 23:57:49
  1. 公开数据集中文版详细描述 参考前文:https://editor.csdn.net/md/?not_checkout=1&spm=1011.2124.3001.6192
  2. 神经元Spike信号分析 参考前文:https://blog.csdn.net/qq_43811536/article/details/134359566?spm=1001.2014.3001.5501
  3. 神经元运动调制分析 参考前文:https://blog.csdn.net/qq_43811536/article/details/134401004?spm=1001.2014.3001.5501
  4. 离散卡尔曼滤波器算法详解及重要参数(Q、R、P)基于公开数据集解码的讨论 参考前文:https://blog.csdn.net/qq_43811536/article/details/134403022?spm=1001.2014.3001.5501
  5. 基于Spike信号的运动解码分析不同运动参数对解码的影响 参考前文:https://blog.csdn.net/qq_43811536/article/details/134477651?spm=1001.2014.3001.5501

目录

  • 0. 公开数据集
  • 1. 不同解码方法的性能比较
    • 1.1 基于Spike的运动解码
    • 1.2 特征提取
    • 1.3 解码算法
    • 1.3 解码结果
    • 1.4 解码性能


0. 公开数据集

  • 网址:Nonhuman Primate Reaching with Multichannel Sensorimotor Cortex Electrophysiology 1
  • Session:
    • " indy_20170124_01 "

1. 不同解码方法的性能比较

从 公开数据集中文版详细描述 以及其 神经元Spike信号分析 中我们知道:猕猴的感觉运动皮层对运动的调制主要有六个参数——二维平面中x和y方向上的位移、速度和加速度。这六个参数也是我们在运动解码中感兴趣的部分。

1.1 基于Spike的运动解码

参见 基于Spike信号的运动解码分析不同运动参数对解码的影响 的1.1节。

1.2 特征提取

  • 预处理 s p i k e _ f e a t = [ 5900 , 253 ] spike\_feat=[5900, 253] spike_feat=[5900,253], m o t i o n _ f e a t = [ 5900 , 6 ] motion\_feat=[5900, 6] motion_feat=[5900,6]
  • Spike特征:取前后各6个样本的feat作为当前样本的联合特征,即单个样本的总特征数为: 13 ∗ 253 = 3289 13*253=3289 13253=3289维。(卡尔曼滤波器没有此步骤)
  • 数据集划分:训练集:测试集=9:1。
  • 归一化:采用均值-方差归一化。

1.3 解码算法

分别采用线性回归(Linear Regression, LR)、卡尔曼滤波器(Kalman Filter, KF)、DNN以及LSTM 2 进行解码性能比较。

  • KF:参考 离散卡尔曼滤波器算法详解

  • DNN, LSTM的网络结构如下:

    • 三层网络:输入-隐藏层-输出,隐藏层均为200个单元。
    • 激活函数:DNN为‘relu’,LSTM为‘tanh’。
    • 损失函数:均为MSE均方误差。
    • 优化器:DNN为‘Adam’,LSTM为‘RMSProp’。

最后,为了方便比较,DNN和LSTM都训练了固定的20个epochs

1.3 解码结果

Figure 1 呈现四种不同方法的部分解码结果。其中LR和KF在x、y两个不同方向的位置预测上比其他两个神经网络更精准,后者波动明显较大;但前者在速度和加速度的预测上明显弱于神经网络,后者可以捕捉到速度和加速度较大的波动,当然也正是因为这个原因导致后者预测的位置曲线出现了很多意料之外的毛刺。

在这里插入图片描述

Figure 1. 不同方法的部分解码结果. a. LR. b. KF. c. DNN. d. LSTM. 从左到右依次为十折交叉验证的第1、5、10折的前100个samples.

1.4 解码性能

Figure 2 展示了十折交叉验证的平均解码性能。Figure 2a 为Pearson相关性的柱状图,横轴为不同的方法,纵轴为相关性大小,同颜色的点代表不同折实验的性能,黑色竖线代表方差范围,反应解码方法的鲁棒性。Figure 2b 为不同方法在不同运动参数上的性能折线图,可以看到与1.3节的结论一致:LR和KF在位置预测上性能更好,而DNN和LSTM在速度和加速度的预测上更加精确,其中同色阴影为十折实验的误差范围。Figure 2c 为不同方法在不同运动参数上的 R 2 R^2 R2,结果表现与b图一致。

在这里插入图片描述

Figure 2. 不同方法的解码性能

Figure 3 绘制了DNN和LSTM在训练过程中训练集和验证集的性能曲线。可以看到DNN存在过拟合,而LSTM还处于欠拟合的状态,继续训练LSTM的性能可能会更高。

在这里插入图片描述

Figure 3. DNN与LSTM的训练过程曲线. a. MSE损失曲线. b. Pearson相关性曲线.


创作不易,麻烦点点赞和关注咯!

  1. Makin, J. G., O’Doherty, J. E., Cardoso, M. M. B. & Sabes, P. N. (2018). Superior arm-movement decoding from cortex with a new, unsupervised-learning algorithm. J Neural Eng. 15(2): 026010. doi:10.1088/1741-2552/aa9e95 ↩︎

  2. Glaser J I, enjamin A S, Chowdhury R H, et al. Machine learning for neural decoding[J]. Eneuro, 2020, 7(4). ↩︎

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

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

相关文章

【MATLAB源码-第83期】基于matlab的MIMO中V-BALST结构ZF和MMSE检测算法性能误码率对比。

操作环境: MATLAB 2022a 1、算法描述 在多输入多输出(MIMO)通信系统中,V-BLAST(垂直波束形成层间空间时间编码技术)是一种流行的技术,用于提高无线通信的数据传输速率和容量。它通过在不同的…

遥感数据

在研究中,我们常需要遥感数据。在下面的网站中,可以得到遥感数据。 EarthExplorer (usgs.gov)https://earthexplorer.usgs.gov/登陆网站: 通常,在Additional Criteria中,可以下载遥感数据。 不过,这个选项…

集合框架面试题

一、集合容器的概述 1. 什么是集合 集合框架:用于存储数据的容器。 集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。 任何集合框架都包含三大块内容: 对外的接口、接口的实现和对集合运算的算 法。 接口:表示集合的抽象数据…

Sectigo证书——全球SSL证书第一品牌

随着互联网技术的发展和网络安全意识的提升,SSL证书已经成为确保网络数据传输安全的重要工具。而在众多SSL证书品牌中,Sectigo无疑是其中的佼佼者,被誉为“全球证书第一品牌”。 Sectigo是一个有着超过二十年行业经验的老牌认证机构&#xff…

自定义业务异常处理类加入全局处理器中

自定义业务异常处理类并将其加入全局异常处理器,从而避免业务层直接处理异常造成代码污染,达到业务清晰简洁。 描述 在进行分类模块开发时,删除某个分类时当分类关联了菜品和套餐时,是不允许删除的。我们在管理端删除的时候会提示…

解决在pycharm中使用matplotlib画图问题

第一,再导入包后直接绘图出现: AttributeError: module backend_interagg has no attribute FigureCanvas表明版本不兼容,我们需要加入:matplotlib.use(‘TkAgg’) 导入函数就变成了: import matplotlib matplotlib.…

AtCoder Beginner Contest 329 题解A~F

A - Spread 输入字符串&#xff0c;字符之间加上空格输出 B - Next 输出数组当中第二大的数 C - Count xxx 统计每个字符出现过的最长长度&#xff0c;再累加即可 #include<bits/stdc.h> #pragma GCC optimize("Ofast") #define INF 0x3f3f3f3f #define I…

Java Web——Web开发介绍

什么是Web开发 Web开发是一种创建和维护全球广域网&#xff08;World Wide Web&#xff09;上的网站和应用的技术。全球广域网也称为万维网(www World Wide Web)&#xff0c;是一个能够通过浏览器访问的互联网上的巨大信息库。 Web开发的目标是创建功能齐全、易于使用和安全的…

资深测试总结,现在软件测试有未来吗?“你“的底气在哪里?

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、为什么会有 “…

基于鼠群算法优化概率神经网络PNN的分类预测 - 附代码

基于鼠群算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于鼠群算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于鼠群优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神经网络的光滑…

Android问题笔记四十六:解决open failed: EACCES (Permission denied) 问题

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列点击跳转>ChatGPT和AIGC &#x1f449;关于作者 专…

低代码在ERP中的理解与应用:提升开发效率与业务灵活性

企业资源规划&#xff08;ERP&#xff09;指通过融合不同部门的信息和流程&#xff0c;提升企业效率、融洽运营的管理体系。ERP系统通过提供一套集成化应用程序&#xff0c;助力企业管理工作流程&#xff0c;包含选购、库存、销售、生产规划等。 低代码&#xff08;Low-Code&a…

皮肤性病科专家谭巍主任提出HPV转阴后饮食七点建议

HPV转阴是每一位感染者都期盼的&#xff0c;因为转阴所以健康&#xff0c;只有转为阴性才意味着不具备传染性&#xff0c;从此也不必再害怕将病毒传染给家人的风险&#xff0c;也不必再担忧持续感染而引发的健康风险。总之&#xff0c;HPV转阴是预示感染者恢复健康与否的主要标…

Windows安装多个版本的Java

在做持续集成CI/CD时&#xff0c;需要用到Jenkins&#xff0c;本人爱好使用各种最新版&#xff0c;down下来之后发现&#xff0c;新版只支持Java11以上的版本了&#xff01;&#xff01; 苦苦找了很久&#xff0c;找不到正规Java8版本的Jenkins安装包&#xff01; 干脆换个思路…

【win32_001】win32命名规、缩写、窗口

整数类型 bool类型 使用注意&#xff1a; 一般bool 的false0&#xff1b;true1 | 2 | …|n false是为0&#xff0c;true是非零 不建议这样用&#xff1a; if (result TRUE) // Wrong! 因为result不一定只返回1&#xff08;true&#xff09;&#xff0c;当返回2时&#xff0c…

【C++】:继承

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家解读一下有关C继承的知识点&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; C 语 言 专 栏&#xff1a;C语言&#xff1a;从入门到精通 数据结…

【机器学习基础】正则化

&#x1f680;个人主页&#xff1a;为梦而生~ 关注我一起学习吧&#xff01; &#x1f4a1;专栏&#xff1a;机器学习 欢迎订阅&#xff01;后面的内容会越来越有意思~ ⭐特别提醒&#xff1a;针对机器学习&#xff0c;特别开始专栏&#xff1a;机器学习python实战 欢迎订阅&am…

AI工具合集

网站&#xff1a;未来百科 | 为发现全球优质AI工具产品而生 (6aiq.com) 如今&#xff0c;AI技术涉及到了很多领域&#xff0c;比如去水印、一键抠图、图像处理、AI图像生成等等。站长之家之前也分享过一些&#xff0c;但是在网上要搜索找到它们还是费一些功夫。 今天发现了一…

qsort函数使用方法总结

目录 一、qsort函数原型 二、compar参数 三、各种类型的qsort排序 1. int 数组排序 2. 结构体排序 3. 字符串指针数组排序 4. 字符串二维数组排序 四、回调函数 1. 什么是回调函数 2. 为什么要用回调函数&#xff1f; 3. 怎么使用回调函数&#xff1f; 4.下面是…

Linux | C语言中volatile关键字的理解

目录 前言 一、代码引入 二、现象解释 三、具体引用 前言 本章主要讲解介绍volatile关键的作用与使用场合&#xff1b;深刻理解volatile关键字&#xff1b;本文你需要有信号相关的基础知识&#xff1b; Linux | 信号-CSDN博客 一、代码引入 首先&#xff0c;我们来查看下面…