当前位置: 首页 > news >正文

基于BiGRU-Attention网络的 新型冠状病毒肺炎疫情预测学习记录

**摘要:**对新型冠状病毒肺炎疫情的准确预测能为疫情防控政策的制定提供重要依据,为此提出基于双向门控循环单元(BiGRU)和注意力机制(AttentionMechanism)的预测模型。考虑到新冠肺炎每日新增确诊人数的时序特性和非线性,采用了一种 BiGRU 网 络,以减小计算代价并充分利用前、后 向 数 据 信 息;同 时 引 入 注 意力机制解决信息过载问题,以提高计算效率和预测精度。

引言

为什么要做这个方向?

截至2021年4月1日,根据世界实时统计数据(Worldometers)显示,全球新型冠状病毒肺炎(简称“新 冠 肺 炎”,COVID-19)累 计 确 诊 病 例 超过12943万例,疫情形势十分严峻。对新冠肺炎新增确诊人数的有效预测能为疫情防控政策的制定提供重要参考。

他人的努力成果

近年来,深度学习方法在数据挖掘和分析预测等领域 表 现 优 异,它 能 使 模 型 更 加 贴 合 数据,并且计算速度快、误差小、预测结果更加准确,
其中 循 环 神 经 网 络 (RecurrentNeuralNetwork,RNN)模型在新冠肺炎疫情预测中取得了一定效果[5]。但是,RNN 网络中越靠后的节点对于前面节点的感知能力越低,在处理长时间序列时存在严重 的 梯 度 消 失 问 题,因 此 长 短 期 记 忆 (Long Short-Term Memory,LSTM)网 络 应 运 而 生。Rasjid等利用Savitzky-Golay滤波器和 LSTM网络模型来预测印度尼西亚的新冠病毒感染人数和死 亡 人 数,实 验 对 比 结 果 显 示,LSTM 神 经 网络模型预测值与时间序列数据保持一致,预测效果更好。Chimmula等[7]基于 LSTM 网络预测了加拿大 COVID-19疫 情 的 发 展 趋 势 和 停 止 扩 散的大致时间。赵 永 翼 等采 用 LSTM 网 络 对 新冠肺炎新增确诊、现有确诊、治愈、死亡和累计确诊人数进行序列分析 和 预 测,其 精 度 较 高。Sha-hid等[9]对比 研 究 了 LSTM、双 向 长 短 期 记 忆 网络(BiLSTM)、支持向量机(SVM)等 模 型 在 预 测新冠肺炎未来病例数 量 上 的 表 现,指 出 BiLSTM网络具有较好的鲁棒性和准确性。

指出他人不足,提出我的方法

LSTM 网络 虽 然 解 决 了 较 长 时 间 序 列 预 测中的梯度消失问题,但计算量较为庞大。门控循环 单 元 (Gated Recurrent Unit,GRU)网 络 是LSTM 网 络 的 优 化,其模型结构更加简单,计 算代价更小,收敛性也更好,但 GRU 网络只能单向处理数据,因此只能依靠过去时刻的数据来进行预测[10]。双向门控循环单元(BiGRU)网 络 是 由前向和后向两个神经网络构成,能获取某一时刻前、后两个方 向 的 数 据 信 息 并 加 以 利 用,使 得预测值更加接近真实值
另外,根据人类选择性视觉的研究发现,人们在观察目标时往往会集中注意力关注重要信息,而抑制对其他无用信息的关注。深度学习的注意力机制(Attention Mechanism)借 鉴 了 人 类 视 觉注意力机制,其本质上是从众多信息中挑选出对于当前任务更加有用的信息,这不仅提升了模型处 理 数 据 的 效 率,同时保证了预测结果 的准确性
基于以 上 分 析,本 文 提 出 一 种 基 于 BiGRU和注意力机制的网络模型(BiGRU-Attention)进行新冠肺炎新增确诊人数预测。BiGRU 不 仅 适用于新冠肺炎疫情数据的时序特性和非线性,而且可解决 GRU 网 络 只 能 单 向 处 理 数 据 的 问 题。注意力机制能够自适应地选择出最相关的输入数据,集中计算资源处理更重要的任务,可解决疫情
预测计算量庞大、预测结果不精确等问题。本文最后通过实际的新冠肺炎数据集进行算法验证。

模型方法介绍

BiGRU网络

针对所研 究 的 新 冠 肺 炎 新 增 确 诊 人 数 的 预测,鉴于数据集时间跨度大,属于较长时间数据序列,如果能同时利用某日前、后一段时间内的新增
确诊人数信息,将会有效提升预测效果。
BiGRU 网络结构 如 图1所 示,其 由 输 入 层、前向隐藏层、后向隐藏层和输出层构成。输入层包含输入数据,在每一时刻将数据同时传递给前
向隐藏层和后向隐藏层,即数据同时流向两个方向相反的 GRU 网 络,输 出 层 的 输 出 序 列 由 这 两个 GRU 共同决定。
在这里插入图片描述
假设xt 为t 时刻 的 输 入 向 量,GRU 网 络 的计算过程表示如下:
在这里插入图片描述
式中:zt 和rt 代表更新门和重置门;ht 代表候选隐藏层状态;ht-1和ht 分别代表t-1和t时刻的隐藏层 状 态;W 和U 为 权 重;b 为 偏 置;σ 代 表Sigmoid函数。
BiGRU 网络结构的数学表达式如下:
在这里插入图片描述
在这里插入图片描述

注意力机制

在人工神经网络中,随着模型参数的增多,模型的表达能力也会变强,同时模型的信息量也会变得庞大,这会带来信息过载的问题。在神经网络模型中引入注意力机制能够分配一系列的权重参数,使得模型集中资源关注关键信息,降低对于低相关性信息的关注度,这样就可以解决信息过载的问题,从而提高算法效率。注意力机制结构如图2所示。
在这里插入图片描述
注意力机制会依据信息的重要程度分配权重参数,即注 意 力 值。注 意 力 值 的 计 算 步 骤 为:首先计算输入信息的注意力分布情况,得到注意力得分函数;然后通过归一化指数函数(softmax)对注意力得分函数进行数值转换,根据权重系数进行加权求和。
设神 经 网 络 输 入 信 息 为 H = [h1,h2,…,hN ],其中 N 是输入信息的个数。用hm 表示输入信息向量,ht 表示用于查找关键信息的查询向量,通过softmax函数进行归一化处理,将原始计算分值转化成所有权重之和为1的概率分布,更加突出重要元素的权重,公式如下:
在这里插入图片描述
式中:αm 表示第m 个输入信息被取到的概率,由所有αm 构成的概率向量即为注意力分布;注 意力函数s(h ,h)有以下几种形式:
在这里插入图片描述
式(9)~式(12)中:W、U 和v 是神经网 络 中 可 学
习的参数;d 是输入信息的维度。
注意力函数的作用是计算两个向量之间的相似度,没有固定的形式,以上几种计算方式较为常见,在实际中应根据具体任务选择模型,本文选用
加性模型。
最后将所有输入信息的概率汇总,以 加 权 平均的方式求和,得到注意力V 值,公式如下:
在这里插入图片描述

提出我们自己的模型

这一章节与上面的模型方法是其改进或组合,一般而言我们都是在前面解决模型的基础,然后提出我们的组合改进方法,此时我们可以另起一个章节,也可以沿用上一章节。

基于 BiGRU-Attention的新冠肺 炎疫情预测方法

考虑到需要深度挖掘和利用所获取的新冠肺炎统计数 据 中 的 相 关 信 息,本 文 采 用 了 BiGRU的结构。不过在使用 BiGRU 对有限的时间序列数据提取信息时容易出现过拟合现象,最终影响到模型的预 测 效 果,为 此 在 网 络 中 加 入 了 Drop-out层。对每个时间步都使用相同的 Dropout掩码,使得网络可以沿着时间正确地传播学习误差。Dropout在一定程度上避免了部分权重对网络模型的过度影响,减少了模型的偏差,避免了复杂神经网络模型的过拟合 情 况。另 外,在 Dropout层之后采用 注 意 力 机 制 对 输 出 的 信 息 进 行 权 重 分配,重点关注有用的信息,以提高模型预测效率。
BiGRU-Attention网络框架如图3所示。基于 BiGRU-Attention 的新冠肺炎新增确诊人 数预测算法步骤如下。
在这里插入图片描述
在这里插入图片描述
开始做实验了。

实验及结果分析

数据集介绍,对于这种数据集我们需要简单介绍一下,从而保证其有说服力

实验数据 来 源 于 美 国 约 翰 · 霍 普 金 斯 大 学(JHU)系统科学与工程中心(CSSE)建立的 CO-VID-19数 据 仓 库,其 中 收 集 了 全 球 各 个 国 家 自2020年1月22日以来每日的新冠肺炎新增确诊人数。新增确诊人数能够较为全面地反映疫情的发展态势以及各个国家和地区的疫情防控效果,是影响后续防控政策调整的关键特征参数。通过模型输出的预测数据能够在一定程度上协助判断疫情的发展状况,为疫情防控提供参考。
本次实验采用2020年1月22日至2021年3月21日共425天的数据。利用本文提出的 BiG-RU-Attention模型,分别对英国和美国的每日新增确诊人数进行预测,并与 LSTM、GRU、BiGRU这三种目前较为流行的深度学习神经网络模型进行比较。

评价指标

选择以下三种评价指标来检验各个模型的性能,包 括 均 方 根 误 差 (RMSE)、平 均 绝 对 误 差(MAE)和正确率(Accuracy)三种,RMSE和 MAE越小、Accuracy越大,代表模型预测效果越好。
在这里插入图片描述
在这里插入图片描述

数据预处理

由于新型冠状病毒传染力强,每日新 增 确 诊病例的数据波动性较大,且其中会突然出现一些极高或极低的数据点,这些点在数据中所占比例不大,却会影响到模型的训练过程,因而可将其视为异常值点,需要对数据进行平滑处理。中值滤波对脉冲噪声有良好的滤除作用,特别是在滤除噪声的同时还能够保护信号的边缘,使之不被模糊,这些优良特性是线性滤波等方法
所不具备的在这里插入代码片。此外,中值滤波的算法也比较简单。
本文对输入模型的数据均采用了 中值滤波处理,以提 高 模 型 训 练 效 果。设置中值滤波的采样 点 个 数 为3,图4为 中 值 滤 波 前、后 的 输 入 数
据对比。
在这里插入图片描述

参数设置

如 前 所 述,为 防 止 出 现 过 拟 合 的 现 象,在BiGRU 网络中加入了 Dropout层,以使部分随机选择出的神经元停止工作。这里设置丢弃比例为0.5;同时,由于数据样本较少,选择将80%的数据作为训 练 集,10%的 数 据 作 为 验 证 集,剩 余10%的数据作为测试集。

实验结果分析

一般通过对比实验来表现我模型的优越性
图5所示为英国和美国在2020年1月22日至2021年3月21日期间的每日新冠肺炎新增确诊人数变化情况以及利用四种方法获得的预测结
果。从 图 5(a)可 以 看 出,BiGRU-Attention 和
BiGRU 的预测值曲线与真实值曲线更为接近,因此二者比GRU、LSTM有更好的预测效果。从曲线的变化来看,英国每日新增确诊人数是波动变化的,这是由于检测病毒的方法、调查人数以及病毒的传播力等都在不断变化,在四种方法中,只有本文提 出 的 BiGRU-Attention模 型 能 够 较 为 明 显地体现出新增确诊人数的波动,而另外三种方法得出的预测曲线过于平滑。
在这里插入图片描述
由图5(b)可见,使用本文模型对美国新冠肺炎新增确诊人数进行预测
时也可以达到不错的效果,但由于美国各地对疫情防控政策的实施程度以及民众的配合程度等多种原因,新增病例数据波动幅度更大,因而预测的
准确率有所下降。
在这里插入图片描述
不同模型预测性能的具体比较如表1所示。
在这里插入图片描述
在英国数据集上,本文模型相比于 LSTM、GRU 和BiGRU,RMSE指标分别下降0.010、0.011、0.009,MAE分别 下 降0.006、0.008、0.008,Accuracy指标分别提升0.071、0.071、0.035。在 美 国 数 据 集上,本 文 模 型 相 比 于 LSTM、GRU 和 BiGRU,RMSE指标分 别 下 降0.006、0.002、0.012,Accu-racy指标分别 提 升0.01、0.03、0.121,MAE 指 标与 GRU 模型的相当,但仍然比 LSTM 和 BiGRU的 MAE分别下降0.003和0.01。由此可知,本文提出的新冠肺炎疫情预测方法比对比方法精度更高。

结语

本文 采 用 BiGRU-Attention 深 度 学 习 网 络模型进行新冠肺炎疫情预测,并利用JHU CSSE建立的新冠肺炎疫情数据集证明了该方法能够以较低的计算代价获得较高的预测精度,和当前比较流行的深度学习神经网络相比具有明显优势。未来研究可进一步降低深度学习算法的复杂度,提升容错性,开发更加可靠的深度学习模型,以用于新冠肺炎疫情的最终发展趋势预测。

相关文章:

  • 生成对抗网络
  • C++【算法】【动态规划问题】
  • Flink中Table Api和SQL(二)
  • hook函数之useEffect的使用——自定义hook函数网络请求——
  • Windows 窗体显示的“模式方式”与“非模式方式”
  • JDBC详讲Connection与 jdbc-Statement
  • 外部 SRAM 实验
  • Redis从入门到精通(二)
  • 2021.09青少年软件编程(Python)等级考试试卷(四级)
  • JAVA计算机毕业设计毕业论文管理系统Mybatis+系统+数据库+调试部署
  • Redis实战 - 01 Redis 和 SpringSecurity Oauth2 实现认证授权中心
  • 数据结构:堆
  • 基于机器学习的搜索推荐系统
  • MATLAB | 分段赋色折线图及其图例绘制
  • C#面向对象程序设计课程实验三:实验名称:C#数组和集合
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • Bytom交易说明(账户管理模式)
  • Java超时控制的实现
  • js写一个简单的选项卡
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • nodejs:开发并发布一个nodejs包
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 讲清楚之javascript作用域
  • 前嗅ForeSpider教程:创建模板
  • 如何在 Tornado 中实现 Middleware
  • 译自由幺半群
  • 找一份好的前端工作,起点很重要
  • FaaS 的简单实践
  • 交换综合实验一
  • 组复制官方翻译九、Group Replication Technical Details
  • (52)只出现一次的数字III
  • (C语言)fgets与fputs函数详解
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (function(){})()的分步解析
  • (Java数据结构)ArrayList
  • (ZT)一个美国文科博士的YardLife
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (二)丶RabbitMQ的六大核心
  • (接口封装)
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • (转)Unity3DUnity3D在android下调试
  • (转)重识new
  • .htaccess配置重写url引擎
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .net 反编译_.net反编译的相关问题
  • .Net调用Java编写的WebServices返回值为Null的解决方法(SoapUI工具测试有返回值)
  • .net连接oracle数据库
  • .Net面试题4
  • .NET业务框架的构建
  • .sh 的运行
  • @Async注解的坑,小心
  • @converter 只能用mysql吗_python-MySQLConverter对象没有mysql-connector属性’...
  • @DependsOn:解析 Spring 中的依赖关系之艺术