(西安建筑科技大学 信息与控制工程学院, 西安 710055)
心律失常是一种常见的心血管疾病,会对人们的健康造成巨大危害。心律失常的及时检测和诊断可以有效预防恶性心脏疾病的发生[1]。随着便携式心电监测系统的广泛使用,面对长时海量的心电数据, 需要更加智能化的心律失常识别技术。
人们对心律失常的诊断主要是对心电信号中的每个异常心跳进行形态识别与分类,将单次心跳的形态特征信号称为一个心拍。目前已有众多学者对心律失常识别方法进行了研究,包括基于小波变换的识别算法[2],基于小波变换与支持向量机(SVM)的识别算法[3],独立成分分析与神经网络的心电识别算法[4],基于BP神经网络的识别算法[5]等等。除此之外,深度学习下的卷积神经网络(CNN)和长短时记忆网络(LSTM)在心律失常识别中也显示出良好的前景。例如,基于傅里叶变换与卷积神经网络的心电识别算法[6-7],基于模糊C均值深度信念网络的心电识别算法[8],基于深双向LSTM网络的心电识别算法[9]等等。
然而,不同节律的心电信号在发生心律失常时的信号形态会有所差别,间期特征和幅值特征会有所不同。若识别算法只针对包含P-QRS-T的心拍形态信号,会丢失相关间期特征与节律特征,易对分类造成影响。并且,截取P-QRS-T的心拍形态信号还需要额外设计QRS波群检测定位算法。因此有学者设计了针对整条信号片段的识别方法,例如文献[10]搭建了ResNet-34网络模型,对心电信号片段进行分类,该方法假设输入信号片段由一种心律失常类型组成,可预测该片段的心律失常类型。
本文基于U-NET全卷积神经网络设计了一种心电信号语义分割的识别方法。该方法省去了QRS检测与定位的步骤,将直接截取的心电信号片段作为识别对象,即片段中同时包含不同种心律失常类型的心拍,又同时包含完整心拍与边缘残缺心拍。采用神经网络语义分割的处理方式,将信号片段作为输入,标签地图作为输出,通过对不同种心拍情况的标注,准确地划分出混合类型心电片段中的心拍位置与类型。
U-Net全卷积神经网络起源于深度卷积神经网络。深度卷积神经网络广泛应用于信号识别与分类、目标检测与定位等大规模运算中。随着目标识别的任务要求不断提高,产生了更为精细的分类处理任务:语义分割。语义分割是指将每个像素点分类为属于对象类的过程。心电信号作为一种一维采样信号,因此可以用语义分割的方法切分出心拍,并且同时给出其中的心拍类型。
应用于语义分割的U-Net全卷机神经网络与传统卷积网络相比,没有全连接层结构,其结构包括卷积层、下采样层(池化层)和上采样层。U-Net的网络结构是一种编码器-解码器结构,编码器逐渐减少池化层的空间维度,解码器逐步修复物体的细节和空间维度。网络结构具有空间平移不变性,将整幅样本作为输入,标签地图作为输出,显著提高了语义分割的计算效率和预测性能。
在深度神经网络中,激活函数是用来为模型增加非线性机制。激活函数具有非线性、可微性、单调性。早期经常使用的激活函数有Sigmoid、Tanh等函数。例如:
(1)
(2)
式(1)和式(2)分别为Sigmoid函数和Tanh函数,其函数两侧均具有饱和区,在反向传播的过程中,容易出现梯度消失问题。
本文网络中结点的激活函数采用Relu函数。其优点在于梯度不饱和,计算快,在反向传播的过程中能够减少梯度消失的现象,同时通过Relu激活后的特征能最大程度保留特性,抑制不重要信息。其函数输出公式为:
f(x)=max(0,x)
(3)
卷积是对两个实变函数的一种数学运算。假设A和B为矩阵,大小分别为M×N和m×n,则卷积运算C=A⊗B可以表示为:
1≤i≤M-m+1,1≤j≤N-n+1
(4)
如式(4)所示,卷积核按照一定的步长在输入矩阵序列上进行卷积操作,通过对输入的卷积可以使得网络自动提取到高层的语义信息,无需手工提取特征的操作。
池化运算即下采样,是使用某一位置相邻输出的总体统计特征来代替网络在该位置的输出。当输入存在少量平移时,池化运算能够帮助表示输入近似不变。
在截取的心电信号片段中,我们只关心某一个特征是否出现,而无所谓其出现位置的前后,这时平移不变性显得极为重要。
对输入矩阵A进行池化,首先对其分块。设每块大小为λ×τ,则其中第ij个块可以表示为:
(5)
其中,(i-1)·λ+1≤s≤i·λ,(j-1)·τ+1≤t≤j·τ。
(6)
s≤i·λ,(j-1)·τ+1≤t≤j·τ}
(7)
如果用大小为λ×τ的块对矩阵A进行不重叠平均下采样,结果定义为:
(8)
相应地,对矩阵Davg进行倍数为λ×τ的不重叠平均上采样定义为:
avgupλ×τ(Davg)=Davg⊗1λ×τ
(9)
其中:1λ×τ是元素全为1的矩阵,⊗代表克罗内克积。
如果用大小为λ×τ的块对矩阵A进行不重叠最大下采样,结果定义为:
(10)
相应地,对矩阵Dmax=(dij)进行倍数为λ×τ的不重叠最大上采样定义为:
maxupλ×τ(Dmax)=(Uij)
(11)
其中:所有Uij=(ukl)λ×u都是大小为λ×τ的矩阵,每个元素定义为:
ukl
(12)
本文对U-Net网络进行修改,使其可以处理一维心电信号序列,从心电片段中提取信号特征信息进行逐点分析。
如图1所示,网络结构主要有两部分组成:收缩路径和扩展路径。收缩路径主要是用来捕捉心电信号的特征信息,与之相对称的扩展路径则是对所需要分割出来的心拍进行精准定位与语义分类。
图1 网络结构
在收缩路径中,进行卷积运算与二倍最大池化运算。每池化一次,特征图的长度减少一半,数量增加一倍。在扩展路径中,高分辨率的特征直接从压缩路径中复制,然后与后续卷积的上采样特征相结合,有效地将编码后的上下文信息传输到后续层。网路最后一层通过卷积运算输出预测标签地图。由于心电信号为低频信号,有意义的特征往往体现在较为长一点的波形上,因此模型大部分由核尺寸为32×1的一维卷积运算组成。卷积运算采用same模式,使得输出特征图尺寸保持不变,输出与输入因此而等长。
MIT-BIH心律失常标准数据库由美国麻省理工学院和Beth Israel医院合作建立。该数据库的数据由1975年到1979年间采集的4 000 多个动态心电图(Holter)数据组成。本文的心电信号片段取自MIT-BIH心律失常数据库,所有记录采样率为360 Hz,实验重点关注包含正常窦性搏动(Normal)、左束支传导阻滞(left bundle branch block,LBBB)、右束支传导阻滞(right bundle branch block,RBBB)、房性早搏(atrial premature beat,APB)和室性早搏(Ventricular premature beat,PVC)的信号片段。
本文将用于U-net训练的心电信号预处理成每条片段为5 s时长,即1 800个数据点,这些片段可能包含也可能不包含混合性心律失常。在不将单个片段内的所有节拍限制为单一的特定心律失常情况下,片段可能包含多种心律失常情况。心电记录的混合心拍使得训练数据更加复杂和多样化。表1给出了实验包含对应心拍类型的片段数目。
表1 心电图段数及对应情况
在MIT-BIH心律失常标准数据库中,专家给出了每条心拍的r峰峰值位置以及对应的心拍类型。输入片段包含1 800个采样点,即输入矩阵为1 800×1。网络输出1 800个采样点的五分类标签地图,即输出矩阵为1 800×5。为每个训练样本创建1 800×5输出矩阵,将每个采样点的对应心拍类型的列设置为1,相对应将其他列设置为0。分类方法重点关注可以完整体现心律失常的各类型特征的心拍,对于残缺心拍,设置残缺阈值,即残缺程度过高导致无法体现信号特征的残缺心拍默认标注为正常。
为了评价网络模型在心律失常分类中的效果,本文验证准确率、灵敏度、特异性以及正阳性率等多个指标。将心电片段中的实际各类型心拍数目与预测结果得出的各类型心拍数目予以统计,用TP表示正确预测出本类心拍的个数,TN表示正确预测出非本类心拍的个数,FP表示错将其他类心拍预测为本类,FN表示错将本类心拍预测为其他类。评价指标的具体计算方法和意义如下:
准确度(ACC):指被正确预测出本类心拍与非本类心拍的个数之和占全部样本的比率:
(13)
总准确度(OA):指所有被正确分类的心拍数目与样本总数∑之比,以NN、LL、RR、VV、AA分别表示各类型正确分类的个数:
(14)
灵敏度(召回率,Se):指被正确预测出本类心拍的个数与实际的本类心拍总数的比率:
(15)
特异性(真阴性率,Sp):是指被正确预测出非本类心拍的个数与实际非本类心拍总数的比率:
(16)
正阳性率(精准度,Pp):是指全部被预测为本类心拍个数中正确的比率:
(17)
以上评价指标中,准确度是衡量分类是否准确最直观的一个指标。灵敏度越高表示发生漏诊的比例越低,特异度和正阳性率越高表示发生误诊的比例越低。
网络模型使用Python语言开发,实验将全体样本分为90%的训练样本与10%的测试样本,网络训练迭代100次。在网络训练过程中,为了防止发生过拟合,随着网络深度的增加采用丢失输出的正则化技巧。最终,网络训练集与测试集的学习准确度曲线如图2所示。
图2 学习准确度曲线
如图2,随着网络的迭代,网络学习准确度曲线迅速上升。图中的实线与虚线分别表示训练集与测试集准确度曲线,可以看出,U-net模型能够很好地从训练数据中进行泛化,准确度曲线紧密重叠,未出现过拟合迹象。
图3
图3描绘了4个测试心电片段的可视化标签地图。网络输出的标签地图为5列矩阵,即每一列表示为采样点属于每种类型的预测概率。每张标签地图包含多个类型的心拍,用5条预测曲线分别表示五种类型的预测概率。图中右侧Y轴即表示采样点隶属于某一类型的预测概率值的大小,某一类型的预测概率越大,表示采样点越隶属于该类型。
由图3(a)、图3(d)可以看出在每一种相同类型的信号中间部分,该类型预测概率非常接近于1,在不同类型交界处,预测概率会出现交替下降与上升的部分,可以看出通过各类型的预测曲线可将片段中的不同类型的心拍区分出来。如图3(b),当信号片段中突然出现少量噪声时,图中右束支阻滞的类型预测概率稍显下降,但仍然维持在80%以上。如图3(c),网络在只发生单个室性早搏的心拍位置处,室早类型的预测概率迅速上升至80%。该模型具有良好的定位与分类能力,同时网络模型使用较大感受野,使得分类结果具有一定的抗噪能力。
将心电片段中的实际各类型心拍数目与预测结果得出的各类型心拍数目予以统计,表2给出了心律失常分类混淆矩阵。以每一行表示实际心拍类型,右侧的合计表示实际各类型的心拍统计数目;以每一列表示预测心拍类型,下侧的合计表示预测为各类型的心拍统计数目。
跟据混淆矩阵与评价指标计算公式,分别计算了Normal、LBBB、RBBB、PVC、APB五类心律失常的准确度(ACC)、总准确度(OA)、灵敏度(Se)、特异性(Sp)以及正阳性率(Pp)如表3所示。
表2 分类结果混淆矩阵
表3 分类结果各项指标 %
如表2和表3,对于该网络模型,Normal、LBBB、RBBB、PVC、APB五类样本的单类型识别准确度和特异性均高于97%,总准确度高于96%。对于RBBB、PVC、APB,其灵敏度数据稍低。由表2可以看出,网络对于RBBB和PVC具有少量混淆。其混淆原因,一方面是几类QRS波群的形态差异较小导致混淆,例如RBBB和PVC信号都包括一个正R波和一个负S波偏转;另一方面,在不同种心拍类型的交界处与片段边缘两侧的残缺心拍处,预测概率出现交替下降与上升的部分,产生了少量错误的预测。
随后,本文采用已有分类算法,包括支持向量机(SVM)、卷积神经网络(CNN)和长短时记忆网络(LSTM)进行心律失常的心拍五分类,其平均指标对比如表4所示。
表4 SVM、CNN、LATM 分类结果各项指标 %
通过对SVM、CNN、LSTM、U-NET的分类结果关键指标对比分析可知,本文的U-NET模型在对心电片段进行心律失常分类时,同样获得了比较高的准确度。本文的U-NET模型的灵敏度和正阳性率指标稍低,表现在网络对不同种类型交界处的心拍与片段边缘两侧的心拍处产生了错误的预测,但对于整条信号片段的各类型的划分功能影响不大。从整体来看,本文的方法保证了较高识别准确度,通过输出标签地图,可直接划分出混合类型片段中的每个心拍的位置与类型。
本文基于U-NET全卷积神经网络设计了一种心电信号语义分割的识别方法。本文首先介绍了网络模型的工作原理,然后给出了针对心电信号识别问题的修改网络模型,并介绍了样本切片与标签方式,最后通过对网络模型的测试,得到其分类效果。与常规的心电信号分类方法相比,本文的方法无需QRS检测算法与特征设计,同时又可精确地划分出每条片段中每类心拍的位置和类型,处理混合心律失常类型的心电片段,具有较高的实用价值。