基于SE-CNN-LSTM的心电识别算法

2022-05-30 14:51郭炜伦方钰敏徐海蛟李潇王洪庆
电脑知识与技术 2022年21期

郭炜伦 方钰敏 徐海蛟 李潇 王洪庆

摘要:随着人们心脏问题的频发与人工智能的高速发展,寻找高效、高速、精确的心电识别算法成为业界难题。针对业界各种心电识别算法存在的未能充分利用ECG特征多样性的问题,提出一种基于SE-CNN-LSTM的心电识别算法,它把SE模块嵌入到现今流行的CNN(卷积神经网络)和LSTM(长短期记忆网络)的心电识别算法,从而提高了算法的性能。

关键词:心电识别算法;SE模块;CNN;LSTM

中图分类号:TP18      文献标识码:A

文章编号:1009-3044(2022)21-0073-03

开放科学(资源服务)标识码(OSID):

1引言

日前,动脉网联合京东健康发布《2021互联网心血管疾病管理洞察》报告指出,我国患心血管疾病人数已达3.3亿人,因心血管疾病死亡患者数量也逐年增长。心血管疾病患者目前面临的最大问题是医疗诊断资源有限。

心血管疾病的诊断目前主要由人工分析完成,在心血管疾病普遍高发的当今,每天每时都会产生庞大的心电信号数据,这些数据里的每一张心电图都有可能是心血管疾病诊断的关键,但传统分析方式步骤烦琐、耗费时间。随着人工智能的高速发展,市面上已出现多种带有自动诊断功能的心电设备,但由于诊断分类效果欠佳,仍需要加人工的进一步诊断。心电图自动诊断技术的研究即找出高效、高速、精确的心电识别算法,对医学的进步有重要推动作用,对解决目前心电图诊断中存在的问题具有重要意义。

目前,许多学者提出了各种各样的心电识别算法,大多都以深度学习模型为基础的研究方法并取得了丰硕成果。Yan等[1]使用CNN一维卷积网络对ECG 信号特征进行提取和信号分类;Das等[2]利用多层感知机神经网络对ECG信号进行分类;Alqudah等[3]提取ECG信号的高斯混合系数特征值和小波分解特征值,并将这两种特征用概率神经网络和随机森林两种分类器进行心律失常分类;Sun等[4]提出基于CNN和SVM混合模型的心电信号识别方法;Li等[5]做了基于CNN宽度学习系统的心律失常分类研究。

同时,上述方法也存在一个不足:使用深度学习模型的時候,没有充分利用ECG特征的多样性。为了提高模型准确度,本文提出了SEBlock和CNN和LSTM结合模型,使模型考虑到了心电信号在时间序列上的特征和分类过程中不同通道特征的关系。实验结果表明,本文提出的模型在心电识别运用上优于市面上大多深度学习模型,能更精确地预测出心电信号的类型。

2数据采集和预处理

2.1数据采集

本文使用的是最广泛且被学术界普遍认可的数据库MIT-BIH心律失常数据库。MT-BIH心律失常数据库拥有48条心电记录,每一条记录为30分钟,长度含充分标注的2导联心电信号。每条记录有三个文件:dat文件和hea文件和atr文件,dat文件存放心电信号,hea文件存放记录编号、导联数、采样率、采样点数,atr文件存放人工标注的心拍位置和该位置心拍类型。为了保持导联的一致性,往往在研究中采用MLⅡ导联。本文选取MLⅡ导联心电信号进行研究分析。

数据采集需要找到每一个心拍的QRS波尖峰所在的位置,单个心拍RQS波图如图1所示。本次实验笔者对5种不同心拍进行分类识别,分别是正常搏动(N)、房性早搏(A)、室性早搏(V)、左束支传导阻滞(L)、右束支传导阻滞(R)。由于只训练网络模型,这里直接使用MIT-BIH数据集提供的人工标注,并筛选出上述5类的心拍尖峰位置,在尖峰处向前取99个信号点、向后取200个信号点构成一个完整的心拍,接着把处理出来的心拍全部加在一起,组成数据集。最后,使用上采样和分层抽样划分训练集与测试集,划分出用于训练的样本6825组,训练集中每一类样本为1365组。划分出用于测试的样本2925组,测试集每一类样本为585组。

2.2 数据预处理

Donoho提出的基于小波变换的阈值去噪法是目前应用最为广泛的滤波方法[6]。小波变换(Wavelet Transform, WT)可以进行时频变换,是对信号进行时域以及频域分析的最为理想工具。小波变换阈值去噪法可基本分为以下3个步骤:

1)选择合适的小波基函数,然后用小波变换对含噪心电信号进行9尺度分解得到各尺度上的小波系数。

2)心电信号经过小波变换尺度分解后,幅值比较大的小波系数就是有用的信号,幅值比较小的小波系数就是噪声,根据心电信号和夹杂噪声的频率分布,对各尺度上的小波系数进行阈值处理,本文在小波系数阈值处理所使用的阈值函数选用的是软阈值函数如图2所示。当其分解后的系数绝对值小于给定的阈值时,令其为零。若大于阈值,则使用软阈值函数法将它保留或进行收缩处理。

λ的计算公式为公式(1)所示,其中w为原始小波系数,W为处理后的小波系数,λ为给定的阈值,N为信号长度。

[λ=median∣w∣*2*lnN0.6745]                 (1)

3)分别处理完小波尺度分解后的低频系数和高频系数,再重构信号。图3为小波变换降噪流程图。

未处理数据心电信号与降噪处理心电信号对比图如图4所示,从对比图上可知去噪后信号比原始信号更为平滑。

3网络构造

为了提供准确可靠的心电信号多分类解决方案,本文提出SE模块和CNN和LSTM结合模型。

1) CNN

卷积神经网络(Convolutional Neural Networks) 是神经网络中一个非常经典的模型,是从视觉皮层的生物学获得启发而来的。在卷积神经网络中,前若干层由卷积层和池化层组成,前一层的输出作为后一层的输入。其中,卷积层由一个大小固定的卷积核与输入进行卷积操作,用来模拟人类的神经元,比如:一个神经元对直线兴奋,而另一个对横线兴奋,这样一来,卷积层下来就提取了不同的特征。而池化层则是一种下采样,对视觉输入对象进行降维和抽象,用更少的信息表示这个事物。随后的若干层由全连接层构成,卷积取的是局部特征,全连接层就是把以前的局部特征重新通过权值矩阵组装成完整的图。卷积神经网络提取心电信号特征流程图如图5所示。

2) SEBlock

SEBlock(Squeeze-and-Excitation Block)[7]是一种聚焦于通道维度而提出一种新的结构单元,为模型添加了通道注意力机制,该机制通过添加各个特征通道的重要程度的权重,针对不同的任务增强或者抑制对应的通道,以此来提取有用的特征,抑制作用不大的特征。该模块的内部操作流程如图6,总体分为三步:

首先是Squeeze 压缩操作,对空间維度的特征进行压缩,保持特征通道数量不变。融合全局信息即全局池化,并将每个二维特征通道转换为实数。实数计算公式如公式(2)所示。该实数由k个通道得到的特征之和除以空间维度的值而得,空间维数为H*W。

[Uk=1H×Wi=1Hj=1Wμij] i,j=1,2,…k                       (2)

其次是Excitation激励操作,它由两层全连接层和Sigmoid函数组成。如公式(3)所示,s为激励操作的输出,σ为激活函数sigmoid,W2和W1分别是两个完全连接层的相应参数,δ是激活函数ReLU,对特征先降维再升维。

[s=σ(W2δ(W1U))]   (3)

最后是Reweight操作,对之前的输入特征进行逐通道加权,完成原始特征在各通道上的重新分配。

3) LSTM

LSTM(Long Short-Term Memory)神经网络是一种时间递归神经网络,可用于提取时序特征。LSTM核心是细胞状态,用贯穿细胞的水平线表示。LSTM网络能对细胞状态进行删除或者添加信息,总体可拆分为4步:第一步决定要丢弃细胞信息,下一步决定存储细胞信息,接着更新旧细胞状态,最后决定要输出什么,LSTM结构图如图7所示。

4)SE-CNN-LSTM

本文设计了一个SEBlock和CNN和LSTM相结合的模型,具体结构见图8。

本模型由一个三层卷积层三层池化层一层打平层和Dropout层和全连接层组成的CNN模型和两个SE模块和一个LSTM模型组成。首先,本模型分别在CNN模型的第二次和第三次的卷积池化操作中间加了一个SE模块,用于提取有用的特征,抑制作用不大的特征。接着在进入全连接层之前,加一个LSTM模型,用于提取时间特征。然后把数据打平进入Dropout层,来防止数据过拟合。最后进入全连接层,把局部特征重新通过权值矩阵组装。

4 评估指标

本文选用精确率(Precision)、召回率(Recall)、F1分数(F1-Score)来完成评价指标的描述。True Positive(TP):预测为正,判断正确;False Positive(FP):预测为正,判断错误;True Negative(TN):预测为负,判断正确;False Negative(FN):预测为负,判断错误。

精确率(Precision)是针对预测结果而言的,它表示的是预测为正的样本中有多少是真正的正样本。预测为正有两种可能,一种就是把正类预测为正类(TP),另一种就是把负类预测为正类(FP)。Precision计算公式为:

[Precision=TPTP + FP]                              (4)

召回率(Recall)是针对原来的样本而言的,它表示的是样本中的正例有多少被预测正确了。样本中的正例有两种可能,一种是把原来的正类预测成正类(TP),另一种就是把原来的正类预测为负类(FN)。Recall计算公式为:

[Recall=TPTP + FN]                               (5)

F1分数(F1-score)是分类问题的一个衡量指标。多分类问题的机器学习竞赛,常常将F1-score作为最终测评的方法。它是精确率和召回率的调和平均数,最大为1,最小为0。F1-score计算公式如公式(6)所示,其中P和R分别为Precision和Recall。

[F1-score=2PRP+R]                            (6)

5 实验结果

本文采用以TensorFlow为后端的Keras开发库进行网络搭建,并且学习中所有训练数据均被使用过一次时的更新次数设置为30和批大小设置为128。本模型对测试集中5类心电类型分类的混淆矩阵如图9,以及心电类型分类的精准率、召回率与 F1 值指标结果如图10,该试验结果说明,本模型运用在心电识别方面具有较好的训练效果,并且预测分类准确率高。

为了进一步探究本文算法与其他方法的差异,使用同样的数据集在CNN、CNN-LSTM、SE-CNN、SE-CNN-LSTM模型上进行对比实验,比较它们的正确率大小,具体见表1。

表1中通过比较CNN与CNN-LSTM的正确率,可得出考虑时间序列的模型比未考虑时间序列的模型准确率高。通过比较CNN和SE-CNN,可得出加入SE模块的模型性能优于未加SE模块的模型。最后SE-CNN-LSTM模型正确率在其余三者模型之上,则可以说明本文提出的SE-CNN-LSTM算法在心电识别方面具有一定的可行性和优越性。

6结束语

心电识别算法的出现,很大程度地帮助了人们更便捷更低成本更快速地诊断自己的心脏健康状况,使得越来越多人们及早地发现并诊治心脏相关疾病。本文提出的基于SE-CNN-LSTM算法解决了大多心电识别算法都是仅基于卷积神经网络而忽略了心电信号时间序列上的特征和通道间的特征的问题。本模型利用LSTM网络实现记忆功能,解决了大多心电识别算法未能提取到时间序列特征的问题。为了提高心电算法准确率,本文还为模型嵌入了SE模块,让模型通过学习的方式来自动获取到每个特征通道的重要程度,然后依照这个重要程度去提升有用的特征并抑制对当前任务用处不大的特征。最后将三者进行组合,其分类效果超过了市面上大多数心电识别算法。

由于心电疾病类型多种多样,目前实验考虑的心电疾病类型少,接下来的关注中,将考虑增加训练学习的心电信号类别,在保证正确率的情况下,进一步完善算法。

参考文献:

[1] 颜昊霖,安勇,王宏飞,等.基于卷积神经网络的心电特征提取[J].计算机工程与设计,2017,38(4):1024-1028.

[2] Das M K,Ari S.ECG beats classification using mixture of features[J].International Scholarly Research Notices,2014,2014:178436.

[3] Alqudah A M,Albadarneh A,Abu-Qasmieh I,et al.Developing of robust and high accurate ECG beat classification by combining Gaussian mixtures and wavelets features[J].Australasian Physical & Engineering Sciences in Medicine,2019,42(1):149-157.

[4] 孫波,杨磊,郭秀梅,等.基于CNN和SVM混合模型的心电信号识别方法[J].山东农业大学学报(自然科学版),2020,51(2):283-288.

[5] 李声师.基于CNN宽度学习系统的心律失常分类研究[D].长春:吉林大学,2020. [6] 曲天书,戴逸松,王树勋.基于SURE无偏估计的自适应小波阈值去噪[J].电子学报,2002,30(2):266-268

[7] 袁颖,李论,杨英仓.基于FPN-SE-Capsule网络的指纹图像识别算法[J].工业控制计算机,2021,34(1):45-47,50.

【通联编辑:唐一东】