(1)根据MI-EEG的原始特征,在空间域,将原始MI-EEG按不同频带进行分解,然后将分解后的不同频带的特征序列融合,构建新的空间特征,并使用PCA
提取空间维度的主要特征;对于频域,根据滤波结果,计算每个信道的每个频带的差分熵
,并将其转换为一维特征序列;对于时域,通过将频域中处理的特征序列与时域本身的特征序列相结合来构造新的时频特征,然后通过滑动窗口降低时频特征的维数,这也解决了数据量小的问题。
(2) 为了解决长EEG时频序列导致的分析能力差、计算量大、局部特征捕获能力弱的问题,设计了CNN-Transformer
模型。通过时频域中的1D-CNN卷积
和合并操作,提取Transformer的低阶时频特征,并降低Transformer的时频特征维数,为后续Transformer提取高阶特征铺平道路。
(3) 使用交叉验证等优化算法优化模型CNN-Transformer
的参数和结构。最后,基于相同的数据集,本文提出的模型与经典结构CNN-LSTM
等其他模型进行了对比分析,验证了模型的有效性和实用性。
采用五阶Butterworth
滤波器对样本数据集的每个片段进行滤波和分解成5个新的数据集,然后在空间维度上融合这5个波段的数据集并将数据结构重塑
为[288,1000,110]
,之后,空间特征被提取并通过PCA
缩小,其缩小的数据集结构为[288,1000,32]
将$T_n=(T_1,T_2,…,T_n)$定义为包含4S的EEG信号。根据初始滤波的结果,计算所有信道的不同频带的差分熵
,将其转换为一维序列并定义为$D_m=(D_1,D_2,…,D_m)$。通过时间序列和差分熵序列的拼接形成新的时频特征序列$S_k=(S_1,S_2,…,S_k)$。为了使模型更好地学习特征并解决数据量小的问题,通过步长为60和窗口大小为510的滑动窗口将数据集矩阵划分为时间步长。每个PART包括510个样本序列。最后,为每个对象形成具有[2880,510,32]
结构的可训练集数据。
整合数据集按6:2:2分为三部分,其中60%为训练模型的训练集;20%为验证集,用于优化模型参数;剩下的20%是测试集,用于评估模型的泛化和稳定性。
参数描述 | 数值/方法 |
---|---|
每个受试者的数据结构 | [2880,510,32] |
模型的输入 | [32,510] |
信道和频带融合后的空间特征维数 | 32 |
采样点是时间特征 | 510 |
第一卷积层的核大小 | 4 |
第一卷积层的核数目 | 128 |
第一激活函数 | ReLu |
池化层maximum pool大小 | 4 |
第二卷积层的核大小 | 2 |
第二卷积层的核数目 | 64 |
第二激活函数 | ReLu |
batch标准化维度 | 64 |
LSTM层激活函数 | tanh |
dropout | 0.1 |
每个LSTM层的总单元数 | 25 |
完全连接层激活函数 | softmax |
首先,通过卷积和合并的1D-CNN
操作在时间频率维度上进行下采样,捕获局部时间频率特征,并且进一步减少时间序列的长度。此外,该过程在某种程度上可防止模型过度拟合。
提取的短序列时间频率特征然后被馈送到Transformer
中,以进一步提取更抽象的高级时间特征
首先,使用1D-CNN
的输出向量作为输入特征向量$X={X_1,X_2,…,X_n}$,通过位置编码PE
记录特征向量X的初始位置信息
然后使用PE特征向量
作为编码器的输入。在编码器中,为了能够并行提取多角度时间特征以及解决梯度消失和梯度爆炸问题,通过多头注意机制
并行计算每个注意头的值,并将attention head values
输入到残差结构
和归一化层
进行处理
前馈神经网络
,再将输出结果输入解码器。解码器有两个输入,一个是编码器输出的特征向量$Z={Z_1,Z_2,…,Z_n}$,另一个是1D-CNN
输出的特征矢量$X_1$。 在解码器中,1D-CNN
的输出向量X与1D-CNN
的输出向量X组合,用类似编码器的结构对输入进行解码. 参数描述 | 数值/方法 |
---|---|
PE层的embedding尺寸 | 64 |
单个时间步长 | 125 |
dropout | 0.1 |
特征向量维数 | 64 |
多头注意头数 | 16 |
前馈神经网络维数(dim_fre) | 16 |
dropout | 0.1 |
完全连接层激活函数 | softmax |
损失函数 | Cross_entrop |
Epoch | 200 |
Learning_rate | 0.0005 |
5倍交叉验证后,设定精度和kappa的平均值分别为0.9929(±0.0007)和0.9843(±0.0021)。
2008年BCI竞赛–Graz数据集A的实验数据来自2008年国际脑-计算机接口竞赛。数据集由4个类别的9名受试者的MI-EEG组成,即左手(1类)、右手(2类)、脚(3类)和舌头(4类)。每个受试者的实验程序和内容相同。实验内容为:每个受试者在不同时间点记录2组实验数据,每组包括6组小实验,每组小实验包含48个片段(即:4种动作,每种动作随机重复12次,共4×12=48次),每组实验数据共包含288个截面(6组×12个截面=288个),2组实验数据共有576个截面(2组×6组×48个截面=576个)。由于一组实验不包含训练所需的标签,因此本文仅使用带有标签的实验数据集。
实验过程如下:在测试开始时(t=0s),黑屏上会出现一个固定的十字,除了一个简短的可听到的提示音,两秒钟后(t=2s),一个十字会左右指向作为提示,向下或向上(对应于左手运动、右手运动、脚运动和舌头运动的四类)箭头将在屏幕上出现约1.25s,这提示受试者想象与图片对应的运动,每个受试者被要求完成这些想象任务,直到屏幕上的十字消失(t=6s),然后短暂休息直到屏幕再次变黑,并分阶段重复该过程288次。 为了实验的准确性,我们仅截取提示后4s的数据作为单个MI-EEG样本。然后,通过工具包MNE Python(MNE是一个开源Python工具包,主要用于EEG/MEG分析、处理和可视化),为每个受试者构建了一个大小为22×1000×288的MI-EEG数据样本。