据国内外研究表明,高血压是危害人生命健康的重要疾病,如何及时的对血压升高进行预警成为一个研究的热点问题。为解决这一问题提出了一种融合注意力(Attention)机制的长–短期记忆网络(Long Short-Term Memory, LSTM)–卷积神经网络(Convolutional Neural Network, CNN)短期血压预测方法,该方法可以减少历史信息的丢失,实现短期血压预测。将此预测方法与单一的LSTM模型、CNN模型和LSTM-CNN组合模型进行对比,实验采用均方根误差(RMSE)、平均绝对误差(Mean Absolute Error, MAE)和平均绝对百分比误差(MAPE)对其进行评价,结果我们的方法误差最小,预测准确度最高,验证了我们模型的有效性和可扩展性。 According to studies at home and abroad, hypertension is an important disease endangering peo-ple’s life and health. How to give early warning of high blood pressure has become a hot issue. To solve this problem, a short-term blood pressure prediction method based on long short-term memory (LSTM)-convolutional neural network (CNN) and attention mechanism is proposed. This method can reduce the loss of historical information and achieve short-term blood pressure pre-diction. This prediction method is compared with single LSTM model, CNN model and LSTM-CNN combination model. Root mean square error (RMSE), mean absolute error (MAE) and mean abso-lute percentage error (MAPE) are used to evaluate this prediction method. As a result, our method has the smallest error and the highest prediction accuracy, which verifies the effectiveness and scalability of our model.
据国内外研究表明,高血压是危害人生命健康的重要疾病,如何及时的对血压升高进行预警成为一个研究的热点问题。为解决这一问题提出了一种融合注意力(Attention)机制的长–短期记忆网络(Long Short-Term Memory, LSTM)–卷积神经网络(Convolutional Neural Network, CNN)短期血压预测方法,该方法可以减少历史信息的丢失,实现短期血压预测。将此预测方法与单一的LSTM模型、CNN模型和LSTM-CNN组合模型进行对比,实验采用均方根误差(RMSE)、平均绝对误差(Mean Absolute Error, MAE)和平均绝对百分比误差(MAPE)对其进行评价,结果我们的方法误差最小,预测准确度最高,验证了我们模型的有效性和可扩展性。
长-短期记忆网络,卷积神经网络,注意力机制,时间序列预测
Xiaoyu Song, Lin Zhu, Xiaobei Feng, Tong Liu, Hongyang Wu, Yifan Li
Lanzhou Jiaotong University, Lanzhou Gansu
Received: May 21st, 2021; accepted: Jun. 15th, 2021; published: Jun. 22nd, 2021
According to studies at home and abroad, hypertension is an important disease endangering people’s life and health. How to give early warning of high blood pressure has become a hot issue. To solve this problem, a short-term blood pressure prediction method based on long short-term memory (LSTM)-convolutional neural network (CNN) and attention mechanism is proposed. This method can reduce the loss of historical information and achieve short-term blood pressure prediction. This prediction method is compared with single LSTM model, CNN model and LSTM-CNN combination model. Root mean square error (RMSE), mean absolute error (MAE) and mean absolute percentage error (MAPE) are used to evaluate this prediction method. As a result, our method has the smallest error and the highest prediction accuracy, which verifies the effectiveness and scalability of our model.
Keywords:Long Short-Term Memory Network, Convolutional Neural Network, Attention Mechanism, Time Series Prediction
Copyright © 2021 by author(s) and Hans Publishers Inc.
This work is licensed under the Creative Commons Attribution International License (CC BY 4.0).
http://creativecommons.org/licenses/by/4.0/
时间序列是一系列值按时间顺序在连续的等距点上进行排列。在过去的几十年里,有许多研究者对时间序列预测进行了研究。然而对血压、股票价格、天气和汇率等时间序列数据的预测是困难的,因为存在许多影响预测结果的因素。例如,影响血压的因素不仅与历史血压有关,还可能与脉搏、心率、是否运动等有关。此外,不同因素对血压的影响可能是线性的,也可能是非线性的。血压和多种因素之间的复杂关系,就要求我们必须建立一个考虑到多种因素的预测模型。尽早地诊断并进行有效的治疗,可以对预防高血压起关键性作用,并减少国民总支出和生产损失。
一般来说,分析和预测高血压的模型有两类:第一类是以高血压分类为手段的预测行为,它们主要利用高血压的数据和数据挖掘的算法进行高血压类型分类;第二类是高血压发病几率预测和高血压危险评估,主要利用高血压的生理特征和历史血压数据来对其进行预测。近几年来,人们提出来了许多预测模型,Su [
长-短期记忆网络(LSTM)属于循环神经网络(RNN),Hochreiter和Schmidhuber在1997年首次提出该模型 [
图1. LSTM内部结构图
f t = σ ( W f x t + U f h t − 1 + b f ) (1)
i t = σ ( W i + U i h t − 1 + b i ) (2)
C ˜ t = tanh ( W c x t + U c h t − 1 + b c ) (3)
C t = f t × C t − 1 + i t × C ˜ (4)
O t = σ ( W o x t + U o h t − 1 + b o ) (5)
h t = O t × tanh ( C t ) (6)
其中 x t 是LSTM单元的输入向量, h t 是LSTM单元的输出向量,W,U和b是权重矩阵和偏置向量参数, σ 代表Sigmoid激活函数,tanh是双曲切线函数,在图2中 i t 代表输入门, O t 代表输出门, f t 代表遗忘门, C ˜ t 代表记忆门。对于输入输出门,计算每个门对应的权值,取Sigmoid函数作为激活函数。sigmoid函数取[0,1]之间的值。如果输出值为1,则应保留相应的值,但如果为0,则应完全丢弃相应的值。对于记忆门中的tanh函数用于确定有多少新信息应该反映在细胞状态。最后,将之前计算的 i t 值、 C t 值与遗忘门计算的值点乘、之前的细胞状态值以及 i t 的点乘相加,计算出要反映在 C t 中的信息。最后,对输出门计算出的值与计算出的单元状态值与tanh()得到的值进行点乘,计算得到输出值 h t ,将输出结果发送到注意力机制 [
注意力机制是一个众所周知的概念,也是深度学习的一个有用工具。注意力机制的神经网络在机器翻译 [
经过LSTM分量处理后,我们得到一个新的时间数据序列。但由于时间序列输入数据的规模较大,我们输入LSTM分量的数据越多,LSTM 结构的效果就越差,这可能会导致每个LSTM单元中包含已处理信息的存储器质量会下降。因此,它将直接影响新的编码序列,无论是在时间上还是在空间上。为了更好地掌握新编码中的有用信息,获得显著的时空特征,模型中引入了注意机制。通过分配不同的关注概率权重,它更加关注训练数据集中发生的一些趋势或变化,并分配更多的概率权重来增强新编码的特征。注意力机制的数学计算公式如下:
e i j = tanh ( W 1 h i + W 2 h j + b α ) (7)
a i j = softmax ( e i j ) = exp ( e i j ) ∑ j exp ( e i j ) (8)
H i = ∑ j a i j h j (9)
其中 e i j 表示ith和jth值之间的关系,W是权重, b α 是偏倚参数。 a i j 表示第ith的值,通过softmax函数对jth注意力权重的值。 H i 表示通过注意力机制后输出的最终状态,我们使用上述公式计算新编码的相应权重,并将其分配给新编码,以便生成另一个具有增强特征的新编码。
卷积神经网络(CNN)是一种人工神经网络,已经在各种计算机视觉任务中占主导地位,它吸引了包括放射学在内的各个领域的研究兴趣 [
y j = ∑ i = 1 N w i , j x i + b (10)
其中 y j 是第jth个神经元全连接层的输出,N是输入数据的长度, w i , j 表示第ith个输入值和第jth个神经元之间的神经元权重,b是偏差。计算出结果后,全连接层将通过激活函数将这些值发送到更高层的连接单元,以确定它对下一步预测的贡献程度。激活函数如下:
μ j = g ( y j ) = max ( 0 , y j ) (11)
μ j 是激活函数的输出,在本文中,我们使用校正的线性单位(ReLU)作为激活函数,它将只激活正数值,该功能可有效防止过拟合 [
μ j = f ( y j ) = μ j (12)
实验利用PhysioNet的组成部分PhysioBank [
ABPMean = ABPsys + 2 × ABPdias 3 (13)
临床采集的数据受多种因素的影响,如机器故障、导线脱落、患者状态不稳定等。存在噪声、丢失等问题,需要在使用前进行处理。首先用线性插值法进行缺失数据的处理;其次不同特征数据的数量级差异较大,我们需要对数据进行标准化处理。
μ = 1 N ∑ i = 1 N x i (14)
σ = 1 N ∑ i = 1 N ( x i − μ ) (15)
S ( x i ) = x i − μ σ (16)
其中 x i 表示一段时期内血压的值; μ 表示平均值; σ 表示标准偏差; S ( x i ) 表示标准化后的值。
数据预处理结束,开始制作模型的输入数据,我们将每秒血压数据窗口长度设置为 α ,其尺寸可以是 α × 1 。我们在实验中设置了 α = 5 ,这意味着每个输入数据集都由5个时间点组成。基于窗口长度 α ,我们将 x t , x t + 1 , ⋯ , x t + 4 转换为 S ( x t ) , S ( x t + 1 ) , ⋯ , S ( x t + 4 ) 。基于预测长度,相应的输出值为 S ( x t ) 具体操作如图3。
经过上面数据基本预处理后,数据中包含很多与血压无关的特征,为了降低其对模型复杂性的影响,对其进行删除处理;由于原始数据是记录患者12个小时每隔一秒的数据,前一秒与后一秒值变化趋势不大,甚至没有变化,时间间隔太小导致神经网络很难学习到变化趋势,不易于进行时序分析预测。针对以上问题,我们提出采用每隔30秒和60秒的数据采集方法对原始数据进行处理。
图2. 数据预处理
首先对原始数据进行加工预处理,使其变成我们实验所需要的数据。根据LSTM神经网络的时间特性,我们将前80%的实验数据作为训练数据,后20%作为测试数据。将输入窗口长度设置为5,这意味着每个输入矩阵包含5个时间节点的平均动脉血压(ABPMean)血压、收缩压(ABPsys)、舒张压(ABPdias)、心率(HR)和脉搏(PULSE)的值,将其输入到LSTM中生成新的数据序列,将新的数据序列送到注意力机制中加强时间特征,然后卷积神经网络提取空间特征,最后,数据将被发送到最后一个隐藏层,该隐藏层将完成连接层和线性激活功能,产生最终的输出。
本文构建的模型流程图如下所示,具体描述如下:
1) 数据预处理:包括删除异常值值、线性插值和数据标准化处理。
2) 预处理的ABPMean血压数据输入到长–短期记忆网络(LSTM)模型中,以特定宽度的ABPMean血压序列作为输入和输出生成一系列新的序列。
3) 将新的数据序列发送到注意力机制中增强时间特征。
4) 卷积神经网络(CNN)模型从图像中提取空间特征输出数据并减少参数,并通过将其传递到最大池化层来实现冗余功能。
5) 最后,通过全连接层和线性激活函数将数据发送到最后一个隐藏层,产生最终输出。
图3. 融合注意力机制的LSTM-CNN模型流程图
在得到血压预测结果后,我们选择了三个性能指标:均方根误差(RMSE)、平均绝对误差(MAE)和平均绝对百分比误差(MAPE)来评估我们提出的模型的预测能力。RMSE是揭示相对较大预测误差的有用性能指标。应用MAPE测量实际模型的实际值和预测模型预测值之间的偏差。MAE经常用统计学来判断预测的表现,计算公式如下:
RMSE = 1 N ∑ i = 1 N ( y i − y ^ i ) 2 (17)
MAE = 1 N | y i − y ^ i | (18)
MAPE = 1 N ∑ i = 1 N | y ^ i − y i | y i (19)
式中: y ^ i 为第i个测试样本的预测值; y i 为第i个测试样本的实际值;N为测试样本个数。
硬件环境:Intel(R) Core(TM) i5-9300H CPU @ 2.40GHz,内存8GDDR3,硬盘为512G;软件环境:操作系统为64位Windows10,编程语言为python3.7.0,集成开发环境为anaconda3。
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模型比这些模型性能都要好。
Models | 间隔60秒 | 间隔30秒 | ||||
---|---|---|---|---|---|---|
RMSE | MAE | MAPE | RMSE | MAE | MAPE | |
CNN | 6.07E−03 | 3.19E−02 | 4.10E−02 | 5.03E−03 | 2.98E−02 | 3.86E−02 |
LSTM | 4.94E−03 | 3.41E−02 | 4.44E−02 | 4.80E−03 | 2.74E−02 | 3.56E−02 |
LSTM-CNN | 6.72E−03 | 3.00E−02 | 3.86E−02 | 5.44E−03 | 2.11E−02 | 2.67E−02 |
LSTM-Attention-CNN | 3.09E−03 | 2.08E−02 | 2.57E−02 | 2.46E−03 | 1.61E−02 | 2.01E−02 |
表1. 不同模型之间的预测精度比较
时间间隔30秒各个模型预测结果如下:
图4. CNN模型预测结果
图5. LSTM模型预测结果
图6. LSTM-CNN模型预测结果
图7. LSTM -Attention-CNN模型预测结果
图8. 四个模型的预测结果比较
模型预测结果如图4~8所示,通过观察发现单一的LSTM和CNN模型对ABPMean血压值波动不敏感,导致预测误差较大,预测准确度较低,相对而言LSTM-CNN的组合模型较两个单一模型性能好一点,这也是因为组合模型能够学习到ABPMean的波动特征,所以预测的效果能比CNN和LSTM模型好,误差相比较低,预测准确度较高。
由于注意力机制的引入,单独比较LSTM-Attention-CNN模型和LSTM-CNN模型时,我们提出的方法在三个评价指标上的得分均低于LSTM-CNN模型,这意味着注意力机制可以有效改进LSTM因序列过长而丢失信息的情况,可以从卷积神经网络产生的特征中选择对预测结果有重要影响的特征,并且将输入序列中相关部分的作用进行放大,以实现比没有Attention的模型更好的效果。通过对比上图中各模型的实验结果,本文提出的模型可以准确的预测血压值的变化趋势,在各项指标下都显示出优势,具有一定的应用前景。
本文使用高血压患者的血压信号数据对血压变化趋势进行了预测。首先对数据进行了预处理,采用每隔30秒和60秒的数据采集方法对原始数据进行处理。影响血压变化的因素有很多,我们收集了三个影响血压值的因素,利用收缩压、舒张压、心率来预测平均动脉血压的变化。此外我们使用CNN从两个真实的血压数据集中提取特征,并将CNN与LSTM模型相结合。为了提高预测的准确性和扩展性,我们引入了注意力机制。最后将我们的模型与单一的LSTM、CNN和LSTM-CNN组合模型进行了对比,结果表明本文提出的模型预测性能最佳、精度最高,有助于人们尽早发现血压突然升高,及时地进行药物降压,不仅可以减少治疗的费用,对人们身体健康维护以及最佳的治疗时间都有很大的作用。
兰州市人才创新创业项目(2020-RC-14)。
宋晓宇,朱 林,冯小蓓,刘 童,吴鸿阳,李一凡. 基于改进的LSTM-CNN高血压组合预测模型Combined Forecast Model of Hypertension Based on Improved LSTM-CNN[J]. 软件工程与应用, 2021, 10(03): 337-347. https://doi.org/10.12677/SEA.2021.103038