APP下载

一种改进U-Net网络的心电图分类算法研究

2024-02-05王建荣尉向前辛彬彬高睿丰李国翚

关键词:心电电信号注意力

王建荣,尉向前,辛彬彬,高睿丰,李国翚

(1.天津大学 智能与计算学部, 天津 300350;2.山西大学 自动化与软件学院, 太原 030006;3.天津开发区奥金高新技术有限公司 产品研发部, 天津 300457)

0 引言

心血管疾病(CVD)是造成全球范围内高死亡率的主要原因。心血管疾病的发病率在世界各地分布不均匀,低收入和中等收入国家受到的影响尤为严重。尽管在心血管疾病防治方面取得了一些成就,但心血管疾病造成的影响仍然很大,防控工作继续面临重大挑战[1-3]。

心电图分析是诊断心血管疾病的重要依据。而且心电图也包含了大量的信息。12导联心电信号包含了更完整的信息。然而,面对海量的心电图数据,完全依靠专业的心电专家诊断显然是不现实的。此外,人为诊断难免会遇到各种突发因素,即便是心脏专家的检测也有可能出现误诊、漏诊[4-5]。

深度学习通过使用多层神经网络,可以有效地表达复杂的非线性函数,并直接从原始信号数据中学习特征,无需人工进行特征提取和选择。然而,深度学习需要足够的数据来准确地适应问题中复杂的映射关系。随着动态心电技术的发展,心电信号数据的快速增加,深度学习在智能心电识别中需要的数据量完全得到了满足。Gayatri等[6]采用频域分析(FFT)、时频域分析(STFT)和特征向量心电信号分析(FVESA)等多种信号处理技术提取数据。记录患者的信号,并与预先输入的信号进行比较,以检测心房颤动等心律失常。而Li等[7]提出了一种基于多域特征提取的心电识别系统。将改进的小波阈值法应用于心电信号预处理,以去除噪声干扰。Crippa等[8]提出了一种有效的基于最小复杂度模型统计识别的多类节拍分类器。该方法利用karhunen变换(KLT)的分离特性,从心电信号中提取其自然模态的多元关系。然后,利用优化期望最大化(EM)算法寻找高斯混合模型的最优参数,重点是减少参数数量。Martis等[9]在特征提取阶段提出了一种新的滤波方法,首次将PCA与ICA结合使用在PNN浅层概率神经网络上,达到98.91%的准确度。Lowry等[10]提出了一种基于形态学特征和高阶统计的模型(HOS)的心律失常检测方法。然而临床采集的心电信号长度是可变的,可能包含混合的心律失常情况。对于深度学习能否对变长心电信号进行准确分类的问题,还没有进一步研究[11-12]。

普通的卷积神经网络(CNN)可以提高网络对于图像缩放、失真和变换等的鲁棒性,同时也使得网络模型变得更加简单。然而,单层CNN的局限性在于,它只能捕捉图像的浅层特征,无法获取图像的深层信息。为了解决这个问题,本文中提出了一种基于U-Net网络和注意力机制结合的心电图异常分类模型,其中包含9层 CNN 的卷积核及卷积数量,还在卷积层的最后一层引入了LSTM和注意力机制,通过注意机制之后选择交叉熵损失函数。实验过程中不断地调整参数组去训练损失优化。实验结果表明,改进模型对比改进之前的分类准确率有所提高。

1 基于注意力机制的U-Net模型

1.1 基于注意力机制的U-Net模型结构

传统的U-Net模型结构是由Ronneberger等[13]在2015年首次提出一种用于图像分割的卷积神经网络,其中包含了一个对称的编码器和解码器结构。由于心电图信号的特殊性,需要对传统的U-Net模型进行改进,以适应12导联心电分类任务。受到U-Net网络中的编码、解码的启发,以及跳跃连接思想,编码器部分由卷积层和池化层交替组成,用于将输入的心电信号不断缩小,提取相应的特征。解码器部分由反卷积层和卷积层交替组成,用于将编码器提取到的特征进行上采样。在编码器和解码器之间,还有一个中间层,称为“跳跃连接层”,用于将编码器的特征图与解码器的特征图进行连接,以保留更多的低层次特征信息,提高特征提取能力。解码是将编码后的数据重新转换成原始数据的过程。在深度学习中,编码和解码的思想也被应用于自编码器(autoencoder)等模型中。自编码器的编码过程可以看作是对原始数据的压缩,解码过程则相当于对数据的解压缩和还原。

本文中多类心律失常检测的任务是12导联心电记录自动识别8类心电异常和正常类别信号。该模型要求以12导联心电图记录为输入,输出预测标签。原始U-Net是用于图像分割的,故而其卷积核大部分是三维,而本文中将12导联心电数据中的每个导联数据转化为一个15 000*12的矩阵输入模型,故而本文中使用的卷积核大小为16*1,使用相同卷积获得同样大小的输出特征映射。这样可以避免在拼接时的裁切操作,然后在U-Net网络解码的最后一层加入注意力模块。

改进的U-Net网络结构如图1所示,包括了一维卷积,最大池化上采样和跳跃连接模块,由于最后输入的心电信号长度远大于最后分类所需用到的特征长度,所以模型中的用来扩充大小上采样操作少于用来压缩大小下采样操作。最初输入的数据大小为(15 000*12),然后通过反复的卷积和最大池化操作将数据处理为(58*512)时开始进行上采样,(256+512)代表将前一步(117*256)大小的特征与上采样后(117*512)的特征拼接,得到一个(117*768)的特征图用于下步操作。

图1 改进的U-Net模型

经过对模型结构的优化,最终确定了U-Net网络的层数,其结构参数如表1所示。

表1 改进U-Net的结构参数

由于输入的心电数据是长序列,且没有进行任何去噪处理,而注意力机制[14]可以帮助模型自动学习长序列中的抗干扰能力,同时还能对抗噪声,所以本文中提出了Attention-LSTM的模型,结合 LSTM 结构和注意力机制,使其在特征提取中更关注包含有效特征的数据片段,从而进一步提升 ECG 信号异常预测的精度。提出的模型包括11个卷积层、一个LSTM层和一个注意力模块,其内部计算可以表述为

funet j=U-Net(Xj)

(1)

fLSTM j=LSTM(funet j)

(2)

fatt j=Attention(fLSTM j)

(3)

式中:U-Net、LSTM和Attention分别表示U-Net网络层、LSTM层和Attention模块;funet j、fLSTM j和fatt j分别表示第j个批次这3个模块的输出。模型训练时交叉熵损失函数为

(4)

编码后的心电信号经过注意力模块后由Softmax函数对注意力中输出的权重实现分类,其计算公式为

ujt=tanh(WwfLSTMjt+bw)

(5)

(7)

将编码后的心电信号fLSTM j输入单层网络中,得到fLSTM j的隐藏状态,表示为ujt;然后测量与可训练向量的相似度,αjt是重要性权重向量,需要经过Softmax函数进行归一化。然后,计算编码后的心电信号与其对应的权向量的加权和fatt j。Ww、uw、bw是随机初始化的可训练参数。

1.2 基于注意力机制的U-Net算法流程

图2为改进U-Net算法的实现流程图。

图2 基于注意力机制的U-Net算法流程

首先在输入数据后对数据进行一系列预处理,包括数据降采样、归一化处理、等长处理数据划分等。随后初始化网络中所有参数,利用ATT_U-Net模型对划分好的数据进行特征提取和分类预测,通过预测结果与真实的值计算损失函数,然后根据损失利用反向传播算法更新模型参数,反复训练到设定次数时,使用学习率衰减方案减小学习率,直到模型收敛时停止训练并保存训练好的模型。若当前模型为测试阶段,则利用已经训练好并保存的心电信号分类模型对测试集数据进行预测,并输出预测结果。

2 实验设计

2.1 实验数据集

本文中使用2018年中国生理信号挑战赛所发布的数据集。包括以下9类样本:N代表正常类别、AF代表房颤、I-AVB代表一度房室传导阻滞、LBBB代表左束支传导阻滞、RBBB代表右束支传导阻滞、PAC代表房性期前收缩、PVC代表室性期前收缩、STD代表ST 段压低、STE代表ST 段抬升。数据长度最长为60 s,最短为6 s。一共有6 877条数据用来训练,此外还有不公开的2 954条记录作为测试集,因此在6 877条数据中划分了测试集和训练集。数据的采样率为 500 HZ[15],具体分布情况见表2。

表2 CPCS数据集分布

2.2 实验环境

操作系统为Window10,硬件环境:CPU为Intel i5-10500,内存大小为64 GB,GPU为 NVIDIA GeForce 1060 4 GB。软件环境为Pycharm2021.2.2,Python 3.9中的keras 2.0框架。

2.3 数据预处理

数据集中的原始数据以500 Hz采样,在常见的心电信号中500 Hz是较高的采样率,单位长度内包含更多的采样点,这将给网络造成负担。为了降低计算成本,心电信号从500 Hz降采样到原来的一半。这种缩减操作加快了训练过程,并且不会从ECG信号中丢失太多有效特征信息用于后续处理。降采样的信号作归一化处理。归一化后的心电信号保留了原始信号的基本特征和形态,同时消除了信号幅度和长度的影响,使信号处理更加方便和准确。而且经过归一化处理后的心电信号具有相同均值和标准差。因此归一化后的心电信号更容易进行比较和分析。此外,归一化可以使不同长度和幅度范围的心电信号在模型训练中更容易收敛,有助于提高模型的性能。数据集中的心电信号的长度不一致,为了训练方便,将所有信号统一补零到相同的长度60 s。归一化的计算公式为

(8)

式中:μ为原始数据的平均值;δ为原始数据的标准差;x为需要经过归一化处理的数据。

2.4 模型参数设置

所提出的模型的输入是预处理的ECG信号。它是一个三维矩阵,维度为(32,15 000,12),或更灵活地表示为(None,15 000,12)。第一个维度是批量大小,在本实验中设置为32;第二个维度是信号长度,其中采样频率为250 Hz,持续时间为60 s;第三个维度是通道号(即导联号)。

一维卷积层初始化采用 he_normal[16]初始化方法。“he_normal”是深度学习模型中使用的一种权重初始化方法。权重初始化是在训练前对神经网络初始权重的设定过程。通过使用“he_normal”初始化方法,权重初始化的方式可以确保所有层上的激活和梯度的方差大致相同。这有助于提高神经网络在训练过程中的稳定性和收敛性。模型中的Dropout 参数设置为0.2,批batch大小设置为32。采用学习率衰减方案将初始学习率设置为 0.001。若训练大于50个epoch则将学习率改为0.000 1。损失函数采用交叉熵损失函数,优化器选择Adam 优化器[17]。

3 实验结果

3.1 评价标准

本文研究的心电图分类为多分类问题,因此采用精准率、召回率、F1分数作为模型的评价指标。

精准率:高的准确率表明模型或系统能够准确地识别相关信息,而低的准确率表明模型或系统在结果中包含了大量不相关的信息。计算方法为真阳性数量(TP)除以真阳性数量(TP)与假阳性数量(FP)的和。公式定义如下:

(9)

召回率:高召回率表明模型或系统能够识别出大量相关信息,而低召回率表明相关信息正在被遗漏。计算方法为真阳性数量(TP)除以真阳性数量(TP)与真阴性数量(FN)的和。公式定义如下:

(10)

F1分数:F1分数的计算是精准率和召回率的调和平均值,F1分数的取值范围为0~1,数值越高性能越好。公式定义如下:

(11)

3.2 实验结果

如图3为所提出的模型在训练时的损失函数曲线。可以看到模型在10个epoch以后开始收敛,在70个epoch时不再下降。表3列出了分类的混淆矩阵元素,所提出的模型在12导联心电心律失常分类任务中取得了不错的效果,在识别房颤(AF)、和右束支传导阻滞(RBBB)这2类心律失常时的精准率、召回率、F1值都可以达到90%以上,表4为所提模型的分类性能。从图3可以看出,该模型在从 STD 信号中识别正常信号时犯的错误最多。考虑到不同类别的心电图记录数量,观察到UNET_LSTM_ATT对性能影响最大的是正常信号和STE信号之间的区分错误。

表3 所提模型在测试集上的混淆矩阵元素

表4 所提模型的分类性能

图3 训练损失函数曲线

在对不足60 s的数据填充时,虽然可以保留原始信息,但是会在一定程度上引入噪音。注意力模块的能力是专注于心电信号异常的部分并抑制不重要的噪音部分。所以UNET_LSTM_ATT可以从ECG信号中提取更具代表性的特征。不过UNET_LSTM_ATT对ST段的变化不敏感,可能是因为噪声很容易覆盖这些微小的变化。

表5中对比了U-Net模型在改进过程中加入LSTM层,以及继续加入注意力模块的分类性能,可以看出在加入LSTM层后对于Normal类、AF类的F1值上升了0.02,而对STE段的识别结果F1值上升了0.05,平均性能提升了0.014,而在加入注意力模块后PAC类、PVC类、STD类和STE类的识别效果均在3种模型中表现最佳,尤其在识别STE(ST段抬高)类中提升明显,而在识别9类异常的平均F1值也可以达到0.825。这说明在加入注意力机制后对模型性能会有明显提升。

表5 所提模型与不加LSTM层和注意力机制的模型在测试集上的性能

将CNN-LSTM模型、ATI-CNN与所提出的模型进行对比分析。所有的模型均使用同一个公共数据集,采用提出的预处理算法对训练数据集进行预处理。在数据预处理后,将数据输入3个对比模型进行训练,并在划分好的测试集上进行评估。最后,对这些模型的预测概率求平均值,得到最终概率,如表6所示,所提出的模型在6类指标中均取得了最好的效果,且得到了最高的平均F1值。

表6 本文中提出的模型与各对比模型在验证集上各类别的F1值

4 结论

提出一种结合注意力机制的U-Net网络对12导联异常心电信号进行智能识别和分类。数据先通过等长处理和归一化,利用U-Net网络提取特征,再用注意力模块计算注意力权重向量,将提取到的特征向量用来进行心电信号分类。最后,利用CPSC-2018数据集进行验证。实验结果表明:在U-Net网络中加入注意力模块可以有效提高多导联心电信号的分类精度。所提模型取得了较好的分类效果,在识别房颤(AF)和右束支传导阻滞(RBBB)心律失常时的精准率、召回率、F1值都可以达到90%以上,平均F1值可以达到82.5%。最后还对不加入注意力模块和LSTM层的模型进行了性能对比,加入注意力机制的模型相较普通的U-Net网络平均F1值提升3.2%。

猜你喜欢

心电电信号注意力
让注意力“飞”回来
基于联合聚类分析的单通道腹部心电信号的胎心率提取
心电向量图诊断高血压病左心室异常的临床应用
基于非接触式电极的心电监测系统
穿戴式心电:发展历程、核心技术与未来挑战
基于Code Composer Studio3.3完成对心电信号的去噪
更正启事
基于随机森林的航天器电信号多分类识别方法
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things