APP下载

基于改进深度生成对抗网络的心电信号重构算法

2022-02-24赵雅琴孙蕊蕊吴龙文聂雨亭何胜阳

电子与信息学报 2022年1期
关键词:分量重构卷积

赵雅琴 孙蕊蕊 吴龙文* 聂雨亭 何胜阳

①(哈尔滨工业大学 哈尔滨 150001)

②(华为技术有限公司北京研究所 北京 100095)

1 引言

睡眠是人类生命活动中必不可少的组成部分,好的睡眠有助于人类在白天保持身心健康和大脑功能正常,在如今快速发展的社会,越来越多的学者开始关注人因生活或工作中的压力加剧经历着睡眠障碍问题导致睡眠过程的质量变差的问题,如文献[1]。因此越来越多的学者和医疗工作者[2—6]开始关注有关睡眠过程的研究,通过对睡眠过程各阶段生理指标的分析来帮助治疗由睡眠障碍导致的相关疾病。

20世纪80年代之前,文献[7]提出了使用心冲击图(BallistoCardioGraphy, BCG)来表征人身体中的心脏、呼吸、体动等活动。心脏在跳动时,主动脉血管内中的血液被挤压从而引起扩张和收缩以响应血液流动,此时身体会出现微弱的、有节奏的不自主运动,这种运动可以通过心冲击图来体现,它是一种描述心脏在跳动过程中对人体表面产生力作用的方法。如今,文献[8]提出了具有高精度测量和快速运算能力的BCG采集装置,随着有关BCG领域研究内容的数量不断增加,BCG在心脏病检查中的意义也越来越重要。

文献[9]指出使用BCG能够在不影响使用者生活的同时,持续对人体生命体征参数进行实时监测并对睡眠阶段进行分期。在测量BCG时无须专业人员的操作,日常监测到的生命体征参数可以辅助专业医师对疾病的诊断和分析。但是非接触式的BCG采集设备易被使用者体动和环境中的噪声干扰,采集到的心跳信号或呼吸信号比干扰信号更微弱。因此在有关BCG信号处理领域中,从BCG信号里准确提取可用人体生命体征参数信息是研究的重点。

目前,已经有多种算法可以用于分析和处理BCG信号,这些算法可大致分为两类:非分解类算法和分解类算法。

对于非分解类算法,文献[10]使用无监督学习方法将BCG信号中的心跳信息采集出来,在使用压力传感器采集到BCG信号后,该方法在已有的心跳处获得特征向量,结合完全连接聚类找到其他心跳位置,实验结果表明只有0.09%的心跳检测位置不正确。但是有研究表明,聚类方法仅在低噪声条件下有效。文献[11]使用模板匹配方法提取BCG峰值。文献[12]使用小波变换、倒谱、快速傅里叶变换和自相关函数利用BCG信号测量心率,结果表明小波变换分析可以应对BCG信号的非线性和非平稳特性,可以为参考心电图(ElectroCardioGram,ECG)设备提供接近的结果。

对于分解类算法,大多通过硬件设备采集BCG信号,进行心率的监测,文献[13]使用小波变换等算法分解BCG信号。由于使用小波变换时选取小波基函数不同会导致检测结果不同,文献[14]对BCG信号进行经验模态分解(Empirical Mode Decomposition, EMD),从分解得到的各成分中提取出呼吸和心跳成分。文献[15]使用基于集合经验模态分解(Ensemble Empirical Mode Decomposition,EEMD)的希尔伯特-黄变换算法计算心率,发现分解成分中的伪影在EEMD分解成分中得到增强并且比原始BCG信号中的伪影更易于检测,但模态混叠问题并没有被完全消除,并且需要大量的计算时间。王春武等人[16]对一起采集到的BCG和心电信号进行两者相关性的研究,为BCG信号在医疗领域的应用提供了理论基础。Sadek等人[17]提出最大重叠离散小波变换用于处理来自椅子头枕的BCG信号,作者指出相对于使用CEEMDAN,该方法可产生更好的噪声过滤结果,并且具有计算优势。沈劲鹏等人[18]使用原始信号进行快速傅里叶变换分析,使用EMD分解后的分量按能量关系对呼吸和心跳信号进行重构。姜星等人[19]使用EMD成功将BCG信号中的无用成分去除。李倩等人[20]使用小波分解提取BCG信号的心动周期间隔,采用1维卷积神经网络在BCG信号中找出有效的ECG信号特征。

国内外现有关BCG信号处理的文章大多关注心率的检测,并没有深入研究BCG信号与ECG信号之间的潜在关联,因此本文选择使用生成对抗网络(Generative Adversarial Nets, GAN)的方法建立BCG与ECG信号之间的映射,探究如何用BCG信号准确重构出ECG信号的波形以及何时可以完全使用BCG信号来代替ECG信号进行睡眠状况分析。

2 ECG与BCG信号

2.1 信号的生理基础

心脏是一种可以发生电生理活动的器官,其产生的传导电刺激导致心房和心室的收缩完成跳动。心电图是描绘心脏在收缩和舒张过程(去极化和复极化过程)中产生的电流的波形图。心脏每进行1次去极化复极化操作就会使ECG产生1次周期变化,这段心电图包含了心脏产生电流的起始位置、流动方向、幅值大小和持续时间等在内的大量生理信息,如图1所示。ECG信号主要包含向上冲击的P,R和T波,以及两个向下冲击的Q和S波,一般情况下将Q和S波与R波合并为QRS波,这几个波之间间隔的时间被认为是分析心电图时使用的重要参数。

图1 ECG波形图

由左到右,P波表示心房在收缩时的电位变化状态,QRS波是心电图中最重要的一部分,表示心室在收缩时的电位变化状态,QRS波的幅值最大,不易受到心率变化的影响,从S波到T波的过程表示心室在缓慢舒张的过程,T波的幅值较小、持续时间较长,代表心室在舒张时的电位变化状态。文献[21,22]指出在心电图中通常使用相邻R峰间隔来计算心率值,也是描述心脏功能时使用的最重要的参数指标。

心脏在正常工作时血液会随着其收缩与舒张对血管造成压力,随着心脏的跳动过程,血液在流动时引起人体质心的改变使人体表面发生了微小的运动,BCG信号就是在此情况下产生的。它是一种描述心脏在跳动过程中对人体表面产生力作用的方法。

在早些时期,一些学者专门对BCG信号展开了研究,认为一次心脏的跳动会生成一段BCG节拍信号,如图2所示,这段BCG信号中存在F, G,H, I, J, K, L, M和N波,其中心部分形状似字母“W”。其中J 波与E C G 信号中的R 波对应。BCG信号中除了包含心跳信号信息也包含呼吸信息,由于人体在呼吸时肺部会出现起伏,此时呼吸对人体表面产生大的作用力,且幅度远大于由心脏跳动引起人表面小的作用力。一段标准的BCG节拍信号与ECG信号一致,但由于个体、姿势、采集设备的不同其波形细节会有一些不同,但整体波形趋势相似,一段稳定的BCG信号中包含大量有关心脏的生理信息。

图2 BCG波形图

2.2 本文所提算法

BCG中包含大量的心脏生理活动信息,如果从这部分心跳信息能够恢复出标准ECG信号,则证明BCG信号除可进行心率研究外,也可以像ECG信号一样进行睡眠分析。

首先通过分解算法分解BCG信号,本文所用方法为基于无参数尺度空间法的经验小波变换,分解后得到心跳分量。其次通过改进的深度卷积生成对抗网络,从BCG的心跳分量重构出ECG信号。证明BCG信号可通过上述算法重构出ECG,可以提取生理特征进行下一步睡眠分析。算法流程如图3所示。

图3 本文所提算法流程

3 基于改进经验小波变换(Empirical Wavelet Transform, EWT)的BCG信号分解

小波变换(Wavelet Transform, WT)通过使用固定的窗口并改变窗口的形状使其具有多分辨率分析特性,可以很好地分析信号的细节来体现出信号的相关性,小波变换具有的多尺度特征非常适合对BCG这类非平稳信号进行分析。

实验使用信号如图4所示,BCG信号由MITBIH多导睡眠数据库中提取的同一时间段ECG信号与呼吸信号加20 dB高斯白噪声合成,因为人入睡之后,大部分时间段的噪声都呈现白噪声特点,即使有其他特殊状态影响局部的去噪效果,也不影响对人整晚睡眠过程的分析和监测。经验模态分解和变分模态分解(Variational Mode Decomposition,VMD)等常见信号分解方法对BCG信号的分解结果如图5所示。小波分析方法使用10层的Daubechies小波分解原始BCG信号,选取其中心跳信号的峰值细节较为明显的分量,信号进行重构如图6(a)所示,小波重构后的信号中其余干扰成分明显减少。可以看出重构得到的心跳信号h(t)存在呼吸基线干扰,所以对其进行去噪得到去噪前后的重构心跳信号如图6(b)所示。

图4 原始信号与实验信号

图5 不同分解方法下重构的心跳分量h(t)

图6 重构信号与去噪前后重构心跳信号对比图

结果表明,使用模态分解类方法重构得到的心跳信号明显存在频谱混叠、峰值不突出的问题,容易造成峰值的误判,定位误差非常大。使用小波变换分解得到的心跳信号与原始信号间存在较大误差,并不能将原始心跳信号的信息还原出来。具体评价指标如表1所示,查全率(Sensitivity)与查准率(Precision)衡量分解得到的心跳峰值位置是否准确

表1 不同分解方法下的心跳分量评价指标

(1) 使用自适应无参EWT对原始信号进行分解,在此过程中原始信号的傅里叶谱被划分为m个区间,其边界为ω={ω0,ω1,...,ωm-1,ωm},在每个区间内构建滤波器组重构m个分量u={u1,u2,...,um};

(2) 使用峭度和相关系数作为指标对这m个区间的边界进行合并,设置合并区间种类数l=2,3,...,m-1,对于每一种合并种类,定义i=1,2,...,m-l为原边界的索引值,合并后得到傅里叶谱新区间边界为ϖ={ω0,...,ωi,ωi+1,...,ωm},在各边界之间使用小波滤波器组重构m-l个新成分u={u1,u2,...,um-l},计算每个分量的峭度与各个分量与真实ECG信号的相关系数,保留相关系数大于α且峭度最大的傅里叶谱区间边界,则使用此边界构建滤波器组重构的分量中峭度最大的分量则为最终分解得到的心跳信号。对于呼吸信号,选择含有0.1~0.5 Hz区间的边界构建滤波器组重构进行呼吸信号的重构。

使用如图4所示原始生理信号,首先对其进行EWT频谱分割,如图7(a)所示将频谱划分为78个区间,用本文所提方法分割区间进行优化合并,得到新的58个分割区间如图7(b)所示,在合并后的新区间边界之间进行重构得到 58个分解信号,其中前7个单分量信号如图8(a)和图8(b)所示,选取峭度指标最大的第7个分量和频带范围在0.1~0.5 Hz的第1个分量重构得到心跳信号和呼吸信号,如图8(c)所示为原始信号与分解重构信号时域波形图。

图7 原频谱分割结果与优化合并后频谱分割结果

图8 使用改进EWT分解并重构心跳信号

计算心跳分量h(t)与原始心跳信号的相关系数、峭度等指标结果与使用基于模态分解和小波分解指标计算结果对比如表1所示,结果表明使用本文PSA-EWT分解得到的心跳信号的峭度、查全率和查准率都高于其他分解方法,其分解得到的h(t)与原心跳信号相关系数最大。

4 基于改进DCGAN的ECG信号重构

在近10年内,由于计算机计算能力的不断提高,可用数据不断增多,深度学习在生理信号处理领域得到了广泛应用,使用深度学习技术可以处理更复杂的问题,在医疗领域减少了成本,在解决问题上有了更高的效率,推动医疗行业有了进一步的发展。

生成对抗网络是一种具备较强数据生成能力的生成式模型,为了从采集到的BCG信号分解得到的重构心跳信号获取原始ECG信号的形态,采用生成对抗网络建立BCG到ECG信号的重构映射。

4.1 生成对抗网络

生成对抗网络是一种生成式深度学习模型,如图9所示,生成对抗网络中有两个网络,第1个网络是生成网络也称为生成器G,另一个网络是判别网络也称为判别器D。G的功能是输入随机噪声G(z),网络自身进行学习使其具备可以生成假数据去欺骗D的能力,D的 功能是将从G输出的假数据与实际真实数据区分开,G和D自身不断学习形成了动态的“制约过程”。

图9 生成对抗网络框架

4.2 深度卷积生成对抗网络

生成对抗网络自Goodfellow等人[24]提出后就被广泛应用于有关图像处理的各领域,但是GAN在训练两个网络时稳定性较低,有时会生成无用数据。为此,基于生成对抗网络,2015年文献[25]提出了一种深度卷积生成对抗网络(Deep Convolutional Generative Adversarial Networks, DCGAN),与GAN相比,DCGAN改进了GAN网络结构,在训练两个网络时状态更加稳定。DCGAN与GAN相比生成网络和判别网络主要基于卷积神经网络,主要有以下几点改进:

(1) 在判别网络和生成网络中使用的卷积神经网络池化层都变为步长卷积和微步长卷积,用卷积层代替了全连接层;

(2) 在判别网络和生成网络中均采用批规范化,把特征层的输出规范化到一起,批规范化将输入数据规范为零均值单位方差数据来减少权重初始化导致的偏差便于梯度传递。在GAN中,批规范化有利于提高生成数据的多样性,但如果在网络中所有层都使用批规范化也容易降低模型的稳定性,因此不在DCGAN中生成网络最后一层与判别网络第1层使用,在保持训练稳定的同时也使提升了训练效率;

(3) 对于生成网络中的激活函数,最后一层使用Tanh,其余层使用ReLU,在判别网络中,与GAN中使用Maxout函数不同的是DCGAN全部使用LeakyReLU。

4.3 改进的深度卷积生成对抗网络

观察后续实验结果发现使用DCGAN重构ECG信号结果中出现失真现象,本文将DCGAN的生成器进行优化。生成对抗网络中的两网络之间经过对抗交替训练至一个平衡的状态,生成网络的目的是使输出数据无法让判别网络区分是真是假,但是如果生成网络输出的数据并不接近真实数据而判别网络却已经区分困难了,这就会导致生成对抗网络所生成的数据不是理想数据。所以本文在不改变判别网络的情况下改变生成网络的损失函数,在原始生成网络的损失函数基础上加入L1范数,使生成器生成的样本与真实样本更加接近,这样生成网络输出的数据不仅能够使判别网络判别困难,也与真实数据更加相似,从而缩小输出数据与真实数据的差异,此时生成网络的损失函数如式(10)所示,式中α可取[0,1]。

5 实测数据实验

本文在实验中使用来自MIT-BIH多导睡眠数据库中的同步心电信号与呼吸信号。MIT-BIH多导睡眠数据库提供受试者在睡眠实验室监测的睡眠期间脑电信号、心电信号和呼吸信号等多种生理信号的记录以及睡眠各阶段分期的相关数据。MIT-BIH多导睡眠数据库中的生理信号采样频率为250 Hz,每30 s时间间隔对应一个睡眠阶段注释。

5.1 基于GAN的ECG重构

使用改进无参数尺度空间经验小波分解重构得到的心跳信号和原始ECG信号分割成以R峰为中心,长度为215的信号片段,并将其重采样得到以R峰为中心,长度为100的重构心跳信号片段和以R峰为中心,长度为500的原始ECG信号片段,将分离所得心跳信号h(t)片段作为生成器的输入,原始ECG信号片段作为判别器的输入。如图10所示,生成器为一个5层的神经网络模型,对于每一层的激活函数,除了输出层使用Tanh外隐含层都使用LeakyReLU。如图11所示,判别器为一个5层神经网络模型,除了输出层使用Sigmoid外隐含层都使用LeakyReLU,并加入了Dropout防止判别器的过拟合。

图10 生成器网络结构

图11 判别器网络结构

设置batch大小为32,迭代次数为160,使用1087份训练样本对生成器和判别器进行训练,通过实验结果可以看出GAN训练的过程稳定性较低,训练过程中生成器与判别器的损失函数曲线和score值曲线如图12(a)、图12(b)所示,生成器的score值一直在0.5的下方波动并没有完全趋近于0.5,在迭代次数达到150时,训练过程逐渐稳定但仍存在波动,在训练过程中计算当前生成器生成数据与原始数据的相关系数与均方根误差如图12(c)、图12(d)所示,随着次数的增加,生成数据与原始数据的相关系数逐渐接近于1,均方根误差减小至接近—18 dB,但在RMSE的减小过程中数值上下浮动大,使用训练好的生成器输入重构得到的心跳信号得到信号波形重构结果对比图如图12(e)所示,可以看出重构心跳信号与原始ECG信号相比信号中高频成分较多。

图12 使用GAN重构ECG信号

5.2 基于DCGAN的ECG重构

在满足DCGAN的约束条件下,本文设计如图13和图14所示的判别器和生成器,生成器是一个卷积神经网络结构,共6层,其输入首先经过矩阵变换改变维数,后面几层网络都是反卷积层,逐渐扩大输出的数据维度,激活函数使用LeakyReLU,并使用批归一化,批归一化可以使网络正则化,让训练的速度加快。判别器也为6层卷积神经网络结构,前4层为卷积层,激活函数使用LeakyReLU,最后一层为全连接层,输出维度为1×1作为判别器的输出值。设置batch大小为256,迭代次数为80,使用1087份训练样本对生成器和判别器进行训练,通过实验结果可以看出DCGAN训练的过程较稳定,训练过程中生成器与判别器的损失函数曲线和score值曲线如图15(a)、图15(b)所示,score值完全趋近于0.5,在训练过程中计算当前生成器生成数据与原始数据的相关系数与均方根误差如图15(c)、图15(d)所示,生成数据与原始数据的相关系数渐近于1,均方根误差减小至接近—16 dB,但在RMSE的减小过程中数值存在上下波动,使用训练好的生成器输入重构得到心跳信号得到波形重构结果如图15(e)所示,能看出使用DCGAN训练生成器所生成数据在结尾处出现失真与原始ECG信号误差较大。

图13 DCGAN判别器网络结构

图14 DCGAN生成器网络结构

图15 使用DCGAN重构ECG信号

5.3 基于改进的DCGAN的ECG重构

设置batch大小为256,迭代次数为80,使用1087份训练样本对改进后的生成器和判别器进行训练,通过实验结果可以看出在对生成器进行改进后,DCGAN训练的过程依旧较稳定,训练过程中生成器与判别器的损失函数曲线和score值曲线如图16(a)、图16(b)所示,生成器与判别器的score值完全趋近于0.5,在训练过程中计算当前生成器生成数据与原始数据的相关系数与均方根误差如图16(c)、图16(d)所示。随着训练次数的增加,生成数据与原始数据的相关系数逐渐接近于1,均方根误差减小至接近—16dB,在RMSE的减小过程中数值上下波动较小,由图16(e)可以看出使用改进的生成器所生成数据在数据结尾处出现波动较改动前有所缓解,基本与原ECG信号波形相同。

图16 使用改进DCGAN重构ECG信号

分别使用GAN, DCGAN,改进的DCGAN对相同的118份测试样本计算得到信号波形重构结果与原始心跳信号的相关系数如表2所示,可以看出使用改进DCGAN对ECG信号波形重构时,重构效果最好。

表2 不同方法下ECG信号重构结果对比

为了验证算法的有效性,本文将分布式传感器部署到某床垫中,采集了一些实测数据。取某一长12 s的BCG信号实测数据如图17所示,首先使用PSA-EWT分离出其中的心跳分量,对于分离所得的心跳信号使用已经训练好的改进深度卷积生成对抗网络对其进行波形重构,图17给出了原始数据、心跳分量以及最终重构的ECG信号,结果表明本文所提算法对实测BCG信号仍然适用。

图17 实测BCG数据重构ECG

6 结束语

本文针对同时含有心跳、呼吸和环境干扰等成分的BCG信号进行信号的分解与重构,使用改进的经验小波变换算法,在对BCG信号进行分解的过程中对其频谱进行优化合并从而重构得到准确的心跳信号h(t)。在此基础上集合深度学习理论研究建立分离所得h(t)与原始ECG信号之间映射的系统模型,分析并比较了使用GAN与DCGAN对ECG信号重构的效果,提出了改进的DCGAN方法可以更稳定、准确地实现BCG信号与ECG信号之间的映射重构。

实验结果表明使用改进的DCGAN计算得到信号波形重构结果与原始心跳信号的相关系数为0.9885,均方根误差为—16.8422 dB,基本可以还原原始ECG信号信息,证明了由BCG重构出ECG的可行性。即可以将非接触方式下采集得到的BCG数据,通过算法重构为ECG信号,后续可近似为ECG信号加以处理利用,扩展BCG的应用场景,比如更为精准的睡眠分期。

猜你喜欢

分量重构卷积
视频压缩感知采样率自适应的帧间片匹配重构
长城叙事的重构
基于3D-Winograd的快速卷积算法设计及FPGA实现
高盐肥胖心肌重构防治有新策略
卷积神经网络的分析与设计
一斤生漆的“分量”——“漆农”刘照元的平常生活
一物千斤
从滤波器理解卷积
论《哈姆雷特》中良心的分量
基于傅里叶域卷积表示的目标跟踪算法