董丽梅 左 渝 黄 龙
(长江水利委员会水文局长江上游水文水资源勘测局,重庆 400025)
基于动态滑动窗口BP神经网络的水文流量预测
董丽梅 左 渝 黄 龙
(长江水利委员会水文局长江上游水文水资源勘测局,重庆 400025)
水文流量数据中不同季度和月份的时序和周期性特点不同,而现有的滑动窗口方法基本采用固定大小窗口,且选择随机、误差大。为了反映水文流量数据中不同月份的时序和周期性的不同特点,提出了动态滑动窗口的方法。该方法中对不同的月份使用动态窗口产生多个数据集,并进行BP神经网络学习,以选择最优窗口,最后利用最优窗口数据集进行验证。以朱沱水文站为例的流量预测数据与实测数据的比较结果表明,基于动态滑动窗口BP神经网络水文流量预测方法比固定窗口BP神经网络的预测方法的预测精度更高。
水文流量;动态滑动窗口;BP神经网络
河流的径流量是水资源综合开发利用、实施科学管理和优化调度的主要依据。水文流量预测是水文计算的重要内容之一,也是防洪减灾、水资源高效利用的前提。因此,研究中长期水文流量预测,提高预测精度是一项具有理论意义和实用价值的工作。
按照预测时段划分,水文流量预测可以分为短期(以天为单位)流量预测和中长期(以月或年为单位)流量预测;按预测方式划分,可以划分为基于成因的流量预测和基于数理统计的流量预测两大类。目前基于成因流量预测的方法应用还不够成熟,其原因在于水文流量不仅受到海洋、大气、地质环境等影响,也会受到人类活动的影响,其年径流量具有较大的不确定性。一些研究者试图通过对河流年径流量影响因素及其权重建立模型实现水文流量的预测,如使用ABCD模型以降水量和潜在蒸散量为输入,模拟蒸散、径流以及土壤水、地下水储量的变化,对月尺度或年尺度的流量进行模拟预测[1]。这些方法依赖较多的采集手段和大量的采集数据,对具体河道具有相对较好的实用效果。但是一方面,数据采集和分析成本高,针对具体河道获得的模型通用性不强;另一方面,如土壤、降水等长序列的河流相关历史数据很少,也限制了此类方法的广泛应用。而基于数理统计的水文流量预测是当前最常用的流量预测手段,如传统的统计学方法以及灰色预测[2]、模糊预测[3]、神经网络预测[4-5]、小波分析[6-8]和马尔柯夫链[9]等方法。这些方法处理的数据维度(即窗口)是随机且基本固定的,误差比较大。
为此,本文针对固定滑动窗口无法获得最优数据窗口及数据维度的问题,使用动态滑动窗口生成多维水文流量数据,然后再使用神经网络的非线性逼近能力,建立中长期水文流量预报模型。以朱沱水文站为例进行了水文流量实验验证。
BP(Back Propagation)网络1986年由Rinehart和McClelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,具有较强的非线性映射能力和容错性以及自适应、自组织、自学习等特征,广泛应用于水文预测预报中[10-11]。它的学习规则是使用最速下降法,利用反向传播来不断调整网络的权值和阈值,使网络的误差平方和达到最小化。BP神经网络的模型拓扑结构主要有输入层(input)、隐含层(hide layer)和输出层(output layer)3层。基本BP算法包括2个方面:信号的前向传播和误差的反向传播。
图1 BP网络结构
图 1中xj表示输入层第j个节点的输入,j=1,2,…,M;wij表示隐含层第i个节点到输入层第j个节点之间的权值;θi表示隐含层第i个节点的阈值;φ(x)表示隐含层的激励函数;wki表示输出层第k个节点到隐含层第i个节点之间的权值,i=1,2,…,q;ak表示输出层第k个节点的阈值,k=1,2,…,L;Ψ(x)表示输出层的激励函数;ok表示输出层第k个节点的输出。
(1) 信号的前向传播过程。隐含层第i个节点的输入neti:
(1)
隐含层第i个节点的输出yi:
(2)
输出层第k个节点的输入netk:
(3)
输出层第k个节点的输出ok:
(4)
(2) 误差的反向传播过程。首先由输出层开始逐层计算各层神经元的输出误差,然后根据误差梯度下降法来调节各层的权值和阈值,使修改后的网络的最终输出能够接近期望值。
系统对P个训练样本的总误差准则函数为
(5)
根据误差梯度下降法依次修正输出层权值的修正量Δwki,输出层阈值的修正量Δak,隐含层权值的修正量Δwij,隐含层阈值的修正量Δθi。
(6)
(7)
(8)
(9)
BP算法的具体步骤如图2所示。
图2 BP算法程序流程
原始的水文流量数据是二维的,即时间和流量,直接用这种数据来预测,无法体现数据的时序特点,并且未来的数据也无法在现有数据的训练中得到体现,而基于窗口的方法能产生更多维度的数据,体现历史多个月份数据与当前月份数据的关联关系。但是现有基于窗口的方法,其窗口大小的选择是随机的、固定的,无法体现不同月份数据的不同周期性特点。为此,本文通过滑动窗口的方法对时序数据进行重构,然后选择最优窗口维度,不仅能体现时序数据之间的关联关系,而且能够体现不同月份数据的不同周期性特点,从而保证最优窗口维度的选择。
在通过滑动窗口的方法将每个月份的数据处理成多维数据的方法中,以对1月份数据的预测为例,将1月份的数据作为待预测目标值,其前面n个月份的数据为数据维度,则产生了n维数据用来对1月份进行预测。本实验中,对于任一月份的维度构建,其最大的维度个数为上一年各月份流量加上该月份在本年之前的月份数据。比如,对于2月份,之前的月份数据在本年有一个1月份的数据,加上去年12个月份的数据,其最大维度是1+12=13。
基于动态滑动窗口BP神经网络的水文流量预测的技术路线如图3所示。首先对于给定数据集,对第n个月的水文数据产生从1到n-1+12窗口大小的n-1+12数据集;然后使用BP神经网络对该n-1+12个数据集进行训练验证,选取其中训练验证精度最高的为最优参数,使用该月份的最优窗口数据集对预测数据中的该月份进行预测。
图3 基于动态滑动窗口的BP神经网络水文流量预测技术路线
4.1 水文站概况
朱沱水文站建于1954年4月,位于重庆市朱沱镇,东经105°50′53”,北纬29°00′46”。该水文站是长江上游重要的基本水文站,下辖1个国家基本水位站(合江站)和10个水位站,观测范围从四川省合江县至重庆市巴南区鱼洞街道办事处大中村,管辖河段长138.1 km,集水面积694 725 km2,距河口距离2 645 km, 距重庆距离145.4 km。
4.2 数据来源
实验数据来自于朱沱水文站历年的流量数据。1954~2014年的月径流量数据,中间由于统计原因遗失了1968~1970年3 a的数据,所以共58条数据。本文选取2013年及以前的月径流量数据作为训练集,对2014年的月径流量进行预测并与实际的月径流量数据进行对比,同时与固定窗口预测方法进行对比,分析预测模型的准确性。
4.3 模型仿真
数据分为训练集和预测集,为了防止过拟合,训练集分为交叉训练集和交叉验证集,由于算法训练时间较长,所以该实验采用简单交叉验证,即交叉验证集只有固定的一个数据集。前54条数据作为交叉训练集,2011~2013年的作为交叉验证集,2014年的作为预测集。经过实验调试后,实验中的具体神经网络参数结构为:网络结构选择最标准的3层结构,输入节点数和窗口大小相同,由于该研究做的是预测回归,所以输出节点数为1,隐藏层的中间结点为25,使用高斯压缩函数,学习率设置为 0.27,迭代次数的最大值为1 500。初始化的神经网络权重参数全部通过随机函数产生。
图4显示,1月份到12月份的最低误差的滑动窗口大小(即数据维度)分别是: 8,3,7,11,11,11,13,6,13,12,5,3。最优窗口大小的预测精度明显要好于其他大小的窗口。这种差距在各个月份的数据中都表现比较明显:最优窗口和最差窗口的预测误差能达到数百倍。说明了该方法相比基于固定滑动窗口BP神经网络的流量预测具有一定的优势。
图4 动态窗口构建多维数据的BP神经网络预测误差曲线
图5和6显示了2014年朱沱水文站流量预测的实验结果。由图5可以看出,本文提出的方法的预测结果与实际流量数据具有很好的一致性。图6的误差显示中,除4月份略大于20%,其他月份的流量预测误差都可以控制在20%以内。近一半的月份,即1,7,8,10,12月份的数据误差控制在了10%以内。实验结果显示了该方法的有效性。
图5 2014年朱沱水文站流量预测对比
图6 2014年朱沱水文站流量误差示意
图7 固定窗口为3时2014年朱沱水文站流量误差示意
图8 固定窗口为5时2014年朱沱水文站流量误差示意
图7和图8显示了动态窗口和固定窗口选为常用的3和5时的对比结果,通过训练学习获得的动态窗口的优化结果明显要比固定窗口更接近被预测数据,相比固定窗口平均预测精度提高了3.92%。其原因主要是动态窗口方法对每个月份选择最优的不同的窗口,更能考虑不同月份不同的水文流量周期特点。
本文基于水文流量数据的时序性和周期性特点,针对现有固定窗口的缺点,提出了动态滑动窗口的方法来构建最优维度的流量数据。该方法中,对每个月加入该年和上一年12个月份的数据(即窗口长度范围为12~23),然后从这些数据集中选择被BP神经网络验证预测精度最高的为当前被预测月份的最优窗口维度,使用最优窗口维度的数据集进行预测。该方法充分考虑了不同月份水文数据的不同周期特点。朱沱水文站的数据验证结果显示,相比同类固定窗口BP神经网络方法,该方法的平均精度提高了3.92%,但不足之处在于,汛期的初始月份流量预测误差接近20%,其主要原因一方面在于完全基于历史流量的数据预测,其数据比较单一,如果考虑更多影响流量的气象因素,很可能获得更精确的预测结果;另一方面,本文所述方法只与BP神经网络进行了结合,没有结合其他一些性能优越的机器学习方法,如具有良好泛化能力的支持向量机、具有噪声特征容忍能力的随机森林等方法。为此,在未来的研究工作中,将进一步将动态滑动窗口方法和其他更多的机器学习方法相结合,并检验这些方法的有效性。
[1] 韩鹏飞, 王旭升. 利用ABCD模型预测流域水文对极端气候的响应[J]. 人民黄河, 2016, 38(11):16-22.
[2] 李宝玲, 李建林, 昝明军,等. 河流年径流量的R/S灰色预测[J]. 水文, 2015, 35(2):44-48.
[3] 朱冰, 赵兰兰, 李萌. T-S-K模糊逻辑算法在抚河水文预报中的应用[J]. 水文, 2015(3):53-58.
[4] 耿延博, 王玉成. 基于BP神经网络的河道径流变化量预测[J]. 东北水利水电, 2016, 34(4):29-30.
[5] 邢柏锋. 基于小波神经网络的径流预测方法分析[J]. 科技创新与应用, 2012(31):41-41.
[6] 王红瑞, 刘晓红, 唐奇,等. 基于小波变换的支持向量机水文过程预测[J]. 清华大学学报:自然科学版, 2010(9):1378-1382.
[7] 黄巧玲, 粟晓玲, 杨家田. 基于小波分解的日径流支持向量机回归预测模型[J]. 西北农林科技大学学报:自然科学版, 2016, 44(4):211-217.
[8] Sang Y F, Singh V P, Sun F, et al. Wavelet-based hydrological time series forecasting[J]. Journal of Hydrologic Engineering, 2016, 21(5).
[9] 刘海洋, 周传坤. 基于马尔柯夫链的桂江年径流量丰枯预测[J]. 商情, 2014(50):161-161.
[10]李宁. BP神经网络在水文数据中的应用研究[D]. 太原:山西财经大学, 2011.
[11]汪龙. 基于BP网络的径流预测研究[D]. 昆明:昆明理工大学, 2015.
(编辑:陈紫薇)
2017-03-31
董丽梅,女,长江水利委员会水文局长江上游水文水资源勘测局,助理工程师.
1006-0081(2017)06-0049-05
P333
A