袁锦诚,李忠木
(大理大学天文研究所,云南大理 671003)
人类活动等因素使海洋、陆地和大气变暖,并在地球各个领域造成了不可逆转的影响。极端气候使得世界各地发生了许多自然灾害,这些灾害的影响越来越强烈和持久。联合国政府间气候变化专门委员会发布的最新报告显示,气候变化将对中国的各个方面产生严重影响。如何应对不断变化的气候已经成为人类需要面对的重要问题〔1〕。大理白族自治州(以下简称“大理”)位于云南省中部偏西,拥有美丽的自然景观以及多种保护动植物,是云南重要的粮食产地,也是滇西重要的交通枢纽〔2-4〕。对大理进行气候预测能够有效应对极端气候造成的灾害,例如能够促进大理的自然环境与濒危野生动物的保护,提前部署救援力量从而减少极端气候给人民生命财产、国家经济造成的损失。进行气候预测最重要的是对气候因子进行预测,因此本研究选取了最为重要的4 个气候因子进行预测〔5〕。
随着气候观测技术的不断发展〔6〕,人们可以获得越来越多的气候数据。由于气候数据具有时空性、多样性、周期性等特征,虽然气候数据的量不断增长,但是使用传统统计方法对气候进行预测的准确性并未得到大幅的提升,机器学习有望在这个方面提供帮助。机器学习是一个经验过程,通过对数据集进行不断的学习,从而总结出数据规律〔7〕。数据量越多,总结出的数据规律越准确,在处理长时间序列的气候数据时更适用〔8〕。因此,本文使用机器学习对大理的气候进行预测。机器学习是近年来的研究热点〔9〕,被应用于各种领域,例如数据挖掘〔10〕、计算机视觉〔11〕、气候分析〔12〕等。目前机器学习有几种主流的算法:线性回归、决策树算法、朴素贝叶斯、支持向量机(support vector machine,SVM)、最近邻算法(K-nearest neighbor,KNN)、循环神经网络(recurrent neural network,RNN)、长短期记忆网络(long short-term memory network,LSTM)等〔13〕。LSTM 是一种优秀的循环神经网络结构,它的出现是为了解决传统RNN 的性能不足〔14-15〕。传统的RNN 在处理一些问题时会遇到困难,后面时间的节点会出现遗忘,这使得RNN 在很长一段时间内都缺乏关注。于1997 年首次被提出的LSTM 可以有效弥补RNN 的缺点〔16〕。LSTM 具有“记忆性”,可以长期保存信息,连接不同时间点,擅长处理含有多个变量的问题,可以更好地对时序数据进行预测。因此,很多研究都采用LSTM 代替RNN 进行气候预测。比较典型的例子有:杜丽霞〔17〕使用LSTM模型对澳大利亚山火的发生时间进行了预测;罗德杨等〔18〕搭建LSTM 模型开展全球平均表面温度年际信号预测研究;孙际钰〔19〕基于LSTM 对海表温度进行预报;李艳玲等〔20〕基于驱动分析的LSTM 建立了干旱预测模型;沈皓俊等〔21〕基于LSTM 对中国夏季降水进行了预测研究。大理的气候数据作为典型的时序数据,选取在处理时间序列预测问题上拥有明显优势的LSTM 算法〔22〕构建模型对大理的气候进行预测,能够获得较佳的预测效果。此前的研究大多只预测了单一的气候因子〔21〕,往往不足以满足社会的需求,因此本研究对大理的温度、降水、湿度、日照时数4 个气候因子进行全面预测,结果有助于更好地掌握大理的气候变化规律,提前应对极端气候灾害,为建立大理的气候模型提供参考。
1.1 研究区选取大理作为研究区域,它位于东经98°52′~101°03′,北纬24°41′~26°42′之间,是云南省主要行政区之一。该地区地处低纬高原,以季风气候为主,有苍山、洱海等世界著名的自然景观,动植物、有色金属等自然资源十分丰富。
1.2 数据集本研究选用中国地面气候资料日值数据集(V 3.0)〔23〕,数据来源于国家气象信息中心,起始时间为1951 年1 月,截止时间为2021 年5月。温度、降水、湿度、日照时数是进行气候分析预测的主要因子〔24〕,因此选取这4 个因子作为研究对象。使用异常数值前一日的数据对异常数值进行替换,在消除异常值的同时降低了误差。气候的定义是在气候系统和太阳辐射的互相作用下,地球上某一区域在某一特定时段内天气的平均状况及其极端情形〔25〕。为了得到更多数据量的同时不掩盖气候的变化规律,选取10 d 平均气候数据进行预测。本研究分别对10 d 平均温度、10 d 平均降水、10 d 平均湿度、10 d 平均日照时数进行预测,见图1~4。每个气候因子有2 575 条气候数据,本研究将训练集和测试集按80%和20%的比例进行划分〔26〕。
图1 10 d 平均温度图
图2 10 d 平均降水图
图3 10 d 平均湿度图
图4 10 d 平均日照时数图
2.1 时间序列与Keras 框架
2.1.1 时间序列 符合时间序列的数据是按照特定的时间间隔分布的,比如,海平面每小时的温度变化。对符合时间序列的数据进行预测,最重要的是找到数据的变化规律。大理10 d 平均气候数据符合时间序列,具有随时间呈周期性变化的特征,并且很难确定各气候因子之间的关系,因此采用对预测时间序列具有明显优势的LSTM 算法对大理的气候进行预测。
2.1.2 Keras 框架 选择使用Keras 框架搭建实验模型。Keras 框架具有设计简单、运行快速、模块化程度高的优势,支持RNN、LSTM。Keras 框架可以搭建序贯模型和函数式模型,序贯模型只有单个输入与输出,层与层之间只有相邻的关系,不能跨越阶层连接,操作不复杂,具有较快的计算速度;函数式模型具有多个输入与输出,层与层之间可以随意连接,具有较慢的运行速度。选择使用Keras 框架搭建LSTM 序贯模型对气候进行预测,这样可以快速得到大理的气候预测结果。
2.2 LSTM 模型从获取的原始数据可知,大理的气候数据具有以1 年为周期的变化规律。使用LSTM 模型对气候数据进行时序预测可以得到较为准确的预测结果,掌握气候的变化规律。本节对LSTM 的基础知识进行简短讨论,构建LSTM 预测模型。
LSTM 能够在一些专门设计的记忆单元或门中保持其状态信息〔27〕,并对存储在遗忘门中的历史状态与当前状态信息进行聚合操作,以计算未来的状态信息,以及在输入门接收当前时隙可用的信息,使用遗忘门和输入门的聚合结果,预测下一轮目标变量的值,预测值在输出门处可用。
遗忘门fn可以表示为:
输入门in可以表示为:
输出门on可以表示为:
当前单元状态:
当前单元输出:
其中Xn,Yn表示1 次的输入和输出,Cn表示当前单元状态,U、W 代表的是权重,b 为偏置项,δ 代表了激活函数,在3 个门上都有作用,值在0~1,0 为全部信息不能通过,1 为全部信息通过。tanh 函数在状态和输出中被使用。
图5 为LSTM 的结构图,从图中可以看出有4层神经网络层作为重复模块,并且层与层之间相互作用。LSTM 的关键在于重复模块的状态和穿过重复模块的链。当数据在完整的链上运行时,线性交互较少,链上的信息进行传输与保持不变比较简单。为了对大理气候进行预测,构建并调整了LSTM 模型,第一步需要对数据进行预处理,其中包括将数据集进行归一化处理,变为有监督问题,使其能够通过前一个时刻的气候数据从而预测出当前时刻的气候数据。
图5 LSTM 神经网络结构
采用双层LSTM 模型,第一层LSTM 隐藏层有64 个神经元,第二层LSTM 隐藏层有32 个神经元,输入的变量为1 个时间步,损失函数使用mean absolute error(MAE),激活函数使用relu,优化算法采用Adam,模型采用了50 个epochs 并且每个batch 的大小为256。最后,在fit()函数中设置validation_data 参数,记录训练集和测试集的损失,在完成训练和测试后得到模型的预测结果以及预测每个气候因子的误差评估指标,本研究所采用的误差评估指标为均方根误差(root mean square error,RMSE)以及平均绝对百分比误差(mean absolute percentage error,MAPE):
运用LSTM 模型对大理2016 年6 月至2021年5 月的温度、降水、湿度、日照时数进行预测并与真实值进行了对比,结果见图6~9。图中横坐标代表日期,纵坐标代表气候数值,实线代表原始的气候数据,虚线代表构建模型预测得到的气候数据。
图6 温度预测结果图
图7 降水预测结果图
图8 湿度预测结果图
图9 日照时数预测结果图
使用构建模型对4 个气候因子进行预测,得到的误差以及验证损失(test loss)见表1。为了评估其准确性,通过传统的RNN 模型进行了对比,表1 给出了使用传统RNN 模型预测得到的误差以及验证损失。对比表1 中的LSTM 模型与RNN 模型的RMSE、MAPE 以及验证损失可知,LSTM 模型在预测温度、降水、湿度、日照时数这4 个气候因子时,均比传统RNN 模型有更低的RMSE、MAPE 以及验证损失。因此,使用构建的LSTM 模型对大理气候进行预测得到的结果优于传统的RNN 模型的预测结果。
表1 使用LSTM 模型、RNN 模型得到的误差以及验证损失
本文主要研究了具有时序数据处理优势的两种机器学习模型,为了了解LSTM 模型与其他典型模型的性能差异,还采用SVM 模型、KNN 模型对大理的4 个气候因子进行了预测,得到的预测误差见表2。
表2 使用SVM 模型、KNN 模型得到的误差
LSTM 模型的RMSE、MAPE 均低于SVM 模型。仅在预测降水时LSTM 模型的MAPE 高于KNN 模型,RMSE 仍低于KNN 模型。计算MAPE 时需要排除为0 的原始数据,使MAPE 不能准确地反映模型整体的预测精度。在大理的4 个气候因子中,只有降水量存在着为0 的情况,预测降水得到的RMSE代表着对非0 的降水量预测得到的误差。LSTM 模型在对非0 的降水数据进行预测时,得到的误差大于KNN 模型;LSTM 模型对全部的降水数据进行预测时,得到的误差小于KNN 模型。实验结果证明,LSTM 模型的预测更为准确。
为了检验模型的可靠性和实用性,用美国国家海洋和大气管理局(NOAA)〔28〕收集的大理2020 年至2022 年6 月温度数据来验证所构建的LSTM 模型。通过模型预测得到的2020 年至2022 年6 月的温度数据与NOAA 提供的2020 至2022 年6 月的温度数据对比见图10。图10 中2020 年之后的预测数据均为模型输出的预测值(虚线),实线为NOAA提供的温度数据。用模型预测值对观测值进行拟合,得到的验证损失为0.068 ℃,RMSE 为1.690 ℃,MAPE 为0.097 ℃,拟合结果误差很小。因此,构建的模型能够对大理的气候进行较为准确的预测,具有良好的实用性。
图10 使用NOAA 2020 年至2022 年6 月温度数据验证结果
本文基于Keras 框架搭建了LSTM 模型对大理的气候进行预测,得到了大理2016 年6 月至2021年5 月的温度、降水、湿度、日照时数的预测结果。结果显示,LSTM 模型预测的大理气候变化趋势与真实气候变化趋势基本一致,RMSE 分别为1.544℃、2.720 mm、6.521% rh、1.990 h,MAPE 分别为0.087℃、4.025 mm、0.085% rh、0.462 h。实验结果表明,构建的模型对大理的温度、湿度的预测结果较为准确。同时发现,对降水、日照时数的预测误差较大,其原因在于观测数值波动大、极端数值较多。模型预测10 d 平均降水的RMSE 为2.720 mm,对预测极端降水影响较小。预测10 d 平均日照时数的RMSE 是1.990 h,MAPE 为0.462 h,预测值与真实值之间存在一定的差距,但仍低于使用传统RNN模型预测日照时数的RMSE 2.392 h 和MAPE 0.491 h。因此构建的模型可以更好地用于预测降水、日照时数,但仍有一定的优化空间。本文主要研究了具有时序数据处理优势的两种机器学习模型,为了了解LSTM 模型与其他典型模型的性能差异,还采用SVM 模型以及KNN 模型对大理的气候因子进行了预测,实验结果证明,其预测的准确性明显差于LSTM 模型。因此,LSTM 是4 种模型中最好的。当用NOAA 提供的最近温度数据对模型进行验证时,得到的RMSE 为1.690 ℃,MAPE 为0.097 ℃,这表明模型具有很强的可靠性和良好的实用性。构建的LSTM 模型能够成功预测大理的气候,能给出较准确的预测结果,这将有助于更好地掌握大理的气候变化规律,从而有效应对极端气候灾害,并促进大理自然环境与濒危野生动物保护。