一种基于深度学习的心电信号分类方法*
2019-10-18曾启明
曾启明
一种基于深度学习的心电信号分类方法*
曾启明
(深圳职业技术学院电子与通信工程学院,广东 深圳 518055)
提出了一种基于深度学习人工神经网络的心电信号分类方法.方法直接从原始数据抽象网络各层次上的基底特征,取代了基本波形定位和特征的人为选定.隐含层节点数逐级下降和深度学习的多隐含层深架构的采用,有效避免了已有方法中的定域性问题和网络规模.基于MIT-BIH数据库的实验表明,与传统BP网络和蚁群算法的分类方法相比,该方法总分类精度达93.3%.
心电信号;深度学习;人工神经网络;分类
心电信号(Electrocardiography,ECG)是人类心脏进行生理活动时,通过体表电极采集所得的时变电位信号,包含了丰富的生物学信息,在医学诊断和研究中具有重要意义.现有的ECG信号分类方法主要分为两类:基于特征提取的分类方法[1]和基于人工神经网络(Artificial Neural Network,ANN)的分类方法[2].基于特征提取的ECG信号分类方法,包含特征提取和分类预测2个主要部分.特征提取是指检测定位ECG信号的P波、QRS波群、T波及U波4种基本波形,以此获取预定义的特征信息.常用的波形检测算法包括峰值检测、小波分析等.而所提取特征一般包括:4种基本波形的时长与形态、ST段时长、PR间期时长、QT间期时长、以及RR间期时长等.分类预测是指使用机器学习方法对所提取的特征信息进行分类,以判定是否患有特定疾病.常用算法包括支持向量机(Support Vector Machine,SVM)[3]和神经网络[4]等.基于ANN的ECG信号分类方法,一般使用原始心电信号或其特征数据作为输入,并将特定疾病作为分类输出.与机器学习算法相比,基于ANN的检测方法对基本波形定位精度要求较低,泛化性能良好,且可同时判定多种目标疾病状态.传统ANN通常使用反向传播算法(Back-Propagation,BP)[5]进行训练.
现有基于特征提取与机器学习的ECG信号分类方法,其缺点包括两方面:首先、特征提取依赖于4种基本波形的检测与定位.若波形定位不准确,则所提取的特征信息也将有所偏差,导致分类性能显著下降.而心电信号由人体实际生理过程产生,其在每个心动周期中的数据都包含一定的差异,且由于目标个体、采集方法等原因可能导致多种失真,造成预设的波形定位算法失效.从而影响检测结果;其次,医用ECG信号的采集频率应达400Hz以上,且需连续获取30 s的数据,从而产生至少12000个数据点.ECG信号的分析属于非线性高维机器学习问题.若分类算法缺少稀疏化限制,则极易产生定域性问题,导致泛化性能严重下降,所需训练样本数显著上升.而稀疏化是很多现有机器学习算法所不具备的.
现有基于ANN的ECG信号分类方法,其主要缺点在于:首先,传统ANN一般仅具有一个隐含层,属于浅架构.对于心电信号一类的非线性特征空间问题,需大量隐层节点才能进行有效建模,且其数量随输入节点的增加呈指数增长.当心电信号维数较高时,ANN的输入节点数也高,其所需的架构规模往往远超合理范围,且用于训练的样本数量也将极为庞大.导致检测方法难以实际应用.其次,传统ANN通常使用反向传播算法进行训练,可在浅架构中获得良好的参数优化效果.但对于包含多个隐含层的深度学习ANN网络,则难以获得令人满意的结果.从而影响了疾病检测准确率.
为避免上述问题,近年来学术界对ANN进行了有效扩展,提出了多隐含层深度学习(Deep Learning)的概念.本文基于深度学习算法,提出了一种用于ECG信号的高效分类方法.
1 基于深度学习的ECG信号分类方法
1.1 心电信号的预处理
为避免人为预设特征带来的问题,应将采集获得的原始心电信号,直接作为深度学习ANN网络的输入数据,并通过多隐含层结构自动提取其中的重要信息,以获得更佳的检测效果.可从原始数据中自动抽象各层次上的基底特征,是深度学习ANN的主要优势之一.而这一方法也避免了因基本波形定位失准,造成预设特征提取发生偏差的状况.
在将深度学习ANN用于实际疾病检测前,需先使用带标注的心电信号样本集对其进行训练.设若有原始心电信号集Θ= {(1,1), (2,2),(3,3), …,(,)},其中为第∈个心电信号样本,其维度为;为对应的标签矢量,包含了需检测的多种疾病具体状态(如是否患有心室肥大,是否患有高、低钙血症等).在本方法中,首先使用特征标准化对各原始信号进行预处理,使其具有0均值及单位方差:
其中,f为样本在第维上的信号值;函数E(·)表示矢量均值;var(·)表示矢量方差;= {f|∈}为Θ中所有信号样本在第维上数值所构成的矢量.处理后,信号取值范围变为[-1, 1].
使用PCA对其进行降维与白化.因具有0均值,故计算协方差矩阵Σ为:
设定降维后信号样本维数为,则可计算Σ的前个特征矢量为1,2, …,,其对应特征值为1,2, …,λ.通过构造酉矩阵U = [1,2, …,]×N,可对各心电信号进行PCA白化降维有:
其中为正则化常数,一般取值为= 1E-5.
最后,将预处理后的信号样本与标签矢量,构成输入心电信号集Θ={(1,1), (2,2), (3,3), … , (',)},用于深度学习ANN网络的训练.
1.2 使用自编码算法训练隐含层
使用栈式自编码器构造深度学习ANN网络,并采用BP算法训练各隐含层节点参数及进行网络整体微调.如图1所示,设若最终完整的ANN网络具有1个输入层,1个输出层,以及个隐含层.则需首先使用自编码算法,依次单独设计各隐含层中节点的参数.
对于第∈个隐含层,设其节点数为P,构造3层自编码训练网络如图2所示.其输入为第-1隐含层的P-1个节点输出-1=[h-1,1,h-1,2, …,h-1,Pl-1],有P-1>P.由于预处理后的心电信号取值范围为[-1, 1],故选取双曲正切函数(tanh)作为自编码训练网络隐含层与输出层的激活函数.则隐含层节点输出为:
其中,1为隐含层权值矩阵;1为隐含层偏置矢量.
类似有输出层节点为:
其中,2为输出层权值矩阵,2为输出层偏置矢量.输出矢量= [O,1,O,2, …,O,Pl-1]同样包含P-1个节点.
在自编码训练算法中,需使与-1尽可能接近.设定差异代价函数有:
图1 使用栈式自编码器训练深度学习ANN
图2 自编码训练网络
其中,‖·‖2表示矢量的2范数.此外,为使隐含层节点的表达尽可能稀疏,需加入1正则化约束.实验结果表明,1正则化可在心电信号数据上,获得比其它稀疏化约束更佳的效果.故设定稀疏代价函数为隐含层节点输出矢量的1范数:
从而完整代价函数为:
其中,= {1,2},= {1,2}为自编码训练网络模型.参数为拉格朗日乘数,用于控制隐含层输出的稀疏程度.通过使用BP算法训练与,可使此代价函数最小化,亦即获得最佳的自编码训练结果.
通过使训练网络输出与输入-1最大近似,并设定隐含层节点数P严格小于输入节点数P-1,所获得的隐含层输出可视作输入-1更为抽象的表达.而1正则化的引入,则保证了这一表达具有充分的稀疏性.在当前训练完成后,隐含层输出矢量输出将被用于下一隐含层 (+1层) 的训练.而隐含层节点及其参数1、1则保存用于构造完整的深度学习ANN网络.
1.3 构造疾病预测深度学习ANN网络
如图3所示,在训练并构造疾病检测深度学习ANN时,首先将预处理后的心电信号集Θ中每个样本对 (',),作为首隐含层 (= 1) 的输入.即有0=,∈Θ,0=.而后,构造训练网络,并使用自编码算法设计隐含层节点的参数,得到权值矩阵11及偏置矢量11.其方法如上一小节所述.则对于每个输入的心电信号样本',都有对应隐含层节点输出矢量为1.从而构造= 1层的自学习信号集Φ1= {(11,1), (12,1), …, (1,)},用于下一隐含层的训练.
对于第∈ [2,]个隐含层,使用近似方法进行训练.设若上一层所得的自学习信号集为Φ-1= {(-11,1), (-12,2), …, (1,)},则将其中每个输出矢量-1,作为当前自编码训练网络的输入,用于设计隐含层节点参数.其方法亦如上一小节所述,并可类似获得权值矩阵1、偏置矢量1、以及自学习信号集Φ.重复这一过程直至=.
对于输出层,设其输入为最后隐含层 (=) 的自学习信号集Φ,包含了维疾病标签矢量= [t1,t2, …,t].则相应构造个输出节点,并根据各标签t∈选择不同的节点类型:若t对应疾病状态集仅含= 2个独立状态,如t= {1:正常,2:室上性早搏},则使用逻辑回归输出节点;若t对应疾病状态集含有> 2个独立状态,如t= {1:逸搏,2:正常,3:其他},则应使用Softmax回归输出节点.
图3 构造心电信号疾病检测ANN网络
由于逻辑回归可视作Softmax回归在仅有两种疾病状态时的特殊情况,故当进行任意第∈个输出节点的参数训练时,可使用相同的代价函数如下:
其中,J为差异代价函数有:
式中,为输出节点的模型参数矩阵;为其在第∈行的行矢量,≥ 2为疾病状态总个数;b为偏置值.
函数1(O)为示性函数,其中O为节点在输入样本时的输出值,其值计算如下:
稀疏代价函数ρ定义为参数矩阵的1范数:
通过将Φ中的每个样本对 (,)作为训练输入,可使用梯度下降法设计各输出节点的最佳权值矩阵与偏置矢量,从而获得良好分类检测效果.
在对各层分别进行训练后,将所得的个隐含层节点及其权值矩阵1与偏置矢量1,以及各输出层节点及其参数矩阵θ与偏置值b,依次栈式叠加,构成完整的心电信号疾病检测ANN网络.最后,使用BP算法其整体参数进行微调,以进一步提升分类准确性.其过程与传统ANN网络相同.
在训练完成后,则此深度学习ANN网络可用于多种疾病的有效检测.对于新输入的心电信号样本,首先同样使用矩阵U对其进行白化降维预处理,而后送入ANN网络进行分析与并行分类,获得对应的疾病状态矢量输出为.则其数值有效描述了样本所包含的多种疾病状态,可极大方便后续科研与临床应用.
2 实验结果及讨论
本实验中,深度学习ANN网络的训练样本采用美国麻省理工学院的MIT-BIH心律失常数据库[6],数据库包含48组带注释的心电记录,约65万个采样点.实验平台为Core i5-4570,8GB内存的64位Windows7操作系统,代码基于Python语言编写.
在分类目标的设定上,以美国医疗仪器促进协会推荐的5类ECG信号节拍为主要类别,结合MIT-BIH心律失常数据库的信号特征,每个主要类别下细分为若干项次类别,具体设置见表1.在样本数量上,训练过程截取数据库中5类ECG信号的心搏个数各100个,共500个样本.测试集截取各类心搏个数各200个,共1000个样本.
为了评价基于深度学习的ECG分类方法性能,实验过程中采用了传统的BP算法和蚁群算法[7]进行测试.实验结果见表2,表中精度是指不同类别下正确分类的心搏数/心搏总数,总的分类精度是指所有正确分类的心搏数/总心搏数.
表1 ECG信号分类目标设置
表2 ECG分类方法的性能比较 (%)
注:各类别精度下方括号内的数字为正确分类的心搏个数.
根据实验结果,基于深度学习ANN网络的ECG分类方法的总分类精度达93.21%,在性能上要明显优于现有基于BP网络和蚁群算法的相关分类方法.在未分类心跳(类别E)的分类精度(84%)明显低于其他类别,这是由于样本特征设定的不确定性造成的.随着样本数量的增大,样本特征的增加,本方法的识别率存在进一步提高的可能.虽然深度学习ANN网络的训练过程计算复杂度较高,但仅需离线进行一次即可.而后续多次用于实际疾病检测时,其计算量远低于现有方法,可在更短的时间内获得更佳的分类结果.
3 结 论
本文提出的基于深度学习的ECG信号的分类方法具有3个特点:1)实现了输入数据中的重要特征的自动抽象,不依赖于人为选定,提高样本准确性;2)深度学习ANN网络隐含层节点数的逐级下降,有效保证了网络在剩余维度上的处理性能,避免了现有方法中的定域性问题;3)深度学习的多隐含层深架构可以有效控制网络规模,其所需节点总数远低于传统单隐含层ANN网络.
[1] Chazal P D, Reilly R B. A Patient-Adapting Heartbeat Classifier Using ECG Morphology and Heartbeat Interval Features[J].
, 2006,53(12):2535-2543.
[2] Kiranyaz S, Ince T, Gabbouj M.Real-time patient- specific ECG classification by 1-D convolutional neural networks[J].,2015,63(3):664-675.
[3] Shahbudin S, Shamsudin S N,Mohamad H. Discrimina- ting ECG signals using support vector machines [C]/IEEE Symposium on Computer Applications & Industrial Electronics (ISCAIE), IEEE, 2015.
[4] Chen TH,Zheng Y,Han LQ, et al.Research on noninvasive diagnosis for coronary heart disease based on neural network[J].,2008,21(6):513-517.
[5] Hari MR, Anurag T. ECG signal classification using wavelet transform and Back Propagation Neural Network [C]/2012 5th International Conference on Computers and Devices for Communication (CODEC), IEEE, 2013.
[6] Moody G B, Mark R G. The impact of the MIT-BIH arrhythmia database[J]., 2001,20(3):45-50.
[7] Berat D, Mehmet K. ECG beat classification using Ant Colony Optimization for Continuous Domains [C]/ National Conference on Electrical, Electronics and Computer Engineering, IEEE, 2011.
An ECG Signal Classification Method Based on Deep Learning
ZENG Qiming
()
An ECG signal classification method based on deep learning artificial neural network is proposed in this paper. Instead of manual selection of basic wave form positioning and features, this method directly abstracts the base features at each level of the network from the original data. A step-by-step reduction of the hidden layer nodes and multi-hidden layer architecture of the deep learning makes the new method effectively avoid the localization and large network scale in the existing methods. Experiments based on the MIT-BIH database show that, compared with the traditional BP network and ant colony algorithm classification methods, the proposed method can obtain better performance.
ECG; deep learning; ANN; classification
10.13899/j.cnki.szptxb.2019.05.003
2019-03-17
国家自然科学基金资助项目(61471245,U1201256),国家教学资源库子项目(2017-B03),深职院校级科研资助项目(7017-22J190529991,9003-04180333,9003-04170301)
曾启明(1984-),男,广东清远人,博士,主要研究方向:人体体征信号处理.
TN391
A
1672-0318(2019)05-0014-05