基于深度残差记忆网络的心律失常分类方法

2022-02-09 02:05马小虎杨东东
计算机仿真 2022年12期
关键词:短时记忆电信号残差

沈 尧,马小虎,张 扬,杨东东

(苏州大学计算机科学与技术学院,江苏 苏州 215000)

1 引言

据世界卫生组织(WHO)统计[1],心血管疾病是人类健康的“头号杀手”,全世界每年死于心血管疾病的人数高达1500万人,2016年死于心血管疾病的人数占全球死亡人数的31%,约有1790万人。心律失常作为心血管疾病的一种重要疾病,可单独发作也可与其它心血管疾病并发,严重时可致人猝死。临床上对心律失常的主要诊断办法是心电图诊断,并且心律失常具有突发性以及不可预测性,对其进行前期诊断和实时监测是非常重要的。同时,人工诊断由于医疗资源的不足,医生容易疲惫,造成误诊率高。刘亚萍等[2]以误诊疾病数据库为统计范围,查阅其中485篇文献,找出其中误诊病例高达7840例,误诊率达19.62%。因此,建立试试高效的心律失常自动分类系统不仅能减少医生工作量,降低误诊率,还能有效监测病人实时状态,提高治疗效率,具有十分重大的意义。

一般来说,心电信号的分类包含信号预处理以及自动分类两大部分。心电信号具有抗干扰性差的特点,因此信号的预处理主要是对采集过程中出现的因测量电极接触不良导致的基线漂移、因供电设备产生的工频干扰以及源于肌肉收缩和颤动的机电干扰进行降噪处理,使得心电信号更为清晰,特征更容易提取。阴玺等[3]基于传统的滑动滤波器,加入跳跃采样机制,得到了较好的心电信号基线矫正效果,李庆华等[4]基于小波阈值算法,通过改进的自适应阈值算法获得了更高的信噪比。在自动分类方面,以往的心电信号分类的工作主要集中于心电信号关键特征的提取,大多应用统计模式识别分类算法,例如支持向量机(SVM)、随机森林、K近邻算法(KNN)、独立成分分析(ICA)、主成分分析(PCA)。章洁等[5]通过自回归移动平均模型(autoregres-sive moving average,ARMA)提取特征后,经过随机森林模型完成了心律失常的四分类,准确率为89.97%,王利琴[6]等通过核主成分分析提取心电信号特征,结合极限学习机,得到了98.68%的六分类准确率,Sahoo[7]提出的基于心电信号衍生的多域特征心电搏动自动分类系统,采用C4.5决策树模型得到分类准确率98.89%。这些基于特征提取的分类算法存在以下限制:①不同病人的心电波形不同,导致特征提取泛化性差,影响最终分类结果。②传统机器学习分类效率难以提升,数据量不大。③大部分算法只能实现少数类别分类如二分类四分类等,对于准确分类心律失常是远远不够的。

深度学习跳过了人工提取特征的环节,从大量数据中自动学习关键特征并完成分类,很好的解决了传统机器学习在这方面的限制,因此很多学者通过深度学习在对心律失常自动分类方面取得了不少提升,例如M等[8]采用2s区间为数据集,通过RP工具将一维心电信号转化为二维图像后输入CNN模型,得到准确率为98.41%,张俊飞等[9]基于卷积神经网络(CNN)对心拍分类的设计,对心律失常四分类达到98.95%的准确率,柯丽等[10]基于卷积长短时记忆网络(C-LSTM)进行心律失常自动分类,准确率达99.2%。尽管深度学习的很多模型在心律失常自动分类方面较传统方法取得了很大进步,然而心电信号属于时序性数据,需要进行数据之间的关联,单纯的进行卷积提取特征可能会漏掉数据之间的联系,从而影响分类结果。

为此,本文提出一种基于改进的深度残差网络与长短时记忆网络所融合的深度残差长短时记忆网络(Deep Residual Long Short Term Memory Network)心律失常自动分类模型。首先通过加入CBAM机制的深度残差网络提取心电信号特征,在压缩信号的同时保留关键特征,避免梯度消失,接着通过与长短时记忆网络学习所提取的特征,避免了LSTM因计算量大带来的缺点,最后通过全连接层和softmax函数对心律失常自动分类。通过使用MIT-BIH心律失常数据集对本文方法进行实验,本文方法得到了高达99.53%的准确率,实现了心律失常的高效分类。

2 方法

本文基于深度残差网络和长短时记忆网络各自的优点,结合心电信号的独特性,提出L-ResNet网络模型结构。它可以对心电信号自动进行特征提取并在压缩特征的过程中保留关键特征。图1给出了本文所使用的方法的框架图。

图1 本文分类系统框架图

2.1 数据处理

本文实验数据来自于MIT-BIH心律失常数据库(MIT-BIH Arrhythimia Database)。该数据库包含47位病人的心电图数据,总计48条30分钟的两导联心电数据。图2a是其中名为“100”的数据可视化心电图。

一条心电图由许多心拍组成,一个心拍主要的特征波有P波、QRS波以及T波(图3a),每个心拍都包含着丰富的病理特征,因此将心电信号划分为单独的心拍是十分重要的。划分心拍主要根据其QRS波的位置,熊敏[11]等通过多孔算法在MIH-BIH心律失常数据库上取得了R波峰值点99.8%的准确率。由于本文研究重点不是QRS波定位算法,并且MIH-BIH数据集中给出了QRS波的定位注释,所以本文直接按照人工注释划分心拍。由图2可见,每300个点的区间可以完整包含一个QRS、P、T波的组合,于是本文划分心拍的规则是:以QRS波的位置为基础,向前取99个点,向后取200个点,将总计300个点截取出来作为一个心拍(图3b)。随后为了降低噪声对模型提取ECG特征的干扰,采用小波变换的方法对心电信号进行去噪。信号去噪对比如图2。

图2 心电图信号去噪对比

图3 心拍可视化

为了科学有效的与其它论文进行比较,本文心拍的类别采用美国医疗仪器促进协会(AAMI)所规定的心律失常五大类别。需要将MIT-BIH的15中心拍类别进行转换,转换规则如表1。转换后,得到五大类总计93743个心拍数据集,其中30%作为测试集,49%作为训练集,21%作为验证集。五种心拍可视化显示如图4。

图4 五种心拍类型可视化

表1 AAMI心律失常类别转化表

2.2 深度残差长短时记忆网络

本文所提出的深度残差长短时记忆网络能够跳过人工提取心电信号特征,自主学习信号关键特征并压缩同时保留有效特征,再将得到的特征输入长短时记忆网络,经过反复迭代训练后,可以实现高准确率的基于心电信号的心律失常自动分类。

ResNet是一种在卷积神经网络(CNN)基础上,增加了残差模块的网络模型。CNN可以通过卷积层的卷积核对每个感受野进行卷积运算提取特征,并且通过权值共享减少参数,紧接着的池化层通过使用总体统计特征简化卷积层的输出,进一步压缩特征。随着CNN网络的加深,模型能够获得更多的信息,但同时也会伴随着梯度爆炸和梯度消失的问题。ResNet通过增加残差模块(图5a),在卷积运算之后加上卷积操作之前的特征,这样可以保证关键特征的不丢失,从而解决了CNN网络层数加深所带来的问题。而心电信号作为连续的数据,其注重前后特征的联系显得尤为重要,因此ResNet的残差模块非常契合心电信号的处理。本文参考ResNet101网络构造框架,结合心电信号的连续性以及数据结构,构建了一维的深度残差网络,用以提取心电信号的特征。

CBAM(卷积注意模块)是一种基于注意力机制的中间特征映射模块。通过按照通道和空间推断出注意力映射然后将结果相乘得到最终的特征。具体的过程为输入的特征先分别进行全局最大池化(global max pooling)和全局平均池化(global average pooling),然后将两者通过共享全连接层的结果进行基于elementwise加和操作,接着通过sigmoid函数激活得到通道注意力机制的结果,将其与输入特征进行elementwise相乘得到空间注意力机制的输入;而空间注意力模块则是将经过channel模块的特征分别进行全局平均池化和全局最大池化后,合并进行一次卷积操作并进行sigmoid函数激活,最终与输入特征进行乘法操作得到最终输出特征。CBAM学习了如何有效的强调和压缩提取中间特征,由于其开销很小,所以本文将CBAM模块加入每一个ResNet的基础模块当中,在残差模块对于输入特征进行卷积操作之后,进行CBAM操作,最终将输出的特征和输入特征加和,形成加入CBAM机制的残差模块,如图5b。

CBAM模块的计算过程如下:

Mc(F)=σ(MLP(Avgpool(F))+MLP(Maxpool(F)))

(1)

Mc(F)=σ(f7×1([Avgpool(F);Maxpool(F)]))

(2)

F′=Mc(F)⊗F

(3)

F″=Ms(F′)⊗F′

(4)

其中,Mc(F)表示通道注意力机制的特征,Ms(F)空间注意力机制的特征,F为经过残差模块提取的特征,F″为经过CBAM模块的提取的最终特征,σ为sigmoid函数,W1∈RC/r*C,W0∈RC/C*r,r为减少率,W0后进行ReLU函数激活,7×1表示一维卷积操作的卷积核大小。

图5 加入CBAM机制前后的残差模块

长短时记忆网络(LSTM)是一种基于循环神经网络(RNN)的变种,在其基础上增加了遗忘门,更新门和输出门,以达到选择性忘记不重要的特征,记住有效特征并更新输出有用的信息。LSTM也因此多用于处理时序数据,而心电信号由于其连续性,很契合LSTM模型的特点。LSTM的缺点在于引入了很多的内容导致参数过多,但由于ResNet已经对特征进行了提取和压缩,所以这一缺点被弥补了。

因此本文综合两者网络的优缺点,结合心电信号的特征,设计了101层的一维深度残差网络提取特征,其中每个卷积层后都跟有池化层和批归一化层(BN),简化输出并防止过拟合,随后使用线性整流函数(ReLU)函数作为卷积层输出的激活函数,这些模块整体作为一个卷积层。经过101层网络以后得到最终10个点的一维数据,输入LSTM,最后使用全连接层得到输出,将输出输入softmax函数得到不同类别的概率值,取最大概率作为分类结果,以此实现基于心电信号的心律失常自动分类。本文的模型结构图如图6。

图6 本文模型结构图

在ResNet101部分,先构建一个卷积层(包含BN层,池化层以及ReLU)对输入数据进行特征提取。采用大小为(7,1)的卷积核,步长为2,将数据缩短为原来的一半。随后分为四个部分,第一个部分由3个残差模块组成,每个残差模块依次经过(1×1,64),(3×1,64),(1×1,256)的卷积层,接着经过CBAM模块,第二个部分由4个残差模块组成,每个残差模块依次经过(1×1,128),(3×1,128),(1×1,512)的卷积层,接着经过CBAM模块,第三个部分由23个残差模块组成,每个残差模块依次经过(1×1,256),(3×1,256),(1×1,1024)的卷积层,接着经过CBAM模块,第四个部分由三个残差模块组成,每个残差模块依次经过(1×1,512),(3×1,512),(1×1,2048)的卷积层,接着经过CBAM模块。其中卷积层中的池化层均选择最大池化,padding选择same。最后通过卷积核大小(5,1),步长为1,输出通道数为1的卷积层将提取的特征压缩至一维,以便输入LSTM。LSTM网络采用32个隐藏单元,通过门控状态来控制传输状态,记住需要长时间记忆的,忘记不重要的信息,将输出通过全连接层以及softmax函数,完成心律失常的五分类。模型参数如表2。

表2 本文网络模型参数表

模型训练过程中,采用Adam作为优化器,学习率为2e-4k,beta1=0.8,beta2=0.98,epsilon=1e-07。损失函数使用交叉熵损失函数,批次大小为128,训练epoch为2000。

3 实验结果与分析

3.1 评价标准

为了更好的和其它论文比较结果,本文采用AAMI所建议的准确率(Acc)、敏感性(Sen)和特异性(Sp)三种方法对心律失常分类效果进行分析和评估。其中准确率指被正确分类的心拍个数的占比,是最能直观体现分类性能的指标,数值越高则代表分类准确率越高;灵敏度指被正确分类的心拍个数占该类心拍总数的比例,能直观的体现是分类否有遗漏,数值越高则代表未被指出的该类心拍个数越低;特异性指被准确分类不是该类心拍的样本个数占所有不为该心拍类别的心拍总数的比例,数值越高则代表对该类心拍的分类精准度越高,误诊心拍数越少。

三种方法的计算公式如下

Acc(%)=(TP+TN)/(TP+TN+FP+FN)×100%

(5)

Sen(%)=TP/(TP+FN)×100%

(6)

Sp(%)=TN/(TN+FP)×100%

(7)

其中,TP表示被分类正确的心拍个数,为真阳性;FP表示不属于某种心拍却被错误分类为该心拍的个数,为假阴性;TN表示不属于某类心拍且被分类为其它类别的心拍个数,为真阴性;FN表示属于该类别却被错误分类为其它类别的心拍个数,为假阳性。

3.2 实验结果

图7给出了本文模型训练过程中准确率的变化。图中实线为训练集准确率变化,可以看出经过250个epoch以后,训练集准确率已经很高,接近于100%。随着大量的循环训练,训练集准确率也在缓缓提升。虚线代表训练过程中模型在验证集上的准确率,由于验证集与训练集互不干涉,验证集准确率随着训练集的准确率同步提升,虽然没有训练集的准确率那么高,但是也稳定在99.75%以上,表明没有出现过拟合的现象。这说明本文提出的基于深度残差网络提取特征的长短时记忆网络在训练过程中表现极佳,能够有效的提取关键特征,抛开不重要的干扰信息,进行准确的分类。

图7 训练过程准确率变化图

使用已经训练好的模型,对测试集数据进行分类,得到的混淆矩阵如图8。其中坐标轴的0-4分别对应于AMMI心律失常类别中的N,S,V,F,Q五种类别。横坐标表示模型对数据集的预测值,纵坐标表示数据集的真实标签。矩阵上对角线上的元素个数为正确分类的样本数量。测试集数据集大小为28123个样本。

图8 本文模型对测试集分类混淆矩阵

通过混淆矩阵的数据对模型的预测的准确率、敏感性和特异性经过计算,得到表3。可以看到基于深度残差长短时记忆网络在测试集上的准确率达到了99.51%,表明其分类准确率很高。其中除了S,F类别灵敏度较低,可能是由于这两类的数据量较小,加之心电信号的类似,易于混淆。此外,五种类别的特异性指标都很高,均超过97%,表明误诊率很低,这在医学方面是尤为重要的。以上性能也验证了本文方法的有效性。

将本文方法与同样使用MIT-BIH心律失常数据集并按照AAMI建议分类的文献进行比较,结果如表4。可以看出,无论是从准确率还是灵敏度和特异性,都表明本文方法能够高效的进行心律失常自动分类,并且具有优越性。

表3 深度残差长短时记忆网络性能评价参数

表4 本文方法与其它文献对比

4 结束语

本文针对先前心律失常自动分类缺乏数据的联系性,提出了基于加入CBAM机制的深度残差长短时记忆网络,能够高效提取心电信号特征并加深心电信号间的联系,去除无效的干扰信息,保留有效的关键信息,对心拍数据进行准确分类。最后通过实验得出分类准确率为99.51%,实现了心律失常高效准确的自动分类,验证了本文方法的有效性。考虑到心电信号与自然语言处理数据集的形式相似性,下一步将尝试用自然语言处理方面的方法进行心律失常自动分类,并且尝试其它临床数据集,以提高心律失常自动分类方法的泛用性。

猜你喜欢
短时记忆电信号残差
基于非稳态调和分析和长短时记忆神经网络的河口潮位短期预报混合模型
基于长短时记忆神经网络的动力电池剩余容量预测方法
基于双向GRU与残差拟合的车辆跟驰建模
基于联合聚类分析的单通道腹部心电信号的胎心率提取
基于残差学习的自适应无人机目标跟踪算法
基于递归残差网络的图像超分辨率重建
基于Code Composer Studio3.3完成对心电信号的去噪
基于随机森林的航天器电信号多分类识别方法
短时记忆理论的影响
综合电离层残差和超宽巷探测和修复北斗周跳