APP下载

基于单心搏活动特征与BiLSTM-Attention模型的心律失常检测

2019-10-18李润川张行进冀沙沙王宗敏

计算机应用与软件 2019年10期
关键词:心搏注意力分类

李润川 张行进 王 旭 陈 刚,4* 冀沙沙 王宗敏*

1(郑州大学产业技术研究院 河南 郑州 450000)2(郑州大学互联网医疗与健康服务河南省协同创新中心 河南 郑州 450000)3(解放军信息工程大学数学工程与先进计算国家重点实验室 河南 郑州 450003)4(郑州大学远程教育学院 河南 郑州 450000)

0 引 言

心律失常(arrhythmia)是由于心脏活动的起源或传导受阻导致的心脏搏动的频率或节律异常,而引起的心电活动异常症状。心电图(electrocardiography,ECG)是被普遍采用的非侵入性检查和诊断心律失常等多种心脏疾病的重要手段,在全世界的临床中得到广泛的应用。最近,一些论文运用卷积神经网络(CNN)来检测异常的心电信号[1-2]。通常该类方法所设计的CNN网络,更复杂,更深入、更广泛。它们被设计用来自动学习基于大量数据集的特征,进一步增强CNN的处理能力。Acharya等[3]使用卷积神经网络来分析ECG信号。Kiranyaz等[4]使用一维卷积神经网络(1D-CNN)来分类心搏形态。Rajpurkar等[5]采用多层卷积神经网络算法,通过便携式心电贴检测心律失常。Übeyli等[6]将循环神经网络(RNN)模型用于心电图心搏分类。但他们都没有综合考虑到心博的局部性与整体性特征的结合。LSTM模型是由Hochreiter等[7]提出的一种对RNN的改进模型,它通过构建专门的记忆单元来存储历史信息。LSTM模型是用来处理序列数据的,往往忽略未来的上下文信息,而双向LSTM模型(Bidirectional LSTM,BiLSTM)结构解决了这个问题,它给输出层提供输入序列中每一个点完整的过去和未来的上下文信息。注意力机制是文献[8-9]中提出的一种模拟人脑注意力观察的模型,它能够通过计算注意力概率分布,对关键性输入进行突出,该模型被应用到机器翻译、文本分析等多个深度学习应用领域,从而对传统的模型起到良好的优化和改进作用[10]。

本文通过二进样条小波变换定位R波峰值位置,并在此基础上提取QRS复合波数据,以及RR间期的计算。本文使用了单心搏活动特征,即单个心搏的QRS波群局部特征数据、单个心搏的RR间期整体特征数据(RR间期代表了当前心搏活动时长特征)构建单心博活动特征能更加全面地表征心搏形态信息。采用基于注意力机制的双向LSTM(BiLSTM-Attention)神经网络算法对心搏形态进行分类。通过BiLSTM-Attention计算模型实现网络中神经元之间的连接,建立更准确客观的心搏形态识别模型,并使用MIT-BIH心律失常临床数据库进行实验验证[11]。

1 数据预处理

1.1 心电信号预处理

小波变换良好的空间和频域定位特性使其能够进行信号多尺度详细分析,研究人员已经使用小波变换来实现精确和高效的R波峰值定位[12-15]。小波基函数和连续小波变换的基本定义如下:

(1)

(2)

式中:a为尺度因子,τ为平移因子。因a和τ是连续变换的值,所以称其为连续小波变换。连续小波变换运算过程复杂,所以将连续小波尺度因子进行离散化处理。离散小波变换的平移不变性使其非常适合信号检测,实际应用时使用二进小波变换:

(3)

1.2 R波峰值位置检测与特征提取

一个常见心搏的完整波形主要由P波、QRS波以及T波组成,其波形形态如图1所示。我们选择二进样条小波来检测R波的位置,这是由于其对称性和正交性以及滤波器设计简单的优点。本文利用二进样条小波变换生成的模极大极小值来定位R波峰值点,在此基础上进行RR间期的计算及QRS波群数据的提取。图2显示了R波峰值位置检测的结果。

图1 心电信号单心搏波形

图2 R波峰值位置检测的结果

基于图2检测出的R峰位置,我们从记录中提取R峰处的187点片段,即为提取的单个心搏的局部特征。以当前R点为参考向左搜索72个采样点,如果位置点存在,则记录左端点坐标,否则停止搜索;再以当前R点为参考向右搜索114个采样点,如果位置点存在,则记录右端点坐标,否则停止搜索。我们默认使用长度为187个采样点的QRS波群段。其中在第188个样本点处存储RR间期的长度值,即为提取的单个心搏的整体特征。

2 基于注意力机制的双向LSTM模型

2.1 LSTM模型

长短期记忆网络(Long Short-Term Memory,LSTM)网络由三个门(输入门、遗忘门和输出门)及一个cell单元来实现历史信息的更新和保留[7],在时刻t时,输入门会根据上一时刻LSTM单元的输出结果ht-1和当前时刻的输入xt都作为输入,表述为:

it=sigmoid(Wi·[ht-1,xt]+bi)

(4)

遗忘门会根据上一时刻隐藏层的输出结果ht-1和当前时刻的输入xt作为输入,来决定需要保留和舍弃的信息,实现对历史信息的存储,可以表述为:

ft=sigmoid(Wf·[ht-1,xt]+bf)

(5)

对于当前的候选单元记忆值是由当前输入数据xt和上一时刻LSTM隐藏层单元输出结果ht-1决定的,可以表述为:

Cin=tanh(Wc·[ht-1,xt]+bc)

(6)

当前时刻记忆单元状态值Ct除了由当前的候选单元Cin以及自身状态Ct-1外,还需要通过输入门和遗忘门对这两部分因素进行调节,*为矩阵对应元素相乘。可以表述为:

ct=ft*ct-1+it*cin

(7)

计算输出门Ot,用于控制记忆单元状态值的输出,可以表述为:

ot=sigmoid(Wo·[ht-1,xt]+bo)

(8)

最后LSTM单元的输出为ht,可以表述为:

ht=ot*tanh(ct)

(9)

在计算每个位置的隐藏矢量之后,我们将最后的隐藏矢量看作是ECG信号心搏特征的表示。

2.2 基于注意力机制的双向LSTM模型

(10)

(11)

(12)

ut=tanh(wwht+bw)

(13)

(14)

st=∑tatht

(15)

式中:ht是上一层BiLSTM神经网络层的输出向量,ww表示权重系数,bw表示偏置系数,ut表示ht所决定的能量值,at为各个隐藏层状态在新的隐藏层状态中所占比重大小的权重系数,uw为表示随机初始化的注意力矩阵,并在训练过程中不断学习,st为经过Attention机制的输出向量。输出层的输入是上一层Attention机制层的输出,其采用softmax函数对输出层的输入进行相应计算,从而进行心搏分类并输出结果,具体公式如下:

yj=softmax(wjst+bj)

(16)

式中:wj表示Attention机制层到输出层的待训练的权重系数矩阵,bj表示待训练相对应的偏置,yj为输出的心搏预测类型。基于注意力机制的双向LSTM模型中注意力机制层与前向传播层和后向传播层通过ht计算连接,可以充分发挥Attention机制的模型优势。BiLSTM-Attention模型工作过程示意图如图3所示。

图3 基于Attention机制的Bi-LSTM模型

3 实验设计

3.1 实验流程

本实验先将ECG数据通过双正交小波变换方法去噪;再采用二进样条小波变换检测R波峰值,进而计算RR间期并抽取QRS复合波数据;然后通过BiLSTM-Attention模型分析数据;最后输出分类结果。该实验流程如图4所示。

图4 实验流程图

3.2 问题定义

心搏分类的问题可以定义为对ECG心搏时序信号B=[b1,b2,…,bn]的输入序列进行分类的任务,输出标签C=[c1,c2,…,c5]序列的每个ci是C的不同心搏类型之一。每个输出标签对应于输入的一个心搏活动特征。我们使用BiLSTM-Attention模型在监督学习框架中以端到端的方式解决这个问题。损失函数是ECG心搏分类的交叉熵误差,可以表示为:

(17)

3.3 模型训练

为了训练模型,Nadam方法被应用。Nadam类似于带有Nesterov动量项的Adam(Adaptive Moment Estimation)。Adam算法是随机梯度下降算法(SGD)的优化,被广泛用于深度学习中。SGD就是逐次迭代计算mini-batch的梯度,主要公式为:

gt=▽θt-1f(θt-1)

(18)

Δθt=-ηgt

(19)

式中:η是学习率,gt表示t时刻的梯度。SGD选择合适的学习率比较困难,容易收敛到局部最优。Adam结合了AdaGrad和RMSProp算法最优的性能,它能够提供解决稀疏梯度和噪声问题的优化方法。其中Adam的计算公式如下:

mt=μ·mt-1+(1-μ)·gt

(20)

(21)

(22)

(23)

(24)

式中:μ是动量因子;为平滑项,以防止除数为零;mt和nt分别是对梯度的一阶矩估计和二阶矩估计,可以看作对期望E|gt|和的估计;和是对mt和nt的修正,这样就能够近似为对期望的无偏估计。Nadam在公式上的变化如下:

(25)

mt=μt·mt-1+(1-μt)·gt

(26)

(27)

(28)

(29)

可以看出,Nadam相对Adam提高了收敛速度,对学习率有了更强的约束[16]。

4 实验结果

4.1 数据集

本文使用MIT-BIH心律失常数据库[11],依据ANSI/AAMI EC57:2012标准将所有心搏数据分为N(正常或者束支传导阻滞心搏)、S(室上性异常心搏)、V(心室异常心搏)、F(融合心搏)4类。如表1所示,本文对MIT-BIH心律失常数据库中标Ⅱ导联通道中的89 538个心搏进行分类,从中随机抽取90%的数据集用于训练,10%的数据集用于测试。81 693个心搏被专家记录为N类型,其中的73 502个被用于训练,8 191个被用于测试。2 561个心搏被记录为S类型,其中2 295个用于训练,266个用于测试。4 519个心搏被记录为V类型,其中4 073个用于训练,446个被用于测试。只有765个心搏被记录为F类型,其中709个用于训练,56个用于测试。可以看出,实验是在不平衡样本下进行的,不同类型的心搏个数有很大的不同。N型数量大约是S型数量的32倍,V型数量的18倍,F型数量的107倍。

表1 实验数据分布情况

4.2 评价指标

(30)

(31)

(32)

4.3 结果与讨论

本实验是在具有i7-7700K处理器和32 GB RAM的PC上使用tensorflow-gpu 1.11.0[17]及Keras 2.2.4和MATLAB 2017b开发工具进行的。表2显示了实验分类的混淆矩阵结果,其中N、S、V、F代表医生标注的心搏类型,n、s、v、f代表模型预测出的心搏类型。

表2 心搏分类结果统计

表3 本实验与其他实验结果的比较 %

上述分析表明,本文基于单心搏活动特征与BiLSTM-Attention模型的心律失常检测方法在心搏类型识别上的精确性得到了提高,受数据集的不平衡影响较小,对正常或束支传导阻滞、室上性异常心搏和心室异常心搏识别度高,对融合心搏也有一定的识别度,有利于准确识别心律失常,在动态心电图分析领域具有明显的临床意义和实用性。

5 结 语

心电图的高精度诊断可以为心脏病患者的临床监测、诊断和治疗提供客观依据,减轻医生的工作量,使临床医生减少误诊的次数并节省不少的时间,进而提高心电诊疗工作的效率。本文使用了单心搏活动特征,既包含单心博的局部特征,又包含单心搏的整体特征,能更精确地识别异常心搏。但由于数据的不平衡性,F类型心搏识别的精度还有待提高,我们将会不断探索更有效的检测方法,从而帮助医生得到更准确的诊断结果。

猜你喜欢

心搏注意力分类
急性心肌炎病人发生心搏骤停的危险因素分析
让注意力“飞”回来
2020 AHA心肺复苏指南解读(七)
——成人基础和高级生命支持主要推荐意见总结
10秒钟之内的决断(上)
——心搏骤停的漏诊
如何培养一年级学生的注意力
按需分类
突然倒地怎么办?
教你一招:数的分类
说说分类那些事
A Beautiful Way Of Looking At Things