本发明涉及水位预测技术领域,具体而言,尤其涉及一种基于循环神经网络和卷积神经网络的智能水位预测方法。
背景技术:
内河航道的水位作为航道尺度维护的主要指标,是指导船舶合理配载和保障船舶安全航行的重要因素。利用水位遥测等物联网感知技术,可以在航道沿线各个水位站实时地采集和监测水位动态信息。经过多年积累,航道部门已经掌握了海量的水位历史数据。充分挖掘这些水位历史数据,合理地预测水位的中短期变化趋势,对于提升航道通行能力、保障船舶航行安全和科学开展航道养护具有重要的意义。水位历史数据属于时间序列数据,蕴含着时序性和规律性的信息,从历史数据中挖掘出其变化趋势即可类推或延伸以预测下一段时间的水位值。近年来快速发展的大数据和人工智能方法,为从水位历史数据中挖掘和分析规律并构建预测模型提供了强有力的支持。
针对上述问题,申请号201810464065.x,专利名称为一种梯级电站的上下游水位预测方法,此预测方法基于长短时记忆网络(longshort-termmemory,lstm)。lstm是循环神经网络rnn的一种成功变体,能够克服原始循环神经网络的不足,学习到数据之间的长期依赖关系,将lstm应用到水电站的水位预测中,可以保留有用的历史信息,将过去时刻的上下游水电站运行数据以及上游电站水位数据的影响反映到当前下游电站的水位预测之中。但其缺点为:该发明是为了预测电站水位,却仅利用了上游电站的水位,下游电站水位值同样容易观测。若结合使用上下游电站的水位值,lstm的强大学习能力可以学习到两个电站的水位变化相关关系,提高精确度。
申请号2019107127044.x,专利名称为一种多水位站联动的内河水位智能预测方法,该发明提出三水位站联动预测模型,使用门控循环单元(gru)循环神经网络、从大量历史水位数据中学习预测模型特征,其模型的构建不仅考虑了水位数据的时间关联性,而且考虑了水位站间的空间相关性,突破了单一水位站数据的局限性和误差影响,更充分地利用了关联多水位站的历史水位数据,以更好地找到水位变化规律。但其缺点为:对于一个水位站,与其距离不同的其他水位站,对该水位的影响因子必然不尽相同。该发明在进行3水位站联动预测时,只是将3个水位站直接输入gru模型,并没有明确地反映上下游水位站对中游水位站的影响和关联程度,其仅仅依靠输入层的结构设计难以反映水位站间的空间关联性。因此该发明的模型可以进一步优化,更充分地考虑水位站之间的空间距离等因素以反映它们的不同影响权重,从而更好地进行多水位站之间联动预测,进一步提升预测精度。
技术实现要素:
根据上述提出的技术问题,而提供一种基于循环神经网络和卷积神经网络的智能水位预测方法。本发明基于从空间连续的多个水位站采集的海量数据,构建基于循环神经网络和卷积神经网络的水位预测模型,一方面利用循环神经网络学习水位的变化趋势,另一方面利用卷积神经网络更好地学习到了不同位置的水位站之间水位值的某种关联,从而更加充分利用多水位站的数据,提高内河水位预测的精度。
本发明采用的技术手段如下:
一种基于循环神经网络和卷积神经网络的智能水位预测方法,包括如下步骤:
s1、处理空间上相邻的各个水位站长期采集的水位数据,形成水位样本数据;
s2、构建基于循环神经网络和卷积神经网络的水位预测模型;
s3、利用步骤s1中的水位样本数据对水位预测模型进行训练和测试,确定水位预测模型的网络参数;
s4、利用训练好的水位预测模型,输入多个空间相邻水位站的一段期间的历史数据,获得中间水位站未来一段期间的预测水位值。
进一步地,所述水位预测模型具体包括网络输入层、3个一维卷积层、第一循环神经网络层、第二循环神经网络层以及输出层。
进一步地,所述网络输入层的输入维度[(?,t,n)],t为timestep,t表示前序水位值的个数,n表示参与联动预测的水位站个数。
进一步地,所述一维卷积层共三层,分别为c1,c2,c3,卷积层可表述为:
c=f(wx b)
其中,f为激活函数,三层均设置为relu函数。
进一步地,所述第一循环神经网络层和第二循环神经网络层均采用lstm或gru结构;
所述第一循环神经网络层连接最后一个卷积层,其激活函数可设为tanh,输出为[(?,t,512)],512为该层输出神经元个数;
所述第二循环神经网络层连接第一循环神经网络层,其激活函数可设为relu,输出为[(?,512)],512为该层输出神经元个数,对接输出层。
进一步地,所述输出层为全连接层,不设激活函数,其输出维度[(none,p)],其中,none表示网络输出的数据量batch_size;p为特征数量,即预测中间水位站后p个时间段的p个水位值。
较现有技术相比,本发明具有以下优点:
内河航道的水位是指导船舶合理配载和保障船舶安全航行的重要因素。本发明的技术方案可实现对内河水位的精确预测,给出合理精确的水位短期变化趋势,对于提升航道通行能力、保障船舶航行安全和科学开展航道养护都具有至关重要的作用,具有明显的经济和社会效益。
基于上述理由本发明可在水位预测等领域广泛推广。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做以简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明方法流程图。
图2为本发明水位预测模型的结构示意图。
图3为本发明是实施例提供的水位站的空间关系示意图。
图4为本发明实施例提供的水位预测模型的结构展开示意图。
图5为本发明实施例提供的水位预测模型的训练过程示意图。
图6为本发明实施例提供的水位预测模型与其他模型的预测结果对比示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
如图1所示,本发明提供了一种基于循环神经网络和卷积神经网络的智能水位预测方法,包括如下步骤:
s1、处理空间上相邻的各个水位站长期采集的水位数据,形成水位样本数据;
s2、构建基于循环神经网络和卷积神经网络的水位预测模型;如图2所示,水位预测模型具体包括网络输入层、3个一维卷积层、第一循环神经网络层、第二循环神经网络层以及输出层。具体的:
网络输入层的输入维度[(?,t,n)],t为timestep,t表示前序水位值的个数,n表示参与联动预测的水位站个数(n可以根据情况设置,例如3则代表着将利用3个水位站预测中间1个水位站的水位)。
一维卷积层共三层,分别为c1,c2,c3,卷积层可表述为:
c=f(wx b)
其中,f为激活函数,三层均设置为relu函数。通过设置卷积核的尺寸及padding操作,使一维卷积层的输出维度为(?,t,1),即n个水位站的数值抽象为一个数值。该值通过3层卷积得到,综合了n个水位站之间的水位变化,较单水位站的水位值将具有更好平滑性。最后一层卷积输出(?,t,1),随后进入后续的第一循环神经网络层和第二循环神经网络层。
第一循环神经网络层和第二循环神经网络层均采用lstm或gru结构;
所述第一循环神经网络层连接最后一个卷积层,其激活函数可设为tanh,输出为[(?,t,512)],512为该层输出神经元个数;
所述第二循环神经网络层连接第一循环神经网络层,其激活函数可设为relu,输出为[(?,512)],512为该层输出神经元个数,对接输出层。
输出层为全连接层,不设激活函数,其输出维度[(none,p)],其中,none表示网络输出的数据量batch_size;p为特征数量,即预测中间水位站后p个时间段的p个水位值。
s3、利用步骤s1中的水位样本数据对水位预测模型进行训练和测试,确定水位预测模型的网络参数;
s4、利用训练好的水位预测模型,输入多个空间相邻水位站的一段期间的历史数据,获得中间水位站未来一段期间的预测水位值。
实施例
如图3-图5所示,以长江下游的水位站为例进一步说明本发明的技术方案,具体的:
第一步、获取图3中5个空间相邻的水位站30年的每天8时的水位数据作为水位样本数据。
第二步、选择3个水位站参与联动预测,并将利用3个前20天的水位数据预测中间水位站未来5日的水位值。设批处理参数batch_size=128,则上述的水位预测模型的输入为(128,20,3),模型计算将输出(128,5)的结果,如图4所示,为水位预测模型的结构展开示意图。
第三步、利用安庆、芜湖和南京三个水位站,以及九江、安庆和芜湖三个水位站,各30年每天8时的水位数据,分枯水期(12-3月)、洪水期(6-9月)和中水期(4,5,10,11月),按8:2比例分成训练集与测试集,进行模型训练和测试。
第四步、训练参数如下:损失函数采用mse(均方误差),优化函数采用adam,学习率设为0.00005,整个训练过程如图5所示。
第五步、模型训练后,在实际预测时,令batch_size=1(将图4中的128换成1),即输入维度[1,20,3],输出维度[1,5]。即可获得中间水位站后5天的5个8时水位值。
如图6所示,为本发明实施例提供的水位预测模型与其他模型的预测结果对比示意图,从结果的对比分析可见,无论在枯水期、中水期还是洪水期,基于循环神经网络和卷积神经网络的水位预测模型误差最小,具有最高的精确度。
综上所述,本发明利用循环神经网络很好地捕捉各水位站的水位变化趋势。利用卷积神经网络进一步学习了可反映上下游水位站关联关系的一维卷积层,并通过卷积操作有效地综合考虑了空间上连续的多个水位站的水位值,可消弱单个水位站在某些时刻异常水位值的干扰,从而提高模型的泛化能力和健壮性。本发明不仅利用循环神经网络考虑了水位数据的时间关联性,而且利用卷积神经网络考虑了水位站间的空间相关性,突破了单一水位站数据的局限性和误差影响,更充分地利用了关联多水位站的历史水位数据,因此,能够更好地找到水位变化规律,具有比其他方案更高的精确度。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。
1.一种基于循环神经网络和卷积神经网络的智能水位预测方法,其特征在于,包括如下步骤:
s1、处理空间上相邻的各个水位站长期采集的水位数据,形成水位样本数据;
s2、构建基于循环神经网络和卷积神经网络的水位预测模型;
s3、利用步骤s1中的水位样本数据对水位预测模型进行训练和测试,确定水位预测模型的网络参数;
s4、利用训练好的水位预测模型,输入多个空间相邻水位站的一段期间的历史数据,获得中间水位站未来一段期间的预测水位值。
2.根据权利要求1所述的基于循环神经网络和卷积神经网络的智能水位预测方法,其特征在于,所述水位预测模型具体包括网络输入层、3个一维卷积层、第一循环神经网络层、第二循环神经网络层以及输出层。
3.根据权利要求2所述的基于循环神经网络和卷积神经网络的智能水位预测方法,其特征在于,所述网络输入层的输入维度[(?,t,n)],t为timestep,t表示前序水位值的个数,n表示参与联动预测的水位站个数。
4.根据权利要求2所述的基于循环神经网络和卷积神经网络的智能水位预测方法,其特征在于,所述一维卷积层共三层,分别为c1,c2,c3,卷积层可表述为:
c=f(wx b)
其中,f为激活函数,三层均设置为relu函数。
5.权利要求2所述的基于循环神经网络和卷积神经网络的智能水位预测方法,其特征在于,所述第一循环神经网络层和第二循环神经网络层均采用lstm或gru结构;
所述第一循环神经网络层连接最后一个卷积层,其激活函数可设为tanh,输出为[(?,t,512)],512为该层输出神经元个数;
所述第二循环神经网络层连接第一循环神经网络层,其激活函数可设为relu,输出为[(?,512)],512为该层输出神经元个数,对接输出层。
6.权利要求2所述的基于循环神经网络和卷积神经网络的智能水位预测方法,其特征在于,所述输出层为全连接层,不设激活函数,其输出维度[(none,p)],其中,none表示网络输出的数据量batch_size;p为特征数量,即预测中间水位站后p个时间段的p个水位值。
技术总结