APP下载

基于GAN 和MS-ResNet 的房颤自动检测模型

2024-02-18王立永季长清汪祖民

应用科学学报 2024年1期
关键词:房颤尺度卷积

秦 静,韩 悦,王立永,季长清,3,刘 璐,汪祖民

1.大连大学软件工程学院,辽宁 大连 116622

2.大连大学信息工程学院,辽宁 大连 116622

3.大连大学物理科学与技术学院,辽宁 大连 116622

4.大连大学附属中山医院,辽宁 大连 116001

心房颤动(atrial fibrillation,AF)是临床医学中常见的心律失常疾病,仅在中国就有超过1 200 万患者,并且其发病率随着年龄的增长而上升。房颤患者最常见的死亡原因是心力衰竭、心脏骤停和中风等并发症,许多患者存在无症状或阵发性心房颤动,这大大增加了患者中风或死亡的风险。医生主要依靠心电图(electrocardiogram,ECG)来诊断房颤,根据心电图中的RR 间期、P 波等特征来判断房颤疾病。但是,可穿戴式心电图监测仪一天记录着多达10 万次心跳,这项工作需要耗费心脏专家大量的时间和精力。因此,开发一个先进的房颤自动识别方法来提高分析效率和准确性具有重要意义。

当前,基于深度学习的房颤检测算法研究层出不穷。与传统方法相比,深度学习方法通过大量的数据进行特征学习,避免了过度依赖人工特征提取的缺陷,从而具有更强的抗干扰能力和泛化能力[1]。尽管基于神经网络的方法在房颤检测中已经取得了不错的性能,但仍然存在一些缺陷。首先,自动房颤检测需要大量标记ECG 数据进行深度学习训练[2],而医疗数据的隐私和敏感性使获取带有正确标注的高质量ECG 数据的工作相当困难。其次,由于严重疾病的发生率很低,房颤类数据过少,而正常类数据过多,因此疾病标注的数据分布偏倚,这种不平衡的数据会降低模型的整体性能[3]。在解决数据类别不平衡问题时,欠采样和过采样是最常用的方法[4]。然而欠采样方法会浪费大量数据,过采样方法可能导致过拟合问题。欠采样和过采样会明显改变数据分布,从而导致训练数据不再是真实数据的无偏表示。此外,现有研究大多使用单一尺度的卷积滤波器,而忽略了其他不同尺度的可能存在的有用信息。如图1所示,房颤在心电图上主要表现为P 波消失形态特征和RR 间期不规则特征。单次心电图中的P 波的振幅范围较小,应采取尺度较小的滤波器提取特征和局部信息。而对于相邻心电跳动RR 间期等特征,采用大尺度的滤波器更适合编码不同波之间的间隔信息。现有多尺度特征提取方法大多依赖于使用不同感受野的卷积核从不同大小的信号段中提取特征[5],但不同大小卷积核的使用也有局限性:增加了网络的复杂度和训练难度;增加计算复杂度,从而导致模型的训练和推理速度变慢。

图1 具有P 波缺失或RR 间期不规则特征的AF 患者心电图记录Figure 1 ECG records of AF patients with P-wave absence or RR interval irregular features

为了解决上述问题,本文提出了基于生成对抗网络(generative adversarial network,GAN)和残差多尺度网络(residual multi-scale network,MS-ResNet)的房颤自动检测网络,以解决数据不平衡和单一尺度特征提取的问题。本文做了以下工作:

1)提出了利用GAN 生成ECG 数据,扩大少数类的数据量,缓解类失衡。在GAN 结构生成器中嵌入了双向长短时记忆(Bi-directional long short-term memory,Bi-LSTM)层,进一步提高分类器的性能。

2)提出了残差多尺度网络的分类模型,该模型将心电信号分成固定长度的小序列,并在每个小序列使用不同网格大小来提取不同尺度的时序特征。

3)在2017 年挑战赛数据集上,将该模型的结果与现有的研究方法进行了比较,验证了该方法在房颤分类中的有效性。

1 相关工作

1.1 房颤检测发展概述

大多数房颤患者会出现心悸、呼吸困难、头晕等症状,也有少数房颤患者是无症状的,后者只能通过心电图来诊断。在过去的几十年中,对于房颤检测,大多数研究者关注于从ECG形态变化中手工提取特征。然而,基于手工ECG 特征提取和机器学习的混合方法复杂且高度依赖于ECG 特征的质量[6]。此外,手动提取ECG 特征非常耗时,这也是训练和验证过程中的一个瓶颈。尽管手动ECG 特征提取在机器学习领域中被广泛使用,但随着科技的进步,这些方法正被不需要手动提取特征的深度学习方法所取代。

基于深度学习的房颤检测算法的思想是利用多层神经网络从数据中自主挖掘和学习深层次特征,并将每一层的特征进行维度变换,把初始的特征转换到另外的特征维度,使得结果的预测以及分类更加便捷有效[7]。相比于传统方法,深度学习方法弥补了传统方法过度依赖于人工特征提取的缺陷,通过大量的数据进行特征学习,算法的抗干扰能力和泛化能力更强。因此,近年来许多研究人员研究了深度学习模型在基于ECG 的自动房颤检测中的应用,例如卷积神经网络(convolutional neural network,CNN)[8]、长短时记忆神经网络(long short-term memory,LSTM)以及基于CNN 和LSTM 组合[9]的复杂模型。

尽管基于深度学习的方法在自动房颤检测方面表现出了良好的效果,但当模型过于复杂时,它们必须克服数据分布有偏倚和数据不足的挑战。本文采用了合成ECG 数据的方法来解决数据不足和不平衡的问题,并用这些数据来训练深度学习模型。本文建立了一个生成模型,通过学习如何创建合成ECG 数据,可以展现真实ECG 数据与不同合成ECG 之间的变化。这种合成ECG 数据的互变性和交叉变异性可以帮助深度学习方法学习基本特征并避免因患者变异性产生过拟合的问题。

1.2 基于GAN 的心电生成

心电信号的生成是从数据集中学习真实的数据分布。GAN 最初用来生成逼真的合成图像[10],最近,一些研究人员将其用于合成ECG 信号以扩展数据集并改进模型分类。例如,文献[11] 提出了自动心肌梗死(myocardial infarction,MI)检测模型,使用GAN 来创建具有高形态相似性的单导联ECG 数据;并使用了包含真实的ECG 数据和用GAN 生成的ECG 的数据集,结合CNN 网络自动诊断MI。为了解决数据不足的问题,文献[12] 创建了基于GAN合成数据的卷积自多头注意力机制网络HeartNet,该网络通过CNN 来提取特征,然后通过注意力机制来捕捉序列中的重要信息。为了增加心律失常数据集中的数据量并解决不平衡心律失常数据的问题,文献[13] 引入了ECG Deep 卷积生成对抗网络,不是进行人工特征提取,而是使用CNN 模型自动分类ECG 信号,将时间序列转换为GASF 图像,以帮助分类器获得ECG 信号中包含的丰富信息。为了解决不平衡数据问题,该文献采用生成对抗网络梯度惩罚模型来增强次要类别。

1.3 多尺度网络概述

近年来,深度神经网络可以通过设计多层且非线性网络结构形成更抽象的高层特征。针对许多计算机视觉任务,人们提出并设计了新颖的基于多尺度的方法。与单尺度方法相比,多尺度方法具有突出的性能和优势。在心律失常分类领域,文献[14] 使用多尺度特征提取和跨尺度信息互补来捕捉异常模式并抑制噪声干扰。该方法使用不同感受野的卷积核从不同大小的信号段中提取特征,并采用多尺度损失的联合优化策略,实现累积性多尺度互补特征学习。文献[15] 介绍了一种新的多尺度深度卷积神经网络,用于从单导联短期心电图记录中筛选出心房颤动记录,该网络采用了双流卷积网络结构,具有不同的过滤器大小,可以捕捉不同尺度的特征。文献[16] 提出了一个多尺度深度卷积神经网络,用于自动检测单导联短期心电图信号中的阵发性心房颤动发作。该网络使用多流CNN 架构来处理多尺度分解的单导联心电图信号。文献[17] 采用了多个不同感受野的深度卷积神经网络来编码比例特异性的病理心电图特征,并生成局部预测。上述的多尺度学习方法有一些局限性:1)需要设计不同大小的卷积核和池化层,增加了网络的复杂度和训练难度;2)该方法会增加计算复杂度,导致模型的训练和推理速度变慢;3)这些方法的性能高度依赖于为多尺度处理选择的具体参数,从而使其更难优化。针对这些问题,本文提出一种多尺度动态网格表示方法,以提取不同尺度下的时序特征。

2 GAN 和MS-ResNet 模型

本文结合GAN 和MS-ResNet,提出了一种新颖的基于单导联心电数据特征的房颤自动检测模型。利用GAN 生成ECG 数据,扩大少数类的数据量,缓解类失衡。在GAN 结构生成器中嵌入了Bi-LSTM,进一步提高分类器的性能。采用多尺度网格作为分类模型,使用不同网格大小来提取不同尺度的时序特征,如P 波消失,RR 间期不规则等特征。该模型的总体结构如图2 所示。

图2 模型结构图Figure 2 Model structure diagram

2.1 GAN

图3 为GAN 的总体架构。GAN 架构由生成器和鉴别器两个基本部分组成。在某种意义上,生成器是一个逆卷积网络——传统的卷积分类器对示例进行下采样以产生概率,生成器对随机噪声矢量进行上采样以产生概率。该生成器包括4 层。每一层依次包含DeConvolutions、ReLU 和批归一化,为了使该模型更适合于心电信号的合成,生成器将随机向量Z作为其输入送到Bi-LSTM 层,该Bi-LSTM 层用于提取潜在空间中的时间特征。Tanh作为最终输出层,被转换成180 个采样点的单导联ECG 数据。鉴别器的结构与发生器的结构对称。鉴别器也包含4 层,每层依次包含Convolutions 和leakyReLU 激活函数和批归一化。此外,鉴别器采用Sigmoid 函数作为最终输出层。

图3 GAN 模型架构图Figure 3 GAN model structure diagram

在GAN 的训练中,本文通过迭代更新发生器和鉴别器来训练GAN,以确保发生器可以合成更真实的ECG 信号。真实的心电图的标号为1,生成的心电图标号为0。发生器的交叉熵损失函数公式为

式中:z为输入生成网络的噪声;G(z) 为GAN 网络生成的数据;D(G(z)) 表示鉴别器判断生成器生成的数据为真的概率,取值范围在[0,1] 之间。鉴别器的能力越强,则D(G(z)) 越小,损失越小。鉴别器的损失函数被定义为两个交叉熵函数H的和,公式为

式中:ereal为真实的ECG 训练数据;egenerate为生成器网络生成的合成ECG 数据。在训练过程中发生器和鉴别器的损失过程如图4 所示。由模型在不同阶段生成的ECG 信号如图5所示。图5(a) 给出了训练开始时的高维随机噪声输入,此时,输出也完全是噪声;图5(b) 给出了在经过300 轮训练后的输出,可以看到输出信号具有明显ECG 的形态特征。图6 是使用GAN 生成的房颤类的心电信号与原始心电信号的对比图,可以看出使用GAN 生成的心电图和真实的高度相似。

图4 发生器和鉴别器的损失图Figure 4 Loss plot of generator and discriminator

图5 不同阶段生成的ECG 信号Figure 5 ECG signals generated at different stages

图6 房颤类真实的和生成的心电图对比Figure 6 Comparison of real and generated ECG for atrial fibrillation

2.2 分类器结构

本文提出了MS-ResNet 模型用于分类,MS-ResNet 模型结构如图7 所示,该模型在原来的残差结构上进行了一些改进[18],加了多尺度模块,用于从多个尺度捕获心电信号中的特征。模型主要由初始卷积层和4 个包含两个卷积层的残差块(Res-block)和多尺度网格(Multi-scale-block)组成。在Res-block 的每一个卷积层之后,使用批量归一化和整流线性单元激活函数,BatchNorm 对每个批次的数据进行归一化,使其处于相同的分布中,这加快了训练的拟合速度。引入非线性激活函数ReLU,避免了梯度消失的现象,使网络模型的收敛速度保持在一个稳定的条件下。本文还在Res-block 中的ReLU 和卷积层之间用Dropout[19],以防止神经元在前向传播过程中过于依赖某些局部特征,以及防止训练过程中的过拟合,从而提高模型的泛化能力。

图7 MS-ResNet 分类模型Figure 7 Classification model of MS-ResNet

2.3 多尺度模块

本文的新颖之处在于利用动态网格进行多尺度表示。传统的多尺度表示通常使用不同大小的卷积核来提取特征,无法反映不同位置的特征差异和不同尺度的上下文信息。通过使用多尺度表示学习,可以将不同尺度的上下文信息捕获到特征向量中,从而提高模型的特征提取能力。定义一个多尺度块来提取不同尺度的特征,具体来说,实验采用了文献[20] 提出的QRS 波检测方法来寻找R 峰,在得到的R 峰位置前后各截取一段采样点,分割为小序列,每个序列的长度为180 个采样点。设输入为小序列x=(x1,x2,···,xk),对每一个小序列使用多尺度网格进行特征提取,得到每一个小序列的多尺度特征表示。

在多尺度特征表示中,使用网格距离和网格数量两个参数来计算网格大小和网格总数,设置网格编码器E(xi) 来编码不同序列中的特征。给定编码窗口中的任意一个序列向量xi,将其编码到网格空间中。在每一个小序列中多尺度表示为Gm[xm]=[E1(xm),E2(xm),···,Es(xm)]。其中S是网格总数,s={1,2,···,S-1}。计算公式为

式中:xm为小序列特征向量;δmin和δmax分别为网格尺度的最小值和最大值;g=δmax/δmin;δmin·gs/(S-1)为尺度因子,反映了在特征提取的过程中所使用的尺度大小。随着尺度s的增加,尺度因子会增大,意味着特征提取的范围变得更大,能够检测到更大的信号特征。当s=S-1 时,δmin·gs/(S-1)=δmax,网格达到最大。同时,δmin也表示网格中所有输入特征的最小标准差,这样可以确保在所有尺度上使用的网格形状相似,并且对应的特征响应的空间范围相同,使得特征具有可比性。

该算法利用多尺度网格表示来计算小序列的特征向量xm,它通过遍历不同尺度的网格,并根据网格大小和比例因子计算网格权重来实现,将不同尺度下的网格表示除以网格权重,得到不同尺度的网格表示。最后,将不同尺度的网格表示连接在一起,形成整体的多尺度网格表示。多尺度动态网格表示方法相比于传统方法有以下优点:1)无需设计不同大小的卷积核和池化层,减少了网络的复杂度和训练难度;2)可以减少计算复杂度,提高模型的训练和推理速度;3)不需要选择具体的参数,更易于优化。

3 实验与结果分析

3.1 实验环境

实验部署在塔式工作站上,配备Corei9-10920Xpro 处理器(3.5GHz),Quadro RTX 6000显卡(24 GB 显存),运行在64GRAM 上,以及使用Window Sever 2019+Python3.9+pytorch的深度学习环境。

3.2 数据集

本文提出的模型用于PhysioNet Challenge 2017 的数据集中,用以分析网络架构的分类性能,其中包含4 个类别:心房颤动、正常窦性心律、其他心律和噪声。数据共包括8 528 个单导联ECG 记录,其中5 154 个记录为正常记录,771 个记录为房颤类记录,2 557 个记录为其他心律,46 个记录为噪声记录,由于噪声类太少且意义不大,在实验中没有对该类进行分类。所有的记录持续时间是9~60 s,且均由心电专家加了标签,记录经过带通滤波后再进行采样[21]。

3.3 数据预处理

本文使用小波阈值去噪方法[22]去除噪声,小波阈值函数为

式中:λ=,L为小波的每个尺度的高频系数的长度,尺度设置为9;λ为阈值;σ的值为0.674;ω为高频小波系数。图8 给出了使用小波阈值去噪前后ECG 信号的比较,可以看出,去噪的ECG 信号变得平滑,同时ECG 特征最大化地被保留。

图8 去噪前后对比图Figure 8 Comparison before and after denoising

3.4 训练策略

该模型的训练过程包括两个步骤:1)训练GAN 用来生成合成ECG 数据,后者用来平衡数据集,因为在PhysioNet Challenge 2017 的数据集中房颤样本较少,所以GAN 主要用来训练房颤样本以平衡数据集;2)使用MS-ResNet 进行分类实验,分别在不平衡和平衡数据集上进行分类实验,并与近几年使用了2017 挑战赛数据集的典型模型进行比较。对于每个实验,数据集以7∶3 的比例进行划分,随机选择70% 的样本用于训练,30% 用于测试。对于模型评估,本文采用精度P、召回率R和F1 值3 个度量指标将所提模型与其他模型进行比较。

3.5 实验结果对比分析

本研究进行了两组对比实验,分别在不平衡的数据集和平衡后的数据集中测试了MSResNet 的分类性能,实验结果如表1 所示。从表1 可以看出,在不平衡数据集中,F1 值和精度P分别达到0.874 6 和88.50%。另一实验通过GAN 生成ECG 信号以平衡数据集后,F1值和精度P分别达到0.914 1 和91.56%,F1 值提高了4.5%,精度P提高了3.5%。从表1 分类结果可以看出,在进行数据平衡后,算法的分类性能得到了显著提升,AF 分类的精度P达到了96.59%,F1 值达到了0.933 0。实验结果表明,用GAN 生成数据可以消除数据不平衡,进而有效地改善了分类结果。

表1 平衡数据集和不平衡数据集分类结果对比Table 1 Comparison of classification results between balanced and unbalanced datasets

图9 和10 分别表示了在不平衡数据集和平衡数据集上训练集和测试集的损失、精确率和F1 值。可以看出,在20 轮训练后,损失变得较缓,P值和F1 值的增长速度变慢,并且在平衡数据集上分类的效果更好。图11 绘制了数据集平衡前后模型分类结果的混淆矩阵,以便更清楚地反映MS-ResNet 分类模型的优缺点。横轴表示真实的分类,纵轴表示各分类的预测结果,混淆矩阵的对角线颜色越深,分类结果越好,可以得出,在平衡数据集下,MS-ResNet 模型的分类性能更加优异,如图11(b) 所示。

图9 不平衡数据集上训练集和测试集的损失、P 和F1 值Figure 9 Loss,P and F1 value of training set and test set on imbalanced dataset

图10 平衡数据集上训练集和测试集的损失,P 和F1 值Figure 10 Loss,P and F1 value of training set and test set on balanced dataset

图11 混淆矩阵Figure 11 Confusion matrix

最后,为了更好地说明本文模型的分类性能,将其与近年来使用相同数据集的其他模型进行了比较。结果如表2 所示,本文模型取得了最好的分类效果。

表2 基于深度学习的房颤分类方法与本研究实验结果比较Table 2 Comparison of the classification method of atrial fibrillation based on deep learning and the experimental results of this study

4 结语

本文提出了一个基于GAN 和MS-ResNet 的房颤自动检测模型。该模型使用GAN 合成具有高形态相似性的单导联ECG 数据,用来解决数据的隐私和不平衡问题。同时,设计了MS-ResNet 的分类模型,从不同尺度提取不同大小信号段的特征,从而有效捕捉P波消失和RR 间期不规则特征。分别在平衡前后数据集上使用MS-ResNet 模型进行分类,实验结果表明,平衡数据集的F1 值和精确率分别达到0.914 1 和91.56%,F1 提高了4.5%,精确率提高了3.5%,显然用GAN 生成心电数据来消除数据不平衡可以有效地改善分类结果。此外,在相同的数据集上,将该分类模型MS-ResNet 与近几年其他基于深度学习的房颤分类算法进行了比较,该分类性能优于其他房颤检测文献中的模型,并实现了最佳的分类效果。

未来开展的研究有3 个可能的方向:1)开发鲁棒性能更好的生成模型处理各种类型的医学信号数据,包括ECG、EMG、EEG 和其他医学信号数据。2)探索通过减少计算量和压缩模型来实现移动和可穿戴设备上的实时自动房颤检测的措施。3)扩展模型,通过原型学习和注意力,将模型的可解释性纳入其中。

猜你喜欢

房颤尺度卷积
老年房颤患者,日常有哪些注意事项
基于3D-Winograd的快速卷积算法设计及FPGA实现
财产的五大尺度和五重应对
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
预防房颤有九“招”
阵发性房颤应怎样治疗
宇宙的尺度
9
一种基于卷积神经网络的性别识别方法