APP下载

一种高效检测心律不齐的深度学习算法

2018-11-15陈宇飞曹仰杰

小型微型计算机系统 2018年11期
关键词:池化层卷积神经网络

陈宇飞,张 博,林 楠,曹仰杰

(郑州大学 软件与应用科技学院,郑州 450000)

1 引 言

心血管疾病(CardioVascular Disease,CVD)是一系列涉及人体内运送血液的器官和组织的疾病,是全球死亡和发病的首要原因[1].而心律不齐(cardiac arrhythmia)是发病率最高的心血管疾病,据统计数据显示,心律失常在普通人群中的发生概率在50%以上,而在患有心血管疾病的人群中,其发生概率上升到85%以上.心律不齐的出现,严重危害着患者的身体健康,同时也对患者的心理健康造成了一定程度的影响.心电图(ElectroCardioGram,ECG)是记录心脏电信号的过程,它可以反映出心脏兴奋的产生、传导和恢复过程中的生物电位变化,是诊断心律不齐的重要依据.

目前,心律不齐的检测是基于识别ECG中正常与异常心跳,但ECG数据量庞大,而医疗专家人数有限,造成医生的任务量非常繁重.使用计算机辅助ECG分析工具可以减轻医生的工作量,提高工作效率.目前,计算机辅助ECG分析方法中大部分都是基于传统的机器学习方法,如自组织映射[2]、独立成分分析[3]、神经网络[4],支持向量机[5],路径森林[6]等.虽然传统的机器学习方法在诸如MIT-BIH等标准数据库上取得了较好的分类结果,然而这些方法需要手动设计特征,造成工作量较大,严重影响算法的实际应用.因此,为了克服传统机器学习方法的缺点,一些研究者提出了基于深度学习的识别方法[7-10].深度学习方法可以自动提取ECG特征并分类,从而省去了手工提取特征的环节.研究表明,在识别精度和训练速度方面,深度学习方法要优于传统的机器学习方法[8,10].

卷积神经网络(Convolutional Neural Network,CNN)是当前深度学习应用最为广泛机器学习方法,它在图像识别、语音识别等方面获得良好表现,最近也已被用于医学研究领域.文献[8]使用CNN自动识别和分类5种不同的ECG心跳类型,其在有噪声数据和去噪声数据的准确率分别为93.47%和94.03%,说明了CNN在生物医学信号领域具有较大的潜力.文献[9]构建了一个34层卷积神经网络以诊断14类心律不齐,准确率可以媲美经验丰富的医生.但过多的网络层数增加了训练难度,学习速率也慢.文献[10]提出了一种ECG-CNN模型,其在11760条记录上分类结果的特异性达到了93.59%,但灵敏度仅为61.98%,该方法以牺牲灵敏度为代价而提高特异性,增加了漏诊的风险.上述方法中,由于模型结构复杂,造成模型运算量大,训练时间长,识别准确率不高等问题.

针对传统深度神经网络在心律不齐检测中存在的训练时间长、运算量大、识别率不高等问题,本文提出了一种简洁、高效的卷积神经网络模型(Simple but Efficient CNN,SE-CNN)用于自动检测ECG心律不齐,该模型使用单导联ECG数据构建了一个一维卷积神经网络,在网络层数、训练参数、运算时间等方面具有优势.在保证模型良好训练性能情况下,使其能够以较快的训练速度达到一个较高的识别精度.通过使用MIT-BIH心律失常数据库的数据进行验证,SE-CNN的准确率为96.41%,表明本文提出的方法具有良好的ECG识别性能及应用价值.

2 SE-CNN模型

2.1 问题定义

2.2 SE-CNN的结构

SE-CNN的基本结构如图1所示,其基本结构包括3部分:卷积层(C1,C3)、池化层(S2,S4)、全连接层(F1,F2,F3).通过卷积层和池化层交替执行提取特征,并将提取到的特征作为全连接层的输入进行分类.接下来,本文将描述每个层的工作原理.

图1 SE-CNN网络结构

1)卷积层

卷积层由层C1,C3组成,与传统二维CNN[11]不同,SE-CNN的卷积层均由大小为9*1的卷积核与上一层的特征图进行独立的一维卷积(卷积核数目均为30),再加上一个偏置,最后传递给一个非线性激活函数(如ReLU)而得到卷积层的输出.层C1,C3分别由30个1*352,30个1*168的特征图组成,计算过程如公式(1)所示:

(1)

2)池化层

池化层由层S2,S4组成,也称为取样层.卷积层是池化层的输入,卷积层的一个特征面与池化层中的一个特征面一一对应.池化层目的是降低卷积层输出的特量的维度,减少过拟合现象,使SE-CNN更加健壮.目前主流的方法有最大池化(max-pooling)和均值池化(mean-pooling),最大池化是取局部接受域中值最大的点,均值池化是对局部接受域中的所有值求均值[12,13].SE-CNN的池化层对卷积层的每个特征图均进行尺度2*1的最大池化操作,因此S2和S4分别由30个1*176,30个1*84的特征图组成.

3)全连接层

经过多个卷积层和池化层提取特征图之后,用全连接层(F1,F2,F3)连接所有特征,最后用softmax逻辑回归(softmax regression)进行分类.SE-CNN的输出是输入时间序列中所对应标签的预测概率分布.SE-CNN从第5层开始为全连接层,第7层为输出层,输出单元数为5,计算过程如下:

(2)

(3)

(4)

在卷积层C1中,使用30个9*1的卷积核对输入的ECG信号进行卷积操作,得到30个特征图,每个特征图的大小为(1*352).在池化层S2中,对C1的每个特征图进行尺度为2*1的最大池化操作,特征图数目仍为30,经池化之后每个特征图的大小为(1*176).C3设置了30个特征图,用9*1的卷积核对S2进行卷积,此时特征图大小为(1*168).在S4层中,对C3的每个特征图进行尺度为2*1的最大池化操作,特征图数目为30,此时特征图的大小为(1*84).在全连接层F1中,设置80个神经元,与S4层的特征图进行全连接.在全连接层F2中,设置70个神经元,与F1层的神经元进行全连接.输出层F3是与F2的一个全连接层,输出层F3设置5个神经元以对应5种ECG心跳类型.

3 实 验

3.1 MIT-BIH数据集

MIT-BIH数据库[14]共有48组心电数据,每组数据时长约30分钟,采样率为360Hz,共有650000个采样点,且每条记录标记了QRS波位置以及每个心拍对应疾病注释类型.每组数据包含两个导联的心电信号,由于双导联间数据与其导联内数据之间的关系是相互独立的,且本实验研究以一维模型为基本条件,所以从每组ECG数据中选取单导联作为本实验数据进行研究.

3.2 数据预处理

3.2.1 数据去噪

在实际临床检测中,心电信号通常被各种噪声干扰,比如工频干扰、基线漂移、肌电干扰等.为了使心电数据效果会更加精确,需要对数据进行相应的去噪处理.目前,大多数文献采用的去噪方法有低通滤波、带陷滤波器、小波变换以及零相移滤波器等[15-18].根据MIT-BIH数据特点,本文选用60Hz陷波滤波器去除工频干扰,并用小波变换去除高频噪声和基线漂移.

3.2.2 数据分类

MIT-BIH数据在每个心跳周期都标注有疾病注释,根据实验需求,将每组数据以R峰为中间点,向两端共取360个采样点作为一个数据样本.48组数据总共采集110281个样本,共对应24种标签注释.将MIT-BIH数据集中的心电节拍按照AAMI标准分为五大类,分别是正常(Normal,N)、室上性异常(Supraventricular ectopic,S)、心室异常(Ventricular ectopic,V)、融合(Fusion,F)、未分类的(unknown,Q).

3.2.3 增加数据与归一化

在分类后的心电数据中,每种心拍之间数据量差距较大,具有明显的数据不平衡现象,影响SE-CNN的特征学习,从而最终影响识别精确度.目前解决数据不平衡问题的方法主要有采样法、加权法以及对原始数据加噪处理等[8,19].然后根据心电类数据具有周期性等特点,通过“平移起始点”[19]法,总共生成465000个数据样本,每类心拍数量之比达到1∶1,这样不仅增加了训练样本数,解决了数据不平衡的问题,还增强了识别算法的鲁棒性.最后对每个样本数据再用Z-score归一化方法对数据进行完善.

3.3 评价指标

在机器学习方法中,通常用精确率(Accuracy,Acc)、灵敏度(Sensitivity,Sen)、特异度(Specificity,Spec)来评估算法的性能.Acc代表了该算法检测出真实患病的样本和真实无病的样本总和占所有样本的比率,Acc越高,说明该算法检测出样本真实情况的能力越强.Sen代表了该算法对这种疾病的检测能力,Sen越高,说明本算法检测此类疾病的能力越强.Spec代表了该算法对无病的检测能力,Spec越高,说明本算法检测无病的能力越强.它们的定义如下:

(5)

(6)

(7)

其中,True Positive (TP)、False Positive (FP)、False Negative (FN)、True Negative (TN)分别是属于该类且被分类器分为该类的样本数,不属于该类但被分类为该类的样本数,属于该类但被分类为不属于该类的样本数,不属于该类且被分类为不属于该类的样本数.

3.4 检测结果

本文采用10倍交叉验证[20]策略,将心电数据分成10份,9份作为训练数据,剩余1份作为测试数据,交叉验证重复10次试验,每次试验都会得出相应的评估结果精确率、灵敏度、特异度.最后,将10次结果的平均值作为算法整体性能的估计.本文工作在具有2个Intel Xeon E5-2650处理器和128G内存的服务器上进行训练.

图2 原始数据混淆矩阵图

本文分别使用原始MIT-BIH数据和去噪后的MIT-BIH数据进行试验.图2和图3分别表示原始数据和去噪数据的实验混淆矩阵,其中S、N、V、F和Q分别代表五类心拍.为了验证SE-CNN的有效性,与文献[8]中的研究成果进行对比(见表1).文献[8]是以R峰为检测中心,将ECG信号分割成260个采样点,使用Daubechies6小波滤波器进行去噪[21],与本文相同的是都是使用的Z-score方法对每个样本数据进行归一化处理.文献[8]中CNN模型采用的是9层网络架

图3 去噪数据混淆矩阵

构,分别是3个卷积层,3个池化层以及3个全连接层.CNN(A)和CNN(B)分别是用原始数据和无噪音数据对这9层网络架构训练得到的CNN模型.在CNN(A)和CNN(B)上的准确率分别是93.47%和94.03%.对于本文提出的SE-CNN模型,原始数据和去噪数据对应的识别准确率分别是95.42%和96.41%,表明去噪后的效果较好.对比可知,不管是在原始数据上的试验结果,还是在去噪数据上的实验结果,SE-CNN模型取得的结果均优于文献[8]中模型的结果,且CNN(A)和CNN(B)均是9层的网络结构,而本论提出的SE-CNN模型是7层,表明本文提出的模型复杂度较小且检测精度较高,具有一定的优越性.

最后,将本文算法与传统心律不齐检测算法进行比较(见表2).值得说明的是,所有对比方法的结果均是在MIT-BIH数据集上获取的.由表2可知,本文算法与传统算法的精度比较接近,然而传统方法需要手工提取特征,本文提出的算法结合了传统心律不齐检测方法所需的基本步骤,不需要手工编码特征,实现了端到端的ECG心律不齐的检测五分类.

表1 不同CNN分类模型的实验结果

表2 传统心律不齐检测算法与本文算法的比较

DWT:Discrete Wavelet Transform,ICA:Independent Component Analysis,PCA:Principal Component Analysis,RR:RR intervals,WPD:WaveletPacket Decomposition.GMM:Gaussian Mixture Model,LS-SVM:Least Square-Support Vector Machine,NN:Neural Network,PNN:Probabilistic Neural Network,RF:Random Forest,SVM:Support Vector Machine.

4 总 结

本文提出了一种简洁、高效的卷积神经网络模型SE-CNN用于ECG心律不齐的自动检测.针对传统深度神经网络训练时间长、运算量大、以及表现性能不高等问题,本文采用具有较少层数的一维卷积神经网络对单导联ECG信号进行识别,在简化了模型复杂度的同时保证良好了的训练性能.与其它基于CNN的检测方法相比,本文提出的方法具有更高的识别率和运算效率;与传统检测方法相比,SE-CNN摆脱了手工编码特征的依赖,实现了端到端的ECG心律不齐的检测.进一步工作是以SE-CNN为算法基础,使用多导联ECG信号以提高心律不齐检测的精度,并将其应用于其它心血管疾病的检测.

猜你喜欢

池化层卷积神经网络
基于递归模糊神经网络的风电平滑控制策略
基于3D-Winograd的快速卷积算法设计及FPGA实现
改进深度卷积神经网络及其在变工况滚动轴承故障诊断中的应用
基于卷积神经网络的纸币分类与点钞
基于深度学习卷积神经网络的人体行为识别研究
卷积神经网络的分析与设计
神经网络抑制无线通信干扰探究
从滤波器理解卷积
基于神经网络的中小学生情感分析
基于傅里叶域卷积表示的目标跟踪算法