心电信号记录了心脏每一心动周期所产生的电位变化,是重要的生命特征和评价心脏健康状况的重要依据.心脏病是导致人类死亡的首要原因,根据世界卫生组织(WTO)统计数据显示,2015年约有1 770万人死于心血管疾病,且心脏病有低龄化的趋势[1].心律失常是心血管疾病中最为常见的病症之一, 长期心律失常不仅会导致严重的心脏病,由于人们对自身健康的重视和医疗资源的不平衡,基于心律失常分类算法的计算机辅助医疗手段应时而生[2].根据美国医疗仪器促进协会(AAMI)制定的标准,心拍可以被分为5大类:非异位(N)、室上性异位(S)、室性异位(V)、融合心跳(F)和未知心跳(Q)[3].能够准确、快速地识别出异常心律,对人们了解自身心脏的健康状况、挽救病人生命具有重要意义.
随着信息技术和人工智能技术的发展,心电自动分类方法已经得到了长足的发展,目前对于心电图的分类识别主要包含两类:基于波形形态的分类方法和基于波形特征的分类方法.基于波形形态的方法,根据提取的特征波形计算每个波段之间的间期,每个波的幅值、波宽、斜率等特征,结合医学上的诊断规则判断.
而基于波形特征的分类算法,主要包含信号预处理、特征提取和分类识别3个部分.心电图一般含有多个心拍,一个心拍由P波、QRS波群、T波等构成.提取基于波形形态的心电信息特征需要对这些波形进行准确检测,常见的波形检测算法有小波变换[4]、模板匹配法[5]、图形识别法[6]、能量阈值法[7]等.目前基于R波的检测方法准确率比较高,而P波、T波幅值低,特征提取算法仍然不够成熟.心电图特征提取方法还包括小波变换法[8]、功率谱特征[9]、高阶统计量法[10]、主成分分析[11]等.李坤阳等[12]结合小波变换和形态学检测出QRS波群的特征点,由QRS波宽和RR间期等参数,结合医疗知识对心拍进行4分类,准确率达到94.2%. 2016年Li等[13]利用小波包分解、小波包信息熵和RR间期,由随机森林算法对心电信号进行五分类,最终到达了94.61%的准确率.Khazaee等[14]首先计算心电信号的功率谱并用于心电分类.Elhaj等[15]将高阶统计量等非线性特征与独立成分分析得到的非线性特征与对离散小波变换系数进行主成分分析得到的线性特征相结合.传统的心电图分类算法的缺陷在于需要设计特征提取方法提取有用信息,从而结合机器学习算法进行分类,在这一过程中使用PCA、小波变换等方法的非线性拟合能力有限,而且必然伴随着部分信息的丢失,当提取的特征不能反应数据中的内在属性,分类算法的效果表现将会很差.Kiranyaz等[16]提出将一维卷积神经网络用于心电信号分类.
与传统方法不同,基于深度学习的方法具有从ECG信号中自我学习有用特征的能力,从而从数据中挖掘复杂的关联模式和丰富的信息.如果使用深度神经网络(DNN), 其假设神经元的输入的数据是相互独立的, 尽管可以通过增加纵向隐层神经元和横向增加层来提高非线性拟合能力,但是随着网络结构的加深,将会导致过拟合和梯度消失问题.同时ECG信号作为一个时间序列,对心拍分类时常常考虑到波形特征以及各个波形的联系,因此针对ECG信号的前后信息依赖关系和局部相关性,本文提出了结合LSTM和CNN的心电图分类模型.
1 方法 1.1 数据预处理在心电信号采集过程中常会夹杂着各种噪声,比如基线漂移、工频干扰、肌电扰动,噪声的存在会在一定程度上影响心电分类的准确率,为了抑制噪声,提高ECG信号的信噪比,需要在将数据传入神经网络之前进行滤波处理.本文采取小波方法降噪,具体对小波系数分析,将绝对值较小的系数置0,保留或收缩绝对值较大的系数,之后对处理后的小波系数进行重构得到消噪信号.由图 1可知,小波变换法比较好地消除了噪声,同时保留了有用信号.
长短时记忆网络(LSTM)是一种特殊的循环神经网络. LSTM与标准RNN(循环神经网络)的区别在于它通过引入门机制(gated mechanism)和记忆单元(memory cell),克服了传统RNN存在梯度消失和梯度爆炸的缺陷,在提取序列数据的长期依赖关系方面也表现更好,因此LSTM适合应用于具有时序特性的心电信号.
如图 2所示,LSTM的隐藏层由输入门(input gate)、输出门(output gate)、遗忘门(forget gate)组成.这3个控制门可以使LSTM神经元完成读、写、重置和更新长距离历史信息的操作.LSTM隐藏层的输入包括当前序列的输入xt,上一时刻隐藏层的状态ct-1,以及输出向量ht-1,经过计算得到当前状态输出ht并更新状态得到ct.LSTM的结构中遗忘门决定上一时刻细胞状态ct-1中的多少信息可以传递到当前时刻ct中.在输入门中tanh函数用来产生当前时刻信息的信息,sigmoid函数用来控制有多少新信息可以传递给细胞状态.输出门基于新的细胞状态ct得到当前状态对应的输出ht.
LSTM具体的更新方式如下[17]:
$ {i_t} = \sigma ({\mathit{\boldsymbol{W}}_{xi}}{x_t} + {\mathit{\boldsymbol{W}}_{hi}}{\mathit{\boldsymbol{h}}_{t - 1}} + {b_i}), $ | (1) |
$ {f_t} = \sigma ({\mathit{\boldsymbol{W}}_{xf}}{x_t} + {\mathit{\boldsymbol{W}}_{hf}}{\mathit{\boldsymbol{h}}_{t - 1}} + {b_f}), $ | (2) |
$ {o_t} = \sigma ({\mathit{\boldsymbol{W}}_{xo}}{x_t} + {\mathit{\boldsymbol{W}}_{ho}}{\mathit{\boldsymbol{h}}_{t - 1}} + {b_o}), $ | (3) |
$ {{\tilde c}_t} = {\rm{tanh}}({\mathit{\boldsymbol{W}}_{xc}}{x_t} + {\mathit{\boldsymbol{W}}_{hc}}{\mathit{\boldsymbol{h}}_{t - 1}} + {b_c}), $ | (4) |
$ {c_t} = {f_t} \cdot {c_{t - 1}} + {i_t} \cdot {{\tilde c}_t}, $ | (5) |
$ {\mathit{\boldsymbol{h}}_t} = {o_t} \cdot {\rm{tanh}}\left( {{c_t}} \right). $ | (6) |
式中:ct为记忆单元的状态信息;
根据式(5)可以知道,在LSTM中当前时刻的状态信息ct与此前的状态信息ct-1是线性关系.当遗忘门是打开的,即sigmoid单元输出接近为1的时候,不会出现梯度消失,新的状态信息是之前状态信息和当前时刻累计信息的加权平均,所以无论序列的长度如何,只要遗忘门是打开的,网络就能记住过去的状态信息,即LSTM能够捕捉长期依赖关系.
1.3 卷积神经网络卷积神经网络是一种前馈型神经网络,除输入层、输出层之外主要包含卷积层和池化层,其特殊的网络结构可以有效地降低神经网络的复杂性,在很多领域尤其是图像识别方面取得了巨大的成功[18].
其中卷积层输出通过卷积核与上一级输入层局部连接,根据步长逐步滑动窗口获得.对应的局部特征与卷积核的各个参数相乘,在滑动过程中卷积核的权值保持不变,即权值共享.通常每个卷积层有多个卷积核,可以提取到不同的特征.通过卷积获得了图像的特征之后可以直接根据这些特征训练分类器,但是这样计算量很大而且容易产生过拟合,因此在卷积层后面加入池化层来缩小特征图谱矩阵,减少计算量,同时增强了对特征识别的抗干扰能力,比如图片的变形和扭曲.CNN通过局部连接、权值共享和池化很大程度上降低了网络的复杂度.
对于多导联心电图,视为多通道的一维数据,因此本文利用一维卷积作为卷积层来提取心电信号特征,一维卷积神经网络结构如图 4所示.
在卷积层中神经元与输入层的一个局部窗口相连,一维卷积实际提取的是时间轴上的短期特征,能比较好的反映时间序列的局部相关特征.一维卷积层的第i个神经元的输出为
$ {y_i} = f(\sum\limits_{j = 1}^m {{\mathit{\boldsymbol{w}}_j}} \cdot {x_{i - j + m}} + b). $ |
式中: xt(t=1, 2, …, n)为输入的序列;wj为卷积核的权重系数矩阵;b为偏置系数;m为卷积核的个数;f为卷积层的激活函数.
1.4 结合LSTM和CNN的神经网络模型每种不同的深度学习方法都有独特的方式来提取特征,CNN模型通过卷积核来捕捉输入中的局部相关特征,但是滤波器尺寸的限制使得CNN难以学习到序列数据中的前后依赖关系,而LSTM通过引入记忆单元和门机制能够弥补这一缺陷.因此本文提出LSTM和CNN并行组合的深度学习模型来完成心电图的自动分类[19].
本文设计的LSTM-CNN模型如图 5所示,输入层的维度是300×2(见MIT-BIH数据库),由通过LSTM层提取时序特征,以及经过并行的卷积网络结构捕捉丰富的局部关联信息,将卷积特征和LSTM提取的时序特征融合到全连接层,最后由Softmax层输出多分类结果.
深度学习模型因为其结构特点具有很强的表达解释能力,但是当数据量较小的时候比较容易发生过拟合,在本文中心电图分类是一个不平衡问题,S、V、F、Q类的数量明显小于N类,因此增加样本数量有利于提高模型的泛化能力.在图像分类任务中,常采取镜像、旋转、尺度变换、裁剪、噪声扰动等方法扩充数据.考虑到心电数据的周期性,本文通过滑窗的方式来获取更多训练数据,即对于一个心搏可以通过移动窗口起始点位置获得包含完整心拍的多个训练样本.具体对训练集少数类样本进行滑窗取样处理,使5类ECG记录的数量接近一致.
为了验证和比较模型的分类效果,本文采用MIT-BIH数据库来验证模型效果.MITDB心律失常子数据库包含了48条ECG记录,每条记录长30 min左右,采样频率为360 Hz[20].每条ECG记录由两个导联组成,考虑到每条记录的导联并不相同,为了保持数据分布的一致,本文仅利用包括Ⅱ导联和V1导联的40条记录.为了和已发表的文献对比,根据R峰的位置对ECG信号进行分割,取R点前100个采样点和后199个点,包括R波在内的共300个采样点作为一个训练样本,最终从40条记录中提取共94 131个样本,将23 533个样本作为测试集,其余样本作为训练集.将心拍按AAMI标准划分为5类,5种类型的心拍的数量见表 2.
实验平台硬件配置为Intel i7-6700 CPU,显卡为GTX1060,内存是32 G,操作系统为Ubuntu 16.04系统,模型基于Python语言和Tensorflow框架实现.
在心跳分类的相关研究中,通常以准确性、特异性和敏感性为指标来评价模型的性能.混淆矩阵表示模型的分类结果的详细信息,在多分类问题中混淆矩阵的每一行代表真实类别,每一列代表预测类别.对于K类的多分类问题,混淆矩阵是一个K维的矩阵.
$ \begin{array}{l} \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;{\rm{Pred}}\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;1\;\;\;\;\;\; \vdots \;\;\;\;\;\;\;i\;\;\;\;\;\;\; \cdots \;\;\;\;\;\mathit{\boldsymbol{K}}\\ {\rm{Label}}\begin{array}{*{20}{c}} 1\\ \vdots \\ i\\ \vdots \\ \mathit{\boldsymbol{K}} \end{array}\left[ {\begin{array}{*{20}{c}} {n_{11}^{\rm{T}}}& \cdots &{n_{1i}^{\rm{F}}}& \cdots &{n_{1K}^{\rm{F}}}\\ \vdots & \ddots & \vdots & \ddots & \vdots \\ {n_{i1}^{\rm{F}}}& \cdots &{n_{ii}^{\rm{T}}}& \cdots &{n_{iK}^{\rm{F}}}\\ \vdots & \ddots & \vdots & \ddots & \vdots \\ {n_{K1}^{\rm{F}}}& \cdots &{n_{Ki}^{\rm{F}}}& \cdots &{n_{KK}^{\rm{T}}} \end{array}} \right]\begin{array}{*{20}{c}} {{C_1}}\\ \vdots \\ {{C_i}}\\ \vdots \\ {{C_K}} \end{array}.\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;{P_1}\;\;\;\; \cdots \;\;\;{P_i}\;\;\;\;\; \cdots \;\;\;\;\;{P_K} \end{array} $ |
式中:nijF为类别为i的样本的数量被归类为类j的数量,niiT为类别为i的样本的被正确分类的数量. Pi为所有样本被分类为i的数量,Ci为类别为i的样本数量.对于类别i,特异性、灵敏度和准确率的计算方式如下:
$ \begin{array}{*{20}{c}} {{\rm{Spe}} = \frac{{\sum\limits_{m \ne i} {\sum\limits_{l \ne i} {{n_{ml}}} } }}{{\sum\limits_{m = 1}^K {\sum\limits_{l = 1}^K {{n_{ml}}} } - {P_i}}}, }\\ {{\rm{Sen = }}\frac{{n_{ii}^{\rm{T}}}}{{{C_i}}}, }\\ {{\rm{Acc}} = \frac{{n_{ii}^{\rm{T}} + \sum\limits_{m \ne i} {\sum\limits_{l \ne i} {{n_{ml}}} } }}{{\sum\limits_{m = 1}^K {\sum\limits_{l = 1}^K {{n_{ml}}} } }}.} \end{array} $ |
式中:准确率(Acc)为被正确分类的心拍所占的比例;特异性(Spe)为所有负例中被正确分类的比例,衡量了模型对负例的识别能力;灵敏度(Sen)为所有正例中被正确分类的比例,衡量了模型对正例样本的识别能力.
2.3 结果与分析表 3的混淆矩阵表示LSTM和CNN并行组合模型的心电图分类结果.值得注意的是,由于不同类别样本的数量不平衡,模型对N, V, Q类都有比较好的识别能力,但是对S, F类的识别能力较差. N类的特异性较低,表示模型倾向于将非N类心拍分类为N类,即正常心拍,这在心脏病诊断中是危险的.
正如数据增强中提到的,本实验对少数类数据进行滑动窗口采样,以抑制样本不平衡对模型性能的负面影响.从表 4可以得知,LSTM和CNN并行组合模型经过类别平衡的数据训练后,S类和F类的灵敏度分别提高了7.65%和6.04%.通过比较证明了样本平衡策略提高了模型的分类性能.
表 5总结了已有的心电图分类算法5分类的结果,评价指标N-Sen,S-Sen,V-Sen,F-Sen,Q-Sen分别为每一类样本的敏感性.表中WPE为小波熵,RR为RR间期,RF为随机森林算法,WT为双尺度小波变换,LP为线性预测特征,DWT为离散小波变换,ICA为独立成分分析,HOS为高阶统计特征(higher order statistics),LS-SVM为最小二乘支持向量机.
基于各种特征提取方法的传统机器学习方法整体准确率较低,而且对异常分类的识别能力比较差,这表明常用的特征提取函数的拟合能力有限,未能完全捕捉到心电图中的隐藏特征.通过对比可以得出,本文通过结合LSTM和CNN的深度学习模型,即利用LSTM提取心电图的时序特性,以及利用CNN提取局部关联特征的能力,模型能够自动提取特征并达到更高的准确率.
2.4 讨论传统心电分类算法由特征提取和分类器两部分组成.使用PCA、LDA、ICA等方法构造特征后送入SVM等分类器训练和分类.PCA采用了K-L变换中的协方差变换矩阵,通过一系列的线性变换之后,找到一组正交的单位投影轴,并利用该投影轴重建原样本,ICA实现了盲源分离,LDA利用了训练样本的类别标记,三者都是线性模型,缺点在于容易造成高阶统计特征的缺失,使特征描述不充分.解决办法是引入核函数将样本映射到一个高维空间,问题在于选择核函数与核函数的参数较为困难.传统的心电特征提取方法非线性拟合能力有限,在对信号进行特征描述、剔除冗余噪声时,也丢失了部分有用信息,而且相比深度学习方法直接输入原始信号引入了中间误差;当采用多种特征融合的方式对信号进行描述,特征选择仍需大量实验验证且分类过程相对复杂.
本文采用的基于LSTM和CNN并行组合的心电图分类算法的输入是原始信号,模型本身包含了特征提取部分.将特征提取和分类过程独立进行的缺点在于当特征提取算法未能有效捕捉心电数据中的关联模式,分类器的表现较差时,分类效果的好坏无法自动反馈到特征提取过程.而本文提出的模型比较好地捕捉了信号的局部相关性和前后依赖关系,同时基于反向传播算法调整模型参数使得代价函数最小.
3 结论1) 本文针对ECG分类算法进行了深入的研究,针对心电图的特性,提出了结合LSTM和CNN并行组合的ECG自动分类模型,此方法能够提取出心电图的局部相关特征和长期依赖关系.相比传统的心电分类算法,LSTM-CNN模型能够自动提取到心电图的有效特征并准确判断心电图的类别且达到更高的分类性能,在MITDB的2万多个样本中测试结果准确率为99.11%,特异性为99.44%,灵敏度为97.27%.
2) 本文提出的模型不局限于心拍的类型,具有推广性和实际价值,可适用于不同类型的心电疾病诊断.在未来的工作中,网络结构及参数的选定、集成学习、从医疗知识方方面构造特征等方面都值得进一步研究,比如尝试基于Attention机制的LSTM模型,提取RR间期以及借鉴Resnet的残差块结构,加深网络提高泛化能力.
[1] |
World Health Organization. Cardiovascular diseases (CVDs)[EB/OL].[2017-07-05].http://www.who.int/mediacentre/factsheets/fs317/en
|
[2] |
宋俊雅, 袁永峰, 王宽全. 心室电传导模型的心律失常机制仿真分析[J]. 哈尔滨工业大学学报, 2014, 46(1): 34. SONG Junya, YUAN Yongfeng, WANG Kuanquan. Simulation of arrhythmia mechanism based on ventricular electrical conduction model[J]. Journal of Harbin Institute of Technology, 2014, 46(1): 34. |
[3] |
ANNAM J R, SURAMPUDI B R. AAMI based ECG heart-beat time-series clustering using unsupervised ELM and decision rule[C]//International Conference on Information Technology (ICIT). Bhubaneswar, India: IEEE, 2017. DOI: 10.1109/ICIT.2016.039
|
[4] |
STOJANOVI R, KARADAGLI D, MIRKOVI M, et al. A FPGA system for QRS complex detection based on integer wavelet transform[J]. Measurement Science Review, 2011, 11(4): 131. DOI:10.2478/v10048-011-0024-z |
[5] |
NAKAI Y, IZUMI S, NAKANO M, et al. Noise tolerant QRS detection using template matching with short-term autocorrelation[C]//Proceedings of the 36th Annual International Conference of the IEEE Engineering in Medicine and Biology Society. Chicago, IL: IEEE, 2014. DOI: 10.1109/EMBC.2014.6943522
|
[6] |
CHRISTOV I, GóMEZ-HERRERO G, KRASTEVA V, et al. Comparative study of morphological and time-frequency ECG descriptors for heartbeat classification[J]. Medical Engineering & Physics, 2006, 28(9): 876. DOI:10.1016/j.medengphy.2005.12.010 |
[7] |
CHOUHAN V S, MEHTA S S. Detection of QRS complexes in 12-lead ECG using adaptive quantized threshold[J]. International Journal of Computer Science and Network Security, 2008(1): 155. |
[8] |
MINHAS F, ARIF M. Robust electrocardiogram (ECG) beat classification using discrete wavelet transform[J]. Physiological Measurement, 2008, 29(5): 555. DOI:10.1016/j.vaccine.2009.01.115 |
[9] |
ZHANG Yatao, LIU Chengyu, WEI Shoushui, et al. ECG quality assessment based on a kernel support vector machine and genetic algorithm with a feature matrix[J]. Journal of Zhejiang University Science C: Computer & Electronics, 2014, 15(7): 564. DOI:10.1631/jzus.C1300264 |
[10] |
KUTLU Y, KUNTALP D. Feature extraction for ECG heartbeats using higher order statistics of WPD coefficients[J]. Computer Methods and Programs in Biomedicine, 2012, 105(3): 257. DOI:10.1016/j.cmpb.2011.10.002 |
[11] |
MARTIS R J, ACHARYA U R, MIN L C. ECG beat classification using PCA, LDA, ICA and discrete wavelet transform[J]. Biomedical Signal Processing and Control, 2013, 8(5): 437. DOI:10.1016/j.bspc.2013.01.005 |
[12] |
李坤阳, 胡广书. 基于心电图分析的心律失常分类[J]. 清华大学学报(自然科学版), 2009, 49(3): 416. LI Kunyang, HU Guangshu. Arrhythmia classification based on ECG analysis[J]. Journal of Tsinghua University (Science and Technology), 2009, 49(3): 416. DOI:10.16511/j.cnki.qhdxxb.2009.03.024 |
[13] |
LI Taiyong, ZHOU Min. ECG classification using wavelet packet entropy and random forests[J]. Entropy, 2016, 18(8): 285. DOI:10.3390/e18080285 |
[14] |
KHAZAEE A, EBRAHIMZADEH A. Classification of electrocardiogram signals with support vector machines and genetic algorithms using power spectral features[J]. Biomedical Signal Processing and Control, 2010, 5(4): 252. DOI:10.1016/j.bspc.2010.07.006 |
[15] |
ELHAJ F A, SALIM N, HARRIS A R, et al. Arrhythmia recognition and classification using combined linear and nonlinear features of ECG signals[J]. Computer Methods and Programs in Biomedicine, 2016, 127(C): 52. DOI:10.1016/j.cmpb.2015.12.024 |
[16] |
KIRANYAZ S, INCE T, HAMILA R, et al. Convolutional Neural Networks for patient-specific ECG classification[C]// Proceedings of the 37th Annual International Conference of the IEEE Engineering in Medicine and Biology Society (EMBC). Milan, Italy: IEEE, 2015. DOI: 10.1109/EMBC.2015.7318926
|
[17] |
CHAUHAN S, VIG L. Anomaly detection in ECG time signals via deep long short-term memory networks[C]//IEEE International Conference on Data Science & Advanced Analytics (DSAA). Paris, France: IEEE, 2015. DOI: 10.1109/DSAA.2015.7344872
|
[18] |
GU Jiuxiang, WANG Zhenhua, KUEN J, et al. Recent advances in convolutional neural networks[J/OL]. Pattern Recognition, 2015. http://hgpu.org/?p=11941
|
[19] |
DONAHUE J, HENDRICKS L A, GUADARRAMA S, et al. Long-term recurrent convolutional networks for visual recognition and description[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Boston, MA: IEEE, 2015: 2625. DOI: 10.1109/CVPR.2015.7298878
|
[20] |
PhysioNet. MIT-BIH arrhythmias database[EB/OL]. (2005-02-24). http://www.physionet.org/physiobank/database/mitdb
|
[21] |
ACHARYA U R, OH S L, HAGIWARA Y, et al. A deep convolutional neural network model to classify heartbeats[J]. Computers in Biology and Medicine, 2017, 89: 389. DOI:10.1016/j.compbiomed.2017.08.022 |
[22] |
LIN Chuncheng, YANG Chunmin. Heartbeat classification using normalized RR intervals and morphological features[C]// Proceedings of the International Symposium on Computer, Consumer and Control. Taichung, Taiwan: IEEE, 2014. DOI: 10.1109/IS3C.2014.175
|
[23] |
CAN Ye, COIMBRA M T, KUMAR B V K V. Arrhythmia detection and classification using morphological and dynamic features of ECG signals[C]//Annual International Conference of the IEEE Engineering in Medicine and Biology. Buenos Aires, Argentina: IEEE, 2010. DOI: 10.1109/IEMBS.2010.5627645
|
[24] |
MARTIS R J, ACHARYA U R, MANDANA K M, et al. Cardiac decision making using higher order spectra[J]. Biomedical Signal Processing and Control, 2013, 8(2): 193. DOI:10.1016/j.bspc.2012.08.004 |