设计应用

基于改进BP神经网络的心电信号分类方法

作者:王 莉,郭晓东,惠延波
发布日期:2019-06-17
来源:2019年电子技术应用第6期

0 引言

    心电图是心脏电活动在人体体表的反映,是检测和诊断心脏疾病的重要依据。早期心脏疾病诊断主要凭借医生丰富的经验,长时间诊断中可能存在误检或错检。随着计算机技术的快速发展,实现心电信号自动分析成为研究的热点[1]

    心电信号分类的本质是模式识别。常用的心电信号分类方法有支持向量机(Support Vector Machines,SVM)[2-3]、人工神经网络(Artificial Neural Networks,ANN)[4-5]、线性判别(Linear Discriminant,LD)和采用逻辑回归的储层计算(Reservoir Computing with Logistic Regression,RC)[6],其中,采用最广泛的分类方法是人工神经网络。BP神经网络是一种按误差逆传播算法训练的多层前馈神经网络,具有自组织、自学习、自适应的能力,且原理简单、易于实现,是目前应用最广泛的神经网络模型之一。但是BP神经网络存在学习过程收敛速度慢、学习效率低和学习过程易陷于局部极小等局限。针对BP神经网络的缺陷,许多学者提出了优化BP网络的学习算法,常见的有遗传算法[7-8]、粒子群算法等[9-10]。本文结合BP神经网络的结构和学习规则,采用附加动量-自适应学习速率调整算法优化BP神经网络,并将其用于心电信号分类检测中。

    基于心电信号分类的样本集主要来源于心电信号的形态特征和波形特征。在研究中常用的形态特征有P波振幅、QRS波振幅、T波振幅、PR间期、QRS间期、ST间期、RR间期等,这些特征可以通过特征点定位算法获得,但是目前只有QRS波定位检测算法比较成熟,其他的特征点定位算法的精度和准确度仍有待提高[11]。因此,采用心电信号形态特征实现心电信号自动检测难度较大。在心电信号分类中,虽然采用波形特征不会丢失重要的特征信息,但是直接将整个心拍作为特征集,可能会遭遇“维数灾难”问题。所以,在分类之前需要对心电样本降维,常用的降维方法有主成分分析法(Principal Component Analysis,PCA)、拉普拉斯特征映射(Laplacian Eigenmaps,LE)、小波变换(Wavelet Transform,WT)等。本文选择心电信号的波形特征作为样本集,并采用PCA对样本降维处理。

1 改进的BP神经网络算法

    BP网络是一种多层前馈神经网络,由输入层、隐含层和输出层组成。层与层之间有两种信号在流通:一种是工作信号,它是施加输入信号后向前传播直到在输出端产生实际输出的信号,是输入和权值的函数;另一种是误差信号,误差信号是网络实际输出与期望输出间的差值,它由输出端开始逐层向后传播。图1是一个典型的3层BP神经网络的结构图,其中xj表示输入层第j个节点的输入,j=1,…,M;wi,j表示隐含层第i个节点到输入层第j个节点之间的权值;θi表示隐含层第i个节点的阈值;φ表示隐含层的激励函数;wk,i表示输出层第k个节点到隐含层第i个节点之间的权值,i=1,…,q;ak表示输出层第k个节点的阈值,k=1,…,L;Ψ表示输出层的激励函数;Ok表示输出层第k个节点的输出。

jsj4-t1.gif

    BP算法简单、易行、计算量小、并行性强,是神经网络训练采用最多也是最成熟的算法之一。由于BP算法采用最速下降反向传播算法,按误差函数的负梯度方向修改权值,因而通常存在两方面缺点:(1)学习效率低,收敛速度慢;(2)易陷入局部极小状态。

    针对BP算法的局限性,本文采用附加动量-自适应学习速率法改进。附加动量法是在反向传播法的基础上在每一个权值的变化上加上一项正比于前次权值(或阈值)变化量的值,并根据反向传播法来产生新的权值(或阈值)变化。带有附加动量因子的权值和阈值调节公式为:

     jsj4-gs1-2.gif

其中,k为训练次数;mc为动量因子,一般取0.95左右。

    在进行附加动量法的训练过程中,为防止修正的权值使得误差过大或过小,必须加进条件判断以正确使用权值修正公式。训练程序中采用动量法的判断条件为:

    jsj4-gs3.gif

其中,E(k)为第k步误差平方和。

    自适应学习速率通过检查权值是否真正降低了误差函数作为学习速率准则:如果是,则说明所选的学习速率小,可以增加一个量;若不是,就应该减小学习速率的值。在训练过程中采用的自适应学习速率调整公式为:

    jsj4-gs4.gif

其中,E(k)为第k步误差平方和。

    附加动量使BP算法可以找到全局最优解,避免陷入局部最小。采用自适应学习速率使BP算法可以缩短训练时间。采用这两种方法训练神经网络可以有效改进BP算法的缺陷。

2 实验数据

    本研究中用于分析的心电信号均来自于MIT-BIH Arrhythmia Database,该数据库包含48组心电数据,每组记录约650 000个采样点,采样频率为360 Hz,时间长度一般为30 min。每一数据样本包含3个文件:头文件(.hea)、数据文件(.dat)和注释文件(.atr),其中注释文件是心电诊断专家对信号分析的结果,包括心跳、节律和信号质量等。结合心电专家对心电样本的标注,表1统计了48组心电数据中心拍类型及数量。

jsj4-b1.gif

    网络的性能与训练用的样本密切相关。一般来说,训练样本数越多,训练结果越能正确反映其内在规律,但当样本数多到一定程度时,网络的精度也很难提高,训练误差与样本数之间的关系如图2所示。同时,网络训练中的样本的选择要注意样本类别的均衡,尽量使每个类别的样本数量大致相等。即使是同一类样本也要考虑样本的多样性与均匀性。因此,本文在选择训练样本时,主要针对正常心拍(N)、左束支传导阻滞心拍(L)、右束支传导阻滞心拍(R)和室性早搏心拍(V)4种心电信号进行分类识别,4种心拍类型的典型心电图如图3所示。

jsj4-t2.gif

jsj4-t3.gif

    本研究利用小波多分辨率分析原理,在小波域上对心电信号去除基线漂移干扰,然后运用极大极小值过零点原理检测R波峰,采用平面几何法定位QS波峰,在零基线附近定位QRS波起止点[12]。在准确定位R波峰的基础上,针对每个心拍,取R波前100个采样点数据和R波后150采样点数据组成原始的QRS波群时域集,即每个样本数据为250维。250维的样本含有过多的冗余数据,如果直接使用该样本进行网络训练,由于特征数量多,计算量大,分类器可能得不到有效的学习,更加容易出现过拟合问题。

    PCA是一种简化数据结构和降维处理的方法。这种方法将原始输入向量变换为各成分之间互不相关的向量。此外,变换后的向量按照方差大小排序:第一主成分的方差最大,第二主成分的方差其次,以此类推。通常只需要保留所转换向量的前几个主成分,它们最大程度地包含了原始向量的方差。因此,本文采用主成分分析法选取典型的特征进行降维处理。

    在MATLAB平台下,通过调用函数[coef,score,latent,tsquare]=princomp(x)对样本进行主成分分析,其中,x是待分析的样本数据,score是分析后的数据,且按照主成分贡献率大小排序;latent是对应列向量的贡献率;coef是系数矩阵,通过系数矩阵可以知道样本数据x是怎样转换为score的;tsquare反映每一个样本与样本集中心之间的距离。

    图4为PCA主成分-贡献率直方图,变换后样本矩阵前10个成分分量累计贡献率超过了90%,即可以用前10个主成分分量来近似反映原始样本的250维数据。经过实验验证,本文选取前25个主成分数据作为神经网络训练样本。

jsj4-t4.gif

3 实验仿真分析

    在本研究中,分别选取正常、左束支传导阻滞、右束支传导阻滞和室性早搏各5 000个心拍,共20 000个心拍作为样本,每组样本为25维。选择只有一个隐含层的3层BP神经网络,将心电信号提取的25组特征值作为输入,因此,网络输入层有25个神经元。隐含层神经元数目的选择往往需要根据设计者的经验和多次实验来确定,本研究根据参考公式n1=jsj4-t4-x1.gif+a设置隐含层为10个神经元,其中m为输出神经元数,n为输入单元数,a为[1,10]之间的常数。输出层为4种心电信号类型的分类结果,采用“n”中取“1”表示法,即分别用1000、0100、0010、0001表示正常心拍、室性早搏心拍、右束支传导阻滞心拍和左束支传导阻滞心拍,所以输出层设置为4个神经元。综上所述,BP网络的拓扑结构为25-10-4。

    随机选取10 000组样本作为训练样本,另外10 000组样本作为测试样本,应用改进神经网络算法对样本进行训练。图5展示了算法迭代次数对网络均方误差的影响,从图5中标出的圆圈可以看出,迭代次数为16次时验证集误差最小,最小误差为0.010 812。图6为BP神经网络训练误差直方图,误差为目标值与输出值的差值,由图6矩形高度可以看出,分类结果误差绝对值在0.069 82和0.043 69时样本数最多。

jsj4-t5.gif

jsj4-t6.gif

    混淆矩阵是刻画模式识别问题中网络输出和目标输出的一个重要工具。图7是测试集在训练好的网络上测试结果的混淆矩阵。混淆矩阵(1,1)单元显示测试集中的2 452个正常心拍有2 445个被正确分类;(2,2)单元显示测试集中的2 506个室性早搏心拍有2 384个被正确分类;(3,3)单元显示测试集中的2 562个右束支传导阻滞心拍有2 547个被正确分类。同理,可知2 480个左束支传导阻滞心拍中有2 464个被正确分类;(3,2)单元显示有45个右束支传导阻滞心拍被误分类为室性早搏心拍。整个测试集的分类正确率为98.4%。

jsj4-t7.gif

    本文与文献[13]、文献[14]、文献[15]算法的分类结果进行了对比,如表2所示(Tar表示验证网络选取的样本数,Out表示网络正确分类样本数,Rec表示各类型心拍分类准确率,Acc表示整个样本集分类准确率):(1)与正常心拍和右束支传导阻滞心拍分类效果相比,室性早搏心拍和左束支传导阻滞心拍分类效果较差;(2)表2文献采用的算法中,训练之前对样本数据进行特征提取的算法分类效果优于直接对心电样本数据进行分类处理的算法;(3)文献[13]样本数据不均衡,左束支传导阻滞心拍识别率低的原因可能是由于随机选取的训练样本包含该类型心拍较少;文献[14]对比了BP神经网络和PNN神经网络分类结果,但是样本数目较少,要想提高网络的识别能力,则需要增加样本数目;文献[15]对比了SVM和PCA-SVM模式分类方法,结论是PCA-SVM模式分类方法的分类准确率比SVM模式分类方法的准确度提高了1.2%,但同样存在样本数较少的问题;本文样本数据均匀,对4类心拍进行分类验证,整体分类准确率较高。

jsj4-b2.gif

4 结论

    本文对MIT-BIH Arrhythmia Database数据库48组心电记录心拍类型进行了统计分析,选取4种典型心拍类型进行分类处理;采用附加动量-自适应学习速率优化BP神经网络,通过主成分分析对训练样本数据降维,选取了25个主成分变量作为每组样本特征。仿真分析结果表明该算法实现了对不同心拍类型的心电信号准确分类,其识别率达到98.4%。通过对比常用的心电分类算法,研究结果表明改进BP算法分类精度更高、收敛速度更快,对于心电疾病的自动诊断具有较高的应用价值。

参考文献

[1] 张梦新,廖远,刘文涵,等.基于SOPC的多导联ECG实时监测系统[J].电子技术应用,2018,44(8):56-59.

[2] RADOVAN S,JAKUB H,MARINA R,et al.SVM based ECG classification using rhythm and morphology features,cluster analysis and multilevel noise estimation[J].Computing in Cardiology,2017,44:1-4.

[3] VENKATESAN C,KARTHIGAIKUMAR P,PAUL A,et al.ECG signal preprocessing and SVM classifier-based abnor-mality detection in remote healthcare applications[J].IEEE Access,2018(6):9767-9773.

[4] DEWANGAN N K,SHUKLA S P.ECG arrhythmia classification using discrete wavelet transform and artificial neural network[C].IEEE International Conference on Recent Trends in Electronics.IEEE,2017.

[5] WEEMS A,HARDING M,CHOI A.Classification of the ECG signal using artificial neural network[C].Proceedings of the 3rd International Conference on Intelligent Technologies and Engineering Systems(ICITES2014).Springer International Publishing,2016.

[6] ESCALONA-MOR?魣N M A,SORIANO M C,FISCHER I,et al.Electrocardiogram classification using reservoir computing with logistic regression[J].IEEE Journal of Biomedical and Health Informatics,2017,19(3):892-898.

[7] 刘浩然,赵翠香,李轩,等.一种基于改进遗传算法的神经网络优化算法研究[J].仪器仪表学报,2016,37(7):1573-1580.

[8] 余明,陈锋,张广,等.应用遗传算法优化神经网络的致死性心电节律辨识算法研究[J].生物医学工程学杂志,2017,34(3):421-430.

[9] 张捍东,陶刘送.粒子群优化BP算法在液压系统故障诊断中应用[J].系统仿真学报,2016,28(5):1186-1190.

[10] 杨向萍,吴玉丹.基于PSO-BP神经网络的人体穴位定位系统设计[J].电子技术应用,2018,44(9):75-78.

[11] 叶继伦,孙纪光,吴跃胜,等.一种新型、快速心电P波检测算法[J].中国医疗器械杂志,2017,41(1):13-16.

[12] 王莉,郭晓东,惠延波,等.基于小波变换的QRS波特征提取算法研究与实现[J].自动化与仪表,2018,33(9):6-9,14.

[13] 王润,贺兵兵.基于神经网络的心电信号分类识别[J].现代计算机(专业版),2017(23):37-40.

[14] 张泾周,李陈,李婷,等.基于神经网络的心电信号分类方法研究[J].中国医疗器械杂志,2008(3):183-185,214.

[15] 卞水荣,顾媛媛,赵强.PCA-SVM模式分类方法在心电信号分析中的应用[J].电子设计工程,2018,26(20):37-41.




作者信息:

王  莉,郭晓东,惠延波

(河南工业大学 电气工程学院,河南 郑州450001)

此内容为AET网站原创,未经授权禁止转载。
心电信号 改进BP神经网络 主成分分析 智能诊断