分享

【心电大数据与人工智能】结合卷积神经网络与双向长短期记忆网络的房颤预测算法研究

 实用心电学杂志 2022-09-20 发布于江苏

循心电踪迹,探心脏奥秘!

作       者:王量弘,李馨,陈钧颖,杨涛,王新康,高洁

作者单位:福州大学物理与信息工程学院(王量弘,李馨,陈钧颖,杨涛);福建省立医院心电诊断科(王新康,高洁)

基金项目:国家自然科学基金面上项目(61971140);福建省卫生教育联合攻关项目(2019-WJ-18)

通信作者:王新康,E-mail: wangxinkang@medmail.com.cn



摘 要





房颤发病突然且往往伴随着严重的并发症(如脑卒中、心肌梗死等),对健康产生极大威胁。随着深度学习技术的发展,深度神经网络因能自动提取特征等优势在房颤分类算法中被广泛应用。本文提出了一种基于卷积神经网络(convolutional neural network,CNN)和双向长短期记忆(bi-directional long short-term memory, Bi-LSTM)网络、可用于房颤分类预测的深度学习框架,可根据心电图预测房颤。借助CNN提取心电信号的形态特征并进行序列重构,将重构序列输入Bi-LSTM网络,对正反时序的节律变化进行分析,能够有效预测房颤发生前30 min内的数据、正常窦性心律数据和房颤发生时的数据。利用长时房颤数据库、MIT-BIH房颤数据库和MIT-BIH正常窦性心律数据库的数据,对提出的算法进行了训练与验证,准确率达93.3%。



关键词

心电图;房颤;卷积神经网络;长短期记忆网络;注意力机制

引用格式

王量弘,李馨,陈钧颖,等. 结合卷积神经网络与双向长短期记忆网络的房颤预测算法研究[J].实用心电学杂志, 2022, 31(4):256-261.DOI:10.13308/j.issn.2095-9354.2022.04.006

WANG Lianghong, LI Xin, CHEN Junying,et al.Study on atrial fibrillation prediction algorithm combining convolutional neural network and bi-directional long short-term memory network[J].Journal of Practical Electrocardiology,2022, 31(4):256-261.DOI:10.13308/j.issn.2095-9354.2022.04.006

      房颤是一种常见的心律失常,按发作时间的长短可以分为阵发性房颤、持续性房颤和永久性房颤。房颤发作期间的心率高达100~160次/min,速度快且不规则,可导致心血管系统紊乱。房颤往往伴随着严重的并发症,如脑卒中、心肌梗死等,对健康产生极大威胁。

      心电图依靠心脏周围的人体表面所呈现的电位差来反映心肌活动情况,目前已成为心血管疾病临床诊断的主要手段之一。然而,传统的心电图诊断工作量大、耗时长。在房颤的诊断中,医生主要依赖患者的临床症状与心电信息,后者主要包括:① 绝对不规则的RR间期;②  P波消失,出现不规则的f波,频率350~600次/min;③ 当心房周期活动可见时,心房激动周期通常<200 ms。由此可见,房颤患者的心电图特征可概括为形态与节律差异,其中节律差异对房颤的诊断更为关键。

      随着计算机辅助诊断技术的日益兴起,大量房颤自动检测算法被提出。有学者基于房颤发作期间伴有明显的RR间期不规则现象,通过计算心率变异性和香农熵来检测房颤;也有不少学者利用P波特征、TQ间期、小波特征来检测房颤。在基于心电图特征的房颤检测算法中,节律与形态特征相结合的方式对房颤特征的描述尤为重要。

      随着深度学习技术的发展,深度神经网络因能够自动提取特征等优势而广泛应用于算法。本研究提出了一种基于卷积神经网络(convolutional neural network, CNN)和双向长短期记忆(bi-directional long short-term memory, Bi-LSTM)网络、可用于房颤分类预测的深度学习框架。模型可以将输入的心电数据分类为房颤发生前30 min内数据、正常窦性心律数据和房颤发生时数据,并输出相应标签,因此,可根据输入的心电信号有效预测30 min内发生的房颤事件。算法的总体架构如图1所示。模型将Ⅱ导联和V1导联数据进行预处理后作为输入,模型前端加入CNN用于心电数据重构并提取机器特征。本研究中,CNN采用ReLU激活函数来增加网络复杂度和增强学习能力,同时在卷积层后使用最大池化层进行特征降维;模型后端则使用了Bi-LSTM网络,从正、反两个时序方向提取深层的房颤特征,并引入注意力机制,调整特征权重和优化预测模型。

  1  研究方法

      本研究使用了长时房颤数据库、MIT-BIH房颤数据库和MIT-BIH正常窦性心律数据库,针对不同数据库的差异进行归一化处理并滤波,得到满足本研究模型输入标准的数据集。再将数据集中的心电信号数据分割为心搏,进行标准化处理后输入CNN模型,在提取心电特征后送入下一层Bi-LSTM网络,结合注意力机制对输入的心搏进行分类。

      本研究使用的实验平台是TensorFlow开源框架。该平台由谷歌公司开发设计,被广泛应用于机器学习、深度学习的研究任务中。本研究使用Adam优化算法进行模型训练,在一定程度上解决了传统梯度下降法中的优化问题。

1.1  数据来源

      长时房颤数据库保存了84例阵发性或持续性房颤患者的长程心电图记录,其中每条记录的时长均控制在24~25 h,都包括两个同步导联Ⅱ、V1的心电信号。采样频率为128 Hz,数据分辨率为12位,电压动态变化范围为-20~20 mV。

      MIT-BIH房颤数据库中保存了23条心电记录,每条记录的持续时间为10 h,同样也记录了两个同步导联Ⅱ、V1的心电信号。采样频率为250 Hz,数据分辨率为12位,电压的动态变化范围为-10~10 mV。

      MIT-BIH正常窦性心律数据库中保存有心律失常实验室18位受试者的长程心电图记录。纳入该数据库的受试者无明显心律失常,其中男5例,26~45岁;女13例,20~50岁。采样频率为128 Hz,每条记录中也包含Ⅱ导联和V1导联的数据,记录时长均为25 h左右。

1.2  数据集提取

      根据算法目标将整体数据分割为三种集合:窦性心律心电数据、房颤患者发病前30 min内心电数据、房颤患者房颤发生时心电数据,分别对应标签N、N′、AF。在每个数据库中,按照以下方式进行目标数据集的提取:① 在长时心电数据库中提取N、N′、AF标签;② 在MIT-BIH房颤数据库中提取AF标签;③ 在MIT-BIH正常窦性心律数据库中提取N标签。三类标签的心电信号如图2所示。

      对房颤发生前30 min以上的窦性心律心电数据,本研究不单独设置标签。考虑到需要将这些数据与房颤发生前30 min内的心电数据加以区分,因此为便于数据处理,将其并入标签N。

1.3  数据预处理

1.3.1  统一样本格式

      由于不同数据库的采样频率、数据分辨率、滤波程度、标签类型等诸多因素并不一致,因此通过数据库截取的数据集不能直接作为输入数据使用,在使用前需要统一标准。本研究中将所有数据统一重采样至128 Hz、分辨率统一至32位,以便精确计算特征值,在模型中表述为float32。

1.3.2  滤波

      心电信号是一种很微弱的低频信号,采集设备、环境和人体各种生理活动都会对心电图造成干扰。原始心电图中一般包含大量噪声,而这对那些对噪声敏感的分类模型来说是致命的,因此需要对原始数据进行滤波处理。本研究主要考虑解决基线漂移现象和高频噪声干扰这两个对模型影响较大的问题,使用一个一阶巴特沃斯带通滤波器来过滤原始的心电信号。

1.3.3  数据切割

      N、N′、AF三类标签数据集中均记录了时长为30 min的心电数据,对应的数据长度为230 400个采样点,这个数量对于模型来说过于庞大。本研究为了精简输入,从三个标签数据集中分别以7.5 s连续截取,共裁剪了30 min时长的数据作为一个独立的数据集。为了保证每段数据之间尽可能相对独立,从每个数据集中仅随机抽取5段作为输入集合,剩余部分将被用于数据均衡。

1.3.4  归一化处理

      不同人群的心电信号,其幅值分布可能有较大差异。在模型的数学计算中,数量级较大的数据往往占据主导地位,导致预测模型对幅值小的心电信号不敏感。本研究采用Min-Max归一化方法对滤波后的心电信号进行标准化。这种标准化方式统计了样本中的最大值与最小值,并以两个最值将整体的分布按比例映射到0~1,从而得到新的分布。对于某个样本值xi,经标准映射后的xi′可按下式计算:

1.4  卷积神经网络模型构建

      有许多传统的机器学习方法通过加入更多的专家特征,实现房颤预测,但这种特征提取方式需要花费更多的时间成本和医疗资源,临床应用的时效性差,并不适用于预测短时间内发作的房颤事件。本研究利用CNN对原始的多导联心电序列进行重构,从中提取具有预测意义的机器特征,并使其取代专家特征。

      卷积核的大小决定了其感受野的范围;感受野越大,能感受到的锚点信息越多,获得的特征效果可能更好,但同时计算量也会倍增,不利于模型深度的增加。为了尽可能多地保留特征并将其送入下一层LSTM网络,本研究将卷积核的最大边长设置为5,并采用有填充的方式来保存数据的边缘信息。第一层卷积,网络着重考虑在不丢失过多信息的情况下将序列的特征向量表征至更深层次。第一层卷积在选择卷积核尺寸时,需要将两个导联的数据宽度进行融合,并把维度降至一维,通过增加卷积核数量来提升特征提取能力。第二层卷积也被用于高维特征的提取,但主要目标是降维,以保证不超过原始心电序列的时序规模。

      由于线性不可分问题始终存在,而卷积层并不能解决这个问题,因此,本研究引入了激活函数,用来加强模型的表达能力。本研究选择ReLU作为CNN层之间的激活函数。它是一个分段函数:当输入<0时,函数值恒为0;当输入≥0时,函数值与输入相等。

      池化层也是该网络的组成部分,主要是用于特征降维,也能在一定程度上防止过拟合。由于节律变化是模型预测房颤的主要依据,因此,尽可能地保留节律信息是选择池化方式的关键,而最大池化能够保证最大限度地保留这类信息。本研究在第一层激活层后加入一层最大池化层,用于压缩过长的张量长度,并进行特征降维;在第二层激活层输出后也增加了一个最大池化层,其尺寸根据下一层LSTM模型的输入确定。

1.5  基于注意力机制的Bi-LSTM 模型构建

      输入的Ⅱ导联和V1导联数据经过CNN后,输出一个合适的张量并将其输入Bi-LSTM模型。本研究将原始数据集的时间作为Bi-LSTM的输入时间序列维度;将原始数据集经过CNN生成的通道维度,作为Bi-LSTM的输入特征向量维度;同时,将原始数据集的导联维度降至1,不作为Bi-LSTM输入的某一维度。考虑到ReLU函数在LSTM训练过程中很容易造成梯度爆炸,而sigmoid函数的非饱和区间较窄,容易造成梯度消失,本研究中的算法采用tanh函数作为记忆单元的激活函数。由于本研究采用的Bi-LSTM在输出上有两层相向的LSTM层,因此其为原始LSTM模型输出的两倍,相应地,Bi-LSTM模型输出张量的长度为批处理大小、宽度为时间序列长度、通道数为隐藏层的单元数量。关于两组输出的结合方式,本研究采用了对应位置取和,将两组合并为长、宽、通道数均不变的一组特征向量,由此得到了该模块的输出维度。

      该输出张量经上述计算后,输入注意力模型。为了避免前一层加和可能导致的特征值值域分布溢出问题,采用tanh激活函数对输入进行非线性转换。本研究采用软注意力机制,通过设定可训练权重向量W,将其与非线性激活后的张量作矩阵乘法;每个时间序列步中,长度为隐藏层单元个数的特征向量被转换为权重系数。权重系数矩阵再通过一个softmax激活函数作归一化处理,即可得到标准化的权重系数矩阵α,此时矩阵的长为批处理大小、宽为时间序列长度。再利用矩阵α对注意力模型的输入张量进行加权求和,并重新调整尺寸为二维,即可得到注意力系数矩阵。

      在注意力模型输出前,还加入了一层激活层,激活函数选择tanh函数。该层输出后直接经过一个全连接层,输出向量直接通过argmax函数转换为独热编码类型的向量,以实现对三种房颤相关标签的预测。

 2  结果

      在数据集的划分上,本研究采用了五折交叉验证的方式进行整体模型的训练与测试,其中训练集占80%,验证集占20%。根据训练方案确定每层的参数,如表1所示。

      本研究引入了混淆矩阵,用来具体观察模型在每一个特定类中的表现,并从混淆矩阵中提取了准确率、精确率、召回率和F1分数这4个统计指标, 分别记作Acc、P、R和F1,其具体的数学定义如下:

      (1) 准确率是指被预测正确的阴性样本和阳性样本数量之和占总样本数量的比例,可按如下公式计算:

      (2) 精确率是指所有被预测为阳性且真实标签也为阳性的样本数量占预测标签为阳性的总样本数量的比例,可按如下公式计算:

      (3) 召回率是指所有被预测为阳性且真实标签也为阳性的样本数量占真实标签为阳性的总样本数量的比例,可按如下公式计算:

      (4) F1分数是指综合了精确率与召回率的一种平衡分数,其数学定义为二者的调和平均数,可按如下公式计算:

      其中,TP表示为预测为阳性标签且实际也为阳性标签的样本数量;TN表示预测为阴性标签且实际也为阴性标签的样本数量;FP表示预测为阳性标签但实际为阴性标签的样本数量;FN表示预测为阴性标签但实际为阳性标签的样本数量。

      为了确定训练超参数学习率和批处理的大小,本研究在固定LSTM隐藏层单元数量为64的情况下,对比了不同学习率和批处理大小对模型训练速度的影响。进行大量实验后通过观察准确率曲线的收敛情况,筛选了其中6个有代表性的模型A—F,通过学习率和批处理大小的组合得出相对较高的准确率(表2)。由表2可以发现,学习率与模型的收敛速度呈正相关,但不同的学习率可能会导致不同的收敛情况。本研究所用数据的验证集在学习率为0.003 0附近、批处理大小为64时达到最佳表现,此时模型预测房颤的准确率为0.90。

      在统一学习率、批处理大小的情况下,本研究比较了不同的隐藏层单元数量对模型表现的影响。采用不同隐藏层单元数量训练模型,选出了4个各项参数表现良好的模型,其训练过程中所使用的模型参数及性能表现如表3所示。

      从表3中可知,本研究所提出模型的最高准确率约0.934,精确率约0.930,召回率约0.933,F1分数约0.931。从训练的多个模型来看,不同模型均能收敛且表现良好,可以证明所提出的模型鲁棒性较强。N类被误分为N′类的情况是当前模型的主要问题。从医学角度来看,N′类的精确率较高,有利于从一般人群的心电图筛查中更准确地识别潜在的房颤患者,这对疾病筛查具有很重要的临床意义。为了解决这一问题,我们将在今后的研究中尝试采用更多的网络结构,以进一步改进预测效果。

3  总结与展望

      房颤的初步诊断主要依赖心电图。利用现有的工程技术,人们已经对心电图展开了细致而深入的研究,在房颤自动检测与房颤长短期预测等领域取得了一定的成果。尽管目前对于房颤自动检测算法的研究较多,模型应用也十分广泛,但在房颤的预测上仍然存在诸多挑战。首先,当前研究在房颤预测方面过分依赖专家特征,传统的SVM、K近邻法等都需要花费大量的医疗资源和人力成本,这是当前研究面临的瓶颈。虽然近年来有不少深度学习模型被应用于房颤的预测任务中,但模型预测的准确率与附加的专家特征数量仍然紧密相关。本研究从已知的公开数据库出发,提取了Ⅱ导联和V1导联数据并重新规划了数据形式,构建了Bi-LSTM房颤预测模型。在模型前端的输入部分,加入了CNN用于心电数据重构,并提取机器特征;在模型后端,增加了一层注意力模型,用于优化预测模型。本研究提出的算法能够有效预测房颤发生前30 min内数据、正常窦性心律数据和房颤发生时数据。该模型性能表现优良,克服了传统模型对专家特征的依赖,同时保障了较高的准确率,能够满足临床对房颤检测便捷性、高效性的要求。

      本研究提出的模型在以下几方面有进一步的研究空间:① 为了数据的归一化处理,本研究将多个数据库的多导联数据作了最小匹配,仅保留了两个导联的数据作为输入,而近年来12导联数据库逐渐丰富,可以考虑进一步扩展导联数,以实现更好的预测效果。② 整体模型尺寸庞大,虽然在实时性上有所改进,但是若要进一步用于临床实时监护,还需要进一步减少参数数量。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多