当前位置:首页 期刊杂志

卷积神经网络在心拍类识别中的应用

时间:2024-05-04

原永朋,游大涛,渠慎明,武相军,魏梦凡,朱萌博,耿旭东,贾乃仁

(1.河南大学 软件学院,河南 开封 475000; 2.深圳瑞爱心安移动心电信息服务有限公司,广东 深圳 518101)(*通信作者电子邮箱youdatao@163.com)

0 引言

心脏疾病严重威胁人类的身体健康,世界卫生组织2015年公布的全球十大死亡病因中,因缺血性心脏病(又称冠心病)死亡的人数占876万人,位于第一位;心电图(ElectroCardioGram, ECG)诊断是检测心脏疾病最基础、最常用的方法,而人工诊断的误诊率较高,2004 — 2013年发表在中文医学期刊并经遴选纳入误诊疾病数据库的急性心肌梗死(Acute Myocardial Infarction, AMI)文献共485篇,累计误诊病例7 840例,误诊率19.62%[1];因此,使用计算机生成ECG中的深层特征,实现计算机自动ECG诊断成为ECG研究的重要方向,其中ECG心拍分类对ECG自动诊断和临床有重要价值。

研究人员虽然在ECG心拍特征提取方面做了大量的研究工作,取得了众多成果,但ECG四类心拍(N、S、V、F,参见2.5节)分类的工作需要进一步研究。Meng等[2]先基于深度信念网络模型生成ECG信号的特征,再基于加入高斯核的非线性支持向量机(Support Vector Machine, SVM)模型将心拍分为6类,总体分类准确率达到98.49%;Zubair等[3]基于由8层结构组成的深度卷积神经网络(Convolutional Neural Network, CNN)模型对ECG四类心拍分类,虽然总体分类准确率达到92.7%,但S类和F类的心拍的分类准确率较低;周飞燕等[4]先基于CNN模型生成特征并对室性早博进行分类,再经过融合规则对分类器分类结果融合决策,虽然模型识别室性早博的准确率为97.87%,但在选择分类器有效集成融合决策需要进一步研究;颜昊霖等[5]先人工提取R-R间期(两个连续QRS波中R波之间的时间)特征和QRS波群(反映左、右心室除极除极化,在QRS波群中,第一个向下的波为Q波,接着向上的波为R波,最后向下的波是S波)作为CNN的输入特征,经过神经网络的卷积和池化操作提取心拍特征,把心拍的平均灵敏度提高到88.51%,但F类心拍的阳性检测率较低仅提高到13.87%; Zhang等[6]先人工提取R-R间期、Q-T间期(心室去极化和复极化过程的时间)、P-R间期(心房开始除极到心室开始除极的时间)等特征作为SVM的输入,然后训练SVM提取心拍深层特征,把F类心拍灵敏度提高到93.81%,但心拍的平均阳性检测率仅提高为60.36%,F类心拍的阳性检测率则低至13.73%;Mar等[7]先人工提取RR间期、QRS时限等特征作为多层感知机(Multi-Layer Perceptron, MLP)的输入,然后训练MLP生成心拍深层特征,虽然把N类心拍的阳性检测率提高为99.12%,但心拍的平均灵敏度为80.17%、平均阳性检测率为56.28%,F类心拍的阳性检测率则低至16.57%; Kiranyaz等[8]先人工提取了RR间期等特征作为K-means聚类的输入,然后提取ECG中的高维特征,虽然把V类心拍的阳性检测率提高到99.46%,F类心拍的阳性检测率为71.84%,但S类心拍的阳性检测率则低至16.61%;鄢羽等[9]将心拍作为聚类的输入特征,利用心拍的差异性,使用二级联合聚类法提取ECG心拍特征,虽然把心拍的平均灵敏度和平均阳性检测率都提高到94%以上,但F类心拍的灵敏度仅为90.04%、阳性检测率则只为89.15%,依然比较低。

综上所述,上述方法虽然提升了某些类心拍的识别性能,但在其他心拍类上的识别性能较低;依赖于经验知识(如RR间期等)的特征生成方法的改进潜力有限,而基于深度学习的自动特征生成方法虽然受类间数据不平衡的制约分类性能不甚理想,但改进空间较大。

为了解决因类间数据不平衡致使自动特征生成方法性能不理想的问题,本文提出了一个基于通用CNN和类别CNN的ECG特征生成方法。

1 构建模型

ECG心拍的特征可以表示如下:

ρ(Xt)=ρ(Xt)c+ρ(Xt)s

(1)

其中:Xt∈RD是t时刻D维ECG心拍向量;ρ(Xt)为心拍信号;ρ(Xt)c为心拍的类间共性信号,ρ(Xt)s为心拍的类别个性信号。在理想情况下,自动特征生成方法可以有效地生成具有较高辨别性的ECG特征, 然而现实情况并非如此,如MIT-BIH数据库中N类有90 083个样本,F类有803个样本,而Q类更是仅有15个样本;此外,因每个完整样本需约260个数据,所以可知类间数据量不仅严重不平衡,而且也存在着不充分的问题。这一问题严重制约着自动特征生成方法的性能。

由于类间数据的不均衡,如果仅训练一个统一的特征生成模型,虽然各类间的共性信息得以充分表达,但数据量较少类对应的个性信息必然存在表达不充分的问题;而如果为每类单独训练特征生成模型,不仅各类模型中共性信息表达不充分,而且数据量较少类对应的模型必然存在个性信息过拟合的问题。

针对上述问题,本文在式(1)的基础上提出了如下解决思路:首先,组合近似等量的各类数据训练CNN,构建一个共性信息表达较为充分的通用CNN模型;然后,在通用CNN模型基础上,分别构建特定类个性信息得以较为充分表达的类别CNN模型;最后,根据各个类别CNN模型输出的交叉熵判定心拍的类别。

1.1 通用CNN模型

使用各类等量的组合数据集训练CNN模型,获得能有效表达各类心拍间共性信息的高维投影变换函数,这里命名此CNN模型为通用CNN模型。

通用CNN模型充分生成的是4类心拍的共性特征。在训练通用CNN模型时,为了保证生成的特征的均衡性,4类心拍的样本量需要近似等量。如果使用不同数量的组合数据集训练通用CNN模型,则通用CNN模型生成的特征可能不均衡,不能有效表达4类心拍的共性特征,因此训练通用CNN需要等量的4类心拍数据集。通用CNN模型算法描述见算法1。

算法1 通用CNN模型算法。

步骤1δ=Y-fh(Xf)2>ε: 判断是否收敛,收敛执行步骤4; 否则执行步骤2。

1.2 类别CNN模型

使用等量的4类训练集分别训练由通用CNN初始化结构空间,能有效反映相应心拍类别倾向性信息的4类CNN模型,其中4类CNN模型独立训练,本文称此CNN为类别CNN模型。

为了把能生成共性特征的通用CNN模型的空间结构继承给类别CNN模型。在训练类别CNN模型时,先使用通用CNN模型的权重和偏置分别初始化4个类别CNN模型。然后分别使用等量的4类心拍样本集训练相应的类别CNN模型(如图1)。类别CNN模型算法描述见算法2。

算法2 类别CNN模型算法。

步骤1δ=Yk-fh(Xf)2>ε,判断是否收敛: 收敛, 执行步骤4; 否则, 执行步骤2。

图1 类别CNN训练模型Fig. 1 Training model of class-oriented CNN

1.3 心拍类判定方法

本文分类模型建立如下:先使用构建的通用模型和类别模型充分提取心拍特征; 然后在softmax模型[10]基础之上,使用4个类别CNN模型分别预测同一心拍测试集的真实值与预测值之间的相似度,得到4个心拍相似度向量; 最后在4个心拍相似度向量中,找出同一心拍相似度最大的类别。本文用交叉熵度量心拍预测值与真实值的相似度。交叉熵可以计算2个分布的距离,交叉熵越小两个概率分布距离越小、相似度越大。设两个概率分布P和Q,交叉熵H(P,Q)[11]为:

(2)

本文将测试集分别给训练好的四类CNN模型,得到H(PN,QN)、H(PS,QS)、H(PV,QV)、H(PF,QF)四个ECG心拍测试集的交叉熵向量(每一个心拍对应一个交叉熵),求同一个心拍在各类模型中交叉熵最小的值,数学模型如下:

H=min [H(PN,QN),H(PS,QS),

H(PV,QV),H(PF,QF)]

(3)

其中:P代表心拍预测概率分布,Q代表心拍真实概率分布,H代表的类即为CNN模型预测的类。

2 实验与分析

本文在MIT-BIH心电图数据库上进行了实验。本章详细介绍了ECG心拍数据、心电图信号预处理、CNN模型的结构及参数设置、实验流程等。此外,对本文的实验结果进行了分析与讨论。

2.1 ECG和数据库简介

ECG是记录身体皮肤表面连续心脏搏动产生的微弱电信号的曲线。标准的ECG[12](如图2)由P波、QRS波、T波和U波组成,一个完整的ECG时间约0.72 s。

图2 标准ECGFig. 2 Standard ECG

本文使用国际公认标准的MIT-BIH心电图数据库,它有48条记录,采样频率为360 Hz,每条记录时间为30 min左右,由头文件[.hea]、数据文件[.dat]、注释文件[.atr]组成,大概有65万个数据点。在MIT-BIH心电图数据库中一个心拍(一个样本)大约有260个数据点(心拍时间×采样频率:0.72×360=259.2)组成,因此,本文提取256个点(一个心拍)作为CNN模型的输入特征。

本文依据美国医疗仪器促进协会(Association for the Advancement of Medical Instrumentation, AAMI)对ECG心拍的分类标准,将ECG心拍分为正常类(N)、室上性心律异常(S)、室性心律异常(V)、融合心跳(F)、未确定(Q)五类,并将MIT-BIH数据库中48条记录文件分为训练集和测试集,并总结了5类[13]心拍的数据量(如表1)。其中测试集记录文件名包括100, 103, 105, 111, 113, 117, 121, 123, 200, 202, 210, 212, 213, 214, 219, 221, 222, 228, 231, 232, 233, 234;训练集记录文件名包括101, 106, 108, 109, 112, 114, 115, 116, 118, 119, 122, 124, 201, 203, 205, 207, 208, 209, 215, 220, 223, 230。

表1 MIT-BIH数据库中不同类别心拍数量Tab. 1 Number of different types of heart beat in MIT-BIH database

表1显示Q类仅有15个心拍,因此舍弃Q类,本文只研究N、S、V、F四类心拍,同时为了更直观地分辨4类波形的形状,本文从MIT-BIH数据库4类心拍中随机提取了具有代表性的4个心拍,并绘制成心电波形如图3。从表1还可以看到S类和F类心拍样本较少,为了降低ECG心拍类别不平衡性,本文通过2点、3点、4点平滑滤波(求平均值)将S类扩大2倍,F类扩大4倍。

图3 四类心拍波形Fig. 3 Four types of heart beat waveforms

2.2 DB4小波去噪

心电信号通过导联线采集时,容易受到环境的影响,例如肌电干扰、工频干扰、基线漂移等, 因此,对心拍分类之前需要对ECG进行预处理去除噪声干扰。小波不仅可以解决信号的频域问题,也可以解决信号在时域上局部信息很难表达的问题, 其中,Daubechies小波具有指数多项式消失距、紧支集和正交等特性,因此本文使用Daubeachies小波去除噪声干扰。

Daubeachies小波没有明确的数学表达式由两尺度方程计算构造得到,Daubechies小波的两尺度函数[14]为:

(4)

随着消失距N增大,虽然波形的光滑性越好,但是hk的数量会增加,计算量增大。4阶消失距对应的小波函数和尺度函数都有连续的导函数, 因此本文使用四阶消失距(N=4)的Daubeachies小波对心电信号进行两次分解和重构去除噪声干扰,其中hk={0.230 4, 0.714 8, 0.630 9,-0.028,-0.187,-0.030 8,0.032 9,-0.010 6},k=[0,7],k∈Z。

2.3 识别心拍中CNN结构设计

CNN是由卷积层、池化层和全连接层组成的前馈神经网络,它可以稀疏网络连接、减少计算量、生成更深的数据特征。卷积层可以将上一层的感受野(局部数据块)映射为下一层的一个神经元,感受野的大小由卷积核决定,每一个神经元的权重个数是卷积核的大小。它有稀疏连接、参数共享、不变性等性质。卷积是对特征和权值乘积后的求和,以提取更深的特征。池化层可以通过求特征的平均值、最大值等,对特征进行降采样,裁剪原始数据的尺寸,进一步减少全连接中的参数个数,加快神经网络的计算速度,防止过拟合等。

本文参考LeNet5模型[15]设计了识别心拍的7层CNN结构(如图4),详细参数描述如表2。此外,识别心拍的CNN结构中卷积层过滤器的尺寸3×3,步长为1,使用全0填充;池化层过滤器的尺寸2×2,步长为2,使用全0填充,最大池化层;优化器为AdamOptimizer,学习效率0.000 1;激活函数为Relu;在LAYER层中的dropout,训练时的参数keep_prob=0.5,测试时的参数keep_prob=1.0。

根据MIT-BIH数据库提供的“.atr”文件中标注的心电图R尖峰的位置,提取R尖峰的前128个数据点、R尖峰后129个数据点、R尖峰,组成输入层的256个输入特征(一个心拍)。模型经过卷积、池化、softmax转化后输出一个4维概率分布。因为计算心拍交叉熵的预测值概率分布与真实值概率分布的维度需要相同,所以本文设置4类真实值概率分布为[1,0,0,0]代表N类、[0,1,0,0]代表S类、[0,0,1,0]代表V类、[0,0,0,1]代表F类。

表2 识别心拍的CNN结构参数Tab. 2 CNN structure parameters for identifying heart beat type

图4 识别心拍的CNN结构Fig. 4 CNN structure for identifying heart beat type

2.4 实验流程

本文识别ECG心拍的流程如图5。

图5 心拍识别流程Fig. 5 Flow chart of heart beat recognition

本文从MIT-BIH数据库中提取ECG训练数据集,经过去除噪声、滤波、增加样本后,从每类样本集中随机抽取1 500个样本,并将4类数据随机组合,50个ECG心拍样本为一组。使用组合的6 000个ECG心拍样本训练通用CNN模型,共迭代120次,计算通用CNN的权值和偏置,传递给识别心拍的类别CNN模型。然后使用每类样本集(每类1 500个样本)训练相应类别CNN模型(例如:N类样本集训练N类CNN模型),每个类别CNN模型迭代30次,得到4个类别CNN模型。

从MIT-BIH数据库中提取测试集,对测试集只进行了去除噪声、滤波,随机得到4类数据测试样本个数为N类44 238个、S类1 836个、V类3 221个、F类388个,随机组合后共49 690个测试样本。将测试集分别传递个4类训练好的模型,得到4个含有49 690个交叉熵的向量,求出4个交叉熵向量中同一心拍交叉熵最小的类别。

2.5 实验结果与分析

Se=TP/(TP+FN)×100%

(5)

P+=TP/(TP+FP)×100%

(6)

(7)

其中:TP代表该类别被正确分类个数;FN表示该类被错分为其他类的个数;FP表示不属于该类却被分类器分为该类的心拍个数。

表3 不同方法心拍分类性能对比 %Tab. 3 Performance comparison of different methods for heart beat classification %

由表3中参考文献的心拍识别指标观察到S类、F类的Se和P+比N类、V类的低,这是由心拍数据严重不平衡导致模型只能充分学习到心拍的共性特征,不能有效地学习到4类心拍的个性特征造成的。

上述分析表明,本文提出的构建CNN模型生成心拍特征的方法,在MIT-BIH心电图数据库上,对ECG四类心拍的识别指标高而稳定,较为有效地解决了由于心拍数据不均衡导致的心拍特征提取不充分、心拍识别性能不理想的问题。

3 结语

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!