APP下载

基于深度自编码器的心拍识别方法

2023-01-31白淑雯游大涛武相军

计算机应用与软件 2022年12期
关键词:编码器心电图准确率

白淑雯 游大涛 武相军,*

1(河南大学计算机与信息工程学院 河南 开封 475004) 2(河南大学软件学院 河南 开封 475004)

0 引 言

近年来,心血管病是因病死亡率最高的疾病,严重威胁着人们的身体健康。心电图信号是心脏活动的记录,可以被相应的心电图仪捕捉到,心血管疾病引起的心脏异常在患者的心电图信号中均会以某种异常波形表现出来。心电图的诊断目前主要由人工分析完成,但因心电图数据量极为庞大,且心拍类型非常多样化,所以人工对心电图进行逐个心拍的管理和分析是一项难以有效完成的任务,特别是在临床监护或穿戴式健康监护环境下,对医护工作人员而言,实时诊断更是一项不可完成的任务。此外,因一些异常心拍出现的突然性和不频繁性,致使心脏病医生很难及时捕获一些紧急病情的重要变化信息,从而直接威胁患者的生命安全。因此,如何从大量心电图数据中自动、及时地识别出异常心拍成为当前一个既有重要理论意义又有重要实际应用价值的研究课题。

心电图的自动诊断是心电图研究领域的热点之一,特别是在实时心电信号诊断领域更是如此。各类心脏病患者的心拍波形多变且差异并不显著,而且心拍信号的实时记录设备常会受工作环境的影响而引入大量不同类型的噪声信息,导致心电图的有效诊断非常困难,至今仍是一个具有较高挑战性的研究问题。针对此,本文将聚焦于实时心电图诊断方面的研究工作。心电图自动诊断大致分为信号预处理、特征生成和识别三个阶段。信号预处理主要指信号去噪及规则化等;特征生成主要指时域和频域心拍特征信息的提取与生成;特征识别主要指识别模型的构建。在特征生成方面具有代表性的方法有自编码器[1]、经验模式分解[2]和符号化特征设计[3]等,在自然图像特征提取、数据降维、特征增强等领域取得了较大的成功。在心拍识别方面,相继涌现了多种方法,大致分为有监督方法和无监督方法。有监督识别方法是指依据带标签的数据构建的识别算法,具有代表性的方法有最小二乘支持向量机[4]、循环神经网络[5]、卷积神经网络[6-7]和径向基神经网络[8]等;无监督识别方法是指依据不带标签的数据构建的识别算法,具有代表性的方法是堆叠自编码神经网络[9]和K-Means聚类算法[10]等。

上述特征生成方法虽然取得了显著进展,但是由于心电信号中通常含有噪声,且实际中很多噪声往往是无法预测的,难以建立精确的噪声模型,掩盖了反映心拍状态的关键信息,进而难以提取有效的心拍特征,造成其特征生成性能仍然很低,很难满足临床诊断的要求。另外,上述识别方法只关注所有患者心拍的识别,而不关注实时记录情况下特定患者的心拍识别;因此上述方法忽略了不同患者之间的心拍波形的差异,对新患者的心拍识别的性能并不理想,其性能有待进一步提升。针对上述问题,本文提出以下解决办法:(1) 设计一种基于自编码器的噪声心拍信号特征生成方法。算法思想为:首先,使用收缩自编码器从噪声心拍信号中提取有效特征。其次,使用稀疏自编码器从收缩自编码器生成的信号特征中提取具有稀疏特性的心拍特征,生成最终心拍,并使用余弦距离目标函数度量输入心拍样本和生成心拍特征之间的相似度。(2) 提出一种适用于患者导向的心拍识别方法。算法思想为:首先,在上述特征基础上结合CNN模型构建可有效表达不同患者心拍间共性信息的通用CNN识别模型;然后,在通用CNN模型基础上,结合特定患者心拍信息,学习得到一个能反映相应患者心拍个性信息的特定CNN模型。该方法综合利用了患者心拍间的差异性信息,实验结果显示,本文方法在一定程度上提升了心拍识别性能。

1 本文方法

本文提出的心拍识别方法主要由两部分组成:(1) 采用深度自编码模型获取各类心拍信号的特征变换系数,进而得到具有较高鲁棒性和辨别性的心拍特征;(2) 在上述心拍特征基础上,基于卷积神经网络学习能有效区分特定患者心拍的模型系数,进而得到各类心拍的识别方法。

1.1 基于CSCDAE的噪声心拍信号特征生成方法

心拍特征的鲁棒性和辨别性对心拍识别性能的高低具有重要影响,为了生成具有较高鲁棒性和辨别性的心拍特征,本文提出基于CSCDAE的噪声心拍信号特征生成方法。CSCDAE是由收缩自编码器(Contractive Auto-Encoder,CAE)和稀疏自编码器(Sparse Auto-Encoder,SAE)融合而成,且使用余弦距离作为损失函数(Cosine Distance based CAE and SAE Auto-Encoder,CSCDAE)。CSCDAE以无监督的方式学习心拍中的隐含特征,可通过改变CSCDAE的隐层节点数或规则化约束函数,实现对输入数据进行降维的同时,学习得到具有较高鲁棒性和辨别性的特征表示,其数据降维及特征提取能力与主成分分析相比,具有更高的灵活性、鲁棒性和辨别性。

为了使CSCDAE学习到具有较高鲁棒性和辨别性的心拍特征,本文设计了CSCDAE模型,如图1所示,整个流程分为四个步骤:(1) 采集心拍样本输入到CSCDAE模型中。(2) 使用CAE从噪声信号中提取特征。(3) 使用SAE从CAE提取的信号特征中提取稀疏的心拍特征。(4) 生成最终心拍,并使用余弦距离目标函数控制输入心拍样本和生成心拍特征之间的相似度。

图1 CSCDAE特征生成模型

CAE和SAE中每层的神经元个数分别为256、232、200、232和256,前一隐藏层的输出作为后一隐藏层的输入,无监督的逐层训练,使得每层自编码器输入与输出间的误差最小;设置CAE中惩罚项系数δ为0.2,SAE中稀疏惩罚项系数β为0.2,稀疏性参数ρ为0.05。之后通过梯度下降算法对整个CSCDAE进行微调,得到最优参数解。实验表明,训练模型batch大小设为64,学习率设为0.01,此时训练精度最高,迭代次数最少。

CSCDAE中的CAE和SAE由编码器和解码器两部分组成;在编码阶段,设向量x={x1,x2,…,xn}为输入样本,则通过编码器可得到x的隐含表示的数学表达式为:

(1)

(2)

该激活函数使编码器具有较强的非线性变换能力[11]。

(3)

自编码器模型参数优化是迭代寻找训练样本重构误差最小化的过程;本文CSCDAE模型参数优化中的最小化目标函数如下:

(4)

通常不同的任务使用不同的损失函数;均方误差常作为目标损失函数,该损失函数假设误差符合高斯分布,较适合多维高像素图像类的特征提取过程中的误差分布;但对于相邻采样值变化较为剧烈的一维心电波形图而言,其方差并不符合高斯分布,因此会产生实际方差分布与理论假设不同的问题,致使大量有效的波形信息被抑制或忽略,不利于获取具有高鲁棒性和辨别性的心拍特征。针对这一问题,依据心拍波形特征,本文采用余弦距离作为自编码器的损失函数,度量输入样本和输出数据样本之间的误差:

(5)

算法1CSCDAE训练算法

Step2CAE训练。

Step2.1输入:X∈R256×D(输入心拍特征,其特征为256维样本集,D为样本数量)。

Step2.2前向传播计算:

Step2.4δ<ε,判断是否收敛,若收敛则执行Step 2.2;否则执行Step 2.6。

Step2.5依据误差δ和学习率ρ,采用反向传播计算并更新W(l)和b(l)。

Step2.6输出:H∈R256×D(输出心拍特征,其特征为256维样本集,D为样本数量)。

Step3SAE训练。

Step3.1输入:H∈R256×D(由Step 2传入)。

Step3.2前向传播计算:

Step3.3基于X计算误差:

Step3.4δ<ε,判断是否收敛,若收敛则执行Step 3.2;否则执行Step 3.6。

Step3.5依据误差δ和学习率ρ,采用反向传播计算并更新W(l)和b(l)。

Step3.6输入:X∈R256×D(输出心拍特征,其特征为256维样本集,D为样本数量)。

1.2 基于患者个性信息的心拍识别方法

深度卷积神经网络在心拍识别方面表现优异,但是对于患者相关的心拍识别模型而言,由于各类心拍的样本数量相差甚大,以及不同患者存在个体性差异,致使现有深度卷积网络存在欠拟合的问题。为了降低欠拟合问题进而提升心拍识别性能,本文首先基于深度卷积网络结合来自不同患者的等量各类心拍样本训练一个通用背景模型,之后采用单个患者的心拍数据在通用背景模型基础上进行优化与微调,进而生成患者相关的心拍识别模型。

本文针对特定患者的心拍识别提出具体解决方案,该方案的整个流程分为训练阶段和测试阶段,见算法2。在训练阶段,首先对采集的心拍进行滤波和分割预处理;其次,使用本文提出的CSCDAE提取心拍特征,组成通用数据集(Universal Set,USet)用来训练通用模型(Universal CNN,UCNN)。在特定患者训练阶段,采集特定患者的前5分钟心拍,进行数据预处理和CSCDAE特征提取,生成特定患者数据集(Specific Patient Set,SPSet);将SPSet中的心拍特征作为UCNN的输入进行学习,从而生成一个用于特定患者的CNN模型(Specific Patient CNN,SPCNN)。在测试阶段,将每位患者剩余大约25分钟的心拍特征组成测试集(testSet),放入SPCNN中测试,获取识别结果,进而衡量整个系统的准确率和识别精度。

算法2特定患者心拍识别算法

Step1UCNN训练。

Step1.3while:σ<ε,判断是否收敛,若收敛则执行Step 1.6;否则执行Step 1.4。

Step1.5基于Xf采用反向传播方式极小化误差σ,依据学习率ρ调整Wl和bl。

Step1.6Return:Wl,bl(l=1,2,…,13)。

Step2SPCNN训练。

Step2.3while:σ<ε,判断是否收敛,若收敛则执行Step 2.6;否则执行Step 2.4。

Step2.5基于Xf采用反向传播方式反向传播极小化误差σ,依据学习率ρ调整Wl和bl。

Step2.6Return:Wl,bl(l=1,2,…,13)。

Step3SPCNN测试。

Step3.1Require:testSet{Xk}(特定患者剩余25分钟数据集);Xk∈R256×D,k=1,2,…,4(k类心拍的256维样本集,D为样本数量)。

Step3.2Return:Acc(准确率)、Se(灵敏度)、P(精确率)和F1-score(综合指标)。

SPCNN可针对特定患者进行心拍识别,解决了由于患者间心拍的特异性造成的识别性能较低的问题。它可嵌入到特定患者的穿戴设备中,实时监测心拍;若出现异常心拍,设备可实时警告患者。在此识别系统中,UCNN可检测到大量长期心电信号中的异常心拍,而SPCNN可以针对特定患者进行实时检测。显然,该方案不仅适用于患病者,而且适用于无病者。

通常,CNN的输入样本是具有两个或两个以上维度的图像,如灰度图像或分辨率较高的彩色图像。但在本实验中,心拍波形是由不同时刻的振幅构成的一维向量。因此,在使用模型对心拍信号识别之前,须对模型的图像分析结构进行修改,使卷积层中的所有卷积运算适用于一维序列,每一层卷积核也修改为适用于一维序列的尺度。同时,卷积核的设计采用小尺度和多尺度相结合的方法。小尺度可捕捉心拍之间的微小异常,并且能降低计算复杂度和计算成本;多尺度可避免提取的特征过于单一化,有利于多视野提取数据特征。本文提出的用于心拍识别的卷积神经网络模型如图2所示。

图2 CNN训练模型

整个模型共13层,其中9个卷积层,2个池化层,2个全连接层;激活函数使用ReLU,损失函数为交叉熵。实验表明,将UCNN的batch_size设置为40,将SPCNN的batch_size设置为50,结合学习率ρ=1E-5,模型收敛速度快。

2 实验与结果分析

2.1 数据库

本文实验数据选用MIT-BIH心律失常数据库。MIT-BIH数据库包含48个心电图记录,来自47名受试者,其中25名是32岁至89岁的男性,22名是23岁至89岁的女性[12],每条记录持续30分钟左右,采样频率为360 Hz(以每秒360个样本的速度数字化),通过将电极放在胸部获得心电图记录[10],其中包含两个来自不同电极的导联:MLII导联和V1导联。在本研究中,使用MLII导联的信号进行训练和测试,且所有的记录都由心脏病专家注释其类别。

因MIT-BIH数据库中4个心电图记录(102,104,107和217)为起搏心拍,所以本文共收集了除上述四个心电记录之外的99 065个心拍用于实验验证与分析。根据AAMI标准,本文将心拍信号分为四类:正常心拍、室上性心拍、心室上性心拍和融合心拍[13]。在心拍特征提取阶段,将MIT-BIH数据集中的30条记录{100,101,105,106,109,111,113,114,116,117,119,121,123,124,201,202,205,207,209,210,213,214,219,220,222,223,230,231,233,234}构建为训练集;记录{103,108,112,115,118,122,200,203,208,212,215,221,228,232}构建为测试集来验证本文特征生成模型CSCDAE。在心拍识别阶段,将MIT-BIH数据集中的24条记录{101,105,106,108,109,112,114,115,116,118,119,122,124,201,203,205,207,208,209,214,215,220,223,230}构建为初始训练集,其余20条记录{100,103,111,113,117,121,123,200,202,210,212,213,219,221,222,228,231,232,233,234}中每条记录的前5分钟心拍构成特定患者训练集,其他的25分钟左右心拍构建为测试集(此阶段每条记录中的心拍特征为CSCDAE生成的特征)。

2.2 结果分析

本文在数据预处理阶段使用小波变换和中值滤波器相结合的方法去除基线漂移、工频干扰和肌电干扰噪声。实验结果表明,以Daubechies 5为小波基的小波变换和以窗口大小为60的中值滤波器相结合能有效地去除其三类噪声,提升信号质量。在心拍分割中,基于R峰向前取0.35 s,向后取0.35 s分割单个波形,将所有心电记录分割为99 065个同尺度的单一心拍进行训练。由于在心电图采集的过程中出现横向漂移的情况,造成重叠分割。基于此问题,采用均值填充方法将小尺度的心拍进行缩放,保证了关键特征不变性,对之后的分类检测提供了重要的基础。

在特征提取阶段,针对大量有效的波形信息被抑制或被忽略,导致无法获取具有高鲁棒性和辨别性心拍特征的问题,本文依据心拍波形特性,使用改进的堆叠自编码器(CSCDAE)进行有效特征提取。为验证CSCDAE模型的性能,本文选取具有代表性的特征提取方法进行对比见表1。

表1 使用CSCDAE性能对比

由表1可知,基于本文提出的分类模型,未使用CSCDAE特征的准确率是94.85%,而使用基于CSCDAE特征的准确率则是98.43%,有明显的性能提升。颜菲等[14]提出的自编码器和DNN融合的识别算法得出准确率为95.03%,低于本文的识别性能。Hasan等[15]将每个心电信号先通过经验模态分解(EMD)进行分解,再结合高阶本征模态函数(IMFs)形成修正后的心电信号,并使用CNN对修正后的信号进行分类,准确率为97.70%,低于本文方法。Ma等[16]对特征数据进行归一化,可加快模型训练速度,但准确率为93.25%。综上所述,使用本文的CSCDAE模型进行有效特征提取,能提升识别精度和准确率。

本文算法在20条记录的测试集中进行检验,其中为每条记录的后25分钟心拍,得出每个类别的正确和错误分类数量见表2。综合得知,识别模型的准确率达到98.43%,验证了本文所提出的CSCDAE特征生成方法结合SPCNN模型用于心拍的识别有较好的效果。

表2 测试集每条记录的准确率

为了进一步验证和分析本文提出的心拍识别方法的性能,本文还在测试阶段分别计算了N、S、V和F四类心拍对应的准确性、敏感性和F1值,基线系统则选取了4个具有代表性文献的心拍识别方法,具体结果如表3所示。

表3 使用不同方法时的实验结果比较(%)

由表3可知,文献[17]使用SAE和DNN算法融合识别心拍,准确率达到94.05%,但其F1值只有77.84%,算法的识别能力和有效性低于本文方法。文献[18]中方法的性能是四个基线系统中最优的,而本文方法的识别性能则明显高于文献[18]中方法的性能。文献[19]使用DNN模型识别,相比本文算法,该方法没有考虑到不同患者间的差异性,且测试数据量大,存储成本高,不适用于健康实时监护。文献[20]提出用于解决每个类别之间不平衡性问题的卷积神经网络模型,在通用模型训练完成后,分别训练N、S、V和F四类数据模型,训练负担大,且最终准确率和F1值较低,不适合用于实际临床应用。文献[21]针对单导联心拍提出受限玻尔兹曼机和深度置信网络相融合的分类框架,其F1值偏低。综上所述,本文使用小波变换和中值滤波器结合滤除噪声,使用CSCDAE进行特征提取,针对SPCNN结构对心拍进行识别,识别的准确率和F1值与现有的算法相比得到提高,在实际应用中更加可行。

本文提出的心拍识别方法在Intel(R) Core(TM) i5- 8400 CPU @ 2.8 GHz、8 GB内存的64位系统上,UCNN模型和SPCNN模型的训练时间为18 min,而每个心拍在SPCN模型中的测试时间则仅需0.2 ms。

3 结 语

针对心电噪声的干扰,大量有效的波形信息被抑制或被忽略,无法获取具有高鲁棒性和辨别性的心拍特征问题,本文首先设计一种基于余弦距离的堆叠自编码器进行心拍特征提取。在此基础上,针对不同患者心拍间的差异性对心拍识别性能具有较大影响等问题,本文提出一种基于通用背景模型和患者心拍个性信息的深度卷积神经网络识别方法。实验结果表明,本文所设计的心拍识别方法具有更好的性能,非常适合用于实时监测的嵌入式穿戴设备的需求。

猜你喜欢

编码器心电图准确率
融合CNN和Transformer编码器的变声语音鉴别与还原
动态心电图与常规心电图诊断冠心病的应用
心电图机检定方法分析及简化
《思考心电图之176》
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
《思考心电图之174》
高速公路车牌识别标识站准确率验证法
基于双增量码道的绝对式编码器设计