【作 者】叶明珠,邵李焕,邓艳军
杭州电子科技大学 电子信息学院,杭州市,310018
电子胎心宫缩监护(Cardiotocography,CTG)是一种非入侵式的,安全可靠的胎儿健康检测方法。CTG由胎心率(fetal heart rate,FHR)信号和宫缩信号组成。异常波动的胎心率表示胎儿宫内缺氧和胎儿不安全。如今,电子胎心监护在不断的创新发展中,使用胎儿监护设备识别胎心率异常的案例和经验数据越来越丰富,评判胎儿健康状况的标准也越来越清晰[1]。
现有的胎心率分类算法包括传统手动特征提取算法和特征自学习算法。基于手动特征自提取的胎心率分类算法步骤包含信号预处理、手动提取信号特征和信号分类。OCAK等[2]采用遗传算法(genetic algorithm,GA)来减少特征数量并找到使支持向量机(support vector machine,SVM)的分类性能最大化的特征子集,从正常和病理的CTG信号中手动提取特征构建基于SVM的分类器。SPILKA等[3]对FHR参数进行研究,提取出多个线性、时域、频域及非线性等特征,再采用不同的算法对特征进行降维和分类,在小数据集下取得了较为理想的效果。COMERT等[4]采用GA和SVM对胎心率信号的时频特征进行分类,其结果的敏感性和特异性分别为63.45%和65.88%。SAHIN等[5]评估了8种不同的机器学习算法对胎心率的21个特征进行分类的性能。但此类算法特征提取过程较为繁琐。
特征自学习胎心率分类算法省去了繁琐的特征提取和特征降维步骤,并且具有更高的准确率。早期有GEORGIEVA等[6]和CMERT等[7]采用人工神经网络对FHR进行分类。卷积神经网络作为经典的前馈神经网络,在机器视觉等很多领域都取得了成功的应用,多个卷积层和池化层连续级联用于对输入信号提取特征,softmax层用于对提取的特征进行分类。例如 CMERT等[8]利用深层卷积神经网络(deep convolutional neural networks,DCNN)对胎心率信号在短时傅里叶变换(short-time Fourier transform,STFT)下获得的频谱图进行二分类取得了不错的结果。LI等[9]亦成功地采用卷积神经网络(convolutional neural networks,CNN)对胎心率信号进行分类。强大的特征自学习能力使得CNN成为目前最为流行的模式识别算法之一。作为一种循环神经网络,长短期记忆网络(long short term memory,LSTM)是另外一种重要的深度学习算法,解决了传统循环神经网格(rerrent neural network,RNN)在时间长期依赖性上的问题。2009年,用LSTM构建的人工神经网络模型赢得过ICDAR手写识别比赛冠军。LSTM还普遍用于自主语音识别,2013年运用TIMIT自然演讲数据库达成17.7%错误率的纪录。李雪[10]利用LSTM成功实现对心率失常的分类。
另外,现有的大部分研究往往采用将一维胎心率信号转换成二维图片的方法,实现FHR信号的时频域转换,常用的时频域转换方法有连续小波变换(continuous wavelet transform,CWT)[11],STFT[8],S变换等。庞加莱图(Poincare Plot)可用于观察和研究非线性系统的演化规律,而生物医学信号作为典型的混沌信号,采用庞加莱图对胎心率信号进行非线性分析有助于更好地揭示胎儿的生理特性。例如GOSHVARPOUR等[12]成功地利用庞加莱截面图重建状态空间中的信号轨迹的全局图对脉搏信号进行情绪识别。SATTI等[13]通过对信号进行二维相空间重构,成功地利用扩展庞加莱图对心率变异性进行分析,提高胎心率分类效果并节省分类时间。
本研究提出了一种基于庞加莱图—LSTM的胎儿健康状况评估算法:①利用插值法对原始胎心率信号进行预处理;②对预处理后的数据进行庞加莱绘图,得到FHR信号的非线性特征,每张庞加莱图由FHR信号中随机的100个连续的点组成,共绘制得20 000张图,其中训练集占70%,验证集占20%,测试集占10%;③通过大数据分析软件Orange中的SqueezeNet对庞加莱图进行特征提取,每个信号提取出1 000个特征向量;④利用LSTM对特征向量进行分类,完成胎儿健康状况的评估。
本研究采用的数据来自布拉格的捷克科技大学(CTU)和布尔诺科大医院(UHB)共同创建的CTU-UHB胎监数据库。该数据库是从2010年和2012年收集的9 164组CTG数据中精心挑选出来的552组CTG数据。每组数据长度至少90 min,包含胎心率和宫缩信号数据。数据的采样率统一为4 Hz。该数据库中孕妇和新生胎儿的生理参数详细信息可参考文献[14]。
在临床实践中,新生儿脐动脉血流的pH值是一种常见的胎儿标注方式,适用于新生儿窒息的检测和诊断,具有较高的特异性和客观性。因此,本研究采用脐动脉血流的pH值对胎儿进行标注。考虑到病理例和相关并发症之间存在的数量关系,本研究以pH值为7.15作为分类阈值,pH≥7.15视为正常,pH<7.15视为病理性信号[15]。依据此标准,CTU-UHB数据库中含105例病理性胎心率数据,447例正常胎心率数据。为解决类不平衡问题,使正常数据和异常数据分配均匀,选取100例正常胎心率数据和100例异常胎心率数据进行实验,其中70%的数据用作训练集,20%用作验证集,剩余10%用作测试集。
信号在采集过程中,受到诸如母亲和胎儿运动、采集仪器误差和网络干扰等几个因素的污染。预处理的目的在于去除数据中异常的点,得到干净的信号,提高后续实验的可靠性。分段选择、孤立点分解和插值是预处理操作的基本过程。首先,移除值为0且持续时间大于15 s的异常数据;然后,当信号不稳定时(相邻两点的绝对值大于25 bpm),在初始采样点和下一个稳定部分的第一个点之间进行插值;最后采用Hermite样条插值去除数据尖峰的值,并将其视为数据尖峰。数据库中的每例FHR信号包括14 400个时间点,实验随机截取信号的1 800个点以供后续工作。该预处理算法的效果如图1所示。
图1 FHR信号预处理效果图Fig.1 An example of FHR signal preprocessing result
已有研究表明[16],胎心率的功率谱谱线是具有尖峰结构的连续谱,其近似熵和复杂度的值明显区别于噪声,同时具有线性和非线性特征。这说明胎儿心率是服从一定非线性规律的高维混沌信号。因此在分析胎心率信号的过程中常常会考虑一些非线性动力学的研究方法,如近似熵、样本熵等。庞加莱散点图具有非线性混沌特性的多维空间结构,可用于观察和研究非线性信号的演化规律。图中任意一点的坐标分别由时间序列中两点组成的配对来表示。
Poincare Plot是由给定时间序列中连续时间点构成的散点图,本实验的庞加莱散点图由信号中100个连续的点组成,其横纵坐标为两个连续的点(X轴为An,Y轴为An+1)。以数据库中两例胎心率信号为例,图2为正常FHR信号和病理FHR信号的庞加莱散点图。
图2 正常胎心率信号和病理性胎心率信号的庞加莱散点图对比Fig.2 The comparison between the Poincare Plot of normal fetal heart rate signal and the pathological fetal heart rate signal
观察图2发现,庞加莱散点图中的标记点大部分位于一个不规则的椭圆内,由中央到边界呈逐渐稀疏分布。从庞加莱散点图中可以提取若干个指标来量化图形的特性,如椭圆的长轴和短轴等。设散点图集为Ω,Ax和Ay分别表示A点的X轴和Y轴的值:
(1)长轴方差(standard deviation of long axis,SDLA),SD1:在X=Y方向上的散点图区域内最长的两点间距,即:
上式Sup表示满足条件的边界值。
(2)短轴方差(standard deviation of short axis,SDSA),SD2:在X=-Y方向上的散点图区域内最长的两点间距,即:
预处理后的每例胎心率信号包含1 800个数据点,从中随机选取100个连续的点对其进行庞加莱散点图绘制,并通过传统的散点图标准描述方法,计算出散点图拟合椭圆的长轴和短轴的值,每个信号绘制100张散点图,共得到20 000张散点图。因此,本研究采用庞加莱散点图获取FHR信号的非线性特征。
SqueezeNet是轻量化网络的代表结构之一,在保证不降低检测精度的同时,将原始AlexNet模型压缩至原来的1/51。本研究采用大数据分析软件Orange中的SqeezeNet对庞加莱散点图进行特征提取。庞加莱图从Import Images中输入,Image Viewer中可以看到图片的详细信息,Image Embedding中选择SqueezeNet进行特征提取,提取出的特征从DataTable中输出。SqueezeNet在ImageNet上实现了和AlexNet相同的正确率,但是只使用了1/50的参数。从SqueezeNet输出的特征向量为1 000维,将其作为LSTM的输入。
循环神经网络(rerrent neural network,RNN)是一种有反馈结构的神经网络结构,其输出的结果不但与此刻输入和权值有关,还与之前的输入相关,其特殊的结构模型解决了信息保存的问题。然而,RNN存在梯度消失和梯度爆炸的问题,很难处理长序列数据,HOCHREITER等[17]对RNN的网络结构进行了改进,得到LSTM,从而规避RNN的梯度消失。所有的RNN都具有一种重复神经网络模块的链式形式,在传统RNN中,这个重复的结构模块只有一个非常简单的结构,例如一个tanh层。LSTM隐含层的基本单元是一个特殊的细胞结构,通过细胞结构中的输入门、输出门、遗忘门分别实现信息的流入、流出以及对以前状态的更新,如图3所示。
图3 RNN、LSTM细胞结构对比图Fig.3 Comparison of the structures of RNN and LSTM cells
LSTM模型由t时刻的输入Xt,细胞状态Ct,临时细胞状态,隐藏层状态ht,遗忘门ft,记忆门it,输出门ot组成。隐藏层的输入包括当前序列的输入xt,上一时刻隐藏层的状态ct-1,以及输出向量ht-1,经过计算得到当前状态输出ht,并更新状态得到ct。LSTM通过对细胞状态中信息遗忘和记忆新信息使得有用的信息得以传递,无用的信息被抛弃,由此解决了RNN的梯度消失和梯度爆炸的问题。在输入门中,tanh函数用于产生当前时刻的信息,sigmoid函数用于控制有多少新信息可以传递给细胞状态,输出门基于新的细胞状态得到当前状态对应的输出ht。遗忘门、输入门和输出门的计算公式为:
其中,σ表示sigmoid激活函数,ft表示遗忘门,it表示输入门,ot表示输出门;ht-1为上一个细胞输出;Wf、Wi、Wo、bf、bi、bo分别为遗忘门,输入门和输出门的权重矩阵和偏置项。具体实现步骤如下:
Step1:加载训练集数据和标签,该数据集包含9 000个正常FHR信号和9 000个病理性FHR信号,每个序列有1 000个特征,这1 000个特征即为SqueezeNet的输出。
Step2:定义LSTM网络框架,输入指定为大小为1 000的向量,指定包含200个隐含单元的LSTM层,并输入完整序列。网络最后为softmax层和分类层,以此来指定2个类。
Step3:指定训练选项,将求解器设置为‘adam’,进行100轮训练,为防止梯度爆炸,将阈值设置为3。使用trainNetwork以指定训练选项训练LSTM网络。每个小批量包含整个训练集,因此每训练一轮便更新一次绘图。
Step4:加载测试数据集,并对每个时间步的活动进行分类。最后计算预测的准确度。
本研究提出了一种基于Poincare Plot-LSTM的胎心率分类算法。首先将预处理后的时序胎心率信号转化成庞加莱散点图,其次利用SqueezeNet对庞加莱散点图进行特征提取,得到20 000组1 000维的特征向量,最后将数据划分为70%的训练集、20%验证集和10%的测试集。adam优化器的batch size为100。
本研究采用准确率、真阳性率、假阳性率和F-Score四个指标来评价胎心率分类算法的性能,该四项指标的定义如下:
其中,TP(true positive)为真正例,在实验中表示正确分类正常FHR信号的个数。TN(true negative)为真反例,表示正确分类病理FHR信号的个数。FP(false positive)为假正例,表示病理FHR信号被归类为正常信号的个数。FN(false negative)为假反例,表示正常FHR信号被归类为病理信号的个数。TPR(true positive rate)也就是灵敏度(sensitivity,SE)、FPR(false positive rate)即特异度(specificity,SP)。F1为F-score,是TPR和FPR的加权调和平均,综合了TPR和FPR的结果,当F1的值较高时说明结果较为理想。
网络模型受训练参数的影响,训练准确度主要受InitialLearningRate和GradientThreshold的影响,GradientThreshold为1、2、3时准确率较高。本研究调节了InitialLearningRate和GradientThreshold的值,观察其对分类准确率的影响。如图4所示为InitialLearningRate和GradientThreshold的值对分类效果的影响,图的横坐标为InitialLearningRate,纵坐标为Accuracy。图中三种折线是GradientThreshold分别为1、2、3时对应的不同的InitialLearningRate的分类准确率。由图可知,当InitialLearning Rate为0.000 5,GradientThreshold为3时分类效果最佳,准确率为98.0%,TPR=1,FPR=0.923,F1=0.96。
图4 不同参数下的分类准确率Fig.4 Accuracy under different parameters
为了对该分类算法进行更准确的评价,我们将本实验的结果与其他算法的效果进行对比。对比结果如表1所示。本算法省去了手动特征提取和特征降维等步骤,并得到较高的准确率。因此,基于Poincare Plot-LSTM的胎心率分类算法是十分高效的。
表1 分类算法对比Tab.1 Comparison of different classification algorithms
针对目前CTG计算机辅助系统存在两大问题,CTG参数识别不够准确、胎儿状态判断假阳性率高、分类过程繁琐等,本研究进行了大量的文献调研和实验研究,分别提出了相应的解决方案。
本研究采用庞加莱散点图对原始胎心率信号进行分析,得到胎心率的非线性特征。此外,改进了胎心率特征提取方法,采用轻量化的卷积神经网络SqueezeNet对庞加莱散点图进行特征提取,节约了计算资源,处理更加快速高效。最后,通过SqueezeNet提取出的特征作为LSTM的输入,解决了传统分类过程繁琐的问题,实现了胎心率信号的有效分类。可见在胎心率分类准确率方面,本研究所提出的算法明显优于传统的胎心率分类算法。
本研究主要的创新点是利用LSTM结合庞加莱散点图对胎心率的非线性特征进行分类,不足之处在于采用的实验数据只有CTU-UHB一种,算法没有在临床数据中得到验证。因此,研究针对不同数据的分类算法将是今后的重点研究方向,以帮助医生在临床决策中实现更加客观、准确的判断。