LSTM-DSIR方法的实验设置及实验结果分析

数据和数据协议

数据库的选用

每个组织都有必须存储和管理海量的数据和信息。例如,公司必须为其雇员收集和维护人力资源记录。这些被管理的信息必须在需要的时候可以被使用。

一个信息系统是用于存储和处理信息的正式系统。信息系统可以是一组纸箱,其中包含文件夹以及有关如何存储和检索文件夹的规则。在数据成为资产的现代,当今大多数公司都使用数据库来自动化其信息系统。数据库是被视为一个单元的信息的有组织的集合,其目的是收集、存储和检索相关信息,以供运行的应用程序使用。考虑到在数据库管理功能、完整性检查、安全性、一致性方面都有良好的表现,本文在实验中均使用甲骨文(ORACLE)数据库。

数据

本文实验部分使用了两个数据集:COVID-19全球开放数据集和校园师生流动数据集。

1.COVID-19全球开放数据集

该数据库包含有关94个国家(截至2020年8月31日)随时间动态变化的COVID-19确诊数量的官方数据。该数据来自于官方来源发布的数据,其中包括新闻稿、政府网站、专用仪表板和国家主管部门的社交媒体账号等。数据库中未包含仅与某个国家(例如特定区域或城市)的部分地理覆盖范围的明确相关的数字。此外,该数据库还包含了广泛的元数据,这些元数据提供了每个国家/地区收集的数据的详细说明。因为报告实践具有异质性,所以此类信息至关重要,尤其是有关度量单位(测试人员,测试案例,执行的测试,测试的样本等)方面。另外,数据关于是否包括待定结果的测试、涵盖的时间段以及实验室(私人和公共)和国家以下地区的汇总影响数字的程度方面也会有所不同。

2. 校园师生流动数据集

本文提出了LSTM-DSIR预测方法,并且比较了闭集合(Close-set Dataset)数据和开集合(Open-set Dataset)数据两种情景下的已确诊新型冠状肺炎病例的全球数据的预测值。更进一步的,本文还在小范围数据样本中进行了实验—校园流动人口数据上的实验,通过小范围的数据实验以验证本文提出的LSTM-DSIR预测方法。

数据协议

实验中的数据集被分为三个部分:训练集(Train Set)、验证集(Validation Set)和测试集(Test Set)。

(1)训练集(Train Set):用于模型训练的数据。

(2)验证集(Validation Set):用于在训练过程中检验模型的状态和收敛情况。验证集通常用于调整超参数,模型验证集上的表现可以判断出哪一组超参数拥有最好的性能。验证集在训练过程中还可以用来监控模型是否发生过拟合。

(3)测试集(Test Set):用与评价模型的泛化能力,即之前模型使用验证集确定了超参数,使用训练集调整了参数,最后使用没有参与模型训练的数据集来判断这个模型的鲁棒性和泛化能力。

模型评估标准

(1)准确率(Accuracy)

本文所研究的基于深度学习技术的疫情预测方法,输入为疫情相关的历史数据,输出为未来疫情趋势的预测值。实验首选的模型评估指标为“感染者数量”的准确度,即在单位时间内或者某一时间点上,模型预测感染新型冠状病毒的患者人数与真实人数的比值。

(2)均方预测误差(MSFE)

均方预测误差(MSFE)用于测量预测变量对特定值的预测与真实值之间的期望平方距离,是对预测变量质量的度量。其主要表示的意义是预测变量和估计变量之间的差异。

(3)平均绝对百分比误差(MAPE)

平均绝对百分比误差(MAPE)是对预测系统的准确性的统计度量。它以百分比形式测量此准确性,其可以表示为每个时间段内的平均绝对百分比误差与实际值之差除以实际值,平均绝对百分比误差(MAPE)是用于预测误差的最常用度量,在数据没有极端数据值和没有零值存在的时候,其评估的效果是最好的。

(4)R2分数(r2 score)

R平方(R2)是一个统计指标,表示回归模型中由一个或多个自变量解释的因变量变化的比例。相关性解释了自变量和因变量之间的关系强度,而R平方解释了一个变量的方差在多大程度上可以对第二个变量的方差进行解释。

网络结构

LSTM网络

长短记忆网络(通常称为“ LSTM”)是一种特殊的RNN,能够学习长期依赖关系。它们是由Hochreiter&Schmidhuber于1997年提出的,并在随后的工作中得到后来科学家和工程师们的完善和推广。传统的RNN模型是链式结构,模块中也只有一个简单的运算结构,通过在不同神经元之间传递来运输信息。而线性的链式结构显然不能满足新环境信息的进入或者历史信息的去除,因此LSTM引入“门”的概念,来判断哪段历史信息可以保留、哪些新信息需要输入。LSTM网络在各种的问题上都表现很好的性能,因此在训练具有上下文关系的预测模型中被广泛使用。

(1)遗忘门(Forget Gate)

遗忘门负责从单元状态中删除信息。LSTM不再需要了解信息的信息或重要性较低的信息将通过过滤器的乘法删除。这是优化LSTM网络性能所必需的。

遗忘门有两个关键:h_t-1和x_t。h_t-1是上一个单元格或上一个单元格的输出的隐藏状态,而x_t是该特定时间步长的输入或者理解为当前元素的输入。σ表示sigmoid函数,函数的输出在0和1之间,在分类任务中运用该函数使得当输出满足一定概率条件时即可将其划分为某一个类别,给定的输入乘以权重矩阵,然后加上一个偏差。此后,将sigmoid函数应用于该值。sigmoid函数输出一个向量,其值在0到1的范围内,对应于单元状态中的每个数字。基本上,sigmoid函数负责确定要保留的值和要丢弃的值。如果在单元格状态中为特定值输出“0”,则意味着“遗忘门”希望单元格状态完全忘记该条信息。 同样,“ 1”表示忘记门想记住整个信息。从sigmoid函数输出的向量将与单元状态相乘。最终结果如下,其中b为偏置向量。

ft=σ(Wf*ht-1,xt+ bf)

(2)输入门(Input Gate)

输入门负责把控新信息的输入。从上图可以看出,信息的添加基本上是三步过程。

通过涉及S型函数来调节需要将哪些值添加到单元状态。这基本上与“遗忘门”非常相似,并充当来自h_t-1和x_t的所有信息的过滤器。创建一个向量,该向量包含可以添加到单元状态的所有可能值(从h_t-1和x_t可以看出)。这是使用tanh函数完成的,该函数输出从-1到+1的值。将调节滤波器(S型门)的值乘以创建的矢量(tanh函数),然后通过加法运算将此有用信息添加到单元状态。

(3)输出门(Output Gate)

输出门负责把控信息的输出,输出门的功能可以再次细分为三个步骤:

1. 在将tanh函数应用于单元状态后创建矢量,从而将值缩放到-1到+1的范围。

2. 使用h_t-1和x_t的值进行过滤,以便可以调节需要从上面创建的向量中输出的值。该滤波器再次采用了S形函数。

3. 将此调节滤波器的值乘以在步骤1中创建的向量,并将其作为输出发送出去,并发送到下一个单元格的隐藏状态。

你可能感兴趣的:(LSTM-DSIR方法的实验设置及实验结果分析)