(论文加源码)基于自动编码器和LSTM的脑电情感识别(数据集为DEAP)提取了功率谱密度,并进行了无编码和SVM的对比实验。

论文及源码见个人主页:https://download.csdn.net/download/qq_45874683/86947437

(论文加源码)基于自动编码器和LSTM的脑电情绪识别(数据集为DEAP)提取了功率谱密度,并进行了无自动编码和SVM的对比实验。

摘要:

       在本论文中,我们研究了一种新的深度学习模型,该模型利用自动编码器模型结构将原始脑电数据分解为几个关键信号分量,提取功率谱密度(PSD),然后使用LSTM递归神经网络捕捉PSD特征序列的时间关系。积极和消极情绪分类在效价和唤醒维度上的准确率分别为66.95%和70.00%。为了寻找最优的模型结构和超参数,进行了大量的对比实验,包括无自动编码器和支持向量机模型的对比。此外,我们还利用开源Python包MNE帮助我们更好地理解、可视化和分析人类脑电图数据。

Python包MNE:

       MNE是一个开源Python软件包,用于探索、可视化和分析人类神经生理学数据:MEG、EEG、ECoG、NIRS等。它具有许多有用的功能,如脑电预处理、脑电电极可视化、伪影检测、独立分量分析(ICA)等。在我们的例子中,我们使用MATLAB格式的DEAP数据集。

       在我们的方法中,我们丢弃了6中3秒的EEG信号前3秒的信号,在训练自动编码器后,它可以将32个通道的EEG信号编码为12个通道的信号,我们假设每个通道来自每个大脑区域。为了从每个编码信号中提取PSD特征,使用了Welch的方法。然后,119段的特征序列将被输入到具有119个时间步长的LSTM模型中。最后每个试验将计算一个输出,代表该试验的预测等级(0或1)。整个过程如图所示

所使用的包:

       使用numpy、scipy、sklearn keras、mne和其他Python包来实现该算法。

脑电数据预处理:

       数据缩放是一个关键步骤,因为潜在的梯度爆炸或梯度消失可能会严重降低分类精度。两种最常用的有效数据缩放技术是数据标准化和数据规范化。为了比较基于特定距离度量的特征之间的相似性,数据标准化可能尤其重要。在我们的实验中,我们发现数据标准化可以在自动编码器训练中取得更好的效果,

数据标准化:

数据规范化:

        价维数大于5.5或小于4.5,则认为该试验属于“高价”或“低价”范畴,也适用于唤醒维度。

Autoencoder:

       Autoencoder是一种深度学习模型,从中心层看,它具有对称结构,称为瓶颈层。自动编码器的结构如图17所示,它清楚地表明,它在输入层有32个输入神经元,因为输入数据是32维向量。第二层有64个神经元,第二层是瓶颈层,有12个神经元。同样的结构在右边。

        在构建自动编码器模型后,对脑电数据的格式进行转换,以满足输入数据的格式要求。“vector_transform”函数输入数据的形状是(x,32,7680),x是试验次数。首先,使用“np.moveaxis”将形状转换为(x,7680,32),然后使用“reshape”将数据形状重塑为(x*7680,32)。X*7680表示32维向量的总数,每个32维向量是32路EEG数据的每个时间步长。而“inverse_vector_transform”基本上是对“vector_transform”进行逆运算,这样在对训练数据进行编码后,就可以对编码后的数据进行变换,提取源信号的PSD特征。这两个功能如图所示。

 结果验证方法:

       验证方法,即10倍交叉验证。基本上,将所有EEG试验(1059次试验)随机分为10组,然后将9次试验合并为训练数据(953次试验),将最后一次试验作为测试数据(106次试验)。所以我们的实验重复10次,使每一次折叠都有机会成为测试数据,最终结果计算为10次实验的平均值

特征提取方法:

       用来提取PSD特征的主要方法是著名的Welch方法。Welch的方法通过将数据划分为重叠段,计算每个段的修正周期图,并对周期图求平均值来计算功率谱密度的估计值。我们将线段长度设置为1秒,重叠设置为0.5秒。如图所示,左上角是原始1秒信号(总共128个点),右上角是使用“numpy.Hanning(128)”生成的Hanning窗口。对于训练数据,包括953条轨迹,每条轨迹有119个片段,每个片段有4个(波段)*12个(通道)=48个特征。

 LSTM-RNN

       下图展示了本文中使用的LSTM的总体结构。由于在一次试验中有119个片段,并且从一个片段中提取了48个特征,因此LSTM输入层设置为(119,48)。然后是一个LSTM层。LSTM层的输出被发送到两个密集层,分别有119个和12个神经元。最后,使用带有“S形”激活函数的密集层输出最终分类精度。LSTM中使用相同的SGD优化器和MSE,训练时间设置为30,批量大小为8。训练数据是上述计算的所有特征序列(FBP),标签是原始试验的相应0或1标签。

下图显示了构建LSTM模型的代码:

图28显示了LSTM模型的训练:

        我们可以看到,由于我们只有106个测试数据,验证精度略有不同。因此,我们考虑每个实验的最高精度(在第一个实验中,最高精度为75%),并计算10个实验的平均精度作为我们的度量与以下实验进行比较。

对比实验:

无自动编码器的LSTM

       为了验证自动编码器在我们的方法中的有效性,我们做了一个对比实验,该实验没有使用自动编码器来分解原始32通道脑电数据。如上所述,同样的方法用于提取PSD特征。唯一的区别是使用32通道信号而不是12通道信号。因此,对于训练数据,包括953条,每条有119个区段,每条区段有4个(频带)*32个(通道)=128个特征。因此,LSTM输入层的输入形状变为(119,128),如图所示。

支持向量机方法

       第二个对比实验是以支持向量机为分类器的基线精度实验。由于实验中没有使用LSTM,PSD特征提取方法也发生了变化。对于每个通道的EEG数据,使用welch方法计算PSD值,然后使用积分计算四个不同波段的FBP。因此,对于每个试验,共提取32*4个特征,并将其展平为一维向量,如图31所示。128个功能的一个示例如图所示:

       SVM模型的创建相对容易。如前所述,SVM模型的“RBF”核具有能够更好地区分不同类别的优势。然后,将上述提取的特征输入到SVM模型中,保留所有超参数作为默认值。

最终结果:

 结论:

       根据选择的自动编码器+LSTM方法进行了一系列实验。10个验证实验的最高分类准确率平均为66.95%(独立于受试者),使用了10次交叉验证。将这一结果与后两个对比实验进行比较,我们发现autoencoder+LSTM方法(对价态和觉醒的准确率分别为66.95%和70.00%)优于对比实验1(无autoencoder的LSTM,对价态和觉醒的准确率分别为63.81%和69.53%)和实验2(SVM方法,对价态和觉醒的准确率分别为58.57%和65.74%)。我们已经验证了SAE+LSTM结合PSD特征方法在降低原始EEG信号的复杂性和利用EEG信号的频率和时间信息方面的优势。

论文及源码见个人主页:https://download.csdn.net/download/qq_45874683/86947437

(论文加源码)基于自动编码器和LSTM的脑电情绪识别(数据集为DEAP)提取了功率谱密度,并进行了无自动编码和SVM的对比实验。

  • 1
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
随着神经科学研究以及人工智能技术的不断发展,脑电情绪识别也成为了一个备受关注的研究领域。而对于利用深度学习技术进行脑电情绪识别的研究,经常涉及到使用cnn和lstm两种不同的网络结构,那么这两种网络结构的优缺点是什么呢? 首先,我们来看cnn网络。cnn是一种卷积神经网络,其优势在于可以自动从图像中提取特征。对于脑电情绪识别,cnn可以将不同通道的脑电波信号输入,然后自动提取出其中的关键特征。在训练的时候,cnn可以利用卷积核的滑动来学习不同的特征,并且在全连接层中进行分类,用分类结果来预测情绪。cnn网络的缺点是对于时间序列信号的处理能力没有lstm强。 接下来我们再来看lstm网络。lstm是一种长短期记忆网络,用于处理时间序列数据。在脑电情绪识别中,lstm可以将不同通道的脑电信号逐步输入,并利用其不同的门来控制脑电信号的流动,以达到sequence to one的结构,从而进行分类。由于lstm具有较强的时间序列处理能力,因此在处理周期性时间序列的网络中表现出来的优势尤为显著。 综上所述,两种网络结构各有所长。对于脑电情绪识别,如果只考虑单纯的分类问题,那么我们可以选择cnn。而如果考虑到时间序列的处理能力,则lstm网络则更适合。当然,我们也可以使用将两者结合起来使用,如增强的cnn+lstm模型的方法等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

脑电情绪识别

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

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

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

打赏作者

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

抵扣说明:

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

余额充值