基于多任务长短时卷积计算网络的降雨预测
2022-10-01陈百艳
王 军,陈百艳,程 勇
(1.南京信息工程大学 计算机与软件学院,江苏 南京 210044;2.南京信息工程大学 科技产业处,江苏 南京 210044)
0 引 言
降雨预测与人类生活和社会经济等方面具有密切联系,准确的气象预测可以为人类出行及生命安全提供可靠的科学依据,但建立高效的短期降雨预测模型面临诸多挑战。随着传感器探测技术、储存技术不断更新,传统的降雨预测方法已无法满足气象大数据处理的要求。近年来深度学习在各个领域中的应用,得到学者的广泛认可,同时也给气象预测扩展了处理分析多种气象大数据的方法。受到启发,本文中降雨预测的研究工作主要基于深度学习展开。
目前,越来越多的气象中心开始使用多个观测点的一组气象特征作为降雨预测数据,现有降雨预测模型大多基于单站点数据构建,无法利用数据间的横向关联性,数据纵向特征的完整性也无法保证。本文使用多任务学习构建探索多站点数据时空特性的降雨预测模型,将多个观测站点气象数据进行联合学习,对站点间的相关性进行建模,充分利用多站点气象数据的横纵特性,使模型的预测结果更加准确、丰富。
研究时,将降雨预测问题类比为时空序列预测问题,通过输入以往一段时刻的雷达序列图像,预测出未来某一时刻的雷达序列图像。由于时空序列具有高维性,模型必须进行多步预测,使得模型需要捕捉数据的时空结构。对此,本文提出在长短时记忆网络中加入卷积运算结构,与多任务学习方法结合建立端到端的MTL-LSTC网络模型,对气象数据进行编码预测。大量实验结果表明,模型可以有效提取气象数据内部时空特性,使预测精度大幅提高。
1 相关工作
目前的降雨预测方法主要分3类:概念模型预测技术[1]、数值预测技术[2]和雷达回波外推预测技术[3]。概念模型预测技术是通过分析观测数据,建立强对流天气系统产生、发展、消失的概念模型,结合其它外推方法进行预报的技术;数值预测技术是指根据大气的实际情况,通过数值计算表示气象演变过程的流体力学或热力学的方程组,对未来的大气运动状况及其它气象信息进行预测的方法;雷达回波外推预测技术是通过跟踪雷达图像或云图等气象图像资料,外推出降雨云团或者强风暴的位置、形状和强度的变化。近几年,数值预测技术和雷达回波外推预测技术受到了越来越多的学者推崇,然而使用数值预测技术进行临近预测时,对大气模型模拟物理公式的过程较为复杂,因此,更多研究者使用雷达回波外推预测技术构建降雨预测模型。
深度学习的飞速发展给降雨预测带来了新突破,大量的气象数据可以通过深度学习探索出气象因子之间相互依赖的关系及潜在规律,预测出降雨在未来某一时刻的情况。最新研究中,文献[4]提出将Horn-Schunck算法[5]和Lucas-Kanade算法[6]结合进行实时回波变分光流计算,捕获关键位置的雷达回波运动变化过程,对局域系统[7]内短距离强暴雨预警的研究。但是这类光流算法模型中,光流计算的步骤与雷达回波外推步骤是分开的,使得模型的参数优化过程十分困难。随着深度学习的发展,循环神经网络(recurrent neural networks,RNN)和长短时记忆网络(long short-term memory,LSTM)将这一问题有效解决。文献[8]开创性的提出LSTM编码-解码模型,搭建序列到序列学习过程的通用框架,通过训练临时的LSTM单元解决学习中序列信息传输的问题。之后,文献[9]对LSTM模型中编码-解码过程进行优化,提出全连接的长短时记忆网络模型(fully connected LSTM,FC-LSTM),在重构输入序列的同时预测未来序列,模拟时空序列预测内的空间关系。虽然FC-LSTM模型为处理时空序列预测问题提供了有效解决方法,但由于LSTM层间采用全连接的方式,不考虑空间相关性且存在较高冗余。为更好模拟出时空序列内时空关系,本文提出使用具有卷积运算结构的长短时记忆网络(long short-term convolutional calculation network,LSTC),通过叠加多个LSTC层形成编码预测结构,构建更高效的降雨预测模型。
多任务学习是机器学习的一种学习范式,利用多个相关任务包含的丰富信息来提高所有任务的泛化能力。机器学习通常需要大量的训练样本学习,来取得精确的结果,基于神经网络的深度学习模型需要更庞大的标记样本来训练含有大量模型参数的深层神经网络。如果样本数量不足,不论是浅层模型还是深层模型学习要求都不能得到满足。如果单个任务中的训练样本有限,而此时模型中恰巧有多个相关任务,那么多任务学习就是一个很好的解决方案。
多任务学习常常会与迁移学习作比较,两者之间相似却完全不同。多任务学习中,相关任务与目标任务之间没有区别,都是为了提高所有任务的性能。而迁移学习则是借助相关任务来提高目标任务的性能,有时目标任务比相关任务看起来更重要。目前多任务学习的主要研究方向有多任务学习正则化[10]、多任务学习与神经网络的结合[11]和多任务学习的权值分配[12]。虽然多任务学习方法目前已逐渐成熟,但在气象预测中的应用较少,本文仔细研究文献[13]中工作后,提出使用多任务学习方法处理多站点预测问题,通过站点相关性矩阵自动描述站点间的关联性,进一步提高深度学习降雨预测模型的性能。
2 基于MTL-LSTC网络的降雨预测模型
本文将多任务学习方法与LSTC网络结合,提出基于MTL-LSTC网络的降雨预测模型。多任务学习对多个相关任务进行同时学习,相比单任务学习独立分解的策略,多任务学习能够有效利用多站点气象数据中关联因素,使模型具有更高的泛化能力。LSTC网络能够更好捕捉气象序列数据的时空相关性,构建出通用的时空序列预测模型,进行更有效的降雨预测。接下来首先对多任务学习和LSTC网络两个模块分别进行阐述,最后对整个模型的优化过程进行详细介绍。
2.1 多任务学习设置
降雨预测是一个回归问题,已有解决方法包括独立模型[14]和统一模型[15],独立模型不考虑多站点间内在关联,统一模型假设所有站点使用相同的关联公式,这两类模型都不能提取出多站点气象数据的差异性。本文使用多任务学习方法构建端到端的多站点降雨预测模型,允许信息从一个站点转移到其它相关站点,并建立站点间相关性矩阵。本节将从2个部分对模型中多任务学习设置进行详细介绍,首先介绍建立多站点间相互关系的过程,然后介绍网络中多任务学习的功能。
(1)
式中:l(.) 表示损失函数,g(.) 表示激活函数,f(.) 表示特征转换函数,U∈RH×1表示输出层,其中H是隐藏层的维度。统一模型是将所有站点看成相同的模型进行输出,没有考虑各个站点的特性。我们将统一模型转换为多任务学习模型,定义每个站点都有自己的输出层Op∈RH×1, 利用输出层Op表现每个站点特性。由于回归问题一般使用均值方差法计算损失函数,此处损失函数的计算方法如式(2)所示
(2)
式中:f(.)、g(.) 表示特征转换函数,θ表示特征转换网络,U∈RH×1表示输出层。在构建站点相关性矩阵I∈Rp×p的过程中,定义Ii,j表示站点i和站点j间相似性,利用tr(OI-1OT) 使输出值Op受矩阵I的限制。当Oi和Oj值越接近,Ii,j值越大。总之,多任务学习设置就是为模型中所有站点训练统一的θ和U, 用不同的输出Op模拟站点特性,最终多任务学习的计算方法如式(3)所示
(3)
2.2 LSTC网络
LSTC网络模型中,输入的每个时间序列都是一个二维的气象雷达图像,将图像分割为一组平铺不重叠的平面,将平面内像素作为观测值,则降雨预测就是一个时空序列预测问题。
(4)
图1 二维图像分割为三维张量
为更好模拟出气象数据的时空序列特性,对FC-LSTM网络模型进行优化,在FC-LSTM网络输入到状态和状态到状态之间的转换过程中叠加多个LSTC网络将空间信息进行编码,构建出可以利用空间信息的长短时记忆网络模型。解决FC-LSTM网络处理时空数据时,由于输入到状态和状态到状态的全连接方式,导致空间信息没有被编码且连接方式冗余的问题。
LSTC网络的内部结构如图2所示,将所有的输入x1,…,xt、 神经元输出c1,…,ct、 隐藏状态h1,…,ht和门控机制i1、ot、ft设置成一个三维的张量,行和列的空间维度设置成一个二维的张量,假设输入和状态是空间网格上的向量,图中输入和状态是空间网格上的向量,LSTC单元就是通过相邻网格上的输入和状态进行卷积运算,预测未来某个网格上的状态。计算过程如式(5)~式(9)所示
it=σ(Wxi·xt+Whi·ht-1+Wci∘ct-1+bi)
(5)
ft=σ(Wxf·xt+Whf·ht-1+Wcf∘ct-1+bf)
(6)
ot=σ(Wxo·xt+Who·ht-1+Wco∘ct+bo)
(7)
ct=ft∘ct-1+it∘tanh(Wxc·xt+Whc·ht-1+bc)
(8)
ht=ot∘tanh(ct)
(9)
其中,·表示卷积运算符号,∘表示哈达玛乘积。ct表示累积输入状态信息的储存单元,通过调节储存单元的参数控制门的读、写和删除。输入门it控制进入储存单元信息量;遗忘门ft控制过去储存状态ct-1中被遗忘的信息量;输出门ot控制传输到最终状态ot中的信息量。
图2 LSTC网络的内部结构
为使隐藏状态与输入状态具有相同的行列数,在进行卷积计算前,需要对隐藏状态进行填充操作。一般长短时记忆网络中所有初始状态均为0,所以隐藏状态的填充过程初始化也为0,然后根据外界信息进行自我更新。
整个LSTC网络编码解码过程如图3所示,编码网络和解码网络由多个LSTC网络层堆叠得到,编码网络中将输入序列压缩为一个隐藏状态张量,预测网络通过复制编码层的最终状态作为输入,其维度与预测目标维度相同,目的是使LSTC网络层连接起来,输入到一个全连接层进行最终预测。
图3 LSTC网络的编码预测过程
2.3 基于MTL-LSTC网络的降雨预测模型
如图4所示,整个模型由3个主要部分组成:一是表示输入特征的特征转换网络;二是预测降雨量的编码预测网络,使用LSTC网络提取深层气象特征;三是包含站点相关性的多任务模块,使用一个全连接层输出多站点预测结果。
图4 MTL-LSTC网络结构
在对模型中I、O、U和θ的目标函数进行优化时,使用随机交替的方法,首先固定I优化O、U和θ; 然后固定θ优化I、U和O, 在不断迭代过程中得到最优I、O和θ。
固定I来优化O、U和θ的过程中,使用梯度下降的方法对O和θ进行联合优化,则问题的描述如式(10)所示
(10)
(11)
(12)
(13)
最后,为简化I的优化过程,将O和θ同时进行固定,则优化后的计算过程是一个简单的凸函数,如式(14)所示。将其转化为封闭解的形式如式(15)所示,式(15)中可以发现当Oi和Oj越接近时,Ii,j的值越大
(14)
(15)
以上是对目标函数中I、O、U和θ进行优化的过程,在实际操作过程中我们还需要对I进行初始化的操作。为使相邻站点具有相似任务模型,即当Δ(j-i) 值越小时,获得的Ii,j值越大,因此使用站点间的空间距离对I进行初始化。定义一个矩阵A表示站点i和站点j的靠近程度,则Ai,j的计算方法如式(16)所示
(16)
式中:di,j表示站点i、j之间的地理空间距离,σ为给定标量,A是一个站点相关性矩阵,初始化令A=I, 在训练的过程在不断调整I的大小。
最终模型的推理算法如算法1所示,使用的是简单随机梯度下降法,算法中学习率η固定,每个参数自适应学习率使用Adam算法[16]进行计算。
算法1:模型的推理算法
步骤1 初始化O、U、θ为任意值
步骤2 初始化I=A
步骤3 当为收敛时:
步骤4count=1
步骤5 令η表示学习率
步骤6 当count=Threshold时
步骤7 读取小批量
步骤11count+=1
步骤12 结束
步骤14 结束
3 实 验
本文中MTL-LSTC网络降雨预测模型的工作主要分为两个部分,一个是使用LSTC网络对时空序列进行编码解码的降雨量预测;另一个是使用多任务模型提取出多站点间相关性。以上介绍了模型的整个功能,接下来将对最终的实验过程进行详细描述。
3.1 数据选取与预处理
本文选取澳门地区2018年9月至2019年3月的CINRAD-SA型多普勒气象雷达数据作为实验数据集。由于CINRAD-SA型多普勒气象雷达数据无法直接应用于神经网络模型,需进行数据预处理将CINRAD-SA型多普勒气象雷达数据转换成CAPPI气象雷达回波图像。首先将CINRAD-SA型多普勒气象雷达数据放入三维笛卡尔直角坐标系中;然后对坐标系中网格数据进行水平采样,获得一个二维平面数据,此时数据中还包含冗余的背景信息,对这些背景信息进行数据清洗;最后使用灰度变化强化数据中雷达回波强度,通过映射得到分辨率为250×250的CAPPI灰度图像。
此外,数据集中经常出现空数据,空白数据对预测结果的干扰很强必须剔除。剔除空白数据后,对数据集进行二次抽样,创建出可管理的训练集、验证集和测试集,最终确定每个训练集中含有32 000个样本,每个验证集中含有4800个样本,每个测试集中含有3200个样本。图5为数据集中的一组样本图像,每个样本含有4幅图像 {x1,x2,x3,x4}, 图像间时间间隔为6 min。
图5 数据集中的一组样本图像
3.2 实验设置
为保证预测结果更加准确,合理选择多站点至关重要,理想的站点可以提供丰富的信息和隐藏的线索。例如有站点A与站点B相距20公里,当站点A的地区发生了强降雨,那么站点B就有很大可能会发生强降雨。据此,本文根据不同方向、距离和高度将观测地站点周围空间区域划分为正态分布的单元。如图6所示,空间区域划分为8个方向(标记为1到8),2个跨度(标记为I、II),包含8×2个单元和一个自身单元共17个单元,将单元中天气特征串联起来,获得最终多站点特征集合。
图6 空间区域划分
3.3 实验标准
实验采用临界成功指数(CSI)、误报率(FAR)、探测概率(POD)评估模型预测效果,采用均方误差(MSE)和均方根误差(RMSE)[17]评估模型预测结果准确率。如果像素灰度超过阈值,则判定预测值是有效;反之无效。当预测值有效并且真实值也有效时,则预测成功,记作S;当预测值无效并且真实值也无效时,则没有预测成功,记作F;当预测值为有效但真实值无效时,则预测失误,记作M。nS、nF、nM分别表示命中、未命中、假警报(即预测成功、没有预测成功和预测失误)。
CSI、FAR和POD均是基于nS、nF、nM这3个指标计算得到。首先使用定义阈值将预测和地面真值转换为0/1矩阵,然后计算出nS、nF、nM。最后CSI指标的计算过程如式(17)所示
(17)
FAR表示在实验中有些指标系统无法计算出样本的真实状态,于是直接判定其结果为命中的情况。计算的方法如式(18)所示
(18)
POD表示模型根据输入信号,正确判断出目标信号的概率。在这里计算方法如式(19)所示
(19)
MSE指标计算的是降雨量预测值和真实值的平均平方误差。在计算前需要根据Z-R关系法[18],将像素值换算成单元格上的降雨量值,计算方法如式(20)所示,式中N表示图像区域内Ω的单元(格点)数,F表示真实观测的雷达图像,F′表示预测得到的雷达图像,t0和τ分别表示预报时刻和预测时效,F′(t0+τ,x) 表示在时刻t0+τ图像中格点x上的降雨量
(20)
RMSE的计算方法如式(21)所示
(21)
3.4 结果分析
首先对单任务学习下深度学习模型的实验结果进行简单的比较分析,然后对多任务学习下深度学习模型的实验结果进行详细的比较分析。
与单任务深度学习模型实验比较时,将长短时记忆网络(LSTM)模型、卷积神经网络(CNN)模型和FC-LSTM模型作为LSTC模型的对比模型,结果如图7、图8所示。图7显示,随预测时间增长LSTC模型与LSTM模型预测效果差距越来越大,CNN模型与FC-LSTM模型的预测效果较靠近,LSTC模型的预测效果最好,特别是准确率和误报率上优势明显,说明LSTC模型不仅解决了FC-LSTM模型中冗余连接的问题,且加入卷积运算后LSTC模型能够模拟时空序列的时空关系,有效提高降雨预测模型性能。
图7 不同模型的预测指标对比
图8 一组预测结果实例对比
图8对比显示LSTC模型的结果与真实图像高度相似,特别是图像轮廓部分,说明LSTC模型可以在训练过程中学习观测区域边缘的回波特征变化,得到的预测结果更可靠。FC-LSTM模型的预测结果很清晰,但是FC-LSTM模型的假报警率较高,预测结果不具有说服性。LSTC模型得到的外推图像较为模糊,这是因为雷达回波外推本身具有不确定性,其输入和输出之间的对应关系复杂,网络无法对观测区域内所有回波变化做出精准预测,但图像是否清晰并不影响最终的预测效果。
在多任务深度学习模型实验比较分析时,将多任务循环神经网络(MTL-RNN)模型[19]、多任务长短时记忆网络(MTL-LSTM)模型[20]、多任务卷积神经网络模型[21]和多任务全连接的长短时记忆网络(MTL-FC-LSTM)模型作为MTL-LSTC网络降雨预测模型的对比模型,实验结果如图9和表1所示。
图9 单任务模型和多任务模型在指标MSE上的比较
表1 各个模型中预测指标比较
图9中多任务学习下所有模型都要比基于单任务学习模型表现出更好预测效果,说明在多站点中使用同一个任务方式不合理,使用多任务学习方法不仅可以学习到不同站点间隐藏线索,也可以提取到不同任务间关联性,有效提高整个模型性能。
从表1中可知MTL-LSTC网络模型相比MTL-FC-LSTM网络模型,误差率下降约3.2%,预测成功率提高约10%。说明长短时记忆网络中加入卷积运算结构是有效的,并且多任务学习能够有效提高多站点气象数据利用率,模型预测结果更加准确。
最后,将MTL-LSTC网络模型与欧洲中距离天气预报系统(ECMWF)进行性能评估。如图10所示,MTL-LSTC网络模型预测结果在RMSE指标和CSI指标上准确率明显高于ECMWF。表明在利用原始观测站点气象数据特征进行降雨预测时,MTL-LSTC网络模型预测结果更加准确。
图10 与公共天气预测系统ECMWF性能对比
4 结束语
本文研究如何使用多个观测点气象特征进行降雨预报,提出基于MTL-LSTC网络降雨预测模型,在长短时记忆网络输入到状态和状态到状态转换过程中加入卷积运算结构,通过叠加多个LSTC网络进行编码预测,解决了长短时记忆网络中信息连接冗余问题,弥补长短时记忆网络处理时空信息时的缺陷。多任务学习将多站点信息进行联合学习,允许学习到的知识从一个站点转移到其它相关站点,对站点间相关性建模,使站点间隐藏信息得到充分利用。大量实验结果表明,基于MTL-LSTC网络的降雨预测模型可行且有效。接下来的工作是对所提出方法与其它公共预测系统进行比较,进一步验证模型的准确性和有效性。