63、上海大学:MSConvNet-多尺度卷积神经网络解码大鼠运动疲劳数据[攒劲的模型来喽]

1、介绍:

文章:<A multiscale convolutional neural network based on time-frequency 
features for decoding rat exercise fatigue LFP >,本文由上海大学于2024.4.8日发表于<Biomedical Signal Processing and Control >IF:5.1\JCR:Q1

作者:Guofu Zhang , Banghua Yang *, Xin Dong , Jun Ma ,Peng Zan , Xinxing Xia 

单位:School of Mechatronic Engineering and Automation, Shanghai University, Shanghai, China b School of Medicine, Shanghai University, Shanghai, China 

杨老师及其团队还是强,几乎成了这个一区文章的常客了,在脑机接口领域没有专门的顶刊,这个期刊可以说是BCI的顶刊了,无论是权威性还是含金量都是很高的,之前讲过的这个期刊文章是EEGNex,我拿了两篇博客来讲这个模型,本次我也是边看此文边写本篇博客,看看本创新模型会给我们带来哪些启发呢。

2、实验方法:

看论文我看的多了,一般直接看模型再看其他,比如数据、结论等,在这把实验方法简要介绍一下:

1、设计大鼠运动疲劳的实验范式

2、将LFP(局部场电位)记录电极植入大鼠大脑的M1和M2区域,获得运动疲劳前后静息状态下的LFP

3、对LFP数据进行预处理、功率谱和统计分析

4、根据LFP数据特征设计MSConvNet模型,对运动疲劳前后的LFP进行分类

5、使用一些指标和可视化方法来证明此模型的有效性

3、MSConvNet :

这里,做大鼠实验的可以学习一下本实验在做大鼠疲劳是如何做的,需要关注的是:
1、大鼠麻醉气体、麻醉时间、深度麻醉时间

2、电极植入手术钻头长度、气体麻醉浓度的保持范围

3、手术过程中减少大鼠出血的方法

4、左侧M1、M2;右侧M1、M2精确的电极植入距离(mm)

5、电极固定方法、术后预防炎症方法

6、术后恢复时间(天)

7、LFP记录时间(minutes)

数据处理方法:

1、0.5–100 Hz带通滤波+50 Hz陷波滤波,排除工频干扰

2、通过视屏筛选保留600个LFP样本数据

3、对LFP五个频带(Delta、Theta、Alpha、Beta、Gamma)分别提取PSD特征用于模型计算

模型搭建:

前提:鉴于之前的研究:大鼠运动疲劳后,ECoG的Theta、Alpha和Beta波段的功率谱降低,在频域上表现出显著特征。有鉴于此,为了使模型学习更多的时间特征和频率特征,本文提出了一种多尺度CNN,MSConvNet,用于通过设置不同长度的滤波器来提取疲劳前和疲劳后LFP的时间和多频带特征

MSConvNet

本模型一共三个Module,分别是:

 1、Temporal Feature Module(时间特征模块)

 2、Narrow Frequency Feature Module(窄频特征模块)

3、Wide Frequency Feature Module(宽频特征模块)

看到这里,跟着我学习的同学会想到EEGNet,对的,本模型也是在已有的EEGNet等sota模型上总结出的一些规律进行设计的,按照Block进行设计搭建,但是上述每个Module中还包含4个小的block,所以本模型总共12个block,下面跟随我的步伐咱们对每个模块细细的解读。

 1、Temporal Feature Module

咱们来看第一个大的Block,它里面有4个小的ConvPoolBlock,其中:

ConvPoolBlock1:

Conv2d:kernel_size=1*10,filter=25,padding='same'

Conv2d:kernel_size=4*1,filter=25,padding='valid'

BN+ELU

MaxPooling:kernel_size=1*3,stride=1*3

Dropout:p=0.25

这里我直接说我们可以得到哪些经验,看了这么多论文模型,其实都差不多的规律(好好看,好好学,都是重点,别怪我没提醒你哦):

1、先时间卷积后空间卷积,效果最好

2、凡是时间卷积核padding都是same,空间卷积都是valid,两者stride都是1

3、时间卷积核要小,但其设计也需要参考采样率以及采集的时间点,比如这里是1*10的卷积核,采样率是1000Hz,那就是在10ms的时间尺度上提取时间特征。

4、该模型时间空间卷积堆叠再激活,中间没其他东西

5、卷积+BN+激活函数这顺序不能乱

6、丢弃层放在BN和激活之后,一般放在池化之后,不跨被试丢弃率p=0.25,跨被试p=0.5

7、池化的k和s也需要根据采样率设计

8、这个皮层电图(ECoG)数据它的输入这里显示的是1,4,1000,其实完整的是(batch_size,1,C,T)也是原本的3维数据扩了一维度1,作为模型新的输入通道,这种数据以及完全侵入式的Spikes的数据,只要是输入到卷积模型中,都是这种4维输入!!!


ConvPoolBlock2:

Conv2d:k=1*10,f=50

BN+ELU

MaxPooling2d:k=1*3,S=1*3

Dropout:p=0.25


ConvPoolBlock3:

Conv2d:k=1*10,f=100

BN+ELU

MaxPooling2d:k=1*3,S=1*3

Dropout:p=0.25


ConvPoolBlock4:

Conv2d:k=1*10,f=32

BN+ELU

MaxPooling2d:k=1*3,S=1*3

Dropout:p=0.25


总结:

时间特征提取模块,一共4个小的block,每个block都有一层二维时间卷积来提取不同的时间尺度特征,最重要的是ConvPoolBlock1,里面还有一层空间卷积,可以学习全局空间信息。


 2、Narrow Frequency Feature Module

攒劲的节目来了,让咱们看第二个大的Block,它里面也有4个小的ConvPoolBlock,其中:

ConvPoolBlock1:

Conv2d:kernel_size=1*500,filter=25,padding='same'

Conv2d:kernel_size=4*1,filter=25,padding='valid'

BN+ELU

MaxPooling:kernel_size=1*3,stride=1*3

Dropout:p=0.25

窜劲儿的知识点有:

时间卷积核=1*500,是采样率的一半,大的卷积核可提取LFP数据的频率特征。也可以捕获2 Hz及以上的频率信息。


ConvPoolBlock2:

Conv2d:k=1*166,f=50

BN+ELU

MaxPooling2d:k=1*3,S=1*3

Dropout:p=0.25


ConvPoolBlock3:

Conv2d:k=1*55,f=100

BN+ELU

MaxPooling2d:k=1*3,S=1*3

Dropout:p=0.25


ConvPoolBlock4:

Conv2d:k=1*18,f=32

BN+ELU

MaxPooling2d:k=1*3,S=1*3

Dropout:p=0.25


3、Wide Frequency Feature Module

 ConvPoolBlock1:

Conv2d:kernel_size=1*250,filter=25,padding='same'

Conv2d:kernel_size=4*1,filter=25,padding='valid'

BN+ELU

MaxPooling:kernel_size=1*3,stride=1*3

Dropout:p=0.25


ConvPoolBlock2:

Conv2d:k=1*83,f=50

BN+ELU

MaxPooling2d:k=1*3,S=1*3

Dropout:p=0.25


ConvPoolBlock3:

Conv2d:k=1*27,f=100

BN+ELU

MaxPooling2d:k=1*3,S=1*3

Dropout:p=0.25


ConvPoolBlock4:

Conv2d:k=1*9,f=32

BN+ELU

MaxPooling2d:k=1*3,S=1*3

Dropout:p=0.25


总结:

这个窄频和宽频block的设计不同之处是卷积核的设计宽是窄的1/2,ConvPoolBlock1的第一卷积也是卷积核大小为(1*250)的时间卷积,对应于4Hz的频率分辨率。这种设置是由大脑节律(德尔塔、西塔、阿尔法、贝塔和伽马)的划分驱动的,有文献表明,大鼠在运动疲劳前后的ECoG频带存在显著差异。此外,FBCNet和FBCSP也使用4H划分的频带组来提取特征,结果良好。ConvPoolBlock1-4的卷积核长度定义为:

4、训练:

Adam优化器,LR=0.001,最小化分类交叉熵损失函数,batch_size=2(共600样本),2分类(0:疲劳前;1:疲劳后),5折交叉验证,一折100个epochs,在Pytorch1.9.1中的NVIDIA GTX1660Ti GPU和CUDA10.2上训练。

5、实验结果:

  • 19
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是馒头阿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值