基于改进LSTM 模型的大气温度预测
2020-07-29季彦东
季彦东
精确的大气温度预测是天气预报的一个重要参考指标[1],对人们的日常生产生活具有重要意义.近年来,针对大气温度预测,研究者已提出多种预测模型[2-3],但总体上来看预测效果还具有较大的提升空间.
因影响大气温度预测的因素较多,使用机理建模法很难通过建立精准的数学模型实现对大气温度的精准预测[4].针对大气温度是典型的时间序列数据这一特点,文献[2]使用循环神经网络(Recurrent Neural Network,RNN)对温度进行预测,取得了非常好的效果.长短期记忆(Long Short-term Memory,LSTM)网络因为可以解决RNN 的梯度消失和梯度爆炸、长期记忆能力不足的缺点[5],同样也被应用于时间序列数据的预测,但这两种方法存在因记忆模块能力的不足而造成预测结果相对滞后的问题.CNN 网络具有降维和特征提取的能力,可以有效降低数据处理量,提高数据处理速度,利用CNN 改进LSTM 网络,既充分发挥了LSTM 时序记忆优势,同时利用CNN 的特征提取能力提高了LSTM 的记忆容量,解决了预测滞后的问题,对其他类似时间序列数据预测具有一定的借鉴价值.
1 LSTM 原理
1.1 标准LSTM
LSTM 是 RNN 的变种,标准的 RNN 模型[6]结构如图1 所示,RNN 隐含层细胞结构如图2所示.给定序列x=(x1,x2,…,xn) ,本文给定的序列数据为连续的8 个大气温度数据,通过式(1)和式(2)计算出一个隐藏层序列ht和一个输出序列yt,输出序列为将8 个大气温度数据输入模型所得到的一个预测大气温度值.
其中:U为输入层到隐藏层的权重矩阵,W为隐藏层到隐藏层的权重矩阵,V为隐藏层到输出层的权重矩阵;bh为隐藏层的偏置向量,by为输出层的偏置向量;fa、fy为激活函数;xt为t时刻输入状态;ht为t时刻隐藏层状态;yt为t时刻输出状态.
图1 RNN 结构
图2 RNN 隐含层细胞结构
RNN 网络因其具有记忆功能,所以在处理时间序列数据方面已经取得了较大成功,但仍然存在梯度消失、梯度爆炸、长期记忆不足等问题.为了弥补RNN 的不足,LSTM 应运而生.LSTM 相对于RNN,隐含层结构多了3 个控制门,即输入门、遗忘门、输出门[7],对应图3 中的it、ft、ot.遗忘门决定从细胞状态中丢弃的信息,输入门决定细胞状态更新的信息,输出门控制将要输出的信息.图3 为标准LSTM 隐含层细胞结构,其中xt、ct、ht分别为t时刻的输入单元、细胞状态、输出单元,ct-1、ht-1分别为t-1 时刻细胞的状态和输出单元,φ1为 sigmoid 函数,φ2为 tanh 函数.本文以连续的8 个大气温度时间序列数据作为输入,通过LSTM 网络处理得到下一时刻的温度预测值.
图3 标准LSTM 隐含层细胞结构
由图3 可知,LSTM 细胞前向计算方法可以表示为[8]:
式中:Wf、Wi、Wc、Wo分别为遗忘门、输入门、输出门、输入单元状态权重矩阵;bf、bi、bc、bo分别为遗忘门、输入门、输出门、输入单元状态偏置项.
1.2 改进LSTM
针对时序数据的特点,LSTM 模型演化出许多变体,其中CHEN P W[9]所提出的LSTM变种在对时序数据的预测方面取得了非常好的效果.然而,由于记忆模块能力有限,无论RNN、LSTM 还是 CHEN’s LSTM 所构建的网络都具有预测滞后问题.卷积神经网络(Convolutional Neural Networks,CNN)在特征提取和降维上具有一定的优势,能够实现从输入的信息当中提取出更高阶特征,将主要的信息留下,同时将无用的信息过滤掉[10].基于此,本文提出一种改进的LSTM,在LSTM 处理大气温度数据前添加卷积神经网络,利用CNN具有的特征提取和降维的功能,减少LSTM 处理的数据量,提高LSTM 处理速度,提高LSTM网络的记忆能力. 同时,卷积神经网络和LSTM 网络使用相同的初始权重,一方面增加了网络记忆模块的能力,另一方面降低了网络负载增量.此外,卷积神经网络和LSTM 模型的连接使用一个全连接层,主要作用是将学到的高阶特征完全传递到LSTM 当中.具体改进LSTM 模型如图4 所示.
图4 改进的LSTM 网络结构
2 大气温度时间序列来源及处理
大气温度时间序列来源于中国气象数据网发布的“中国地面累日值数据集”.数据集包括中国824 个基准和基本气象站的气压、气温、降水、风要素的日气候标准值数据.本文选取沈阳市(站号 54342)2010 年 1 月 1 日至2019 年6 月30 日逐日实况观测的大气温度数据作为研究对象,其中2012 年和2016 年为闰年,2019年上半年181天,记365*9+2+181=3 468条大气温度数据.
为了提高改进的LSTM 的训练速度和预测精度[11],首先对原始数据作归一化处理.经过离差标准化处理后,变量区间为(-1,1),归一化处理很大程度上消除了量纲影响.归一化公式见式(9),归一化后的温度序列如图5所示.
式中:Xmean是所用数据的平均值、Xmax是所用数据的最大值、Xmin是所用数据的最小值.
图5 数据归一化
为了方便后续数据使用,需将处理后的数据集划分为训练集和测试集.针对所选温度试验序列,将2010 年至2018 年区间的温度时间序列作为训练样本,2019 年的温度时间序列作为测试样本.
3 试验结果及分析
3.1 模型评价指标
本文采用均方根误差(RMSE)和判定系数(R2)两个指标作为定量评定预测结果优劣的标准[12].
式(10)和式(11)中,yp(i) 为时间序列预测后的结果,yt(i) 为待预测时间序列样本,ym为待预测时间序列样本的均值.通常情况下,R2越大,RMSE越小,预测效果越好.
3.2 模型预测结果及分析
在模型的训练过程中,通过Adam 优化方法更新LSTM 网络的权重,使网络损失最小[13].针对实际训练中存在过拟合的问题,本文采用 Dropout 方法对神经网络进行正则化[14].在训练过程中以0.1 的概率随机丢弃网络中的一些神经元和相互之间的权重连接,提升模型的泛化能力.
为了验证改进LSTM 网络的有效性,本文选择RNN 和LSTM 作为对照基准模型.采用Python 语言和基于谷歌开源框架Tensorflow 的深度学习库Keras 作为后端试验基础,搭建并训练了上述3 种模型,并用训练好的模型分别对测试集进行了预测.结果详见图6、图7 和图8.
图6 温度序列的RNN 模型预测结果
图7 温度序列的LSTM 模型预测结果
图8 温度序列的改进LSTM 模型预测结果
为了更清晰地比较三种网络模型对温度序列进行预测的优劣,本文进行了比较图分析,结果如图9 所示.由图9 可知,三种模型都可以有效地对温度进行跟踪,曲线走势基本一致.RNN 和LSTM 明显因记忆模块能力的不足而造成预测结果的相对滞后,而改进的LSTM 网络则因为使用了卷积神经网络作为记忆模块能力的扩展,温度预测数据可以与真实数据相切合,达到了调节滞后的效果,明显优于RNN 和LSTM 网络.
图9 温度序列的三种模型预测结果对比
本文采用RMSE和R2两个指标作为定量评定预测结果的优劣,并且在模型的Loss多次迭代保持不变后停止继续迭代,并记录迭代次数,三种模型所对应的结果见表1.
表1 3 种模型温度预测对比
根据表 1 可知,传统 RNN、LSTM 和改进LSTM 模 型 测 试R2值 分 别 为 0.978、0.978、0.979,RMSE分 别 为 0.003 073、0.003 049、0.002 083,说明传统 RNN、LSTM 和改进 LSTM模型的温度预测都具有一定的效果,并且改进LSTM 模型的效果要好于传统RNN 和LSTM网络.达到相同Loss 的前提下,改进LSTM 模型所需要的迭代次数更少,说明改进的LSTM模型对大气温度进行模拟预测是有效的.
4 结论
本文采用卷积神经网络改进LSTM 的大气温度预测模型,利用卷积神经网络具有的特征提取和降维的能力,改善LSTM 具有的记忆不足的问题,通过对真实的大气温度进行预测,并同传统RNN、LSTM 模型比较分析,得到如下结论:改进LSTM 模型可以有效解决RNN、LSTM 因记忆模块能力不足而造成的预测滞后问题;与传统的时间序列预测模型RNN、LSTM 相比,改进 LSTM 模型的拟合精度和预测精度整体更高.
总的来说,本文改进的LSTM 模型在大气温度预测领域中的适用性,扩展了LSTM 技术的应用范畴.但同时在改进过程中,因增加了卷积神经网络,造成单次网络迭代时间耗时略高,需要后续深入研究.