0%

djx SELF-SUPERVISED LEARNING FOR ECG-BASED EMOTION RECOGNITION 基于ECG数据情感识别的自监督模型

摘要

我们提出了一种使用自我监督学习的基于心电图(ECG)的情绪识别系统。我们提出的体系结构由两个主要网络组成,一个信号转换识别网络和一个情感识别网络。首先,未标记的数据用于成功训练前一个网络,以在自我监督的学习步骤中检测特定的预定信号转换。接下来,将该网络的卷积层的权重转移到情感识别网络,并训练两个密集层以对唤醒和化合价进行分类。我们表明,我们的自我监督方法可帮助模型学习情感识别所需的ECG特征集,其性能与模型的完全监督版本相同或更好。我们提出的方法性能优于使用两个公开可用的数据集SWELL和AMIGOS的基于ECG的最先进的情感识别技术。进一步的分析凸显了我们的自我监督方法的优势,即需要更少的数据来获得可接受的结果。

1. Introduction

心电图(ECG)已被证明是情绪识别系统的可靠信息来源[1-4]。自动化的xi人机交互系统产生重大影响。 ECG和其他生理信号已在几种情感计算应用中使用。例如,[5]在驾驶任务期间使用ECG,肌电图(EMG)和皮肤电反应(GSR)进行了压力检测。在[6]中,提出了一种用于计算机游戏的动态难度调整机制,通过分析ECG和GSR为个人用户提供量身定制的游戏体验。 [3,7]中提出了一种基于ECG的深度多任务学习框架,用于自适应仿真。目的是根据个人用户的专业水平和认知负担,为其提供个性化的培训体验。

尽管ECG在情感计算方面具有巨大潜力,但我们经常缺少足够的标记数据来训练深度监督模型。为了解决这个问题,我们提出了一种基于自我监督学习的深度学习解决方案[8]。自我监督学习是一种表示学习方法,其中使用自动生成的标签而不是人工注释的标签来训练模型。

自我监督学习有很多优点。

首先,通过学习更通用的特征而不是特定于任务的特征,使用这种方法学习的特征流形通常对于实例间和实例内变异是不变的[9]。【特征不变性】这些模型可以重用于同一域中的不同任务。此外,自我监督模型实现较高的分类性能时需要较少数量的人工注释标签。

在本文中,我们首次提出了使用多任务自我监督学习的基于ECG的情绪识别。我们使用两个公开可用的数据集,SWELL [10]和AMIGOS [11]。

1、首先,要训练具有自动生成的标签的网络,我们执行6种不同的信号转换任务。

2、将6个变换后的信号与原始信号一起用于以自我监督的方式训练多任务卷积神经网络(CNN)。所提出的CNN体系结构由3个卷积块作为共享层,然后是2个特定于任务的密集层。

3、我们将使用预先训练的模型进行情感分类。为此,我们将预先训练的网络的权重转移到新的网络,并训练一个简单的完全连接的层,并在两个数据集上测试框架。

我们的分析表明,以完全监督的方式进行训练时,与同一个网络相比,我们的自我监督模型更好或更具有竞争力。最后,我们为SWELL和AMIGOS数据集的设置了最新技术。

2. 相关工作

pretext task—-generate automatic labels

self-supervised learning helps convolution networks learn high-level features

参考文献12: performed 3D pose estimation using selfsupervised learning

1、used available 2D pose data and performed epipolar geometry to calculate 3D poses in self-supervised manner

2、the obtained 3D poses were used to train a model to perform 3D pose estimation

参考文献16:a self-supervised learning method was used for action recognition

1、using a 3D convolution neural network to predict the order of shuffled video clips

2、the pre-trained model was fine-tuned using nearest neighbour technique for action recognition.

描述自监督学习在相关任务中的应用情况

3. 方法
Pipeline

image-20210117224634937

Self-supervised Learning 自监督学习

令$T{P} $ 和$T{d}$ 为前置任务pretext和下游任务downstream。前置任务使用人工生成的伪标签$P{j}$训练,下游任务使用真实标签$y{i}$训练。令$(X{j},P{j})$ 为一组输入元组和伪标签,$j\in[0,N]$ 其中0是初始信号,$0,1,…,N$ 表示进行信号转换的次数。

目的是为了获得一个可以区分下游分类任务的特征流形$F$ 。【https://blog.csdn.net/weixin_43870329/article/details/107558035】

操作:定义一个模型$\psi{j}$,$F=\gamma(X{j},\theta)$ ,$\theta$ 是可测试参数集,$\psi{j}$是第j个转换任务的预测概率。通过最小化信号转换网络$L{j}$各个损耗的加权平均值找到最佳参数$\theta$ ,其中$L{j}=[P{j}log\psi{j}+(1-P{j})log(1-\psi{j})]$ 总损失表示为$\sum{j=0}^{N}\alpha{j}L{j}$ 其中$\alpha_{j}$ 为第$j$ 个任务的损失系数。

因此,我们可以使用特征流形$F$来执行$T{d}$ 下游任务,因为它包含有关原始信号$X{0}$的有用信息。

操作:1、设置模型$\rho=\zeta(F,\theta’)$ 其中$\theta’$ 为可测试参数集,$\rho$ 为下游任务分类的参数向量。

2、计算最佳$\theta’$ 参数使得交叉熵损失函数最小。交叉熵损失为$\sum{i=1}^{M}y{i}log{\rho_{i}}$,其中M是分类数。

Signal Transformation Tasks 信号转换任务

在pretext任务中,我们训练自监督网络使网络去学习数据的时空特征与抽象表示。对于开发的信号转换识别网络,执行了以下六种变换:

(1)噪声添加:将随机高斯噪声添加到ECG信号

(2)缩放:ECG信号的幅度缩放20%

(3)负数:ECG信号的幅度乘以-1,导致原始信号发生垂直翻转。

(4)水平翻转:ECG信号沿时间轴水平翻转。按时间轴裁剪信号。

(5)排列:心电图段分为10个子段并随机排列,随机排列它们的时间位置

(6)时间扭曲:ECG信号的随机片段沿x轴拉伸和压缩

将原始信号与变换后的信号堆叠形成输入矩阵,同时,将0,1,…,6变换对应的标签堆叠创建相应的输出向量。

根据经验选择信号转换中的参数,目的是最大程度地提高最终的情绪识别性能。

Network Architecture 网络架构

信号转换识别网络:我们的多任务信号转换识别网络包括3个卷积层和两个密集层。卷积层对不同任务是共享的,而密集层是对特定任务的。每个卷积块包括$2*1$ 维具有ReLu激活函数的卷积层,然后是大小为8的最大合并层。在卷积层中,我们通常会增长过滤器的数量,从32到64和128。在每个卷积块之后,内核大小逐渐从32分别减小到16和8。最后,在卷积层的末尾,执行全局最大池化。紧随其后的密集层包括2个具有128个隐藏节点的完全连接层,其后是一个S型层(sigmoid layer)。使用60%的dropout在密集层并且使用$\beta=0.0001$ 的$L2$正则化来克服过拟合。

image-20210118194936442

情绪识别网络:我们开发了一个简单的情感识别网络,该网络具有与信号转换识别网络相同的卷积层,并具有2个具有64个隐藏节点的密集层,然后是S形层(sigmoid层)。然后,我们将权重从信号转换识别网络的卷积层转移到该网络的卷积层。然后,将ECG信号和情绪标签用作训练此网络的输入和输出。应当注意,从信号变换识别网络的卷积层传递的权重是冻结的,因此不进行重新训练(仅训练密集层)。我们使网络的全连接层保持简单,以便能够评估我们的方法在信号转换任务的自我监督学习方面的性能。

4. 实验与结果
数据

SWELL和AMIGOS数据集

SWELL数据集是从25名参与者那里收集的,目的是了解典型办公环境中不同工作条件下员工的心理压力和情绪属性。这些条件中的每一个都被设计为持续30-45分钟。http://cs.ru.nl/~skoldijk/SWELL-KW/Dataset.html

AMIGOS数据集是从40名参与者中收集的,其中情感视频片段被单独和分组显示给参与者,以引发情感反应。数据集包括两个实验的参与者配置文件(匿名参与者的数据、个性特征和情绪 (PANAS) 配置文件)、参与者评分、外部注释、神经生理记录(EEG、ECG 和 GSR 信号)以及视频录制(正面高清、全身和深度视频):http://www.eecs.qmul.ac.uk/mmv/datasets/amigos/index.html

  1. 短视频实验:在这个实验中,40名志愿者观看了16个电影短片。每个参与者在单独的设置中,并评价每个视频在价值,觉醒,支配地位,熟悉和喜好,并选择的基本情绪(中性,幸福,悲伤,惊喜,恐惧,愤怒和厌恶),他们觉得在视频中。
  2. 长视频实验:在这个实验中,37名前一实验的参与者观看了一组4个长情感视频摘录的电影。17名参与者在单个环境中进行实验,而其他20名参与者在小组设置中进行实验,5组为4人。每个参与者对每个视频的评价是价、觉醒、支配、熟悉和喜好,并选择他们在视频中感受到的基本情绪(中性、幸福、悲伤、惊喜、恐惧、愤怒和厌恶)。

两个实验的视频在价量尺度上外部注释,并由 3 个注释器唤醒。

在这两个数据集中,参与者的自我评估情感得分均以1到9的范围来记录arousal和valence。

使用具有自粘电极的MOBI设备(TMSI)[18]以2048 Hz的采样频率记录了SWELL数据集,而使用Shimmer传感器[19]以256 Hz的采样频率收集了AMIGOS。我们对ECG信号执行的预处理非常少。由于以不同的采样率记录了两个数据集,因此首先将SWELL ECG信号下采样到256 Hz。然后,通过应用通带频率为0.8 Hz的高通IIR滤波器,消除两个数据集的ECG基线漂移

模型训练

ECG信号被分割为10秒的固定窗口大小。每个段用于生成6个变换变量,用于训练信号变换识别网络。我们提出的架构是在Nvidia 2070 Ti GPU上使用TensorFlow实现的。
为了训练这两个网络(信号转换识别和情感识别),使用==Adam优化器==[20]的学习率为0:001,批量为128。信号转换识别网络的训练时间为30个时期,而情感识别网络的训练时间为30个时期。训练了100个纪元,因为达到了不同数目的纪元达到了稳态。与[11,21–23]相似,通过设置等于均值的阈值,将两个数据集的情感属性(输出标签)转换为二进制类别。我们使用==10倍交叉验证来评估我们提出的模型的性能==。

性能与对比

图2显示在学习信号转换任务时的13个时期,信号转换识别模型达到稳态。

image-20210113221406248

表2和表3展示了我们的自我监督方法进行情感分类的效果。==[参数??]==

image-20210115232456063

结果表明,对于唤醒和效价分类,我们的模型使用SWELL可以达到96%和95.6%的准确度,而使用AMIGOS可以达到85.1%和84%的准确度。为了进一步评估我们模型的性能,我们仅使用标记的数据集进行训练时,将结果与情感识别网络的完全监督版本进行比较。参见表2和表3。比较表明,自监督方法比完全监督方法具有竞争力或更好,说明了我们方法的有效性。

接下来,我们将我们的结果与先前在这两个数据集上进行的情绪识别工作进行比较。应当指出,使用ECG模态对SWELL数据集进行的先前工作主要集中在压力检测上,而不是对arousal和valence进行分类。在[24]中,该数据集被用于使用支持向量机(SVM)对应力水平进行二进制分类,报告使用ECG和GSR时基线精度为64.1%。同样在[23]中,使用SVM分类器执行压力检测,报告的准确性为86.36%。使用贝叶斯信念网络(BBN)在[22]中执行了类似的任务,报告的准确性为92.6%。虽然在[25]中进行了arousal和valence的估算,但该问题被表述为回归,因此无法与我们的分类方法进行有效比较。结果,我们还对该数据集进行了压力检测,并在自我监督和完全监督的方法分别达到了98.3%和98.4%的精度。表2在同一数据集上

对于AMIGOS数据集,基线分类结果在[11]中提供,其中arousal和valence的分类使用高斯朴素贝叶斯分类器进行,两个任务的F1分数分别为54:5%和55:1%。在[21]中,使用CNN进行分类,其arousal和valence的准确度分别为81%和71%。 [26]等其他作品也对AMIGOS进行了情感识别。但是,使用了不同的验证方案。表3展示了我们与先前工作相比的结果,再次显示了自我监督方法在同一数据集上的表现优于先前工作。

接下来,,我们仅使用1%的标记数据来训练自我监督和完全监督的分类方法。我们首先使用整个未标记的数据集来训练使用自动生成的标签(信号转换)的信号转换识别网络。然后,在从自监督网络传递权重后,每类用户每类的标记数据的1%用于训练和测试情感识别网络。接下来,我们还使用相同的1%数据集来训练独立的CNN,而无需进行自我监督。图3显示了在完全监督下的结果。

image-20210115234233360

code

  • implementation: 实现部分

    this directory contains all of our source codes.

    • Please create similar directory structure in your working directory:
      • data_folder: Keep your data in numpy format here.
      • implementation: Keep the codes here.
      • summaries: Tensorboard summaries will be saved here.
      • output: Loss and Results will be stored here.
      • models: Self-supervised models will be stored here.

load_model:

this directory contains the pretrained self-supervised model and sample codes to use it. 预训练的自监督模型和样本代码

  • The saved pretrained model can be used in order to extract features from raw ECG signals, which can be further used to perform downstream tasks.
  • 特征提取: extract_features.py.
  • 为了提取特征,输入的数据形式为 batch_size x window_size.
  • 我们选择 window_size of 10 seconds X 256 Hz = 2560 samples, where 256 Hz refers to the sampling rate. A sample ECG signal is given here.
  • 提供 sample code为了保存预训练过的网络的权重 save_weights.py