降水量的预测方法及装置与流程

文档序号:16935216发布日期:2019-02-22 20:38阅读:857来源:国知局
降水量的预测方法及装置与流程

本发明涉及气象预测方法,更具体地,涉及降水量的预测方法及装置。



背景技术:

洪涝和干旱等严重气象灾害一方面威胁了人民群众的人身和财产安全,另一方面也影响和制约了我国的经济社会发展。同时,准确的降水量预报也为水能发电、农林业灌溉等水利资源高效利用提供重要参考依据。因此,降水量预报的准确程度已成为影响国计民生的重要因素之一。提高降水量预报准确度越来越成为气象预报领域的十分重要的方向。

然而,气象变化是一种物理形成过程异常复杂多变的自然现象,受到时间和空间因素的多重影响,仅影响降水的影响因子就达到上百个特征。目前,常用降水量统计预报方法有多元线性时滞回归方法、遗传因子分析方法、模糊处理分析方法等。以上方法均存在或多或少理论上的局限性。以多元线性时滞回归方法为例,该模型方法虽可建立多元影响特征,但线性模型的本质决定其无法较好拟合高维空间中的非线性曲面。因此已有方法预测准确度较低,泛化能力较差,应用效果有待提高。



技术实现要素:

本发明提供一种克服上述问题或者至少部分地解决上述问题的降水量的预测方法及装置。

第一个方面,本发明实施例提供一种降水量的预测方法,包括:

获取目标区域内日粒度的历史降水量数据,所述日粒度的历史降水量数据的最后一个数据为预测时间前一天的降水量数据;

对历史降水量数据进行归一化处理,获得归一化处理后的历史降水量数据;

将所述归一化处理后的历史降水量数据输入至预先训练完成的神经网络模型中,获得预测时间的降水量数据;

其中,所述神经网络模型的训练方法包括:将归一化处理后的历史降水量数据按照时间先后顺序依次切分为训练集、测试集和验证集;构建lstm-rnn结构的深度神经网络模型,根据所述训练集、测试集和验证集对所述深度神经网络模型进行训练、测试和验证。

第二个方面,本发明实施例提供一种降水量的预测装置,包括:

数据获取模块,用于获取目标区域内日粒度的历史降水量数据,所述日粒度的历史降水量数据的最后一个数据为预测时间前一天的降水量数据;

归一化处理模块,用于对历史降水量数据进行归一化处理,获得归一化处理后的历史降水量数据;

预测模块,用于将所述归一化处理后的历史降水量数据输入至预先训练完成的神经网络模型中,获得预测时间的降水量数据;

其中,所述神经网络模型的训练方法包括:将归一化处理后的历史降水量数据按照时间先后顺序依次切分为训练集、测试集和验证集;构建lstm-rnn结构的深度神经网络模型,根据所述训练集、测试集和验证集对所述深度神经网络模型进行训练、测试和验证

第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所提供的方法的步骤。

第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的方法的步骤。

本发明实施例提供的降水量的预测方法及装置,使用lstm单元构建lstm-rnn神经网络模型,通过获取目标区域内日粒度的历史降水量数据作为神经网络模型的训练样本,加强了对历史数据的感知能力,弥补了现有技术的不足,具有较强的泛化能力,具有较高的预报精度。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为根据本发明实施例提供降水量的预测方法的流程示意图;

图2为根据本发明实施例提供的降水量的预测装置的结构示意图;

图3为根据本发明实施例提供的电子设备的实体结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了克服现有技术的上述问题,本发明实施例提供了一种降水量的预测方法,其发明构思为:使用lstm单元构建lstm-rnn神经网络模型,通过获取目标区域内日粒度的历史降水量数据作为神经网络模型的训练样本,加强了对历史数据的感知能力,弥补了现有技术的不足,具有较强的泛化能力,具有较高的预报精度。

图1为根据本发明实施例提供的降水量的预测方法的流程示意图,如图所示,包括

s101、获取目标区域内日粒度的历史降水量数据,日粒度的历史降水量数据的最后一个数据为预测时间前一天的降水量数据。

本发明实施例获取的历史降水量数据是日粒度的,即获取的是历史上以天为单位的降水量。此外,本发明实施例获取的历史降水数据的最后一个数据是预测时间前一天的降水量,例如,预测目标区域2018年8月8号的降水量,获取的是2000年1月1日至2018年8月7号的降水量。在一些情况下,本发明实施例的预测窗口是可调节的,即可以预测多日,例如一周,甚至一个月的降水量,这种情况下获取的历史降水数据的最后一个数据同样是预测时间前一天的降水量,例如,预测目标区域2018年8月的降水量,获取的是2000年1月1日至2018年7月31号的降水量。

s102、对历史降水量数据进行归一化处理,获得归一化处理后的历史降水量数据;

通过对历史降水量进行归一化处理,最优解的寻优过程明显会变得平缓,更容易正确的收敛到最优解。

s103、将归一化处理后的历史降水量数据输入至预先训练完成的神经网络模型中,获得预测时间的降水量数据。其中,神经网络模型的训练方法包括:将归一化处理后的历史降水量数据按照时间先后顺序依次切分为训练集、测试集和验证集;构建lstm-rnn结构的深度神经网络模型,根据训练集、测试集和验证集对深度神经网络模型进行训练、测试和验证。

需要说明的是,本发明实施例的神经网络模型为lstm-rnn结构,lstm(longshort-termmemory,长短期记忆网络),是一种时间递归神经网络,适合于处理和预测时间序列中间隔和延迟相对较长的重要事件。对于降水量预测来说,由于历史数据获取的越多,相当于预测日期的同期数据获取的越多,预测结果也会越准确,因此采用lstm神经网络模型相比其他神经网络模型,更容易获得降水量的特征信息,进而预测出准确的结果。

本发明实施例将历史降水量数据按照时间先后信息依次切分为训练集(trainset)、测试集(testset)和验证集(validationset)。其中,训练集用于建立模型,通过拟合寻找模型的初始参数,训练集建立一个模型,但是模型的效果仅体现了训练数据,但不一定适合同类的其他数据,所以建模前数据还分出验证集,通过让机器学习去优化调整模型的参数,在神经网络中,通常用验证集去寻找最优的网络深度(numberofhiddenlayers),或者决定反向传播算法的停止点;在机器学习中,常用的交叉验证(crossvalidation)就是把训练数据集本身再细分成不同的验证数据集去训练模型。测试集用于评估模型的表现,并不会去调整优化模型。训练集、测试集和验证集的比例可以为50∶25∶25。在一个可选实施例中,训练集、测试机和验证集的比例为70∶20∶10。

需要说明的是,本发明实施例的降水量的预测方法加强了对历史数据的感知能力,弥补了现有技术的不足,具有较强的泛化能力,具有较高的预报精度。

在上述各实施例的基础上,作为一种可选实施例,深度神经网络模型包括输入层、隐藏层和输出层,隐藏层中各神经元为lstm单元;其中,隐藏层的层数为6,每层隐藏层中lstm单元的个数为650个;输入层和输出层的层数均为1。

需要说明的是,隐藏层的层数和各个隐藏层中神经元的个数是与降水量预测相关的。作为本领域技术人员可以理解的是,神经网络的训练过程是完全未知的,需要进行大量的实验进行比对、筛选,最佳结构和其他结构之间并无逻辑关联关系,并不是通过有限次的实验即可获得,具备一定的偶然性。本发明人通过多次试验,发现了当隐藏层设置为6层,同时每层隐藏层中lstm单元的个数为650个,时,具有最佳的预测效果,同时训练过程具有拟合速度最快的优势。

lstm单元由三个门结构组成,输入门、遗忘门、输出门,是一种具有记忆作用的特殊神经元。具体结构如下:

it=σ(wxixt+whiht-1+wcict-1+bi)

ft=σ(wxfxt+whfht-1+wcfct-1+bf)

ct=ftct-1+itθ(wxcxt+whcht-1+bc)

ot=σ(wxoxt+whoht-1+wcoct-1+bo)

ht=otθ(ct)

其中,xt为输入数据,it为输入门,ft为遗忘门,ct为单元激活向量,ot为遗忘门,ht为隐藏层单元,wxi为输入特征向量与输入门之间的权重矩阵,whi为隐藏层单元与输入门之间的权重矩阵,wci为单元激活向量与输入门之间的权重矩阵,wxf为输入特征向量与遗忘门之间的权重矩阵,whf为隐藏单元与遗忘门之间的权重矩阵,wcf为单元激活向量与遗忘门之间的权重矩阵,wxo为输入特征向量与输出门之间的权重矩阵,who为隐藏单元与输出门之间的权重矩阵,wco为单元激活向量与输出门之间的权重矩阵,wxc为输入特征向量与单元激活向量之间的权重矩阵,whc为隐藏层单元与单元激活向量之间的权重矩阵,bi为输入门偏置,bf为遗忘门偏置,bc为单元激活向量偏置,bo为输出门偏置,下标t为采样时刻。

σ(·)为sigmoid激活函数,具体形式为:

其中,x为输入数据。

θ(·)为tanh映射函数,具体形式为:

其中,x为输入数据。

t时刻误差为该时刻预测输出与实际输出之间的差值

其中,为t时刻预测输出值,y(t)为t时刻实际输出值,error(t)t时刻误差值。

在上述各实施例的基础上,作为一种可选实施例,本发明实施例在训练神经网络模型时,采用均值随机初始化方法初始化权值。采用误差反向传播算法更新权值;采用交叉熵准则计算误差。

需要说明的是,由于上述实施例中采用sigmoid激活函数,sigmoid因为其梯度在距离原点稍远处即快速驱零,因此权值的初始化采用小数值随机平均分布。观念上来说,这是给它一个梯度大的起始点,即能够给神经网络更多幅度空间做调整,所以对学习速率会有帮助。

误差反向传播算法又称作bp算法,bp算法由信号的正向传播和误差的反向传播两个过程组成。正向传播时,输入样本从输入层进入网络,经隐层逐层传递至输出层,如果输出层的实际输出与期望输出(导师信号)不同,则转至误差反向传播;如果输出层的实际输出与期望输出(导师信号)相同,结束学习算法。反向传播时,将输出误差(期望输出与实际输出之差)按原通路反传计算,通过隐层反向,直至输入层,在反传过程中将误差分摊给各层的各个单元,获得各层各单元的误差信号,并将其作为修正各单元权值的根据。这一计算过程使用梯度下降法完成,在不停地调整各层神经元的权值和阈值后,使误差信号减小到最低限度。

交叉熵在本发明实施例中的神经网络模型中作为损失函数,p表示真实标记的分布,q则为训练后的模型的预测标记分布,交叉熵损失函数可以衡量p与q的相似性。交叉熵作为损失函数还有一个好处是使用sigmoid激活函数在梯度下降时能避免均方误差损失函数学习速率降低的问题,因为学习速率可以被输出的误差所控制。

在上述各实施例的基础上,作为一种可选实施例,本发明实施例的lstm神经元的连接方式采用45%的dropout处理;训练集的梯度下降方法采用mini-batch处理方式,mini-batch的次数设置为50;迭代次数epochs为1000;采用k折交叉验证法在验证集上优化深度神经网络模型超参数,k值设置为5;学习率设置为1。

dropout是指在深度学习网络的训练过程中,对于神经网络单元,按照一定的概率将其暂时从网络中丢弃。对于随机梯度下降来说,由于是随机丢弃,故而每一个mini-batch都在训练不同的网络。把样本分成等量的子集,子集即mini-batch。例如,把100万样本分成1000份,每份1000个样本,这些子集就称为mini-batch。mini-batch相比传统的梯度下降法具有下降速度快的优势,mini-batch实现步骤:

①确定mini-batchsize,一般有32、64、128等,根据训练集而定,确定mini-batch_num=m/mini-batch_num+1;

②在分组之前将训练集的顺序随机打乱;

③将打乱后的训练集分组;

④将分好后的mini-batch组放进迭代循环中,每次循环都做mini-batch_num次梯度下降。

k折交叉验证法(k-foldcrossvalidation)具有无重复抽样技术的好处:每次迭代过程中每个样本点只有一次被划入训练集或测试集的机会。具体地,k折交叉验证法的步骤包括:

①将全部训练集s分成k个不相交的子集,假设s中的训练样例个数为m,那么每一个子集有m/k个训练样例,相应的子集称作{s1,s2,…,sk}。

②每次从子集中里拿出一个作为测试集,其它k-1个作为训练集

③训练出模型或者假设函数。

④把训练好的模型放到测试集上,得到分类率。

⑤计算k次求得的分类率的平均值,作为该模型或者假设函数的真实分类率。

在上述各实施例的基础上,作为一种可选实施例,对历史降水量数据进行归一化处理,之前还包括:对于所述历史降水量数据中的缺失数据,根据所述缺失数据的同期降水量数据的平均值进行补全,具体采用以下公式进行计算:

其中,qt为第t年指定日期的降水量数据,qi为第i年指定日期的降水量数据,qj为第j年指定日期的降水量数据,l为时间窗口的长度,单位为年。可以理解的是,i年表示第t年之前的年份,j年表示第t年之后的年份。

在实际应用中,少部分历史降水量的数据通常会存在缺失的情况,为了提高预测精度,本发明实施例对于缺失数据,或根据历史同期降水量数据的平均值或者未来统计降水量数据的平均值进行补全。例如,2010年5月1日的降水量数据缺失,那么可以根据2005~2009年5月1日的平均降水量作为2010年5月1日的降水量数据也可以根据2011~2016年5月1日的平均降水量作为2010年5月1日的降水量数据。本发明实施例中的窗口大小可以根据实际情况调节。本发明实施例通过对历史降水量进行补全处理,使得数据更好的反应其分布规律,模型训练及预测精度更高。

在上述各实施例的基础上,作为一种可选实施例,对历史降水量数据进行归一化处理,获得归一化处理后的历史降水量数据,具体采用以下公式进行计算:

其中,xmax为全量历史降水量的最大值,xmin为全量历史降水量的最小值,x为待归一化处理的历史降水量数据,xnorm为归一化处理后的历史降水量数据。本发明实施例中的xmax是指全部降水量数据的最大值,比如,2010年8月3日目标区域下了百年一遇的暴雨,是有统计以来最多的降水量,那么xmax即为2010年8月3日目标区域的降水量,同理,xmin是指全部降水量数据的最小值。

图2为根据本发明实施例提供的降水量的预测装置的结构示意图,如图2所示,该预测装置包括:数据获取模块201、归一化处理模块202、预测模块203,其中:

数据获取模块201用于获取目标区域内日粒度的历史降水量数据,日粒度的历史降水量数据的最后一个数据为预测时间前一天的降水量数据。

本发明实施例的数据获取模块获取的历史降水量数据是日粒度的,即获取的是历史上以天为单位的降水量。此外,本发明实施例获取的历史降水数据的最后一个数据是预测时间前一天的降水量,例如,预测目标区域2018年8月8号的降水量,获取的是2000年1月1日至2018年8月7号的降水量。在一些情况下,本发明实施例的预测窗口是可调节的,即可以预测多日,例如一周,甚至一个月的降水量,这种情况下获取的历史降水数据的最后一个数据同样是预测时间前一天的降水量,例如,预测目标区域2018年8月的降水量,获取的是2000年1月1日至2018年7月31号的降水量。

归一化处理模块202用于对历史降水量数据进行归一化处理,获得归一化处理后的历史降水量数据。通过归一化处理模块对历史降水量进行归一化处理,最优解的寻优过程明显会变得平缓,更容易正确的收敛到最优解。

预测模块203用于将归一化处理后的历史降水量数据输入至预先训练完成的神经网络模型中,获得预测时间的降水量数据。

需要说明的是,本发明实施例的神经网络模型为lstm-rnn结构,lstm(longshort-termmemory,长短期记忆网络),是一种时间递归神经网络,适合于处理和预测时间序列中间隔和延迟相对较长的重要事件。对于降水量预测来说,由于历史数据获取的越多,相当于预测日期的同期数据获取的越多,预测结果也会越准确,因此采用lstm神经网络模型相比其他神经网络模型,更容易获得降水量的特征信息,进而预测出准确的结果。

本发明实施例将历史降水量数据按照时间先后信息依次切分为训练集(trainset)、测试集(testset)和验证集(validationset)。其中,训练集用于建立模型,通过拟合寻找模型的初始参数,训练集建立一个模型,但是模型的效果仅体现了训练数据,但不一定适合同类的其他数据,所以建模前数据还分出验证集,通过让机器学习去优化调整模型的参数,在神经网络中,通常用验证集去寻找最优的网络深度(numberofhiddenlayers),或者决定反向传播算法的停止点;在机器学习中,常用的交叉验证(crossvalidation)就是把训练数据集本身再细分成不同的验证数据集去训练模型。测试集用于评估模型的表现,并不会去调整优化模型。训练集、测试集和验证集的比例可以为50∶25∶25。在一个可选实施例中,训练集、测试机和验证集的比例为70∶20∶10。

神经网络模型的训练方法包括:将归一化处理后的历史降水量数据按照时间先后顺序依次切分为训练集、测试集和验证集;构建lstm-rnn结构的深度神经网络模型,根据训练集、测试集和验证集对深度神经网络模型进行训练、测试和验证。

本发明实施例提供的降水量的预测装置,具体执行上述各降水量的预测方法实施例流程,具体请详见上述各预测方法实施例的内容,在此不再赘述。本发明实施例提供的预测装置加强了对历史数据的感知能力,弥补了现有技术的不足,具有较强的泛化能力,具有较高的预报精度。

图3为根据本发明实施例提供的电子设备的实体结构示意图,如图3所示,该电子设备可以包括:处理器(processor)310、通信接口(communicationsinterface)320、存储器(memory)330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。处理器310可以调用存储在存储器330上并可在处理器310上运行的计算机程序,以执行上述各实施例提供的xx方法,例如包括:获取目标区域内日粒度的历史降水量数据,日粒度的历史降水量数据的最后一个数据为预测时间前一天的降水量数据;对历史降水量数据进行归一化处理,获得归一化处理后的历史降水量数据;将归一化处理后的历史降水量数据输入至预先训练完成的神经网络模型中,获得预测时间的降水量数据;其中,神经网络模型的训练方法包括:将归一化处理后的降水量数据按照时间先后顺序依次切分为训练集、测试集和验证集;构建lstm-rnn结构的深度神经网络模型,根据训练集、测试集和验证集对深度神经网络模型进行训练、测试和验证。

此外,上述的存储器330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的降水量的预测方法,例如包括:获取目标区域内日粒度的历史降水量数据,日粒度的历史降水量数据的最后一个数据为预测时间前一天的降水量数据;对历史降水量数据进行归一化处理,获得归一化处理后的历史降水量数据;将归一化处理后的历史降水量数据输入至预先训练完成的神经网络模型中,获得预测时间的降水量数据;其中,神经网络模型的训练方法包括:将归一化处理后的降水量数据按照时间先后顺序依次切分为训练集、测试集和验证集;构建lstm-rnn结构的深度神经网络模型,根据训练集、测试集和验证集对深度神经网络模型进行训练、测试和验证。

以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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