杨 坤 杨小童 陈月明
(安徽医科大学生物医学工程学院 合肥 230032)
心血管疾病是一种常见的慢性非传染性疾病,根据国家心血管病中心组织编撰的《中国心血管病报告2018》[1]和美年大健康在2020年4月29日发布《健康中国·体检大数据心血管健康报告》显示,心血管疾病严重危害人们的身体健康,是导致国居民死亡的重要原因之一。心电图(Electrocar⁃diogram,ECG)诊断是检测心脏疾病最基础、最常用的方法,而人工诊断的误诊率较高,同时面临相应的医疗资源显著不足的现状。因此利用计算辅助系统实现对心电异常的智能诊断具有极其重要的实际意义和临床价值。
针对上述问题,本文的主要贡献在于:首先,针对数据集样本分布不均匀问题,使用生成式对抗神经网络扩充训练的数据集;其次,为了减少采样数据与数据存储空间,使用压缩感知理论对心电信号进行压缩与重构,进一步降低了心电异常模型的复杂程度。
本文提出的研究框架如图1所示,主要包括四个部分:预处理、压缩与重构、数据增强、特征学习与分类。心电信号预处理的过程包括使用小波阈值对实际数据集中的心电信号数据去噪处理、心拍划分以及训练集和测试集的划分;其次使用压缩感知模型对数据进行压缩并重构;利用生成对抗网络WGAN的生成器生成数据集中样本少的心电数据,解决数据集中样本不平衡的问题,即对较少的样本类别应用数据增强方法,得到最终的训练集;最后利用经过训练卷积神经网络网络模型对测试集进行分类。
图1 心电异常识别模型框架
心电是通过放置在人体表面的电极来接收心脏搏动的电信号,经过导线或者其他设备送到终端显示处理,在此过程中会受到来自各方面的噪音,如电力线干扰、基线漂移、电极运动伪影、仪器等干扰[14],这些干扰导致心电信号产生失真,甚至会产生和病变信号相似的波形,导致无法正确判断。
本文使用应用广泛的小波变换去除心电信号中的噪声。Daubechies小波具有正则性,能够使得重构后的心电信号更加光滑,且随着小波分解层数的增大,心电信号在频域的局部表现能力越强,频带划分能力越强。因此本文选择Daubechies8进行小波分解。软阈值函数在连续性、稳定性优于硬阈值函数。在对心电信号分解后,使用软阈值函数对各尺度系数分别进行处理,图2展示了原始的心电信号,重构的心电信号和消除的噪声成分。重构的心电信号消除了原始信号的高频噪声,并且保持心电信号的正常形态。
图2 利用小波变换消除心电噪声的过程
香农采样定理[15]指出,信息系统最低以奈奎斯特率,即输入信号最高频率的两倍进行采样,可以无失真地重构出原始信号,此方法使用的采样点仍然较多。自然界大多数信号都不是直接稀疏的,可以找到某个特定变换域Ψ,使得信号是稀疏或可压缩的。而压缩感知理论指出,以较低于奈奎斯特率的采样速率实现宽带信号的采集与重构,既达到了降噪的目的,同时又可以进一步减少采样数据和数据存储空间,能够优化心电分类模型的复杂度。本文用压缩感知方法对一维心电信号进行采样和重构[16~17],主要步骤如下:
1)根据心拍的大小将原始一维心电信号X0转化为N维心电矩阵X1。
2)利用M*N维稀疏二进制随机观测矩阵Φ(Φ每一列中1的个数相同且远小于矩阵行数,1的位置随机)对N维心电数据X1进行压缩采样,根据Y=ΦX1得到M维观测值Y。
菲式春卷(Lumpia)还有芭露特煮鸭蛋(Balut)也自不用多说。其中,芭露特煮鸭蛋在菲律宾的必食清单中更是名列前茅,甚至被誉为“黑暗料理”中的代表(就是即将孵化的鸭蛋),不过也有不少人对它敬而远之,反倒是口味清淡的菲式春卷得到更多中国游客的支持。
3)通过重构算法,并利用观测值Y、观测矩阵Φ和Daubechies(db)小波基Ψ得到重构的稀疏系数^S。
4)利用重构的稀疏系数^S,通过^X1=Ψ^S,得到重构的信号^X1。5)重构的信号^X1转化为一维信号^X0。6)比较重构信号^X0与X0的信噪比SNR。
深度学习技术的局限之一是需要大量的已标注的数据才能有足够的精度。因此在训练深度学习模型的过程中,数据集尤为重要。但是在实际分类问题中,数据集通常是有限的,并且由于对象不同而使得样本数据分布并不平衡,从而导致模型无法取得理想的效果。通过某种方法扩充适当的样本数量能够有效缓解此现象。常见的数据集扩充的方法有插值法和外推法,但是此类方法所合成数据的种类受到给定数据密度的影响。而另一种方法是基于生成模型,即基于一个随机数据生成新的数据。此种模型在假设的模型结构充分接近真实的数据分布时具有良好的性能。本文使用GAN[18]生成新的心电样本,通过GAN方法生成样本的方法如图3所示,其训练过程如下:
图3 生成对抗神经网络模型
1)初始化生成器G的参数θg和鉴别器D的参数θd。
2)生成器G接受随机变量Z的输入,经过生成器G后生成假样本G(Z)。固定生成器G训练鉴别器D尽可能准确区分真实样本和生成样本。
3)循环k次更新鉴别器D之后,使用较小的学习率来更新一次生成器G的参数,训练生成器G使其尽可能可以减小生成样本与真实样本之间的差距,即尽量使得鉴别器D判别错误。
4)多次更新迭代之后,最终理想情况是使得鉴别器D判别不出样本来自于生成器G的输出还是真实的输出,即鉴别器D每次输出的概率值都是1/2。
由GAN训练过程可知,在GAN框架中,生成器用于学习生成数据,鉴别器用于正确鉴别训练数据和生成数据。模型最优的情况下,生成器逐渐可以生成与训练数据相似但不相同的数据。
原始的GAN模型并不成熟,存在梯度消失和模式崩溃问题,而这个问题的出现原因是使用JS距离衡量两个分布。WGAN[19]使用Wasserstein距离代替JS距离对真实样本和生成样本之间的距离进行度量。计算方法如式(1)所示。相比较JS散度,Wasserstein距离的优越性在于即便两个分布没有重叠,Wasserstein距离仍然能够反映它们的远近关系。
由美国麻省理工学院提供的MIT-BIH[20]心律失常数据库包括47个受试者的4000多个24h的周期性动态心电数据,有48个时长约为30min的记录文件,采样频率360Hz,共计109500个心拍,且有权威专家对其进行了详细的注释和标记,在对心律失常分类和临床研究中应用最为广泛。本文使用标准的MIT-BIH数据库的心电数据,并通过与权威专家提供的注释进行比较来分析和评估实验取得的结果。
依据美国医疗仪器促进协会对心电信号的分类标准,可将心电分为正常(N)、室上性心律异常(S)、室性心律异常(V)、融合心跳(F)、未确定(Q)五类。表1显示Q类仅有15个样本,因此舍弃Q类,本文只研究N、S、V、F四类心拍,四类心拍的样本分布如表1所示。
表1 心拍异常数据集样本数量分布
为了心拍划分的准确性,且本文研究的重心不是R波检测,故本文直接使用MIT-BIH数据库提供的“.atr”文件中标注的心电图R尖峰的位置,提取R尖峰的前99个数据点、R尖峰后200个数据点,共计300个采样点构成一个完整的心拍样本。将表1的数据划为训练集与测试集情况,真实标签使用one-hot编码,结果如表2所示。同时,为了充分评估模型的性能,采用5折交叉验证的训练模型并统计实验结果。
表2 训练集和测试集划分
实验平台为处理器型号为Intel(R)Core i5-10400F CPU,64位Windows操作系统,16G运行内存的台式电脑,配有Matlab R2014a,Python3.8等软件,整个实验过程中未使用GPU加速。
本文使用三个性能评价指标衡量模型训练的结果,分别是精准率P、召回率R、F1值,计算方法如式(2)~(4)所示。TP表示真正例,FP为假正例,FN为假负例,在P、R、F1三个评价指标中,P、R、F1值越大,模型性能越好。
为了综合评估本文提出的框架的有效性,使用同一个卷积神经网络作为心电信号分类模型(Baseline)。该模型的设计思想借鉴了LeNet,心电信号经过卷积、池化、Softmax转化后输出一个四维概率分布。Baseline模型有若干卷积层、池化层以及其他操作组成,详细结构参数描述如表3所示。其中,CNN结构中卷积层过滤器的尺寸5*5,步长为1,使用全0填充;池化层过滤器的尺寸3*3,步长为2,同样使用全0填充。网络中包含了最大池化层和平均池化层;优化器为Adam优化器,学习效率0.0001,激活函数为Relu。为了防止随着训练的过程中出现过拟合的问题,因此Baseline加入正则化处理,同时添加Dropout层,设置Dropout的丢弃率为0.5,以此提高模型泛化能力。
表3 心电异常基线模型参数
使用设计的Baseline模型进行训练和测试,迭代次数设置为500,训练集和验证集的Accuracy和Loss的变化如图4和图5所示。在Baseline训练过程中,Loss呈下降趋势并逐步趋向稳定,当迭代次数为300时开始收敛。Baseline模型的实验结果如表4所示,S,V,F三个类别的准确率明显低于N,而N的P,R,F1指标均接近于1,远远高于S,V,F。由于S,V,F的训练样本远远少于N,导致分类效果不甚理想。
表4 baseline模型实验结果
图4 迭代过程中准确率变化
图5 迭代过程中损失值变化
由表1和表2可得,S、F相比较其他两种的心电数据在数据量上较少,存在严重的样本分布不均匀的问题,可以通过数据增强的方法解决。本文使用WGAN的来实现数据增强。WGAN模型中产生器网络和鉴别器网络都有6层。生成器由8个带有LeakyReLU激活的卷积层和最后一个带有tanh激活的卷积层组成。鉴别器包括7个带有LeakyRe⁃LU激活的卷积层和一个完全连接的Softmax。生成器和鉴别器的优化器均使用Adam,学习率为0.0001。此外,鉴别器加入Dropout层来避免过拟合,设置Dropout的丢弃率为0.5,S和F使用不同的对抗神经网络模型生成,具体参数如表5和6所示。
表5 生成器模型参数
S,F的样本应用对抗神经网络数据增强后,心电数据样本分布如表7所示。S、F的训练集样本数量均增加了2000,将表7的数据集送入Baseline模型中训练,实验结果如表8所示。由表8可知,当使用GANs对N、S、F、V数据增强后,心拍异常分类平均F1值有98.64,与不使用数据增强的F1值增加10.75,且对于原来数据量较少的S、V、F三类的F1值分别增加了29.91%、2.69%、14.71%。由此可证明WGAN数据增强方法对解决心拍异常分类过程中样本分布不平衡的有效性。
表6 鉴别器模型参数
表7 数据增强后的数据集
表8 WGAN模型实验结果
为验证压缩感知模型对心拍分类模型简化的有效性。不同的压缩率、小波基的选择和重构算法均会对重构误差产生影响。本文着重讨论了不同的重构算法对心拍分类的影响。将对压缩感知模型加入到WGAN-NN框架中。实验时,分别使用IHT、CoSMP、SP、OMP四种不同的重构算法,设计IHT_WGAN_CNN、CoSMP_WGAN_CNN、SP_WGAN_CNN、OMP_WGAN_CNN四组对比实验。
1)压缩感知评价标准
信噪比SNR用以衡量ECG信号的重构误差,SNR越大,重构误差越小,信噪比计算如式(5)所示。其中X为ECG原始信号,^X为重构后的信号。压缩率CR用以衡量ECG的压缩度,CR越大,信号压缩率越高,CR计算如式(6),其中,M为观测矩阵压缩后的ECG信号长度。百分比均方根误差PRD用于评价重构信号质量,PRD<9%的重构信号可用于医学诊断。PRD计算如式(7)所示,其中L为重建后的信号。
2)重构算法选择
设置压缩比率CR为30%进行实验时,IHT、CoSMP、SP、OMP四种重构算法的SNR和PRD如表9所示。由表9可知,四种重构算法PRD<9%,因此重新构的心电信号重构信号可用于医学诊断,且OMP的效果最好。IHT_WGAN_CNN、CoSMP_WGAN_CNN、SP_WGAN_CNN、OMP_WGAN_CNN对N、S、V、F的训练结果如表10所示。将心电数据压缩至30%后的心电数据使用Baseline训练后,可训练的参数数量为114188,相较于压缩前可训练参数量降低了了28.30%。
表9 四种重构算法SNR和PRD值
表10 模型优化分类结果
IHT、CoSMP的重构效果最差,F1的值均比压缩前小,而SP和OMP与压缩前效果相近。因此本文提出的方法能以较低的时间复杂度重构心电信号,且在保证重构质量的同时,降低了模型的复杂程度,提高系统的运行速度。
本文针对心电异常事件的分类建模过程中存在数据分布不平衡的问题进行了深入研究,提出了使用GANs进行数据增强。实验结果表明,应用GANs数据增强方法后,心电异常分类的F1值有了明显的提升。除此之外,本文引入了压缩感知模型对心电信号的数据进行压缩,在不影响分类准确性的情况下,进一步降低模型的复杂度,提升了运行效率。然而本实验仅仅是对四类心电异常进行分类识别,且仅是对单标签进行分类。在后续的研究中,将进一步应用本文提出的算法框架研究多标签心电[21~22]异常识别问题并降低心电自动诊断模型复杂程度。