心电图(ECG)信号在采集过程中容易受内部和外部噪声干扰,而且不同患者的 ECG 信号形态特征差异较大,即使同一患者在不同时间和环境下其 ECG 信号也会有差异,因此 ECG 信号特征检测与识别在心脏病远程实时监测与智能诊断中具有一定难度。基于此,本研究提出将小波自适应阈值去噪和深度残差卷积神经网络算法用于多种心律不齐的信号识别过程中。其中,使用小波自适应阈值技术完成 ECG 信号滤波,并设计了包含多个残差块(residual block)结构的 20 层卷积神经网络(CNN),即深度残差卷积神经网络(DR-CNN),对 5 大类心律不齐 ECG 信号进行了识别。然后,本文采用残差块局部神经网络结构单元构建 DR-CNN,缓解了深层网络的收敛难、调优难等问题,克服了 CNN 随着网络层数增加而导致的退化问题;进一步引入批标准化(batch normalization)技术,保证了网络的平滑收敛。按照美国医疗器械促进协会(AAMI)的心搏分类标准,使用麻省理工学院和波士顿贝丝以色列医院(MIT-BIH)心律不齐数据库中 94 091 个 ECG 心搏信号(2 个导联),完成了心律不齐多分类、室性异位搏动(Veb)和室上性异位搏动(Sveb)等分类识别实验。实验结果表明,本文所提出的方法在 ECG 信号多分类、Veb 和 Sveb 识别中的准确率分别达到了 99.034 9%、99.498 0% 和 99.334 7%。在相同的数据集和实验平台下,DR-CNN 在分类准确率、特异性和灵敏度上均优于相同结构复杂度的 CNN、深度多层感知机等传统算法。DR-CNN 算法提高了心律不齐智能诊断的精度,该方法与可穿戴设备、物联网和无线通信技术相结合,可以将心脏病的预防、监测和诊断延伸到家庭、养老院等院外场景,从而提高心脏病患者的救治率,并且有效地节约医疗资源。
引用本文: 李端, 张洪欣, 刘知青, 黄菊香, 王田. 基于深度残差卷积神经网络的心电信号心律不齐识别. 生物医学工程学杂志, 2019, 36(2): 189-198. doi: 10.7507/1001-5515.201712031 复制
引言
心电图(electrocardiogram,ECG)是记录心脏每一心动周期电活动的可视化时间序列,它的形态特征可反映潜在的心律不齐症状[1-2]。由于心脏病的突发性和难以预测性,建立有效的、延伸到医院以外的远程实时监护体系,对患者进行实时 ECG 信号监测并及时发现心脏异常变化对心血管病预防和救治具有重要意义[3-4]。
ECG 信号在采集过程中容易受工频噪声、肌电噪声、基线漂移和运动伪影等干扰,而且患者间个体差异大,同一患者在不同时间的测试结果也会受当时身体状况的影响,即使有经验的专家也很难完全准确地判断疾病类型。随着人工智能技术的发展,很多模式识别的方法已被用于 ECG 信号的分类识别,比如:小波分析、功率谱估计、主成分分析结合神经网络、随机森林、聚类和支持向量机等智能识别算法[5-10]。尽管传统的模式识别方法已取得了一定的研究成果,但是目前临床 ECG 信号采集设备大多是按照传统的特征提取方法提取心率、ST 段特征等信息,再经过简单分析给出粗略建议,并没有实现多种心律不齐的智能诊断。总的来说,目前的 ECG 数据自动诊断方法存在如下问题:① 如果前期特征提取效果不好,将导致最终的分类准确率下降;② 浅层神经网络分类器针对大数据训练效率不高,非线性拟合能力差,准确率有限;③ 很多方法对小样本测试效果良好,面向临床大数据诊断则效果下降,仍无法用于临床辅助诊断。
近几年,深度学习算法不仅在图像识别、语音识别等领域取得了瞩目的成就,也广泛用于基于 ECG 信号的心脏病辅助诊断[11-14]。相比传统的浅层神经网络而言,深度神经网络具有更强的非线性拟合能力[15],在单导联、部分数据集、少类别 ECG 心搏信号分类中获得了较好的识别效果。虽然神经网络层数的加深有利于提高网络的识别率,但是随着网络层数的堆叠,深层网络的收敛和优化仍然是较为棘手的问题。为了建立更高效、准确的心律不齐智能诊断模型,本文提出将小波自适应阈值滤波和深度残差卷积神经网络(deep residual convolutional neural network,DR-CNN)算法用于 ECG 信号心律不齐的实时诊断。首先,将 ECG 信号进行实时小波自适应阈值滤波,滤除基线漂移、肌电噪声等干扰信号后进行心搏自动分割。然后,用残差块(residual block)局部神经网络单元构建了适合大规模 ECG 信号训练和测试的 DR-CNN 模型,该模型可缓解深层网络的收敛难、调优难等问题,引入了批标准化(batch normlization)技术,保证了网络稳定平滑地收敛。最后,使用麻省理工学院和波士顿贝丝以色列医院(Massachusetts Institute of Technology and Beth Israel Hospital,MIT-BIH)心律不齐数据库中的 94 091 个 2 导联心搏数据进行 ECG 信号多分类、室性异位搏动(ventricular ectopic beats,Veb)和室上性异位搏动(supraventricular ectopic beats,Sveb)检测实验,验证了本文所提算法的分类识别效果,并给出了详细的实验结果分析。
本文提出了利用小波自适应阈值滤波与 DR-CNN 算法来进行 ECG 信号自动识别,通过实验验证了该方法的有效性,为 ECG 信号辅助诊断提供了新方法,是大数据人工智能和精准辅助医疗的有效结合。最终,期望本文方法能够应用于心脏病患者的远程实时监测和诊断,达到提高心脏病救治率的目的。
1 心律不齐识别算法理论
1.1 小波自适应阈值去噪算法
传统的数字滤波器对 ECG 信号的滤波等预处理会引起如下问题:① 相位移动,比如:巴特沃斯和切比雪夫等数字滤波在滤波前后的信号会出现时移;② 振铃现象,即处理后会发生一个瞬变后的震荡,尤其是信号开始阶段,还会引起高振幅 QRS 波终止后的低幅振荡。基于此,本文采用具有良好的时频域局部分析能力的小波变换法进行处理,它能同时利用信号与噪声在时、频域内的差别,实现更为有效的信噪分离。
小波变换是时间(空间)频率的局部变换,通过伸缩和平移可实现信号或函数的多尺度细化分析[16-18]。具体来说,任意函数 都可以分解为任意尺度上的细节部分和近似部分。定义 V0 为尺度函数 φ(t)的平移系列
在 L(R)空间所张成的零尺度空间。设 Ψ(t)为小波函数,则尺度函数和小波函数伸缩和平移构成的函数系分别如式(1)和式(2)所示,它们分别构成了各个尺度空间和小波空间的规范正交基。
![]() |
![]() |
其中,j,k ∈ Z,则离散正交小波级数如式(3)所示:
![]() |
其中,J 为小波分解的最大阶数,M 为分解出的细节因子阶数,cJ-M,k、dj,k 分别为 2j 尺度上的尺度系数和小波系数,可由马拉特(Mallat)快速分解算法得到,如式(4)和式(5)所示:
![]() |
![]() |
由此可见,小波分解相当于信号经过了双通道滤波器组,该滤波器组分别具有高通和低通性质,滤波输出对应于离散信号的低频和高频细节。在不同尺度上进行双通道滤波就实现了原始离散信号的多分辨率分解。小波滤波往往是对这些分解之后的不同尺度信号进行处理,然后将得到的结构整合到一起恢复出原始信号。信号整合和恢复的过程称为离散小波逆变换(inverse discrete wavelet transform,IDWT),即从低阶小波系数和尺度系数依次计算出高阶尺度系数,最终把不同分辨率层次上展开的结果再叠加起来,得到想要的频带信号,甚至原始信号。Mallat 重建算法如式(6)所示:
![]() |
小波自适应阈值滤波方法首先将 ECG 信号进行小波分解,然后自适应选择阈值,对部分细节因子去噪,之后进行重构。阈值选择是滤波的关键,传统信号去噪算法中阈值的选择分为硬阈值和软阈值两种方法。软阈值去噪方法可以自适应地调整不同高频带系数的阈值,避免由于阈值过大而滤除有用信号,或阈值过小而滤波不彻底。本文采用最高阶细节系数来估计信号高斯白噪声,各细节因子的阈值函数定义如式(7)所示:
![]() |
阈值 Th 通过如式(8)所示的公式来选择:
![]() |
其中,n 为噪声信号的样本点数,σ 是噪声的标准差,可通过如式(9)所示估算得到:
![]() |
其中,|Yij|是噪声信号小波分解的最高阶细节系数。如式(7)所示,当细节因子高于阈值时,取信号的模与阈值的差,否则将细节因子置零。
1.2 DR-CNN
1.2.1 卷积神经网络
卷积神经网络(convolutional neural network,CNN)是受生物神经科学领域“感受野”概念的启示而设计的特殊的深层前馈神经网络[19]。传统的 CNN 结构由输入层、多个交替的卷积层和池化层(下采样层)、全连接层及输出层组成。本课题研究的是 ECG 信号的分类识别,用来分类的数据是 2 导联的 ECG 心搏信号,并将其作为 CNN 的输入信号。由于 CNN 的卷积层是通过卷积核重复作用于整个输入信号的每个感受野,而卷积的结果构成输入信号的特征图。因此,假设第 卷积层的第 j 通道输入(净激活)用
表示,输出用
表示,则输出
和输入
的表达式如公式(10)所示:
![]() |
其中,f(•)为激活函数,Mj 表示 l-1 层特征图子集, 是卷积核矩阵,
是偏置项,“
”是卷积符号。
接下来,池化层的目的是减少网络计算量,让模型更具有鲁棒性。具体操作是将输入的特征图划分为多个不重叠的区域,然后对各个区域求均值或者最大值,保证了特征平移、缩放的不变性。假设采样权系数用 α 表示,符号 pool(•)表示池化函数。则第 l + 1 层的输出特征图如式(11)所示:
![]() |
经过多个交替卷积和池化层,最后是全连接层,即将所有二维图像特征图展开为一维特征,作为全连接网络的输入。经过上一层输出的加权求和及激活函数,可得到全连接 m 层第 j 个神经元的输出 ,如式(12)所示:
![]() |
CNN 的训练算法主要是基于梯度下降法的反向传播算法,目标是根据训练样本和期望输出来估计网络参数,包括卷积核参数 k,下采样网络权重 α、全连接层网络权重 w 和各层偏置 b。该算法的思想是根据样本的输出误差函数(损失函数),计算每层有效误差并推导出网络学习规则,更新网络参数,使得实际网络输出更加接近期望输出(即损失函数最小)。由于深度学习网络一般采用批度梯度下降法来训练网络,n 个样本的整体平方误差损失函数如公式(13)所示:
![]() |
利用偏导的链式法则,逐层向前传递,求出各层的灵敏度,其表达式如公式(14)所示:
![]() |
通过网络各层的灵敏度建立损失函数对网络参数的偏导数,即分别计算损失函数对参数 k,α,w 和 b 的偏导数,并且更新各层网络参数。第 l 层卷积层参数更新方法如式(15)、(16)所示:
![]() |
![]() |
第 l + 1 层池化层参数更新方法如式(17)、(18)所示:
![]() |
![]() |
第 m 层全连接参数更新方法如下公式(19)、(20)所示:
![]() |
![]() |
其中,η 是学习率,用于控制梯度下降行进的步长。如果学习率设置太大,容易导致系统发散。
1.2.2 DR-CNN
深度神经网络随着层数和神经元数的增加,非线性拟合能力会增强,但简单的堆叠网络层数又会出现梯度消失问题,此问题可以通过规范初始化和引入中值规范化层等方式使网络得以收敛。虽然解决了网络的收敛问题,但是对于一个较深层的网络,当网络模型的准确度达到饱和之后,模型的准确率会随着深度的加深反而降低,即出现神经网络的退化问题[20-22],而且此类问题并非是过拟合造成的。神经网络实际上是通过调整参数来学习一种隐含的抽象映射关系,但是这种隐含的映射关系在较深的网络中很难优化。
DR-CNN 方法则是寻求另一种解决方案,如图 1 所示,H(x)是希望学习到的隐含的映射关系,DR-CNN 算法的学习过程是让多个连续堆叠的非线性计算层(比如两层卷积)去拟合输入数据和映射后的输出数据之间的残差 F(x) = H(x)− x,这个残差越逼近 0,代表这个网络提取的特征与原始的输入越相近。如果想拟合恒等映射,只用将权重置零;如果想拟合近似恒等映射,通过拟合残差,更容易发现小的扰动,便于调节网络参数。因此,由残差块局部深度神经网络单元构成的 CNN,能够解决深层网络的收敛难、调优难等问题,克服了 CNN 随着网络层数增加而导致的退化问题。

2 ECG 信号中心律不齐识别算法实施
2.1 数据分析及评估标准
本文实验数据来自 MIT-BIH 心律不齐数据库,该数据库共有 48 条记录,每条记录 30 min,采样率为 360 Hz。每条记录由 2 个导联组成。每条记录的导联不完全相同,只有 40 条记录包括相同的Ⅱ导联和Ⅵ导联,实际应用时应考虑导联一致性,所以后续实验采用该 40 条记录的所有心搏数据。为了更加科学和便于比较,我们严格按照美国医疗器械促进协会(the Association for the Advancement of Medical Instrumentation,AAMI)标准,将 16 类心律不齐分 5 大类,分别是正常(normal,Nor)(包括正常心搏、左右束支传导阻滞等)、Sveb(包括房性早搏、交界区早搏等)、Veb(包括室性早期收缩和室性逸搏)、融合心搏(以符号 Fus 表示)和未知心搏(unclassified,Unc)(包括起搏心跳、未分类心跳等)。5 大类 2 导联心搏数量为 94 091 个。按照 AAMI 标准,Veb 和 Sveb 测试也是评估 ECG 信号采集设备性能的重要项目。为测试所设计的网络的性能,本文设计了两个实验:① 是按照上述分类标准,对 94 091 个心搏进行 5 分类实验;② 是测试所设计的网络对 Veb 和 Sveb 心搏的识别能力,同样按照上述分类标准并剔除了未知心搏以后,本文使用剩余 90 200 个 2 导联心搏数据。其中,Veb 测试时,将其他 3 类型心搏作为一类,即从两大类中检测 Veb 类型心搏;Sveb 测试时,将其他 3 类型心搏作为一大类,从两大类中检测 Sveb 类型心搏。
分类模型的性能通过整体准确率(accuracy)(以符号 Acc 表示)、敏感性(sensitivity)(以符号 Se 表示)和特异性(specificity)(以符号 Sp 表示)来衡量,其中准确率是正确分类的心搏比例。每个指标具体计算方法如式(21)~(23)所示:
![]() |
![]() |
![]() |
其中,真阳性(true positive,TP)(符号记为:TP)表示本来是阳性,被正确分类的样本个数;假阳性(false positive,FP)(符号记为:FP)表示本来不是阳性,被分类为阳性的样本个数;真阴性(true negative,TN)(符号记为:TN)表示本来是阴性样本,被正确分类的样本个数;假阴性(false negative,FN)(符号记为:FN)表示本来不是阴性,被错误地分类为阴性的样本个数[10-11]。
2.2 ECG 信号去噪
小波变换算法可以将非平稳信号分解为代表不同频带的尺度信号,广泛用于非平稳信号处理中。由于 ECG 信号采集过程中会产生基线漂移、工频干扰及高频肌电噪声,因此合理地滤波是后续识别的关键。ECG 信号中有用部分的能量主要集中在 1~40 Hz,滤波系统中采用了自适应阈值小波滤波算法,该算法包括小波分解、自适应阈值去噪和重构三步。由于 Symlet 小波函数族与 ECG 信号形态近似,故选择 Sym6 作为小波函数。由于深度学习方法可以从 ECG 信号中挖掘内部特征并自动提取,因此信号预处理阶段只用进行比较简单地滤波,这样有助于增强网络的泛化能力,还可以尽量减少 ECG 信号失真。因此,本文首先对 ECG 信号进行 10 层分解,利用 Mallat 算法计算细节系数和近似系数。现在已知基线漂移干扰是由人体呼吸、运动等因素引起,当受试者处于静止状态时,基线漂移通常低于 1 Hz[23],因此在小波滤波过程中,本文将第 9 和 10 层近似系数置 0,以便去除基线漂移。而对于高频噪声,本文则采用自适应阈值算法将最高频细节成分滤波,按照均方误差准则估计信号的白噪声。
为了验证滤波效果,本文选择 MIT-BIH 数据库污染较大的 105 号 ECG 信号记录进行实验,小波滤波的效果如图 2 所示,自上向下分别为原始 ECG 信号、小波自适应阈值去噪信号、巴特沃斯(Butterworth)0.65~42 Hz 带通滤波信号和 Butterworth 1~40 Hz 带通滤波信号。

从图 2 中可以看出,采用 Butterworth 0.65~42 Hz 频段带通滤波后,ECG 信号出现形态失真,S 波幅度被拉长变形,而且基线移除不彻底;而经过 Butterworth 1~40 Hz 带通滤波后,P 波和 T 波明显变大,Q 波拉长变形。但本文所提出的小波阈值去噪算法,则达到了较好地去除基线和高频噪声的效果,而且较好地保持了 ECG 信号原有的形态,这样不仅有利于读图,更重要的是能提高后续 DR-CNN 算法的识别效果。
滤波之后,再进行心搏的分割,利用 ECG 信号的 R 波位置,以 R 波位置为中心,分别左边取 129 个点,右边取 220 个点,构成一个心搏信号。由于使用的数据为 2 个导联,因此每个心搏样本的大小为 2 × 350。
2.3 DR-CNN 设计及实验结果分析
由于网络层数和复杂度会大大影响训练结果,本文设计了不同层数和结构的 DR-CNN 模型,进行了反复实验和对比。如图 3 所示,是对 8、12、16、20 和 24 层的 DR-CNN 网络的每次(epoch)训练所得的交叉验证准确率的统计结果。

如图 3 所示,20 层的 DR-CNN 达到了较好的训练和测试结果,24 层的网络性能与 20 层相当,考虑到系统测试的实时性要求,因此本文选择了 20 层网络作为系统的诊断模型。
本系统所采用的 20 层 DR-CNN 的模型结构如图 4 所示。输入数据为 2 导联的心搏数据,大小为 2 × 350,经过核大小为 2 × 3 的一层卷积层和 9 个残差块,最后通过均值下采样,将数据送入神经元个数与分类数相等的全连接层,该网络模型共 20 个参数层。其中,每个短路连接构成一个残差块,实线代表通道数(维度)相同,虚线代表通道数有变化。当恒等映射时维度不同,可通过两种方法来解决:一是可以通过 pad 补零操作增加维数;二是使用核为 1 × 1 卷积层来扩充维度,使输出维度与下一个残差模块一致。

为了评估所提出的基于 DR-CNN 的 ECG 信号中心律不齐的识别效果,本实验基于 MIT-BIH 心律不齐数据库,对所有 40 条导联一致的样本进行滤波去噪,根据 R 波位置分割出 94 091 个心搏信号。在所有心搏样本中随机抽取 60 000 个心搏进行训练,剩余 34 091 个心搏作为预测数据,进行 5 大类心律不齐信号的分类。为了避免随机抽取的偶然性,使用随机排序函数进行了 3 次随机抽取实验,实验结果取 3 次实验的平均值。然后,设计了相同复杂度的 CNN 和多层感知机(multi-layer perceptron,MLP),并且将结构参数调整至最优,使用相同的数据对三个网络分别进行了 30 次(epoch)训练,并对测试结果进行对比。实验所得的混合矩阵及评估指标如表 1 所示。

为了避免测试结果的偶然性,进行了 3 次实验,结果取 3 次实验的平均值。每次实验过程中,将 94 091 个心搏数据随机划分为训练数据和测试数据两部分,两者没有重复样本。从表 1 的实验结果可看出,本文设计的算法对 5 大类心律不齐分类准确率达到了 99.034 9%。通过实验对比,所设计的 DR-CNN 算法对 5 大类心律不齐信号的识别准确率比 CNN 和 MLP 网络分别提高了 0.753 8% 和 2.360 4%。DR-CNN 测试的敏感性 Se 平均值为 94.532%,CNN 和 MLP 测试的平均值分别为 87.706% 和 75.8%,由此可见,敏感性得到提升。
本文对所提出的系统进行了 Veb 和 Sveb 测试,每次随机选择 40 000 个心搏对网络进行训练,剩余 50 200 个心搏进行测试,3 次测试结果的平均值作为计算指标的依据,统计结果如表 2 所示。DR-CNN 网络的 Veb 和 Sveb 测试准确率分别达到了 99.498 0% 和 99.599 6%。Veb 测试结果显示,DR-CNN、CNN 和 MLP 网络的敏感性测试结果分别为 95.79%、67.38% 和 86.07%,即 DR-CNN 的测试结果 95.79% 比 CNN 和 MLP 的测试结果 67.38% 和 86.07% 分别提高了 28.41% 和 9.72%;Sveb 测试结果显示,DR-CNN、CNN 和 MLP 网络的敏感性测试结果分别为 93.42%、54.16% 和 56.78%,即 DR-CNN 的测试结果 93.42% 比 CNN 和 MLP 的测试结果 54.16% 和 56.78% 分别提高了 39.26% 和 36.64%。

本文通过对比研究了近期用深度学习方法进行 ECG 信号分类的研究成果。在相同的数据集下的测试结果如表 3 所示。金林鹏等[11]采用导联卷积深度神经网络,分别用 MIT-BIH 心律不齐数据库数据和临床大数据进行了 ECG 信号自动识别。该文献利用 MIT-BIH 心律不齐数据库对 86 010 个心搏进行正异常二分类,分类整体准确率达到 98.89%。Kiranyaz 等[13]采用一维 CNN 对心律不齐进行 5 分类,并且进行 Veb 和 Sveb 检测。使用 44 条 ECG 信号记录时,5 类心律不齐分类准确率为 98.84%,Veb 和 Sveb 检测准确率分别为 99% 和 97.6%。Wu 等[14]提出利用深度置信网络进行 ECG 信号心律不齐分类,按照 AAMI 标准,进行了心律不齐(Nor、Sveb、Veb、Fus)4 分类,分类准确率为 96.51%;Veb 和 Sveb 测试准确率分别为 97.9% 和 99.3%。一般情况下分类种类越多,识别准确率越低。从表 3 中可以看出,所提出的小波滤波和 DR-CNN 的 ECG 信号识别实验取得了较高的准确率,有一定的临床应用价值。

3 结论
ECG 信号去噪和自动分类算法是心律不齐自动诊断的核心技术,本文提出了一种基于小波自适应阈值滤波和 DR-CNN 的 ECG 信号心律不齐智能识别算法。所提出的小波自适应阈值去噪算法,有效地移除了基线漂移等干扰,并且保持了 ECG 信号形态不失真。设计了基于 20 层的 DR-CNN 模型,该模型克服了深度神经网络近似恒等映射时随着网络层数增加而导致的退化问题,并保证了网络的平滑收敛性。基于 DR-CNN,分别利用 MIT-BIH 数据库 94 091 和 90 200 个心搏数据进行了 ECG 心律不齐信号多分类、Veb 和 Sveb 识别的实验验证。在相同实验环境下,对比了目前较流行的几种深度神经网络算法,实验结果表明所提出的方法有效地提高了 ECG 心律不齐信号的整体识别准确率、敏感性和特异性。该方法将人工智能与 ECG 信号分类识别相结合,可用于新型的心脏病辅助诊断系统,通过可穿戴终端采集 ECG 信号,远程实时发送到 ECG 云计算平台,经过数据变换、小波自适应去噪、QRS 复波识别、分割等预处理,基于 DR-CNN 算法对心律不齐病症进行实时诊断,并返回客户端。这种基于深度学习的心律不齐自动诊断方法可以与可穿戴设备、物联网和无线通信技术相结合,进一步推动新型智慧医疗的发展,将心脏病的预防、监测和诊断延伸到家庭、养老院等院外场景,为医学薄弱的地区补上短板,为患者提供高效的服务,可大大节约医疗资源。
引言
心电图(electrocardiogram,ECG)是记录心脏每一心动周期电活动的可视化时间序列,它的形态特征可反映潜在的心律不齐症状[1-2]。由于心脏病的突发性和难以预测性,建立有效的、延伸到医院以外的远程实时监护体系,对患者进行实时 ECG 信号监测并及时发现心脏异常变化对心血管病预防和救治具有重要意义[3-4]。
ECG 信号在采集过程中容易受工频噪声、肌电噪声、基线漂移和运动伪影等干扰,而且患者间个体差异大,同一患者在不同时间的测试结果也会受当时身体状况的影响,即使有经验的专家也很难完全准确地判断疾病类型。随着人工智能技术的发展,很多模式识别的方法已被用于 ECG 信号的分类识别,比如:小波分析、功率谱估计、主成分分析结合神经网络、随机森林、聚类和支持向量机等智能识别算法[5-10]。尽管传统的模式识别方法已取得了一定的研究成果,但是目前临床 ECG 信号采集设备大多是按照传统的特征提取方法提取心率、ST 段特征等信息,再经过简单分析给出粗略建议,并没有实现多种心律不齐的智能诊断。总的来说,目前的 ECG 数据自动诊断方法存在如下问题:① 如果前期特征提取效果不好,将导致最终的分类准确率下降;② 浅层神经网络分类器针对大数据训练效率不高,非线性拟合能力差,准确率有限;③ 很多方法对小样本测试效果良好,面向临床大数据诊断则效果下降,仍无法用于临床辅助诊断。
近几年,深度学习算法不仅在图像识别、语音识别等领域取得了瞩目的成就,也广泛用于基于 ECG 信号的心脏病辅助诊断[11-14]。相比传统的浅层神经网络而言,深度神经网络具有更强的非线性拟合能力[15],在单导联、部分数据集、少类别 ECG 心搏信号分类中获得了较好的识别效果。虽然神经网络层数的加深有利于提高网络的识别率,但是随着网络层数的堆叠,深层网络的收敛和优化仍然是较为棘手的问题。为了建立更高效、准确的心律不齐智能诊断模型,本文提出将小波自适应阈值滤波和深度残差卷积神经网络(deep residual convolutional neural network,DR-CNN)算法用于 ECG 信号心律不齐的实时诊断。首先,将 ECG 信号进行实时小波自适应阈值滤波,滤除基线漂移、肌电噪声等干扰信号后进行心搏自动分割。然后,用残差块(residual block)局部神经网络单元构建了适合大规模 ECG 信号训练和测试的 DR-CNN 模型,该模型可缓解深层网络的收敛难、调优难等问题,引入了批标准化(batch normlization)技术,保证了网络稳定平滑地收敛。最后,使用麻省理工学院和波士顿贝丝以色列医院(Massachusetts Institute of Technology and Beth Israel Hospital,MIT-BIH)心律不齐数据库中的 94 091 个 2 导联心搏数据进行 ECG 信号多分类、室性异位搏动(ventricular ectopic beats,Veb)和室上性异位搏动(supraventricular ectopic beats,Sveb)检测实验,验证了本文所提算法的分类识别效果,并给出了详细的实验结果分析。
本文提出了利用小波自适应阈值滤波与 DR-CNN 算法来进行 ECG 信号自动识别,通过实验验证了该方法的有效性,为 ECG 信号辅助诊断提供了新方法,是大数据人工智能和精准辅助医疗的有效结合。最终,期望本文方法能够应用于心脏病患者的远程实时监测和诊断,达到提高心脏病救治率的目的。
1 心律不齐识别算法理论
1.1 小波自适应阈值去噪算法
传统的数字滤波器对 ECG 信号的滤波等预处理会引起如下问题:① 相位移动,比如:巴特沃斯和切比雪夫等数字滤波在滤波前后的信号会出现时移;② 振铃现象,即处理后会发生一个瞬变后的震荡,尤其是信号开始阶段,还会引起高振幅 QRS 波终止后的低幅振荡。基于此,本文采用具有良好的时频域局部分析能力的小波变换法进行处理,它能同时利用信号与噪声在时、频域内的差别,实现更为有效的信噪分离。
小波变换是时间(空间)频率的局部变换,通过伸缩和平移可实现信号或函数的多尺度细化分析[16-18]。具体来说,任意函数 都可以分解为任意尺度上的细节部分和近似部分。定义 V0 为尺度函数 φ(t)的平移系列
在 L(R)空间所张成的零尺度空间。设 Ψ(t)为小波函数,则尺度函数和小波函数伸缩和平移构成的函数系分别如式(1)和式(2)所示,它们分别构成了各个尺度空间和小波空间的规范正交基。
![]() |
![]() |
其中,j,k ∈ Z,则离散正交小波级数如式(3)所示:
![]() |
其中,J 为小波分解的最大阶数,M 为分解出的细节因子阶数,cJ-M,k、dj,k 分别为 2j 尺度上的尺度系数和小波系数,可由马拉特(Mallat)快速分解算法得到,如式(4)和式(5)所示:
![]() |
![]() |
由此可见,小波分解相当于信号经过了双通道滤波器组,该滤波器组分别具有高通和低通性质,滤波输出对应于离散信号的低频和高频细节。在不同尺度上进行双通道滤波就实现了原始离散信号的多分辨率分解。小波滤波往往是对这些分解之后的不同尺度信号进行处理,然后将得到的结构整合到一起恢复出原始信号。信号整合和恢复的过程称为离散小波逆变换(inverse discrete wavelet transform,IDWT),即从低阶小波系数和尺度系数依次计算出高阶尺度系数,最终把不同分辨率层次上展开的结果再叠加起来,得到想要的频带信号,甚至原始信号。Mallat 重建算法如式(6)所示:
![]() |
小波自适应阈值滤波方法首先将 ECG 信号进行小波分解,然后自适应选择阈值,对部分细节因子去噪,之后进行重构。阈值选择是滤波的关键,传统信号去噪算法中阈值的选择分为硬阈值和软阈值两种方法。软阈值去噪方法可以自适应地调整不同高频带系数的阈值,避免由于阈值过大而滤除有用信号,或阈值过小而滤波不彻底。本文采用最高阶细节系数来估计信号高斯白噪声,各细节因子的阈值函数定义如式(7)所示:
![]() |
阈值 Th 通过如式(8)所示的公式来选择:
![]() |
其中,n 为噪声信号的样本点数,σ 是噪声的标准差,可通过如式(9)所示估算得到:
![]() |
其中,|Yij|是噪声信号小波分解的最高阶细节系数。如式(7)所示,当细节因子高于阈值时,取信号的模与阈值的差,否则将细节因子置零。
1.2 DR-CNN
1.2.1 卷积神经网络
卷积神经网络(convolutional neural network,CNN)是受生物神经科学领域“感受野”概念的启示而设计的特殊的深层前馈神经网络[19]。传统的 CNN 结构由输入层、多个交替的卷积层和池化层(下采样层)、全连接层及输出层组成。本课题研究的是 ECG 信号的分类识别,用来分类的数据是 2 导联的 ECG 心搏信号,并将其作为 CNN 的输入信号。由于 CNN 的卷积层是通过卷积核重复作用于整个输入信号的每个感受野,而卷积的结果构成输入信号的特征图。因此,假设第 卷积层的第 j 通道输入(净激活)用
表示,输出用
表示,则输出
和输入
的表达式如公式(10)所示:
![]() |
其中,f(•)为激活函数,Mj 表示 l-1 层特征图子集, 是卷积核矩阵,
是偏置项,“
”是卷积符号。
接下来,池化层的目的是减少网络计算量,让模型更具有鲁棒性。具体操作是将输入的特征图划分为多个不重叠的区域,然后对各个区域求均值或者最大值,保证了特征平移、缩放的不变性。假设采样权系数用 α 表示,符号 pool(•)表示池化函数。则第 l + 1 层的输出特征图如式(11)所示:
![]() |
经过多个交替卷积和池化层,最后是全连接层,即将所有二维图像特征图展开为一维特征,作为全连接网络的输入。经过上一层输出的加权求和及激活函数,可得到全连接 m 层第 j 个神经元的输出 ,如式(12)所示:
![]() |
CNN 的训练算法主要是基于梯度下降法的反向传播算法,目标是根据训练样本和期望输出来估计网络参数,包括卷积核参数 k,下采样网络权重 α、全连接层网络权重 w 和各层偏置 b。该算法的思想是根据样本的输出误差函数(损失函数),计算每层有效误差并推导出网络学习规则,更新网络参数,使得实际网络输出更加接近期望输出(即损失函数最小)。由于深度学习网络一般采用批度梯度下降法来训练网络,n 个样本的整体平方误差损失函数如公式(13)所示:
![]() |
利用偏导的链式法则,逐层向前传递,求出各层的灵敏度,其表达式如公式(14)所示:
![]() |
通过网络各层的灵敏度建立损失函数对网络参数的偏导数,即分别计算损失函数对参数 k,α,w 和 b 的偏导数,并且更新各层网络参数。第 l 层卷积层参数更新方法如式(15)、(16)所示:
![]() |
![]() |
第 l + 1 层池化层参数更新方法如式(17)、(18)所示:
![]() |
![]() |
第 m 层全连接参数更新方法如下公式(19)、(20)所示:
![]() |
![]() |
其中,η 是学习率,用于控制梯度下降行进的步长。如果学习率设置太大,容易导致系统发散。
1.2.2 DR-CNN
深度神经网络随着层数和神经元数的增加,非线性拟合能力会增强,但简单的堆叠网络层数又会出现梯度消失问题,此问题可以通过规范初始化和引入中值规范化层等方式使网络得以收敛。虽然解决了网络的收敛问题,但是对于一个较深层的网络,当网络模型的准确度达到饱和之后,模型的准确率会随着深度的加深反而降低,即出现神经网络的退化问题[20-22],而且此类问题并非是过拟合造成的。神经网络实际上是通过调整参数来学习一种隐含的抽象映射关系,但是这种隐含的映射关系在较深的网络中很难优化。
DR-CNN 方法则是寻求另一种解决方案,如图 1 所示,H(x)是希望学习到的隐含的映射关系,DR-CNN 算法的学习过程是让多个连续堆叠的非线性计算层(比如两层卷积)去拟合输入数据和映射后的输出数据之间的残差 F(x) = H(x)− x,这个残差越逼近 0,代表这个网络提取的特征与原始的输入越相近。如果想拟合恒等映射,只用将权重置零;如果想拟合近似恒等映射,通过拟合残差,更容易发现小的扰动,便于调节网络参数。因此,由残差块局部深度神经网络单元构成的 CNN,能够解决深层网络的收敛难、调优难等问题,克服了 CNN 随着网络层数增加而导致的退化问题。

2 ECG 信号中心律不齐识别算法实施
2.1 数据分析及评估标准
本文实验数据来自 MIT-BIH 心律不齐数据库,该数据库共有 48 条记录,每条记录 30 min,采样率为 360 Hz。每条记录由 2 个导联组成。每条记录的导联不完全相同,只有 40 条记录包括相同的Ⅱ导联和Ⅵ导联,实际应用时应考虑导联一致性,所以后续实验采用该 40 条记录的所有心搏数据。为了更加科学和便于比较,我们严格按照美国医疗器械促进协会(the Association for the Advancement of Medical Instrumentation,AAMI)标准,将 16 类心律不齐分 5 大类,分别是正常(normal,Nor)(包括正常心搏、左右束支传导阻滞等)、Sveb(包括房性早搏、交界区早搏等)、Veb(包括室性早期收缩和室性逸搏)、融合心搏(以符号 Fus 表示)和未知心搏(unclassified,Unc)(包括起搏心跳、未分类心跳等)。5 大类 2 导联心搏数量为 94 091 个。按照 AAMI 标准,Veb 和 Sveb 测试也是评估 ECG 信号采集设备性能的重要项目。为测试所设计的网络的性能,本文设计了两个实验:① 是按照上述分类标准,对 94 091 个心搏进行 5 分类实验;② 是测试所设计的网络对 Veb 和 Sveb 心搏的识别能力,同样按照上述分类标准并剔除了未知心搏以后,本文使用剩余 90 200 个 2 导联心搏数据。其中,Veb 测试时,将其他 3 类型心搏作为一类,即从两大类中检测 Veb 类型心搏;Sveb 测试时,将其他 3 类型心搏作为一大类,从两大类中检测 Sveb 类型心搏。
分类模型的性能通过整体准确率(accuracy)(以符号 Acc 表示)、敏感性(sensitivity)(以符号 Se 表示)和特异性(specificity)(以符号 Sp 表示)来衡量,其中准确率是正确分类的心搏比例。每个指标具体计算方法如式(21)~(23)所示:
![]() |
![]() |
![]() |
其中,真阳性(true positive,TP)(符号记为:TP)表示本来是阳性,被正确分类的样本个数;假阳性(false positive,FP)(符号记为:FP)表示本来不是阳性,被分类为阳性的样本个数;真阴性(true negative,TN)(符号记为:TN)表示本来是阴性样本,被正确分类的样本个数;假阴性(false negative,FN)(符号记为:FN)表示本来不是阴性,被错误地分类为阴性的样本个数[10-11]。
2.2 ECG 信号去噪
小波变换算法可以将非平稳信号分解为代表不同频带的尺度信号,广泛用于非平稳信号处理中。由于 ECG 信号采集过程中会产生基线漂移、工频干扰及高频肌电噪声,因此合理地滤波是后续识别的关键。ECG 信号中有用部分的能量主要集中在 1~40 Hz,滤波系统中采用了自适应阈值小波滤波算法,该算法包括小波分解、自适应阈值去噪和重构三步。由于 Symlet 小波函数族与 ECG 信号形态近似,故选择 Sym6 作为小波函数。由于深度学习方法可以从 ECG 信号中挖掘内部特征并自动提取,因此信号预处理阶段只用进行比较简单地滤波,这样有助于增强网络的泛化能力,还可以尽量减少 ECG 信号失真。因此,本文首先对 ECG 信号进行 10 层分解,利用 Mallat 算法计算细节系数和近似系数。现在已知基线漂移干扰是由人体呼吸、运动等因素引起,当受试者处于静止状态时,基线漂移通常低于 1 Hz[23],因此在小波滤波过程中,本文将第 9 和 10 层近似系数置 0,以便去除基线漂移。而对于高频噪声,本文则采用自适应阈值算法将最高频细节成分滤波,按照均方误差准则估计信号的白噪声。
为了验证滤波效果,本文选择 MIT-BIH 数据库污染较大的 105 号 ECG 信号记录进行实验,小波滤波的效果如图 2 所示,自上向下分别为原始 ECG 信号、小波自适应阈值去噪信号、巴特沃斯(Butterworth)0.65~42 Hz 带通滤波信号和 Butterworth 1~40 Hz 带通滤波信号。

从图 2 中可以看出,采用 Butterworth 0.65~42 Hz 频段带通滤波后,ECG 信号出现形态失真,S 波幅度被拉长变形,而且基线移除不彻底;而经过 Butterworth 1~40 Hz 带通滤波后,P 波和 T 波明显变大,Q 波拉长变形。但本文所提出的小波阈值去噪算法,则达到了较好地去除基线和高频噪声的效果,而且较好地保持了 ECG 信号原有的形态,这样不仅有利于读图,更重要的是能提高后续 DR-CNN 算法的识别效果。
滤波之后,再进行心搏的分割,利用 ECG 信号的 R 波位置,以 R 波位置为中心,分别左边取 129 个点,右边取 220 个点,构成一个心搏信号。由于使用的数据为 2 个导联,因此每个心搏样本的大小为 2 × 350。
2.3 DR-CNN 设计及实验结果分析
由于网络层数和复杂度会大大影响训练结果,本文设计了不同层数和结构的 DR-CNN 模型,进行了反复实验和对比。如图 3 所示,是对 8、12、16、20 和 24 层的 DR-CNN 网络的每次(epoch)训练所得的交叉验证准确率的统计结果。

如图 3 所示,20 层的 DR-CNN 达到了较好的训练和测试结果,24 层的网络性能与 20 层相当,考虑到系统测试的实时性要求,因此本文选择了 20 层网络作为系统的诊断模型。
本系统所采用的 20 层 DR-CNN 的模型结构如图 4 所示。输入数据为 2 导联的心搏数据,大小为 2 × 350,经过核大小为 2 × 3 的一层卷积层和 9 个残差块,最后通过均值下采样,将数据送入神经元个数与分类数相等的全连接层,该网络模型共 20 个参数层。其中,每个短路连接构成一个残差块,实线代表通道数(维度)相同,虚线代表通道数有变化。当恒等映射时维度不同,可通过两种方法来解决:一是可以通过 pad 补零操作增加维数;二是使用核为 1 × 1 卷积层来扩充维度,使输出维度与下一个残差模块一致。

为了评估所提出的基于 DR-CNN 的 ECG 信号中心律不齐的识别效果,本实验基于 MIT-BIH 心律不齐数据库,对所有 40 条导联一致的样本进行滤波去噪,根据 R 波位置分割出 94 091 个心搏信号。在所有心搏样本中随机抽取 60 000 个心搏进行训练,剩余 34 091 个心搏作为预测数据,进行 5 大类心律不齐信号的分类。为了避免随机抽取的偶然性,使用随机排序函数进行了 3 次随机抽取实验,实验结果取 3 次实验的平均值。然后,设计了相同复杂度的 CNN 和多层感知机(multi-layer perceptron,MLP),并且将结构参数调整至最优,使用相同的数据对三个网络分别进行了 30 次(epoch)训练,并对测试结果进行对比。实验所得的混合矩阵及评估指标如表 1 所示。

为了避免测试结果的偶然性,进行了 3 次实验,结果取 3 次实验的平均值。每次实验过程中,将 94 091 个心搏数据随机划分为训练数据和测试数据两部分,两者没有重复样本。从表 1 的实验结果可看出,本文设计的算法对 5 大类心律不齐分类准确率达到了 99.034 9%。通过实验对比,所设计的 DR-CNN 算法对 5 大类心律不齐信号的识别准确率比 CNN 和 MLP 网络分别提高了 0.753 8% 和 2.360 4%。DR-CNN 测试的敏感性 Se 平均值为 94.532%,CNN 和 MLP 测试的平均值分别为 87.706% 和 75.8%,由此可见,敏感性得到提升。
本文对所提出的系统进行了 Veb 和 Sveb 测试,每次随机选择 40 000 个心搏对网络进行训练,剩余 50 200 个心搏进行测试,3 次测试结果的平均值作为计算指标的依据,统计结果如表 2 所示。DR-CNN 网络的 Veb 和 Sveb 测试准确率分别达到了 99.498 0% 和 99.599 6%。Veb 测试结果显示,DR-CNN、CNN 和 MLP 网络的敏感性测试结果分别为 95.79%、67.38% 和 86.07%,即 DR-CNN 的测试结果 95.79% 比 CNN 和 MLP 的测试结果 67.38% 和 86.07% 分别提高了 28.41% 和 9.72%;Sveb 测试结果显示,DR-CNN、CNN 和 MLP 网络的敏感性测试结果分别为 93.42%、54.16% 和 56.78%,即 DR-CNN 的测试结果 93.42% 比 CNN 和 MLP 的测试结果 54.16% 和 56.78% 分别提高了 39.26% 和 36.64%。

本文通过对比研究了近期用深度学习方法进行 ECG 信号分类的研究成果。在相同的数据集下的测试结果如表 3 所示。金林鹏等[11]采用导联卷积深度神经网络,分别用 MIT-BIH 心律不齐数据库数据和临床大数据进行了 ECG 信号自动识别。该文献利用 MIT-BIH 心律不齐数据库对 86 010 个心搏进行正异常二分类,分类整体准确率达到 98.89%。Kiranyaz 等[13]采用一维 CNN 对心律不齐进行 5 分类,并且进行 Veb 和 Sveb 检测。使用 44 条 ECG 信号记录时,5 类心律不齐分类准确率为 98.84%,Veb 和 Sveb 检测准确率分别为 99% 和 97.6%。Wu 等[14]提出利用深度置信网络进行 ECG 信号心律不齐分类,按照 AAMI 标准,进行了心律不齐(Nor、Sveb、Veb、Fus)4 分类,分类准确率为 96.51%;Veb 和 Sveb 测试准确率分别为 97.9% 和 99.3%。一般情况下分类种类越多,识别准确率越低。从表 3 中可以看出,所提出的小波滤波和 DR-CNN 的 ECG 信号识别实验取得了较高的准确率,有一定的临床应用价值。

3 结论
ECG 信号去噪和自动分类算法是心律不齐自动诊断的核心技术,本文提出了一种基于小波自适应阈值滤波和 DR-CNN 的 ECG 信号心律不齐智能识别算法。所提出的小波自适应阈值去噪算法,有效地移除了基线漂移等干扰,并且保持了 ECG 信号形态不失真。设计了基于 20 层的 DR-CNN 模型,该模型克服了深度神经网络近似恒等映射时随着网络层数增加而导致的退化问题,并保证了网络的平滑收敛性。基于 DR-CNN,分别利用 MIT-BIH 数据库 94 091 和 90 200 个心搏数据进行了 ECG 心律不齐信号多分类、Veb 和 Sveb 识别的实验验证。在相同实验环境下,对比了目前较流行的几种深度神经网络算法,实验结果表明所提出的方法有效地提高了 ECG 心律不齐信号的整体识别准确率、敏感性和特异性。该方法将人工智能与 ECG 信号分类识别相结合,可用于新型的心脏病辅助诊断系统,通过可穿戴终端采集 ECG 信号,远程实时发送到 ECG 云计算平台,经过数据变换、小波自适应去噪、QRS 复波识别、分割等预处理,基于 DR-CNN 算法对心律不齐病症进行实时诊断,并返回客户端。这种基于深度学习的心律不齐自动诊断方法可以与可穿戴设备、物联网和无线通信技术相结合,进一步推动新型智慧医疗的发展,将心脏病的预防、监测和诊断延伸到家庭、养老院等院外场景,为医学薄弱的地区补上短板,为患者提供高效的服务,可大大节约医疗资源。