基于长短期记忆网络的 COVID-19疫情趋势序列分析预测

引言

2020年伊始,新冠状病毒席卷全球,新冠状病毒通过空气与人体器官嘴、眼皮、鼻腔和口腔中的粘 膜接触,释放病毒遗传物质 RNA 单链作为信使RNA 绕过细胞核糖体合成 RNA 复制酶[1]。RNA 复 制酶根据病毒 RNA 生成 RNA 负链继续和复制酶生成 RNA 片段、RNA
正链,不同 RNA 片段与核糖 体生成更多病毒蛋白质结构,蛋白质外壳与 RNA 组合生成新冠状病毒颗粒通过高尔基体分泌至细胞外以感染新的细胞[2],以上就是新冠状病毒感染患者的生物传播过程[3]。由于新冠状病毒极容易在空 气中通过 飞 沫 传 播,截 止 到2020 年 7 月 13 日全球疫情数据:现 存 确 诊 5344825 例,累 计 确 诊12846242例,累计死亡567976例,累计治愈6933441例。其中美国新冠肺炎病亡人数超过13万,全球居首[4]。本文采取国外疫情数据作为数据本集。在模型的选择上,机器学习主张机器自己从数据中学习知识,需要人工提取特征,常见的算法有线性回归、分类、聚类算法等如 SVM、决策树、Adaboost、 PCA 降维等。而深度学习实质是人工神经网络,可 看 作 是 一 种 层 数 较 深 的 人 工 神 经 网 络,常 见 的 有CNN、RNN。为了能实现疫情数据的序列化预测,实验选择深度学习模型 RNN 循环神经网络变体长 短期记忆网络 LSTM长短期记忆网络模型对国外疫情数据进行序列预测。

RNN 循环神经网络

人工神经网络(Artifical Neural Network,ANN)模型,简称神经网络或类神经网络。在机器学习科学领域是一种模仿生物中枢神经系统的结构(如图1所示),神经网络由大量的人工神经元联结进行计算,人工神经网络在外界信息的基础上改变内部结构,具备自身学习功能的自适应系统[7]。现代神经网络是一种非线性统计性数据建模人工神经网络,通过一个基于数学统计学类型的学习方法得以优 化。以多层感知机、卷 及 神 经 网 络 CNN为例,ANN 是用来处理静态数据,对向量进行加权求和求 偏值。

基于长短期记忆网络的 COVID-19疫情趋势序列分析预测_第1张图片
人工神经网络处理静态数据,静态数据样本数据之间互相独立,没有依赖关系,通过输入向量进行数学模型训练,得出结果再进行反向传播,以纠正权重。循环神经网络(Recurrent Neural Network,RNN)是深度学习领域中一类特殊的内部存在自连接的神经网络。如 图2所 示,RNN 由3个层 次 构成,从下至上:输入层 x、隐藏层 A、输出层 h。其中隐藏层含多层结构。
基于长短期记忆网络的 COVID-19疫情趋势序列分析预测_第2张图片

静态数据与序列数据不同,静态数据类比用相同方式训练不同数据,数据之间没有依赖关系。序列数据更强调相互关联性,以固定time step(时间步)要求输入和输出序列必须是等长。当t=0时输 出,再 依 次 向 后计算,每个时间步的输出值与前面时间步的输出相关且相等。
图3是 RNN 循环神经网络基本单元cell:所有的递归神经网络都是由重复神经网络模块构成的一条链,处理层由一个 tanh 层激活函数组成,通过当前输入及上一时刻的输出来得到当前输出。数据流向通过x 作为向量输入到 A 隐藏层,经过计算一部分输出到输出层进行计算,另一部分流入下一个时序的隐藏层,在下一个时序的隐藏层接受来自上一个时序输出的数据和本时序的输入数据,2个数据通过concat函数连接,合并2个输入,且维度等于隐藏层的神经元维度,2个合并数据作为整体向隐藏层输入,在隐藏层进行加权求和。
基于长短期记忆网络的 COVID-19疫情趋势序列分析预测_第3张图片

循环神经网络正向传播与反向传播

RNN 循环神经网络正向传播机制:输入数据输入有2个,当前时刻的输入和上一时刻的状态。cell处理公式:ftanh(wx+b),结果一个拷贝传给下一时刻(之间有权值连接),一个传给输出层,作为其输入
cell的输出作为输出层的输入,进行全连接操作。
假设:输入向量的维度为x,状态的维度为h,拼接输入向量维度为x+h,循环体的参数为(x+h)*h+h,假设输出向量的维度为y,输出层的参数为h*y+y。
RNN 循环神经网络的 反 向 传 播 BPTT(back propagation through time)的链式求导算法来反向传播。
反向传播权重的反推公式:

t+1 =U +ηΔU
t+1 =V +ηΔV
t+1 =W +ηΔW

反向传播利用对输出层的参数求导再对输入层和隐藏层求导,分别不依赖时间和依赖时间。

RNN缺陷

长时间以来的 RNN 循环神经网络序列问题未能及时处理问题时,容易出现梯度消失或梯度爆炸。
图4是短时间序列问题:相关的信息和预测的词位置之间的间隔是非常小的,RNN 可以学会使用先前的信息[13]。
图5是长时间序列问题:相关信息和当前预测位置之间的间隔比较大,需要“记忆”先前提到的离当前位置很远的上下文内容。
基于长短期记忆网络的 COVID-19疫情趋势序列分析预测_第4张图片
为处理长序列依赖问题,LSTM模型能够有效克服 RNN 中存在的梯度消失问题,尤其在长距离依赖的任务中的表现远优于 RNN。图6中矩形为神经网络层,带有权重和偏值用于加权运算。圆形部分为线形运算,进行简单线性运算。双箭头融合是指向量拼接,当输入神经元输入一维向量,上一个时序的输出到该时序二维向量,此时拼接后的向量为三维向量。箭头分离为向量拷贝,指把一个向量值分别传给2个流向,到下一个时序以及输出到此时序的输出神经元。
基于长短期记忆网络的 COVID-19疫情趋势序列分析预测_第5张图片
图7是 LSTM 模型的核心 元 素 单 元 结 构,是 该模型中的传送带,在系统中呈一条长直链,仅存储线性关系。信息往下一级传递且不会改变。在模型中用于存储记忆,跨时间步链接,cell state决定该模型中的数据抛 弃 什 么,传 输 什 么。被抛弃的数据在矩阵运算时用0加权。
基于长短期记忆网络的 COVID-19疫情趋势序列分析预测_第6张图片
遗忘门的作 用(如 图8所 示):决定旧的信息哪些信息丢掉,哪 些 保 留cell state。该门读取当前的输入x 和t-1时刻神经元状态信息ht-1作为输入,
做加权求和,再经过 sigmoid 激活函数转换,输出一个在0~1之间的数值给Ct-1。输出结果1表示“完全保留”,0表示“完全舍弃”。输入门作用:决定哪些新的信息将被加入cell state。输入门分为2个部分:

1)一部分由Sigmoid激活层构成,它决定哪些值要更新;
2)另一部分由 Tanh函数层构成,新候选的向量生成器。

基于长短期记忆网络的 COVID-19疫情趋势序列分析预测_第7张图片
状态更新:t-1时刻的状态乘“遗忘门”的输出,加上新的候选信息,组成当前的 cell state。
输出门作用:决定最后的输出结果。
首先运行一个 sigmoid 层来确定 cell state 的哪个部分将输出出去。接着把cell state通过 tanh 进行处理(得到一个-1~1之间的值)并将它和sigmoid 门的输出相乘,得到最后输出。

=δ(W[ht-1,x]+b) (4)
=tanh(W[ht-1,x]+b)(5)
=f ×Ct-1 +i ×C (6)
=δ(W[ht-1,x]+b)(7)
=O ×tanh(C) (8)

LSTM 通过“遗忘门”控制之前的信息的输入程度,通过“输入门”控制当前信息的输入程度,通过“输出门”控制最终的输出以解决 LSTM 模型的长期依赖问题,同时选择 sigmoid 激活函数作为选择工具,用0~1来做权重的二次分配,并且用tanh函数作为变化工具。当前的单元信息是通过输入门控制之后叠加来解决梯度消失问题。

实 验

搭建实验环境

使用框架搭建网络,实验中 Keras框 架由纯 Python编写的基于 Tensorflow 为后端。Keras是一个高层神经网络的 API,可以迅速地将想法转换为结果,允许简单而快速的原型设计,更适配卷积神经网络,模型库中含有很多经典的模型使得深度学习的建模与算法设计较为方便。
基于长短期记忆网络的 COVID-19疫情趋势序列分析预测_第8张图片

实验过程与结果

1)分析实验任务:疫情预测任务是一个时序预测任务,根据前3天预测第4天累计确诊人数,实验选择 RNN 循环神经网络变体 LSTM 模型。
2)分析原始数据,筛选需要数据:实验采用的数据集为国外某国家在2020年2月22日—2020年7月13日期间爆发的新型冠状病毒(COVID-19)肺炎中新增确诊人数、现有确诊人数、治愈、死亡、累计
确诊人数。由于国内疫情数据干扰因素较多,规律不可循,因此使用国外疫情数据。数据集中新增确诊人数、现有确诊人数、治愈、死亡为输入元素 X,累计确诊人数为输出元素 Y。其中训练集110条,测试集19条。
基于长短期记忆网络的 COVID-19疫情趋势序列分析预测_第9张图片
3)数据预处理,并制成数据集(如图9所示):筛选数据集中必要数据,剔除干扰元素。
4)对必要数据进行归一化处理:
x=normalized_train_data[i:i+time_step,:4]
y=normalized_train_data[i+time_step:i+1+time_step,13,np.newaxis]

5)用原始值减去数据均值除以标准差,用numpy对训练数据进行减均值操作。
6)模型搭建:根据数据和任务,分析输入和输出节点如何设定,模型具体使用什么结构。
根据疫情数据中新增确诊人数、现有确诊人数、治愈、死亡、累计确诊人数等元素对下一日累计确诊人数预测。RNN 层在输入后的线性转换步骤添加随机失活,在循环阶段的线性转换也添加随机失活,失活概率都为0.2。
基于长短期记忆网络的 COVID-19疫情趋势序列分析预测_第10张图片
在进行实验时,首先打开数据集,读取数据的1~5列。在第二条语句中样本序列长度(timestep)为14,每个 数 据 输 入 维 度4,全 连
接层的 dropout为 0.2,循 环 体 中 的 dropout比例为0.2。定义损失函数为交叉熵,优化方法为 Adam,模型评价标准为分类正确率。实验设定Batchsize=500,epoch=500。在图10中样本 集 的 折 线 为 深 色,测 试 集 的 折 线 为 浅色。可以看出 实 验 结 果 与 真 实 数 据 匹 配 度 较高,实验没有出现梯度消失以及梯度爆炸等问题。LSTM 模型 适 合 用 于 做 疫 情 序 列 问 题 预测模型。

结 语

本文在 Bengio等提出标准 RNN 循环神经网络的基础上,将 GreffKlaus等提出的长短期记忆网络模型应用在长序列疫情预测,实验结果与真实数据高精度匹配,说明 LSTM 较长短期记忆网络模型适用于做长序列预测,在以后的疫情实验中可做进一步的研究和讨论。

你可能感兴趣的:(学习记录,网络,机器学习,人工智能)