用于雷达回波外推的循环神经网络预测法及记忆单元结构的制作方法

文档序号:11405791阅读:4090来源:国知局
用于雷达回波外推的循环神经网络预测法及记忆单元结构的制造方法与工艺

本发明涉及一种用于雷达回波外推的循环神经网络预测法及记忆单元结构,属于气象技术领域。



背景技术:

雷达回波外推方法近年来取得了较大的进步,外推预报的准确性逐渐提高,但仍存在一些问题。临近天气预报中关键的2小时内天气预报主要依靠雷达回波外推,而目前的雷达回波外推算法,即使对于1小时以内的外推结果,也还有不小的误差,而对于1小时以上的外推预报,准确性下降很快。传统的基于形态学的回波外推方法,如单体质心法和交叉相关法,在回波稳定时表现较好,但对于回波变化较快的天气过程,预报准确率和预报时效大幅下降。光流法因为其良好的运动跟踪能力,在变化较快的强对流天气过程的外推预报中与传统的回波外推算法相比具有一定优势,但是雷达回波存在生消演变,无法满足光流法的不变性假设。雷达回波外推方法还需要进一步的探索和改进。与简单的交叉相关法相比,光流法对变化较大的强对流降水系统可以得到较好的整体运动趋势,具有明显的优越性。在强对流降水系统下,光流法可以替代交叉相关法。但使用光流法进行雷达回波外推仍存在模型误差,光流法要求遵循不变性假设,而雷达回波通常都存在一定程度的生消演变,这种反射率因子不守恒的情况将导致外推误差的产生,对移速较快的回波的外推误差也较大。

rnn(recurrentneuralnetwork,rnn)的一个重要优势是它能通过历史信息得到对应的输出序列。但是标准的rnn可以使用的历史信息范围是受到限制的,这主要是因为标准的rnn模型在训练的梯度下降过程中,新的输入覆盖了隐藏层的输出,使得离当前时间点越远的输入对权值的变化能起到的影响也越小,更加倾向于按照序列结尾处的权值的方向更新,在实践中这种历史输入的影响随时间推进而逐渐消失的现象被称之为梯度消失问题(vanishinggradientproblem)。梯度消失问题使得rnn在长序列中的训练变得困难,训练的结果往往偏向于新的信息,不具有较长的记忆功能。实际上,如果输入和相关输出的依赖超过了10个时间点,rnn就很难学习到其中的依赖关系。由于距离当前时刻非常远的输入数据不能为当前的模型参数的更新做出贡献,在rnn的编程实现中往往使用“截断梯度(truncatedgradient)”的做法,即忽略离当前较为久远的信息,只利用较近时刻的信息。

基于循环神经网络(recurrentneuralnetwork,rnn)的深度网络模型在处理和预测时序问题时表现出色,被广泛用于手写识别、语音识别、自然语言处理等诸多领域。rnn是一种用于解决时序问题的网络模型,将rnn按时间节点展开的结构和前向传播方式与多层前馈网络类似,区别在于,rnn隐层的上一次激活值会加入计算。rnn使用基于梯度下降法的rtrl和bptt算法进行反向传播,bptt算法是bp算法的扩展,相对rtrl来说计算量更少,因此也更常用。为了解决rnn存在的梯度消失问题,学界尝试了“梯度截断”和非梯度训练算法,但更通用的方式是使用lstm(longshort-termmemory,长短期记忆网络)模型。

lstm是一种针对rnn梯度消失问题而改进的rnn网络。lstm对经典rnn的节点单元进行了改进,引入了记忆单元的概念。记忆单元前后分别增加了输入门和输出门结构,以控制输入信息和输出信息。针对记忆单元历史信息不断累加的问题,在记忆单元中加入了遗忘门,使记忆单元可以重置自身的值。lstm型rnn网络在诸多领域的成功应用,使rnn成为深度学习领域最热门的网络模型之一。

根据雷达回波外推问题的特性,在综合研究了深度学习领域的主流深层神经网络后,选择了循环神经网络(rnn网络)的改进模型长短期记忆网络(lstm网络)模型作为研究基础,对雷达回波问题进行研究和实践。在使用lstm网络模型进行实践的基础上,结合问题特性和相关理论基础,对lstm网络模型进行了针对雷达回波外推问题的改进,提出了用于雷达回波外推的循环神经网络(radarechotrackingrnn,雷达回波跟踪循环神经网络)模型,并对ret-rnn网络模型的学习率和激活函数等细节进行了进一步的研究和优化。

lstm网络的记忆单元具有三个记忆单元结构:参见附图1所示,包括用于控制输入影响的输入门结构1,用于控制上一个时间点状态保留程度的遗忘门结构2和用于控制输出影响的输出门结构3。输入门结构1的输出与遗忘门结构2的输出相加之后作为输出门结构3的输入。输入门结构1由sigmoid函数模块i11和tanh函数模块c12构成,遗忘门结构2由sigmoid函数模块f21构成;输出门3由sigmoid函数模块o31和tanh函数模块32构成。sigmoid函数模块i11与tanh函数模块c12连接,二者的输出与sigmoid函数模块f21连接,将输出ct输入至tanh函数模块32,再与sigmoid函数模块o31的输出ot连接,与ot相乘得到输出ht。这三个门结构使lstm网络在rnn网络的基础上增加了比较多的计算量。特别是在输出门结构3中,ht-1和xt加权求和,引入输出权重矩阵wo,使用sigmoid函数模块o31对结果进行激活得到ot,遗忘门结构2和输入门结构1的输出结果相加得到ct,再使用tanh函数模块32对ct进行激活,结果与ot相乘得到输出ht。参见附图2、3,sigmoid函数和tanh函数的图像在两侧逐渐平滑,也就是说,它们的导数在两端均为0。使用梯度下降法的链式求导过程中,这种特性将使得神经元很快趋于饱和,梯度值快速的以指数形式收缩,最终较远的时刻梯度变为0,无法对学习做出贡献,存在梯度消失的问题。

经典rnn网络常用的激活函数时tanh函数和sigmoid函数。下面首先对这两种激活函数进行介绍,然后对比介绍ret-rnn所使用的激活函数。

sigmoid函数时在最早的感知器中就是典型的激活函数,并在后来出现的各种神经网络模型中广泛使用,甚至被视为神经网络的核心部分。表达式为:

tanh函数是sigmoid函数的变形,表达式为:

sigmoid函数和tanh函数的图像如图2、3所示。

在设计ret循环神经网络结构时,如何通过减少门结构来减少计算复杂度,从而提高训练速度,是主要的出发点之一;对三个门结构如何取舍是改进记忆单元结构时面临的主要问题。



技术实现要素:

本发明的目的在于提供一种用于雷达回波外推的循环神经网络预测法及记忆单元结构,从而克服现有技术的不足。

本发明对当前主流的雷达回波外推方法进行了分析,研究了雷达回波外推问题的特性,并设计实现了适合解决雷达回波外推问题的深度神经网络模型。对新一代天气雷达的基数据进行了分析和处理,包括坐标系的转换以及数据的建模和可视化,以便将雷达回波数据输入到深度学习网络进行训练和测试,以及对输出结果进行评价和对比。其次,本发明对深度学习的基础理论进行了研究和阐述。鉴于雷达回波外推问题实质上是时序预测问题,选择了在时序预测问题中表现出色的rnn网络模型,深入分析了rnn的理论知识、组织结构和工作原理,为接下来针对雷达回波外推问题设计网络模型打下基础。再次,本发明在rnn的改进模型lstm的基础上,结合雷达回波外推问题的特性,设计了雷达回波外推网络模型ret-rnn,该模型继承了lstm的自主学习能力和长期记忆输入信息的能力,并结合了雷达回波外推问题的特性,使其具有较好的外推预报能力。

最后,本发明使用ret-rnn对回波数据集进行训练和测试,对外推结果进行了评估,并将ret-rnn和传统外推方法的评估结果进行了对比,验证本发明算法的性能改进效果。

本发明通过以下技术方案实现,包括以下步骤:

n表示训练的总重复次数,m表示保持学习率的重复训练次数,k表示循环神经网络按时间序列展开的深度,即k个时间帧,每一个时间帧输入一张雷达回波图像,从第m+1次起对学习率进行衰减,程序在加载数据集后,以队列的方式分别保存训练集、验证集和测试集,每次只传给模型进行一次训练、验证或测试的数据;ret-rnn表示本文改进记忆单元结构的循环神经网络;

算法包括训练和预测两个阶段,在训练阶段首先判断是否达到目标重复次数n,若未达到则判断是否达到保持学习率的训练次数m,若未达到则保持学习率,否则对学习率乘以衰减因子进行衰减;随后从训练集队列中分批获取数据输入模型进行训练,训练完成后从验证集队列中分批获取数据输入模型进行验证。

在训练阶段包括以下运行步骤:

步骤1、ret-rnn将预测作为分类问题处理,对于每一个像素点有0~255共256种分类标签,将雷达回波源数据中的每个像素点映射为一个256维的0-1向量(向量中只有一个维度为1,其余维度为0),输入到ret-rnn网络中;

步骤2、将数据输入到模型后,为防止过拟合,采用dropout方法控制输入保留比例;在神经网络的前向传播中,将k帧输入数据逐帧输入到ret-rnn网络中,最后的得到的输出即是第k+1帧的预测输出,将预测输出的第k+1帧数据作为输入,便能得到第k+2帧的预测输出;

步骤3、在训练过程中,得到预测输出后,计算预测输出和实况数据的交叉熵作为训练损失,使用随机梯度下降法修正网络参数;

步骤4、在重复训练次数达到预设的重复训练次数后,保存训练好的模型。至此,训练流程完成。

在预测阶段包括以下运行步骤:

步骤1、预测作为分类问题处理,输入向量化后的雷达回波数据;

步骤2、将数据输入到模型后,将k帧输入数据逐帧输入到ret-rnn网络中,最后的得到的输出即是第k+1帧的预测输出,将预测输出得到的第k+1帧作为输入,得到未来第k+2帧的预测输出;

步骤3、在预测阶段,得到预测输出后,做一次softmax回归运算,得到输出帧每个像素点属于每个分类标签的概率,对于每个像素点取概率最高的分类标签即得到该时刻预测的雷达回波外推图像。

用于雷达回波外推的循环神经网络记忆单元结构,包括用于控制输入影响的输入门结构,和用于控制上一个时间点状态保留程度的遗忘门结构,还包括relu激活函数模块;

对输入门结构与遗忘门结构的输出求和后,将结果输入到relu激活函数模块。

用于雷达回波外推的循环神经网络记忆单元结构,输入门结构由sigmoid函数输入激活模块和tanh函数激活模块并联构成;遗忘门结构由sigmoid函数遗忘激活模块构成。

用于雷达回波外推的循环神经网络记忆单元结构,包括以下步骤:

步骤1,输入门结构引入权重矩阵wi对ht-1和xt加权求和,使用sigmoid函数对结果进行激活得到it;引入权重矩阵wc对ht-1和xt加权求和,使用tanh函数对结果进行激活得到;it和相乘得到输入门的输出;其中ht-1表示上一时刻隐层节点的输出,xt表示当前时刻的输入;

步骤2,遗忘门结构引入权重矩阵wf对ht-1和xt加权求和,使用sigmoid函数对结果进行激活得到ft,ft与ct-1相乘得到遗忘门的输出;其中ct-1表示上一时刻记忆单元的输出;

步骤3,输入门结构的输出与遗忘门结构的输出求和得到ct;

步骤4,使用relu函数模块对ct进行激活得到ht。

本发明的优点如下:1、本发明首先将lstm网络应用于雷达回波外推,验证了使用rnn型深层网络模型进行雷达回波外推的可行性。然后,根据气象雷达回波外推问题的特性,在lstm网络的基础上,提出了适用于雷达回波外推的ret-rnn模型。与需要人工选择雷达回波特征的传统外推算法相比,ret-rnn能记忆长期的历史回波信息并能通过自主学习得到全面的雷达回波特征,具有较好的外推预报效果。2、在使用ret-rnn网络模型进行雷达回波外推的实践中对模型的细节进行了研究,对ret-rnn网络模型进行了进一步的优化。通过实践得到了合适的学习率自动调整策略,并在对比后选用了relu(rectifiedlinearunits,修正线性单元)函数作为激活函数,与传统的sigmoid函数和tanh函数相比,能更好地解决过拟合和梯度消失的问题。

附图说明

图1为现有技术示意图。

图2为sigmoid函数图像。

图3为tanh函数图像。

图4为本发明结构图。

图5为relu函数图像。

图6为ret-rnn的训练、验证和测试的整体流程图。

图7为ret-rnn模型运行流程图。

具体实施方式

强对流天气演变迅速、破坏性强,是具有重大杀伤性的灾害性天气之一,严重威胁人们的生命财产安全。临近天气预报是对强对流天气进行监测和预警的主要手段,通常使用雷达回波外推和数值预报相结合的方法。雷达回波外推是指根据当前的雷达回波数据,推算预测未来的回波数据,是2小时以内的临近天气预报使用的主要方法。雷达回波外推技术是进行临近天气预报的主要技术手段。雷达回波外推是指根据天气雷达探测到的回波数据,确定回波的强度分布以及回波体(如风暴单体、降水区等)的移动速度和方向,通过对回波体进行线性或者非线性的外推,预报一定时间段后的雷达回波状态。随着中国新一代多普勒天气雷达观测网络逐步投入运行,如何利用多普勒天气雷达观测网络进行回波外推预报,使气象灾害最大程度降低,成为目前很重要的一项工作。

雷达回波外推目前主要使用单体质心法和交叉相关法。单体质心法将目标简化为一点,适合对大而强的目标进行跟踪和预报,当回波比较零散或者回波发生合并、分裂时,预报准确率大大降低,因此不能用于层状云降水系统。交叉相关法使用相邻两个时刻的空间优化相关系数建立最佳拟合关系,可以跟踪层状云降雨系统,但对于回波变化很快的强对流天气过程,难以保证追踪的准确性,效果会明显降低。

下面结合附图4至7对本发明的优选实施例作进一步说明,本发明包括用于控制输入影响的输入门结构1,和用于控制上一个时间点状态保留程度的遗忘门结构2,还包括relu激活函数模块5;

对输入门结构1与遗忘门结构2的输出求和后,将结果输入到relu激活函数模块5。

输入门结构1由sigmoid函数输入激活模块11和tanh函数激活模块12并联构成;遗忘门结构2由sigmoid函数遗忘激活模块21构成。

在综合研究了深度学习领域的主流深层神经网络后,选择了rnn网络的改进模型lstm网络模型作为研究基础,对雷达回波问题进行研究和实践。在使用lstm网络模型进行实践的基础上,结合问题特性和相关理论基础,对lstm网络模型进行了针对雷达回波外推问题的改进,提出了ret-rnn网络模型,并对ret-rnn网络模型的学习率和激活函数等细节进行了进一步的研究和优化。

基于雷达回波外推的循环神经网络记忆单元结构包括以下步骤:

步骤1,输入门结构1引入权重矩阵wi对ht-1和xt加权求和,使用sigmoid函数输入激活模块11对结果进行激活得到it;引入权重矩阵wc对ht-1和xt加权求和,使用tanh函数激活模块12对结果进行激活得到;it和相乘得到输入门的输出;其中ht-1表示上一时刻隐层节点的输出,xt表示当前时刻的输入;

步骤2,遗忘门结构2引入权重矩阵wf对ht-1和xt加权求和,sigmoid函数遗忘激活模块21对结果进行激活得到ft,ft与ct-1相乘得到遗忘门的输出;其中ct-1表示上一时刻记忆单元的输出;

步骤3,输入门结构1的输出与遗忘门结构2的输出求和得到ct;

步骤4,使用relu函数模块5对ct进行激活得到ht;

relu函数的图像如图5所示。relu函数使正值不变,负值为0。这种单侧抑制的做法,使神经网络中的神经元和人脑一样具有稀疏激活性,减少了参数的相互依存关系,缓解了过拟合问题。这种优势在深层神经网络中尤为明显。并逐渐得到广泛应用,其表达式非常简单:

从图5明显可以看出,relu函数使正值不变,负值为0。这种单侧抑制的做法,使神经网络中的神经元和人脑一样具有稀疏激活性,减少了参数的相互依存关系,缓解了过拟合问题。这种优势在深层神经网络中尤为明显。ret-rnn采用relu作为激活函数的另一个重要原因是,relu函数在非抑制侧的导数横为1,这使得relu函数在一定程度上能够防止梯度消失,而梯度消失是rnn模型的一个很关键的问题。此外,relu函数求导简单,使用relu函数进行网络训练的计算复杂度比使用sigmoid函数或tanh函数小,这也是在ret-rnn选用relu的理由之一。

学习率(learningrate),是运用梯度下降算法进行优化时,在梯度项前相乘的一个系数。在介绍和分析ret-rnn的模型学习率之前,首先简单介绍一下梯度下降法。

梯度下降法基于这样的观察:若在点a处可微且有定义,则在a点沿与梯度相反的反向下降最快,记实值函数的梯度为,设:

若对于足够小的成立,则有。将此结论推广,设的局部极小值的估计值为,存在序列,使得:

可以得到:

如果顺利的话,梯度下降法可以使序列收敛到预期的极值,这种特性也让梯度下降法在深度神经网络的训练中广泛使用。

式中的为本节分析的学习率,学习率的选择对训练过程影响很大。

对于固定的学习率,如果学习率太小,则会使收敛过慢,迭代次数过多而导致训练时间过长;如果学习速率太大,则会导致代价函数的结果出现“之字形”振荡,可能会跳过全局最小值。如果使用固定的学习率进行模型的训练,则需要进行多次重复的训练,通过观察代价函数结果的走向来确定合适的学习率。

在网络模型的训练过程中,常见的一种思路是使学习率随训练的进行而不断减小。训练初期,大的学习率可以加速训练过程,而在接近收敛时,越来越小的学习率可以使网络模型平稳收敛。基于这种思路的做法很多,其中一种简单的做法是每当训练损失连续多次不下降时,使学习率减小固定的步长。

本文提出的ret-rnn网络模型使用固定学习率策略和指数策略相结合的方法对学习率进行调整,训练初期使用较大的学习率加速训练进程,之后以固定比例使学习率逐次衰减以提高收敛稳定性。设对训练集进行n次重复训练,前m次的学习率固定,后(n-m)次的学习率衰减因子为decay。则第i次重复训练的学习率为:

从公式中可以看出,使用这种学习策略,学习率每一次迭代都会减小,而每次减小的值又是一个比较小的数,最终使学习率缓慢地趋近于0。这种特性使我们免去了手动调节的麻烦,同时这种学习率的变化过程在保证较好性能的同时具有比较高的收敛稳定性。

回波数据是以极坐标方式保存的,需要将其转换为直角坐标系,以便进行反射率因子图的可视化和产生ret-rnn使用的数据集。实验外推范围为230km,以两个像素点间的距离作为1km,则反射率因子图的大小为461px*461px。以图像中心点为圆心,转换公式为:

将实验数据解析后得到1450张反射率因子图,每个距离库保存的反射率因子值为0~255,长度为1个字节。为减小ret-rnn数据集的规模,只在可视化时使用转换后以dbz(反射率因子强度的对数)为单位的数据,ret-rnn数据集采用原始编码数据。

选取1200张图作为训练集,50张图作为验证集,200张图作为测试集。数据预处理和可视化使用java进行处理,ret-rnn加载数据集时使用python的numpy库进行解析。

基于雷达回波外推的循环神经网络记忆算法包括以下步骤,参见附图6:

n表示训练的总重复次数,m表示保持学习率的重复训练次数,k表示循环神经网络按时间序列展开的深度,即k个时间帧,每一个时间帧输入一张雷达回波图像,从第m+1次起对学习率进行衰减,程序在加载数据集后,以队列的方式分别保存训练集、验证集和测试集,每次只传给模型进行一次训练、验证或测试的数据;ret-rnn表示本文改进记忆单元结构的循环神经网络;

算法包括训练和预测两个阶段,在训练阶段首先判断是否达到目标重复次数n,若未达到则判断是否达到保持学习率的训练次数m,若未达到则保持学习率,否则对学习率乘以衰减因子进行衰减;随后从训练集队列中分批获取数据输入模型进行训练,训练完成后从验证集队列中分批获取数据输入模型进行验证。

在训练阶段包括以下运行步骤:

步骤1、ret-rnn将预测作为分类问题处理,对于每一个像素点有0~255共256种分类标签,将雷达回波源数据中的每个像素点映射为一个256维的0-1向量(向量中只有一个维度为1,其余维度为0),输入到ret-rnn网络中;

步骤2、将数据输入到模型后,为防止过拟合,采用dropout方法控制输入保留比例;在神经网络的前向传播中,将k帧输入数据逐帧输入到ret-rnn网络中,最后的得到的输出即是第k+1帧的预测输出,将预测输出的第k+1帧数据作为输入,便能得到第k+2帧的预测输出;

步骤3、在训练过程中,得到预测输出后,计算预测输出和实况数据的交叉熵作为训练损失,使用随机梯度下降法修正网络参数;

步骤4、在重复训练次数达到预设的重复训练次数后,保存训练好的模型。至此,训练流程完成。

在预测阶段包括以下运行步骤:

步骤1、预测作为分类问题处理,输入向量化后的雷达回波数据;

步骤2、将数据输入到模型后,将k帧输入数据逐帧输入到ret-rnn网络中,最后的得到的输出即是第k+1帧的预测输出,将预测输出得到的第k+1帧作为输入,得到未来第k+2帧的预测输出;

步骤3、在预测阶段,得到预测输出后,做一次softmax回归运算,得到输出帧每个像素点属于每个分类标签的概率,对于每个像素点取概率最高的分类标签即得到该时刻预测的雷达回波外推图像。

在运行验证过程和测试过程时,会实时将预测的反射率因子图使用二进制文件保存,以便未来对模型进行评估和调整。考虑对输出图像的评估可以使任意时刻,对预测反射率因子图和真实反射率因子图的相似度评估需要一定的计算时间,同时也因为模型的运行主要依靠gpu的性能,cpu相对空闲,使用java实现了一个独立的评估程序,实时监控ret-rnn输出文件夹,根据实际需求可以在模型运行时同步观察相似度变化过程,或者在模型运行完成后异步进行评估和分析。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1