1. 引言
时间序列是一系列值按时间顺序在连续的等距点上进行排列。在过去的几十年里,有许多研究者对时间序列预测进行了研究。然而对血压、股票价格、天气和汇率等时间序列数据的预测是困难的,因为存在许多影响预测结果的因素。例如,影响血压的因素不仅与历史血压有关,还可能与脉搏、心率、是否运动等有关。此外,不同因素对血压的影响可能是线性的,也可能是非线性的。血压和多种因素之间的复杂关系,就要求我们必须建立一个考虑到多种因素的预测模型。尽早地诊断并进行有效的治疗,可以对预防高血压起关键性作用,并减少国民总支出和生产损失。
一般来说,分析和预测高血压的模型有两类:第一类是以高血压分类为手段的预测行为,它们主要利用高血压的数据和数据挖掘的算法进行高血压类型分类;第二类是高血压发病几率预测和高血压危险评估,主要利用高血压的生理特征和历史血压数据来对其进行预测。近几年来,人们提出来了许多预测模型,Su [1] 等人提出了一种由多层长期短期记忆(LSTM)网络组成的新型深度递归神经网络(RNN),这种网络结构是一种双向结构,用于访问输入序列的更大范围的上下文信息,与此同时残余连接使深度RNN中的梯度可以更有效地传播。所提出的深度RNN模型在动态血压数据集上进行了测试,实验结果表明,模型可以显著提高长期血压预测的精度。Hajj [2] 等人提出了几种收缩压和舒张压估计模型,模型使用双向连接的递归神经网络和注意机制。在重症监护数据库的光电容积脉搏波(PPG)和血压信号上对模型进行了评估,实验结果表明,该模型能够高精度地捕捉到PPG特征与血压之间的非线性关系,并且在这两个数据集上都优于传统的机器学习方法。Frank [3] 等人提出了一种新的动态血压(ABP)处理技术,称为Two-stage Zero-order Holding (TZH)算法。通过计算估计值之间的均值平方根误差(RMSE),验证了该方法比传统的基于脉冲传输时间(PTT)的血压估计算法具有一定的优点。Kurylyak等人 [4] 通过人工神经网络(ANN)和光电容积脉搏波(PPG)信号对血压的预测,表征PPG脉冲所提出的方法允许评估每个心跳的血压,而不使用袖口或侵入性工具。对于每个心跳,提取固定数量的特征,并作为ANN的输入,以收缩期、舒张期和平均血压为输出。但这样的信号经常受到呼吸的影响,容易产生脉压变化,导致预测不准确;Peter等人 [5] 提出了一些无创无袖带预测收缩压和舒张压的方法,其方法是使用脉冲传输时间,虽然已经证明了脉冲传输时间(PTT)与收缩压和舒张压有很强的相关性,但是这种关系高度依赖于每个人的生理特性。因此,它需要人均校准来从PTT中准确可靠地估计血压,预测方法较麻烦,要求条件较高;Li等人 [6] 基于长–短期记忆神经网络(LSTM)提出了一种新的具有上下文层的递归模型,它可以同时对顺序测量数据和上下文数据进行建模,以预测用户血压的趋势,但没有考虑到时序的变化数据与血压值变化的关系。单一预测模型在输入序列时,容易丢失序列信息,在一定程度上影响血压预测。为了更好的对血压进行预测,本文对LSTM-CNN组合模型进行改进,提出了融合注意力机制的LSTM-CNN组合的深度学习模型来预测血压趋势,最后将该方法与其他典型预测方法进行对比,该方法具有更高的准确性。
2. 相关技术介绍
2.1. 长短期记忆网络(LSTM)模型
长-短期记忆网络(LSTM)属于循环神经网络(RNN),Hochreiter和Schmidhuber在1997年首次提出该模型 [7]。LSTM是一种特殊的RNN网络,是RNN的优化,LSTM主要应用之一是时间序列的分析和预测 [8]。在RNN的基础上增加了记忆特性,可以维持神经网络的长期记忆性,使模型对长时间序列也能有很好的运用。对于RNN,其网络层由于没有限制地更新信息,会使得信息变得混乱而容易消失和改变,因此可能存在梯度消失问题。而改进的LSTM网络在隐藏层中添加了遗忘单元和记忆单元,当有新的信息输入时,LSTM网络会筛选出一些信息进行保留和丢弃,把重要的信息保存到长期记忆中。其内部结构较为复杂,通过特有的门控单元来选择性的对信息进行传输,是神经元更为复杂的循环网络结构 [9],LSTM内部结构如图1所示:
(1)
(2)
(3)
(4)
(5)
(6)
其中
是LSTM单元的输入向量,
是LSTM单元的输出向量,W,U和b是权重矩阵和偏置向量参数,
代表Sigmoid激活函数,tanh是双曲切线函数,在图2中
代表输入门,
代表输出门,
代表遗忘门,
代表记忆门。对于输入输出门,计算每个门对应的权值,取Sigmoid函数作为激活函数。sigmoid函数取[0,1]之间的值。如果输出值为1,则应保留相应的值,但如果为0,则应完全丢弃相应的值。对于记忆门中的tanh函数用于确定有多少新信息应该反映在细胞状态。最后,将之前计算的
值、
值与遗忘门计算的值点乘、之前的细胞状态值以及
的点乘相加,计算出要反映在
中的信息。最后,对输出门计算出的值与计算出的单元状态值与tanh()得到的值进行点乘,计算得到输出值
,将输出结果发送到注意力机制 [10]。
2.2. 注意力机制
注意力机制是一个众所周知的概念,也是深度学习的一个有用工具。注意力机制的神经网络在机器翻译 [11]、图像字幕 [12] 和语音识别 [13] 等方面取得了成功。众所周知,由于时间序列太长,RNN经常出现梯度消失的问题。LSTM比RNN更容易捕获长时间序列的依赖关系,可以有效的解决这一问题。但是经过实验观察到,在某些情况下,尤其是在很长的序列中,LSTM并不会总是正确地记住很长的相互依存性和相关性 [14]。这导致神经网络的性能随着时间的流逝而降低,从而导制所谓的远距离依赖问题。注意力机制通过在每个时间步长保留所有源输入隐藏状态序列,并将更多的注意力和重要性放在序列的最相关部分上,以产生输出,从而缓解了此问题。
经过LSTM分量处理后,我们得到一个新的时间数据序列。但由于时间序列输入数据的规模较大,我们输入LSTM分量的数据越多,LSTM 结构的效果就越差,这可能会导致每个LSTM单元中包含已处理信息的存储器质量会下降。因此,它将直接影响新的编码序列,无论是在时间上还是在空间上。为了更好地掌握新编码中的有用信息,获得显著的时空特征,模型中引入了注意机制。通过分配不同的关注概率权重,它更加关注训练数据集中发生的一些趋势或变化,并分配更多的概率权重来增强新编码的特征。注意力机制的数学计算公式如下:
(7)
(8)
(9)
其中
表示ith和jth值之间的关系,W是权重,
是偏倚参数。
表示第ith的值,通过softmax函数对jth注意力权重的值。
表示通过注意力机制后输出的最终状态,我们使用上述公式计算新编码的相应权重,并将其分配给新编码,以便生成另一个具有增强特征的新编码。
2.3. 卷积神经网络(CNN)模型
卷积神经网络(CNN)是一种人工神经网络,已经在各种计算机视觉任务中占主导地位,它吸引了包括放射学在内的各个领域的研究兴趣 [15]。输入层,主要起数据输入的作用,卷积神经网络的输入为二维矩阵。CNN的设计目的是通过使用卷积层、池化层和完全连接的层,通过反向传播的多个构建块,自动和自适应地学习特征的空间层次结构。卷积层是CNN的一个基本组成部分,执行CNN架构的特征提取。通常由线性和非线性操作的组合组成,即卷积操作和激活函数。卷积操作的关键特征是权重共享:内核在所有图像位置上共享。权重共享创建了卷积操作的以下特征:让内核提取的局部特征模式不变,因为内核在所有图像位置上移动并检测到学习到的局部模式,与完全连接的神经网络相比,通过向下采样结合池化操作来学习特征模式的空间层次结构,从而捕获越来越大的视野,并通过减少要学习的参数数量来提高模型效率 [16]。池化层在CNN中通常被用来减少参数的数量和冗余的功能,它可以训练权重和过滤器。此外,池化层也可以用来控制神经网络的收敛性,避免训练结果过拟合。最典型的池化操作之一是最大池化。池化层将选择池化过滤器所覆盖字段的最大值,在处理过程中,池化层将权重路由到相应过滤器最高值。全连接层根据以下公式形成最后的一维输出数据,计算其分数:
(10)
其中
是第jth个神经元全连接层的输出,N是输入数据的长度,
表示第ith个输入值和第jth个神经元之间的神经元权重,b是偏差。计算出结果后,全连接层将通过激活函数将这些值发送到更高层的连接单元,以确定它对下一步预测的贡献程度。激活函数如下:
(11)
是激活函数的输出,在本文中,我们使用校正的线性单位(ReLU)作为激活函数,它将只激活正数值,该功能可有效防止过拟合 [17]。在输出最终结果之前,数据集将发送到另一个激活函数,称为线性激活。激活函数如下:
(12)
3. 融合注意力机制的LSTM-CNN模型
3.1. 实验数据选取
实验利用PhysioNet的组成部分PhysioBank [18] 里的MIMIC [19] 数据库中患者的生理信号作为预测模型研究的实验数据,实验对象为408号高血压患者1995年3月5日05:19:47秒至1995年3月5日17:19:46秒的信号数据(共42188组数据),数据包括平均动脉血压值(ABPMean)、收缩压(ABPsys)、舒张压(ABPdias)、心率(HR)、脉搏(PULSE)、呼吸信号(RESP)等时序信号数据,ABPMean计算公式如下:
(13)
3.2. 数据预处理
临床采集的数据受多种因素的影响,如机器故障、导线脱落、患者状态不稳定等。存在噪声、丢失等问题,需要在使用前进行处理。首先用线性插值法进行缺失数据的处理;其次不同特征数据的数量级差异较大,我们需要对数据进行标准化处理。
(14)
(15)
(16)
其中
表示一段时期内血压的值;
表示平均值;
表示标准偏差;
表示标准化后的值。
数据预处理结束,开始制作模型的输入数据,我们将每秒血压数据窗口长度设置为
,其尺寸可以是
。我们在实验中设置了
,这意味着每个输入数据集都由5个时间点组成。基于窗口长度
,我们将
转换为
。基于预测长度,相应的输出值为
具体操作如图3。
经过上面数据基本预处理后,数据中包含很多与血压无关的特征,为了降低其对模型复杂性的影响,对其进行删除处理;由于原始数据是记录患者12个小时每隔一秒的数据,前一秒与后一秒值变化趋势不大,甚至没有变化,时间间隔太小导致神经网络很难学习到变化趋势,不易于进行时序分析预测。针对以上问题,我们提出采用每隔30秒和60秒的数据采集方法对原始数据进行处理。
3.3. 方法描述
首先对原始数据进行加工预处理,使其变成我们实验所需要的数据。根据LSTM神经网络的时间特性,我们将前80%的实验数据作为训练数据,后20%作为测试数据。将输入窗口长度设置为5,这意味着每个输入矩阵包含5个时间节点的平均动脉血压(ABPMean)血压、收缩压(ABPsys)、舒张压(ABPdias)、心率(HR)和脉搏(PULSE)的值,将其输入到LSTM中生成新的数据序列,将新的数据序列送到注意力机制中加强时间特征,然后卷积神经网络提取空间特征,最后,数据将被发送到最后一个隐藏层,该隐藏层将完成连接层和线性激活功能,产生最终的输出。
3.4. 融合注意力机制的LSTM-CNN模型计算流程
本文构建的模型流程图如下所示,具体描述如下:
1) 数据预处理:包括删除异常值值、线性插值和数据标准化处理。
2) 预处理的ABPMean血压数据输入到长–短期记忆网络(LSTM)模型中,以特定宽度的ABPMean血压序列作为输入和输出生成一系列新的序列。
3) 将新的数据序列发送到注意力机制中增强时间特征。
4) 卷积神经网络(CNN)模型从图像中提取空间特征输出数据并减少参数,并通过将其传递到最大池化层来实现冗余功能。
5) 最后,通过全连接层和线性激活函数将数据发送到最后一个隐藏层,产生最终输出。

Figure 3. Flow chart of LSTM-CNN model integrating attention mechanism
图3. 融合注意力机制的LSTM-CNN模型流程图
4. 实验结果分析
4.1. 实验评价指标
在得到血压预测结果后,我们选择了三个性能指标:均方根误差(RMSE)、平均绝对误差(MAE)和平均绝对百分比误差(MAPE)来评估我们提出的模型的预测能力。RMSE是揭示相对较大预测误差的有用性能指标。应用MAPE测量实际模型的实际值和预测模型预测值之间的偏差。MAE经常用统计学来判断预测的表现,计算公式如下:
(17)
(18)
(19)
式中:
为第i个测试样本的预测值;
为第i个测试样本的实际值;N为测试样本个数。
4.2. 实验环境
硬件环境:Intel(R) Core(TM) i5-9300H CPU @ 2.40GHz,内存8GDDR3,硬盘为512G;软件环境:操作系统为64位Windows10,编程语言为python3.7.0,集成开发环境为anaconda3。
4.3. 实验结果对比
LSTM-CNN:该模型由初始LSTM然后是CNN层组成,其处理顺序是我们的方法,只是没有了注意力机制。
表1显示了我们的LSTM-Attention-CNN模型和其他模型的性能,我们进行了两组实验,训练率均为80%,我们选择参数α=5,β=1,γ=64作为我们的LSTM-Attention-CNN模型配置,对每组实验我们用4个模型和3个评价性能指标进行评价,包括RMSE、MAE、MAPE。从表1可以看出,在间隔60秒的训练样本下,我们提出的模型在RMSE、MAE和MAPE中的得分比CNN、LSTM和LSTM-CNN模型都要高。当在间隔30秒的训练样本时,我们的方法性能优于其他所有模型,明显看出在间隔30秒时LSTM-Attention-CNN模型RMSE最小值为2.46E-03、MAE最小值为1.61E-02和MAPE最小值为2.01E-02。这表明无论组合模型还是经典的机器学习模型,我们提出的LSTM-Attention-CNN模型比这些模型性能都要好。

Table 1. Comparison of prediction accuracy between different models
表1. 不同模型之间的预测精度比较
时间间隔30秒各个模型预测结果如下:

Figure 4. Prediction results of CNN model
图4. CNN模型预测结果

Figure 5. Prediction results of LSTM model
图5. LSTM模型预测结果

Figure 6. Prediction results of LSTM-CNN model
图6. LSTM-CNN模型预测结果

Figure 7. Prediction results of LSTM-Attention-CNN model
图7. LSTM -Attention-CNN模型预测结果

Figure 8. Comparison of prediction results of four models
图8. 四个模型的预测结果比较
模型预测结果如图4~8所示,通过观察发现单一的LSTM和CNN模型对ABPMean血压值波动不敏感,导致预测误差较大,预测准确度较低,相对而言LSTM-CNN的组合模型较两个单一模型性能好一点,这也是因为组合模型能够学习到ABPMean的波动特征,所以预测的效果能比CNN和LSTM模型好,误差相比较低,预测准确度较高。
由于注意力机制的引入,单独比较LSTM-Attention-CNN模型和LSTM-CNN模型时,我们提出的方法在三个评价指标上的得分均低于LSTM-CNN模型,这意味着注意力机制可以有效改进LSTM因序列过长而丢失信息的情况,可以从卷积神经网络产生的特征中选择对预测结果有重要影响的特征,并且将输入序列中相关部分的作用进行放大,以实现比没有Attention的模型更好的效果。通过对比上图中各模型的实验结果,本文提出的模型可以准确的预测血压值的变化趋势,在各项指标下都显示出优势,具有一定的应用前景。
5. 结论
本文使用高血压患者的血压信号数据对血压变化趋势进行了预测。首先对数据进行了预处理,采用每隔30秒和60秒的数据采集方法对原始数据进行处理。影响血压变化的因素有很多,我们收集了三个影响血压值的因素,利用收缩压、舒张压、心率来预测平均动脉血压的变化。此外我们使用CNN从两个真实的血压数据集中提取特征,并将CNN与LSTM模型相结合。为了提高预测的准确性和扩展性,我们引入了注意力机制。最后将我们的模型与单一的LSTM、CNN和LSTM-CNN组合模型进行了对比,结果表明本文提出的模型预测性能最佳、精度最高,有助于人们尽早发现血压突然升高,及时地进行药物降压,不仅可以减少治疗的费用,对人们身体健康维护以及最佳的治疗时间都有很大的作用。
基金项目
兰州市人才创新创业项目(2020-RC-14)。