采用ALSTM模型的温度和降雨关联预测研究
2021-11-08黄坚强秦亮曦
黄坚强,秦亮曦
(1.广西大学 计算机与电子信息学院, 广西 南宁 530004;2.广西多媒体通信与网络技术重点实验室, 广西 南宁 530004)
0 引言
天气变化极大地影响着人类的日常生活。为了准确地把握未来的天气状况,人类从未停止过对天气预测的研究。各种气象观测仪器、观测和分析技术等都在迅速发展。短时天气预测(如降雨和温度)一直是天气预报领域的一个重要问题,其目标是预测0~6 h内的天气状况。准确的短时降雨和温度预测可以针对可能出现的极端天气情况做出及时的预警。
在过去的十几年中,通过雷达影像进行短期降雨预测已经研究开发了许多技术手段,但是这些方法都比较依赖于所预测区域的天气条件,不是十分稳定。另外也有利用气象观测卫星数据进行预测气温的相关研究,但由于卫星同时观察的地面范围较宽(东西宽度2 800 km),对某一地区每天只能进行两次观测,间隔时间为12 h,因此该方法在空间分辨率和时间频率方面都难以满足要求。近些年来,也出现了利用神经网络对历史数据进行学习,并对未来天气情况进行预测的研究。由于神经网络具有较强的学习能力和拟合高度非线性函数的能力[1],因而取得了较好的效果。但由于传统的神经网络大都属于浅层神经网络,在其学习过程中,难以获得历史数据中的深层特征信息。因此,若能提取数据的深层特征,则预测精度将得到提高,而近年来出现的深度学习方法恰好能较好地提取数据的深层特征[2],如卷积网络[3]、多隐层神经网络[4]和深度神经网络(deep neural networks, DNN)等。
由于短时天气有时变化非常快,需要一种能更好地提取短时天气特征的方法,因此笔者提出了一种Attention和LSTM组合模型(attention and long short-term memory combined model, ALSTM)预测算法。其特点主要包括:① 区别于传统方法及浅层神经网络方法,该算法采用递归神经网络中的长短期记忆模型(long short-term memory, LSTM)形成深度循环神经网络,可从历史天气数据中,提取其深层特征,对未来的降雨和温度进行预测,取得了更好的预测结果;②将LSTM模型与Attention机制结合,使之更注重数据中的一些重要特征,从而提高了预测多目标数值的稳定性和正确率;③将两个或多个LSTM模型进行堆叠组合,将前一个模型的输出作为下一个模型的输入,这样可在同一模型中同时预测两个或多个关联值,这样更满足短时天气预测的需求。
1 相关工作
短时降雨预测方法因为方法的不同,大致可以分为长期数值天气预报(numerical weather prediction, NWP)模型方法、雷达回波外推方法以及神经网络方法等,这些方法因为原理不同,也具有不一样的应用场景以及不同的使用频率。如NWP方法需要较复杂的物理过程,同时也需要进行细微的模拟。因此,更快、更准确的雷达回波外推方法目前被广泛运用于天气预报系统中。
雷达回波外推方法的原理是利用天气雷达所探测到的回波数据,确定回波体的移动方向和速度以及回波的强度分布,通过对回波体进行线性或者非线性的外推,预报下一段时间段后的雷达回波状态。雷达回波外推方法如质心跟踪法和交叉相关法。近些年来,一种基于光流的方法也被用于短时降雨预测问题中[5]。此外光流也可以用于观察物体各部分的运动信息。香港天文台(HKO)提出的算法[6]对雷达回波图像中的实时光流采用变分方法进行处理,该算法被用于局域强降雨的短临预警系统(short-range warning of intense rainstorms in localized systems, SWIRLS)。然而,这些基于光流的方法由于分离了流量估计步长和雷达回波前滤波步长,难以确定合适的模型参数来获得良好的预测性能,因而其成功与否受到限制。
温度预测常用的方法是气象卫星以及统计学方法。从机器学习的角度来看,可以把降水和平均气温的预测临近预报看作是一个时间序列预报问题,针对短时天气预测的研究如雨后春笋般涌现。如贺佳佳等[7]通过建立一种多时间尺度SVM来进行局部短时临近降雨预测,充分考虑了不同站点、不同时刻的气象要素差异,从而提高了短时降雨预报的准确率;YANG等[8]提出一种可拓分类预测方法,用于预测城市月平均气温,通过可拓聚类,将城市每月的平均气温聚类,进而预测城市其他月份的平均气温;海涛等[9]利用基于RBF的神经网络模型对太阳光辐照度预测,并采用GP-RBF算法对网络进行训练,实验结果表明该模型预测精度较高,且具有一定的实用性;CHEN等[10]基于BP神经网络对矿井巷道空气、温度进行预测,保障了矿井工作人员的安全;WANG等[11]使用自适应神经模糊推理系统进行平均温度的预测;HIMIKA等[12]利用机器学习组合方法预测全球地表气温,通过集成三个模型并进行预测,取得了良好的预测结果,也体现了组合预测方法相比于传统的预测方法具有更好的模型健壮性。
目前,由于神经网络具有良好的自适应能力、较强的容错力以及可组合性,因此被广泛运用于天气预测研究中。深度学习,特别是递归神经网络(recurrent neural network, RNN)和LSTM模型的研究进展[13]为解决降雨和温度预测这一问题提供了一种有用的方法。深度学习作为机器学习的一个重要分支,采用更多层的网络,并通过逐层学习的方法使数据的深层特征更好地被模型学习,如孔震等[3]使用基于时域卷积的多尺度双线性天气预测模型,更深入挖掘天气数据中潜在关联信息;刘洋等[4]将多种气象参数通过多隐含层神经网络,对降雨进行预测,较现有的临降雨预测理论正确率提高近10%;XU等[14]利用误差修正后的深度LSTM模型对室内空气温度进行预测,实现了在定向预测精度上优于原始LSTM模型;陈立华等[15]提出基于Archimedean copula函数构造的风雨联合分布模型,并将其应用在钦州市的降雨预测研究中,实验结果表明,该风雨联合模型结果可靠。根据深度学习方法背后的哲学以及多模型组合预测的可行性,笔者提出了ALSTM模型并取得了较好的预测效果。
2 ALSTM模型设计
2.1 长短期记忆网络(LSTM)
RNN是一系列能够处理顺序数据的神经网络的总称。一般RNN包含以下特性:
① 每个隐单元间循环链接,且能在下个时间节点T产生输入;
② 当前时间节点仅与下一时间节点的隐单元循环链接;
③ 所有隐单元排列成的循环链接结构能够处理输入的数据,并产生单一的输出预测。
LSTM是RNN的一种特殊形式,所以它也是一种特定的循环神经网络。LSTM一般而言有输入门、遗忘门和输出门,其单元结构如图1所示。
图1 LSTM单元结构
LSTM对输入信息进行筛选,把符合条件的信息留下,不符合的过滤掉,可以实现选择性地让信息通过,是因为LSTM网络默认的激活函数是sigmoid函数。LSTM可以通过门控单元对神经元添加和删除信息,并选择性决定信息是否通过,它由一个sigmoid神经网络层和一个成对乘法操作组成。sigmoid层输出的每个元素都是在[0,1]的实数,表示让对应信息通过的权重。LSTM神经网络的内部含有tanh激活函数的层,该层是为了更新神经元的状态。上述功能的实现需要用到的公式如下:
(1)
(2)
LSTM神经网络的遗忘门决定需要丢弃什么信息,该门会读取ht-1和xt,给神经元Ct-1一个0到1的数值。遗忘门的计算公式如下:
ft=σ(Wf·[ht-1,xt]+bf),
(3)
式中,ht-1表示上个神经元的输出;xt是当前神经元的输入;Wf是连接权重矩阵;bf表示偏置;σ是sigmoid函数。
(4)
it=σ(Wi·[hi-1,xt]+bi),
(5)
(6)
式中,Wi、Wc是连接权重矩阵;bi、bc表示偏置;tanh表示激活函数。输出门的作用是控制当前神经单元状态以及单元状态被过滤的程度,其计算公式如下:
Ot=σ(Wo·[hi-1,xt]+bo),
(7)
ht=Ot×tanh(Ct),
(8)
式中,Wo是连接权重矩阵;bo表示偏置;ht表示当前神经元输出。
2.2 Attention模型
Attention模型最初被用于机器翻译,现在已被广泛运用于机器学习以及和许多神经网络模型相结合中。
简单的说,注意力机制类似于人去看一个图画,注意力往往会根据个人喜好的不同而对图画中某一区域,注入更多的注意力,即更倾向于关注图像中的部分重要信息[16]。在RNN中,结合注意力机制可以使某些重要的因素更容易被捕获,数据内部逻辑结构的相关性也更容易被建模起来,这解决了因为处理长序列输入而导致等待时间过久,权重分配不当的问题,从而提高预测性能。
传统编码器-解码器结构[17]如图2所示。输入序列(x1,x2,…,xt),被RNN编码器编码为固定长度的向量(h1,h2,…,ht),其中t表示输入序列长度。解码器通过已经编码过后的序列结合状态(s1,s2,…,stt)生成一个输出序列(y1,y2,…,ytt),其中tt表示输出序列长度。在此编码过程中的ht以及解码过程中的st都表示不同解码器的隐状态。
图2 传统编码器-解码器结构
注意力机制的相应编码器-解码器体系结构如图3所示。注意力权重αij在编码过程中自动学习,并自动捕获hi和sj,其隐状态的相关性也在此过程中被发现,此后,注意力机制构建内容向量c,即分配更精准的注意力权重。该权重用于构建解码过程中的sj和编码过程中的hi更合理的转换,其中内容向量cj是编码器所有隐状态及其相应注意力权重相乘的加权和,其计算公式如下:
图3 带注意力机制的编码器-解码器结构
(9)
注意力机制的加入类似于前馈神经网络。而与前馈网络不同的是,注意力机制在学习过程中学习一个特殊的注意力权重αij,以此构建hi和sj-1的转换函数。
2.3 ALSTM模型
在气象研究问题中,气温和降雨存在着相关性,但是现存的神经网络模型往往只能预测某一短期天气数值。为了预测多个天气数值,将LSTM神经网络堆叠形成深度关联循环神经网络,将第一个输出值作为第二个预测值的输入;并在此基础上加入Attention机制,因而得到了基于Attention和LSTM组合的多值预测模型(ALSTM)。ALSTM模型结构如图4所示。
图4 ALSTM模型结构
ALSTM模型的数据流程如图5所示。在训练开始时,天气数据通过输入层同时进入两个分支,这两个分支分别预测空气温度和降雨,模型在预测空气温度后将其作为预测降雨的输入参数,以此产生多值关联预测。
图5 ALSTM的数据流程
在模型的训练阶段中,总误差Ltotle用来作为模型预测结果的评估,训练阶段的目标是获取最小的总误差,总误差的计算公式如下:
(10)
式中,Li表示子误差。
3 参数设计和算法设计
3.1参数设计
在传统的LSTM神经网络输入中有一个步长参数,表示预测值与多少历史数据有关。为了在ALSTM模型的实验中使用较好的步长,采用10 000个样本数据,步长分别为3、5、10、20,迭代次数为50次进行对比实验,平均误差变化分别如图6至图9所示。
图6 步长为3的ALSTM平均误差变化
图7 步长为5的ALSTM平均误差变化
图8 步长为10的ALSTM平均误差变化
图9 步长为20的ALSTM平均误差变化
如图6至图9所示,选定不同步长时,收敛速度相差不大,但在选定步长为10时,下降曲线较为平缓。故选取步长10作为ALSTM模型的步长。
3.2 算法设计
本文所采用的算法建立在深度学习的基础上,将Adam算法作为梯度下降的算法,ALSTM的步长设置为10,神经元个数设置为300,模型学习率为0.000 6,dropout层定义为0.99的损失比。深度学习通常需要大量的时间和计算资源来训练。因此需要找到一种资源少、收敛速度快的优化算法,而Adam优化算法在求解非凸优化问题上具有很大的优势,它的本质是对随机梯度下降算法的扩展。
算法在训练阶段,将Ltotle做为算法的评价函数,算法包含两个关联的DRNN网络。具体的算法步骤如下:
Step 1:接受输入,通过正则化函数将数据归一化,温度和累计雨量作为第一个预测输出和第二个预测输出。
Step 2:设置每轮训练数量为500个,训练次数为100次,建立LSTM接收输入,激活函数为relu函数,加入Attention机制,为其分配权重,最后的输出变成了注入Attention机制的加权求和温度值,得到第一个温度误差M以及第一个预测的空气温度值T。
Step 3:根据已经正则化的输入以及预测的空气温度值,再次利用ALSTM模型去预测降雨值,得到第二个降雨误差值R和预测降雨量P。
Step 4:根据两个误差值相加得到总误差值Ltotle,然后利用Adam算法对总误差之进行优化,将总误差值降低,如果总误差值没有变化或者当达到训练迭代次数时,算法结束。
ALSTM算法流程如图10所示。
图10 ALSTM的算法流程
4 实验结果和分析
在本文算法实验中,采用均方误差(mean absolute error, MSE)作为训练阶段计算训练偏差程度的评价指标,因MSE是参数的估计值与参数的真值之差的平方的期望值,能更好地反应模型对数据的拟合情况,其值用字母E表示,计算公式如下:
(11)
式中,yi表示参数真实值;yi′表示参数估计值。如果E越小则说明该模型的训练效果越优。
4.1 数据集
实验数据是从网上下载的北京2010—2015年的PM2.5天气数据集,时间间隔为1 h,共有43 825组数据。数据集按时间顺序按3∶1划分为训练数据集与测试数据集。每组数据有8个参数。以这些参数作为基本输入属性,以下一小时的温度、降雨作为模型的输出值。相关的参数标识符如表1所示。
表1 参数及标识符
由于不同天气要素数据的值域不同,为了避免在训练过程中受到值大小的影响,将所有属性数据做归一化处理,使其变换到同一范围内。采用最小-最大归一化方法,其归一化函数如下:
(12)
通过归一化处理,将每个属性值均变换到[0,1],这样避免在训练过程中受到较大值的影响而发生偏置。
4.2 训练阶段的实验分析
利用2010—2015年的北京PM2.5天气数据集,分别对LSTM、BP、基于LSTM的深度循环神经网络(DRNN)和ALSTM模型进行训练。
为了对比模型,在4种神经网络上进行训练,并对下一小时的温度和降雨预测。根据实验,得出各模型的平均总误差变化对比如图11所示。从图11可见,发现各模型的平均总误差都是逐渐减少的。LSTM和BP模型在训练过程中快速拟合完毕,DRNN和ALSTM的平均总误差则非常稳定地下降,最终4种模型都拟合完毕。
图11 各模型的平均总误差变化对比
ALSTM的温度和降雨训练误差变化情况如图12所示。在迭代次数较少时,得到的模型效果比较差,但随着迭代次数的不断增加,训练的误差也越来越小。其中温度训练误差的下降较为平滑,而降雨误差略微波动,但最终两个误差都趋向于零。究其原因,大致因为日常温度的变化较为平缓,而降雨从无到有的变化较为突然所致。
图12 ALSTM的温度和降雨训练变化情况误差
不同模型的温度训练误差对比见表2。从表2可以看出,在迭代次数高于50次之后,ALSTM的温度误差就小于LSTM、BP和DRNN的误差。不同模型的降雨训练误差对比和平均总误差对比见表3和表4。从表3、表4可以看出,ALSTM在迭代分别达到200和100次后,其降雨误差和平均总误差均低于其他3种模型。随着训练次数的增加,在相同训练次数下,ALSTM的优势越来越明显。从表2至表4可以看出,DRNN的温度误差、降雨误差,平均总误差都在降低,并随着迭代次数的增加,三个误差均低于LSTM和BP,但比ALSTM高。之所以ALSTM需要达到一定迭代次数后,才优于LSTM和BP两种模型,是因为ALSTM模型更复杂,需要较多次数的迭代才能显示出其效果。而ALSTM因为加入了Attention机制,模型训练效果更优于DRNN。
表2 不同模型的温度训练误差对比
表3 不同模型的降雨训练误差对比
表4 不同模型的平均总误差对比
4.3 测试阶段的实验分析
为了验证模型的预测效果,采用测试数据集对模型进行了验证,测试数据按照时间顺序排列。在本实验中,采用绝对误差(mean absolute error, MAE)作为计算偏差程度的评价指标,能更好地反映预测值与真实值存在的误差的真实情况,并用1 - MAE的结果作为模型的精度评价指标。用字母A表示MAE的大小,计算公式如下:
(13)
式中,fi表示真实值;yi表示估计值。
4种不同模型的平均精度(预测降雨精度与预测温度精度的算术平均)见表5。从表5中可以看出,LSTM的预测精度最差,BP模型的预测精度好一些,DRNN模型优于LSTM和BP模型,ALSTM优于其他3种模型。LSTM的预测精度差可能是由于LSTM模型在训练过程中产生了对例外情况的过拟合。
表5 4种不同模型的平均精度
图13至图20分别展示了使用建立好的LSTM、BP、DRNN和ALSTM模型后,在进行温度和降雨预测时,实际值和预测值的误差对比情况。从图13、图15、图17和图19可以看出,LSTM预测的温度与实际值的误差较大,在0~16的范围内;BP略好一些,预测误差在0~2.7;DRNN预测误差在0~1.7;而ALSTM的预测误差在0~1.4,较为稳定且接近真实值,优于LSTM、BP和DRNN模型。从图14、图16、图18和图20可以看出,LSTM、BP、DRNN和ALSTM 4种模型的降雨预测误差分别在0~4.8,0~1.5,0~1.2和0~1.1,相对于温度预测误差的数值都更小一些,同样的ALSTM在预测降雨误差方面也优于LSTM、BP和DRNN模型。结果表明,ALSTM的预测精度高于其他3种模型。这一结果证实了下一小时的降雨不仅与历史数据有关,也与前一小时的温度有关。因此,ALSTM可以较好地处理这类问题,其性能优于传统的神经网络模型。由此可以看出,ALSTM对北京PM2.5的测试集中的温度值和降雨值都能做到较好的拟合和预测。
图13 LSTM的温度预测值与实际值的误差对比情况
图14 LSTM的降雨预测值与实际值的误差对比情况
图15 BP的温度预测值与实际值的误差对比情况
图16 BP的降雨预测值与实际值的误差对比情况
图17 DRNN的温度预测值与实际值的误差对比情况
图18 DRNN的降雨预测值与实际值的误差对比情况
图19 ALSTM的温度预测值与实际值的误差对比情况
图20 ALSTM的降雨预测值与实际值的误差对比情况
5 结论
本文提出了ALSTM预测算法。给出了ALSTM的模型结构、算法框架设计,并将ALSTM算法与LSTM、BP和DRNN网络算法进行了性能对比实验。通过4种算法在温度和降雨方面的预测结果对比,验证了ALSTM模型的准确性及可行性。实验结果表明,ALSTM模型不仅优于其他3种神经网络模型,并且还能同时预测两个天气数值,且平均精度在97%以上。这也说明了天气数据相互之间存在关联性。但ALSTM仍存在一些有待改进的地方,例如在训练阶段使用简单的算术平均算法来计算总误差,目标是通过减少总误差来优化模型。这种误差计算方法没有考虑各个误差之间的关系,也没有考虑总误差最小时的一些细节,如各子误差的极端情况和误差减少过程中的振荡。下一步,我们将研究输入参数的优化,以及输入参数之间的关系,以提高模型的平均精度。相信在不久的将来,更准确的天气数据将能被人们所预测。