当前位置:   article > 正文

多模态生理信号情感识别 附代码+报告_eeg与ecg的多模态融合代码

eeg与ecg的多模态融合代码
  • 课题背景

  • 主要参考文献和方法阐述

  • 主要工作

  • 问题和总结

完整代码:https://download.csdn.net/download/qq_38735017/87382455

课题背景

1.目标

本任务的主要目标是对在提取了交互者的生理信号下,对交互做出情感类的判别,所以这里的情感识别主要指的还是分类问题。本任务还是一个比较具有实时性的任务,主要是仅仅基于 1 秒的信号进行分类。

2.数据集

本任务提供了两个数据集:DEAP(http://www.eecs.qmul.ac.uk/mmv/datasets/deap/readme.html)和 SEED(http://bcmi.sjtu.edu.cn/home/seed/download.html),下面分别对这两个数据集做简要描述:

  1. DEAP: DEAP 数据集是基于 32 个实验对象随机观看了 40 个 1 分钟左右的音乐视频,记录了实验对象的生理信号,并且给出了三个方面的情感评价,分别是:Valence(效价)、Arousal(唤醒度)、Dominace(支配度?),分别用 1~9 的整数表示。记录的生理信号经过预处理(下采样合并通道等方式)有 40 个通道,其中前 32 个通道是脑电 EEG 信号,33、34 通道分别是眼动 EOG 信号,剩下的是其他生理信号(本作业没有采用)。 DEAP 数据集所产生的分类目标是 3 个二分类问题。

  1. SEED: SEED 数据集的实验对象是 15 个人,每个人观看了 24 个视频并记录生理信号,每个视频(约为 4 分钟)具有一个持续单一的情绪,用这个情绪来作为分类的 Gound truth。总共有 4 个类别的情绪:中立、悲伤、害怕以及高兴。记录的生理信号分别是 62 个通道的 EEG 信号 + 前额眼电信号。在 SEED 识别中,本实验仅仅用了 EEG 信号,原因是对于经过预处理的眼电信号,并没有找到合适的方法加入网络。 SEED 数据集的分类目标是 1 个四分类问题。

可以看出 SEED 数据集的分类目标较 DEAP 数据集的分类目标难一些。


主要参考文献和方法阐述


EEG 信号特征提取:

我们阅读的文章范畴主要是利用深度学习来解决识别问题,利用深度网络来解决这个问题主要的原因在于卷积神经网络的特征提取能力。由于处理的信号是既又空间域信息又有时间域信息,所以网络的构建一般是将空间域和时间域提取的信息进行融合,主要网络结构大致如下:

  1. 2dCNN 并联 1dLSTM:利用卷积网络来提取空间信息同时利用 LSTM 网络来提取时域信息,最后将特征进行融合进而做分类。

  1. 2dCNN 串联 1dLSTM:利用卷积网络逐帧提取空间域信息得到特征序列,并将特征序列利用 LSTM 进行特征提取。

  1. 3dCNN:将时域信息也采用 CNN 做提取。 我们最后选择 2dCNN 并联 1dLSTM 作为基本模型,并基于它进行了初步实验。 参考文章: 1.https://ieeexplore.ieee.org/document/7822545/ 2.http://arxiv.org/abs/1708.06578 3.https://arxiv.org/abs/1704.08619

多模态特征融合:

依据文章(https://dl.acm.org/citation.cfm?id=2832411)里的结论,即眼动信号和 EEG 信号成某种程度上的互补关系,我们的多模态实验主要基于的是眼动数据 EOG。而多模态融合思路主要采用了特征层的融合,将 EEG 和 EOG 分别提取特征后在某一层进行 concatenation。


主要工作


我们的主要工作如下:

  • DEAP 和 SEED 数据预处理

  • 实验一:验证模型结果

  • 实验二:模型改进-利用分离卷积提取时域信息

  • 实验三:模型改进-利用 Attention 提取时域信息

  • 实验四:模型探索-探索 3 个模型的泛化能力

数据预处理:

数据预处理的主要工作在于将 EEG 信号转为二维矩阵形式从而用 2dCNN 做特征提取、对 EEG 的 basemean 处理(文章中有提到,仅限于 DEAP)、对 DEAP 和 SEED 的差异处理以及对眼动数据的预处理。

1.EEG:$1D\Rightarrow2D$

将 EEG(一维信号)转化为二维信号是一个目前比较主流的做法,这个做法的原因在于采取 EEG 信号的传感器是分布在测试对象的大脑上的,可以直觉的认为大脑相同区块的 EEG 信号具有相当的关联性,而如果直接处理一维 EEG,就相当于没有给网络加入这样一个关联性先验。这会迫使网络自己去找邻域相关性,结果不会太好。利用二维矩阵的表达(按照传感器的位置排列)会使得网络能得到这种邻域相关性。 由于 DEAP 和 SEED 对 EEG 信号传感器布置都采用的是标准的 $10-20$系统,所以根据论文中的方法,设计了一个$9\times9$的矩阵来容纳所有的传感器(这个矩阵是比较稀疏的,特别是对于只采用了 32 个通道脑电信号的 DEAP 数据集,不知道这种稀疏性会不会影响特征提取的结果)。具体的脑电图和二维矩阵示例(DEAP 为例)如下:

2.DEAP 与 SEED 数据集差异

差异主要在,DEAP 数据集的经过采样后的时间域长度是一致的,并且 DEAP 数据集提前对每个测试对象录了一个 3 秒的没有刺激 EEG 信号,在实际处理中,可以利用 BaseMean 的方法对剩余 EEG 信号做去噪,这会使得准确率提升。然而上述数据优点在 SEED 中都没有,这也造成了预处理的差异。

3.对眼动数据的预处理

我们多模态只是在 DEAP 数据集上进行了实验,但是 DEAP 上的眼动数据价值并不大,进行预处理的时候也仅仅是按照 128 帧进行分块。

验证模型结果

为了对比两个数据集上的结果,在 DEAP 上我们没有采用论文中的 BaseMean 方法来去除 EEG 噪音,得到的部分结果如下:

DEAP结果:

SEED结果:

可以看出,实验在SEED上结果并不好,我们对结果进行了一定分析,推测可能是四分类使得问题变得比二分类复杂了,从而结果自然下降了。(初步结论)

实验二-利用分离卷积提取时域信息

在利用 keras 复刻论文中的网络时,利用了分离卷积的方法来处理时域信息,即,将 128 帧的时间轴视为通道(channel),做分通道的卷积(采用固定大小的相同个数的卷积核在不同通道(帧)上做卷积),进而再时间域上进行融合。 用分离卷积来代替原始的 CNN(直接将 2d 信息提取完之后做 concatenation)取得了比原来更好的效果。和论文中一样,我们对单个人的样本做了验证,epoch 设置为 20,每个 epoch 设置了 15 个 batch,得到的部分结果如下:

可以看到这个结果是非常好的,仅仅6个epochs就达到收敛到96%(比原文做的实验结果要高),这个结果是有一定问题的,后面会提到。 关于分离卷积,

实验三-利用注意力机制来提取时域信息

由于任务目标的实时性,即对 1 秒(DEAP 数据集的 128 帧)做情感分类,所以时域信息的密度非常高。受到这个想法的启发,我们试着将注意力机制用来提取时域信息。之所以用注意力机制的原因(或者说注意力比 LSTM 网络更有优势的地方)在于,LSTM 网络本质上仍然是序列识别,即要受限于序列的长度限制,对于相隔步长比较长的关系提取能力不强(即使 LSTM 已经在 RNN 的基础上加入了长时间记忆力)。而注意力机制,本质上就是去寻找全局的关系,具体应用到时间轴上,完全不受限制于两帧图像间的长度限制,非常适合做短时间任务,因为短时间任务往往各个帧都高度相关。 这里我们采取的是注意力表征(即注意力网络)作为时域特征提取,网络架构是先用 CNN 网络提取空间域的高层语义表征,后根据这些特征逐通道(总共 13 个通道)的加入 attention 网络,做时域特征提取。具体网络的计算步骤不在此详述,可以参照文章:https://arxiv.org/abs/1706.03762 具体在 DEAP 上的实验结果如下:

可以看出结果也相当不错,不过,和上面一样,这个结果仍然是有一定问题的。

实验四-探索 3 个模型的泛化能力

对于这个任务,在实际应用场景中,往往是希望能够利用一个训练好的模型去识别一个陌生人的情绪,所以这就对模型的泛化性能提出了很高的要求。我们也分别对原始模型、分离卷积模型和注意力模型的泛化性能进行了一定程度的探索。泛化能力主要是在训练集和测试集的划分上,我们先试验了 3 个目标作为训练集另一个目标作为测试集,测试结果三个模型都集中在测试准确率在 50%-60%,而训练集已经到达了 95% 以上,明显可以说明模型过拟合了。但是,在加入了常用的正则化方法之后(Dropout 层、参数的二范正则),效果的提升并不特别明显。结果如下:

我们又试验了一个人作为测试集,一个人作为测试集,结果同样不好,如下:

后来我们发现,前面的良好结果是建立在分训练集和测试集之前进行shuffle的结果,这就导致了同一个人观看的40个视频的数据被打乱了,即训练样本的多样性增加,如果我们假设同一个人观看一个视频的EEG信号近似,那么这种做法相当于让模型"见了"很多测试集中的样本的紧邻样本。这也就间接说明了模型对同一个测试样本的泛化能力都是很有限的,后来进行的原始模型试验也证明了这个结论,在事前不对数据集进行shuffle的情况下,预测准确率也仅仅维持在50%左右,明显过拟合(即使加入了BaseMean预处理)。

所以,我们初步的得出结论,目前的模型的泛化性能实在有限,而仅仅用 dropout 等正则化技巧并不能弥补这种过拟合现象。我们认为解决方案仍然在给网络加入先验信息这个步骤上,这也是现在深度学习能在不同场景之中能得到更好效果的一个办法。

问题和总结


这个任务目前来看还没有达到实际应用的程度,还需要进一步研究。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/349601
推荐阅读
相关标签
  

闽ICP备14008679号