基于LSTM的天气温度预测
2018-10-20冯鸿超许德刚
冯鸿超 许德刚
摘要: 本文使用LSTM网络模型,将某一城市多年地面气象数据作为变量,使用sigmoid函数作为激活函数,预测未来一段时间内的天气温度。通过仿真实验,将真实数据与预测数据进行对比分析,预测精度可达86%,误差较小,相对普通RNN网络模型预测精度提升40%。
关键词: 深度学习;RNN;LSTM
中图分类号: S165.2 文献标识码: A 文章编号: 1672-9129(2018)09-0052-01
Abstract: In this paper, we use the LSTM network model to use the sigmoid function as an activation function to predict the weather temperature for a period of time in the future. Through simulation experiments, the real data and the forecast data are compared and analyzed, the prediction accuracy can reach 86%, the error is small, and the prediction accuracy of the common RNN network model is improved by 40%.
Key words: deep learning;RNN;LSTM
1 前言
天氣变化极大的影响人们的日常生活,人们从未停止过对天气的预测,随着人们所掌握科学技术的进步,气象观测站数量在迅速增长,由此产生大量的气象数据,通过气象大数据的分析,用于提高天气预报的准确率,预测未来较长一段时间内地面天气的温度,预知极端天气的出现,提前做好相应的防范措施,还可用于其他对天气有依赖性的研究。
随着深度学习(Deep Learning)理论的不断发展,神经网络在预测模型方面备受关注,其中使用深度学习的自编码网络预测城市交通流[1],可用深度学习方法进行气象预测[2][3],应用于PM2.5预测[7],电子病历的匿名化处理和疾病及健康预测[6]等方面。循环网络具有时间相关性,可以构建广泛用于与时间相关的预测及处理领域,如文本语言处理[4],音频识别[5]等时间序列相关领域。因此本文选用LSTM网络模型对较长时间段内的温度进行预测。
2 基于LSTM网络模型的气象温度预测
在循环神经网络中,随着时间增长,RNN存在梯度消失问题,导致不能处理延迟过长的时间序列,导致第一层输出的结果对后边输出的影响越来越弱,直至消失。长短期记忆网络(LSTM)是一种特殊的RNN,能都解决RNN存在的梯度消失问题,能够学习到长期依赖关系,LSTM模型是将隐藏层替换成LSTM细胞单元,使其具有长期记忆的能力。
2.1 LSTM 型循环神经网络。LSTM的关键是细胞状态(Cell State),它穿过整个隐藏网络,LSTM通过门结构控制细胞状态添加或者删除信息,门结构是一种选择性让信息通过的方法,是为了保证LSTM 网络能够保存和获取长时间周期的上下文信息,解决了普通RNN模型中的梯度消失问题。其步骤如下:
(1)通过遗忘门决定细胞状态中的信息状态。遗忘门通过观察ht-1和xt,对细胞状态ct-1中的每一个元素,输出一个0~1之间的数,1表示“完全保留该信息”,0表示“完全丢弃该信息”。
ft=σ(Wfxt+Ufht-1+bf) (1)
(2)通过输入门确定需要更新的信息。
it = σ(Wi xt + Ui ht-1 + bi ) (2)c ~ t = tanh(Wc xt + Uc ht -1 + bc ) (3)
(3)更新细胞状态。
ct=ft⊙ct-1+it⊙c ~ t (4)
(4)输出门输出。首先输出选择后细胞的输出部分,然后将细胞状态通过tanh后与输出门相乘,得到想要的输出结果。
ot = σ(wo xt + Uo ht -1 + bo ) (5)ht = ot ⊙tanh(ct ) (6)
其中,i、f、c、o分别代表输入门、遗忘门、细胞状态、输出门,it表示输入信号,xt表示在t时刻输入层的数据,ht-1表示上一时刻输出层的输出,和b分别表示对应的权重系数矩阵和偏置量,c ~ t表示激活函数的信号,σ和tanh分别表示sigmoid和双曲正切激活函数。
2.2 基于LSTM型网络的气象温度预测
基于LSTM的气象温度预测模型主要包括5部分:输入层、隐藏层、输出层、网络训练和网络预测。其主要步骤如下:
(1)输入层将原始气象数据进行初步处理,使其满足网络输入的条件.
(2)输入层的输入后进入隐藏层,隐藏层的主要工作是网络训练,将处理好的输入数据表示为X,将X输入隐藏层,隐藏层包含M个按顺序连接的同构LSTM细胞单元,X经隐藏层后的输出与理论输出进行比较,计算损失函数,以损失函数最小化为优化目标,设定学习率、训练迭代次数等初始值,不断更新网络权重,确定最终隐藏层网络。
(3)应用训练好的网络进行预测,理论输出最后一行数据,则n+1时刻的预测值为pn+1,将pn+1与理论输出的最后一行数据合并为一行新的数据,预测出n+2时刻的预测值,依次类推,求出得到所有预测值,经过输出层的反标准化得到预测的实际值,计算得出模型出预测精度与误差。
2.3数据获取。本文采用某城市1986年1月1日至2015年12月31日共30年每天的气象数据,数据内容为每天的气温均值,日照时间,大气压强,平均风速,降雨量。根据实际数据的取值范围,按照表1的数据编码标准,做标准化处理,将原始数据转换为0、1矩阵,将转换值作为位置坐标,将全0矩阵中相应位置的值改为1。将处理过后的矩阵使用append方法合并为一个矩阵,组成一个n行470列的数组,n为所有数据的条数。
3 仿真实验
实验所用计算机配置及环境如下:CPU: I;内存:8GB;Win7(64位)操作系统;使用python3语言,在PyCharm集成开发环境下完成实验。输入層节点数为5,输入值为每天的气温均值,日照时间,气压,风速,降雨量。输出层节点数为1,为气象温度。试验中使用LSTM模型与RNN模型作对比试验,两个模型使用的训练参数设置一样,网络基础学习率设为1‰,最大迭代次数为40万,隐藏单元为180个,批处理的数据为128。
按照提出的模型的步骤进行实验,图1为LSTM与RNN网络模型预测的温度值与实际值局部对比图,从图中可以看出LSTM比RNN网络模型具有更高的拟合度。图2为300天的温度预测值与实际值的对比图,从图中可以看出,预测温度值与实际温度值具有相同的走势,预测值具有较高的可信度。
RNN和LSTM模型随着迭代次数的增加损失函数逐渐减小,预测精度不断增大,到了迭代的后期,两个网络模型的损失函数值和精度出现上下波动,说明训练已经达到饱和,LSTM网络模型预测精度最终在80%~90%范围内,最终值为87%,而RNN网络模型的预测精度则在50%~60%范围内,实验的整体的误差值在[-2.5,2.5]之间,具有较高的可信度和参考意义。总体来说,在气象温度预测中,LSTM网络模型比RNN网络模型具有更高的预测精度。
4 结束语
基于深度学习的认知机理,使用基于LSTM网络模型的温度预测模型,通过仿真实验,证明模型具有较好的预测效果,300天左右的天气预测温度与实际温度具有相同的走势,预测精度约为87%。在以后的研究工作中将进一步尝试对激活函数进行优化,增加隐藏层深度等方面进行尝试,对模型进一步的优化。
参考文献:
[1]谭娟,王胜春.基于深度学习的交通拥堵预测模型研究[J].计算机应用研究,2015,32(10):2951-2954.
[2]刘鑫达.基于深度学习的气象温度预测研究[D].宁夏:宁夏大学,2016,03.
[3]杨函.基于深度学习的气象预测研究[D].哈尔滨:哈尔滨工业大学,2017,06.
[4]张剑,屈丹,李真.基于词向量特征的循环神经网络语言模型[J].模式识别与人工智能,2015,28(4):299-305.
[5]黎长江,胡燕.基于循环神经网络的音素识别研究[J].微电子学与计算机,2017,34(8):47-51.
[6]李昆.基于电子病历的深度神经网络预测模型研究与应用[D].郑州:郑州大学,2017,05.
[7]郑毅,朱成璋.基于深度信念网络的PM2.5预测[J].山东大学学报(工学版),2014,44(6):19-25.