崔 东 文
(云南省文山州水务局,云南文山 663000)
提高径流预测精度对于水文预测预报具有重要意义。由于河川径流受多种因素的影响和制约,其预测常反映出复杂、随机、多维等特点,目前径流预测主要是将成因分析、统计分析、模糊分析以及灰色系统理论等方法及理论引入径流中长期预测,在实际应用中取得了一定成效,但也存在不足,使其在应用中受到制约。譬如,难以分析其内部物理机制(影响因子相互关系)以及与所表观的水文现象(径流)之间的关系等;径流影响因子个数的选择以及预测精度不高等,带有明显的主观性,较适用于具有确定性趋势的预测问题;对于其他变化趋势,则拟合灰度较大,导致精度难以提高等[1]。人工神经网络(Artifical Neural Network,ANN) 是一种模仿动物神经网络行为特征,进行分布式并行信息处理的数学模型。ANN依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的,其常见的BP网络(Back-Propagation Network,BP)、Elman网络、RBF网络(Radial Basis Function Neural Network,RBF)和GRNN网络(Generalized Regression Neural Network,GRNN)等均广泛运用于径流预测预报中[2-6]。然而,由于传统ANN算法是基于渐近理论,仅在样本容量趋向于无穷大时其经验风险才趋近于实际风险,但在实际应用中样本容量离无穷大相去甚远,导致ANN外推能力差、收敛速度慢以及存在局部极值等问题,且ANN还存在结构及参数选择的困难[7-8]。支持向量机(Support Vector Machine,SVM)是20世纪90年代中后期发展起来的基于统计学习理论构建的典型神经网络,它由Vapnik首先提出,是一种通用的前馈神经网络,用于解决模式分类和非线性映射等问题[9-10]。SVM具有严谨的数学基础,通过统计学习中的VC维(Vapnik-Chervonenkis Dimension)理论和寻求结构风险最小化原理来提高泛化能力,已成为继ANN之后机器学习领域新的研究热点,其具有的四大优势决定了它在机器学习领域有着举足轻重的地位:一是SVM以最小结构风险代替传统ANN经验风险,求解的是一个二次寻优问题,理论上得到全局最优,解决了传统ANN算法中难于克服的局部极值缺陷;二是SVM拓扑结构由支持向量决定,弥补了ANN结构难以确定的不足;三是SVM决策函数由少数的支持向量确定,计算的复杂程度取决于支持向量的数目,而不是样本空间的维数,避免了“维数灾”问题;四是SVM方法求解的是基于结构风险最小化原则,由经验风险和置信区间共同决定支持向量的实际风险,因此泛化能力要优于传统ANN。尤其在解决小样本容量时,很大程度上解决了传统BP等网络在模型选择、过学习、高维和局部极值等方面的问题,在模式识别和回归预测中有着广泛的应用[11-12]。神经网络集成(Neural Network Ensemble,NNE)是Hansen和Salamon于1990年提出的集成方法,利用有限个神经网络对同一问题进行学习,将个体神经网络的输出以某种综合方法进行集成,集成输出的结果由各个体神经网络的输出共同决定[7,13]。NNE的实现主要由“选择模型中的个体网络”和“集成输出方法”两部分组成,目前仍没有较好方法或理论指导如何获取具有较好性能的个体网络,常用的集成方法主要有简单平均(Simple Average,SA)和加权平均(Weighted Average,WA)等。
基于上述原因及回归支持向量机(Support Vector Regression,SVR)特性,笔者以云南省盘龙河龙潭站年径流预测为例,采用相关分析法确定预测因子与年径流的相关系数,按照相关系数大小顺序依次选取预测因子,构建2维输入变量~10维输入变量的9种SVR(SVR-2~SVR-10)年径流预测模型对龙潭站后12年的年径流进行预测,并基于NNE方法,采用SA和WA两种集成方法对具有较好预测精度的若干SVR模型的预测结果进行综合集成,集成结果表明SA-SVR和WA-SVR模型具有较好的预测精度和泛化能力。
将SVM用于逼近函数的方法称为SVR。SVR是基于VC维概念和结构风险最小化原则,根据有限的样本信息在模型的复杂性(训练样本学习精度)和泛化能力之间寻求一种折中,以期获得最好的推广能力。在解决非线性回归问题时,SVR是将样本通过核函数将低维空间中非线性回归问题映射到高维空间,并在高维空间中求解最优回归函数,这样,在高维空间中的线性回归就对应低维空间中的非线性回归,即实现某一非线性变换后的线性回归,在计算难度未增加的情况下利用线性空间的方法解决非线性问题。SVR实现回归预测步骤归纳如下[8,11-12,14-15]。
步骤1:给定含有l个训练样本的集合{(xi,yi),i=1,2,…,l},其中,xi(xi∈Rd)是第i个训练样本的输入列向量,xi=
,
y
i
∈
R
为对应输出值。在高维特征中建立的线性回归函数为:
(1)
式中:Φ(x)为非线性映射函数。
步骤2:定义ε线性不敏感损失函数为
(2)
式中:f(x)为回归函数返回的预测值;y为对应的真实值。
(3)
式中:C为惩罚因子,C越大表示对训练误差大于ε的样本惩罚越大,ε规定了回归函数的误差要求,ε越小表示回归函数的误差越小。求解式(3)时,引入Lagrange函数,并转换成对偶形式:
(4)
式中:K(xi,xj)=Φ(xi)Φ(xj)为核函数。
(5)
(6)
式中:Nnsv为支持向量机个数。
步骤5:将w*,b*代入式(1)得到回归函数为:
(7)
常用的核函数主要类型有线性核函数(K(x,xi)-xTxi)、多项式核函数(K(x,xi)=(γxTxi+r)p,γ>0)、径向基核函数(K(x,xi)=exp(-γ||x-xi||2),γ>0)和两层感知核函数(K(x,xi)=tanh(γxTxi+r))。
基于上述SVR原理,SA-SVR和WA-SVR模型年径流预测步骤可归纳如下:
步骤1:计算年径流影响因子的相关系数。利用SPSS软件计算龙潭站1—10月月均流量与年径流相关系数,并按照相关系数大小进行排列。
步骤2:构建各SVR年径流预测模型。基于Matlab软件环境和libsvm工具箱,选取相关系数最大的前2列月均流量作为SVR模型的输入变量,构建2维的SVR年径流预测模型,表示为SVR-2;选取相关系数最大的前3列月均流量作为SVR模型的输入变量,构建3维的SVR年径流预测模型,表示为SVR-3;依次类推,构建10维的SVR年径流预测模型,表示为SVR-10。
步骤3:训练及调试SVR-2~SVR-10预测模型。确定训练样本及检验样本,并对样本进行归一化处理,利用训练样本对SVR-2~SVR-10模型进行训练及调试,率定各模型的相关参数,并利用检验样本对SVR-2~SVR-10模型进行预测精度及泛化能力检验。
步骤4:SA-SVR集成。利用平均相对误差和最大相对误差对SVR-2~SVR-10模型的预测精度及泛化能力进行分析评价,并选取若干较优模型的预测结果按下式进行SA集成:
(8)
步骤5:WA-SVR集成。WA集成是按照SVR模型的预测效果优劣给出不同的权重,然后求加权平均值,以加权平均值作为集成模型的预测值。同步骤4,选取若干最优模型的预测结果按下式进行WA集成:
(9)
(10)
式中:ei为第i个模型预测相对误差的绝对值。
步骤6:对SA-SVR和WA-SVR模型预测结果进行分析。若SA-SVR和WA-SVR模型预测值达不到期望的精度和泛化能力要求,则返回步骤3对各SVR个体模型进行调试和检验,直至SA-SVR和WA-SVR模型的预测值满足预期的精度要求。
龙潭寨水文站位于盘龙河上游,建于1951年4月,属国家基本站,观测项目有水位、流量、降水、蒸发、泥沙和水温,系列均为1951年4月至2005年12月。控制流域面积3 128 km2,流域多年平均流量24.6 m3/s,降水量956.8 mm。本文以龙潭站1952—2005年共54年的实测资料为例进行分析。利用SPSS软件分析年均径流与1—10月月均流量的相关性,可得年均径流与1—10月月均流量的相关系数分别为0.455**,0.441**,0.333*,0.486**,0.497**,0.519**,0.616**,0.822**,0.782**和0.798**(“**”表示在0.01水平(双侧)上显著相关;“*”表示在0.05水平(双侧)上显著相关)。
可见,年均径流与1—10月月均流量均呈显著正相关。本文选取与年均径流在0.05水平(双侧)上显著相关的1—10月月均流量作为影响因子预测年均径流,并以1952—1993年42年的实测资料作为训练样本,1994—2005年12年的实测资料作为检验样本。
2.2.1数据归一化处理 利用下式对径流序列进行归一化处理:
(11)
2.2.2SVR模型的构建及网络训练 按照上述方法从1—10月月均流量中按相关系数大小顺序选取不同维数的输入向量,构建SVR-2~SVR-10年径流预测模型,并基于Matlab环境和libsvm工具箱,创建SVR-2~SVR-10模型对龙潭站54年的实测资料进行拟合和预测分析。
由于在核函数选定的条件下,SVR模型中的惩罚因子c和不敏感系数ε对模型的预测精度有着关键性影响。惩罚因子c决定着由训练样本产生的经验风险对模型性能的影响,即经验风险随着c值的增加而增加,减小而减小,当c值无穷大时,SVR结构风险趋于经验风险;当c值趋于零时,由于SVR模型无法获取训练样本信息,模型失去了解决具体问题的能力。不敏感系数ε用于控制支持向量的个数,平衡模型的复杂程度与模型对训练样本维数的依赖程度。在实际应用中,若ε值过小,可能导致模型“过拟合”,并且增加训练时间; 值过大,则可能导致模型“欠拟合”。参考多个文献[8,11-12,14-15]后选择径向基函数为SVR的核函数,设置惩罚因子c和核函数参数g的搜索空间为2-2~26,K取值2~5,g和c的步进大小均取0.1~0.5,不敏感系数ε均取0.001~0.1(其他参数采用默认值),利用交叉验证法(Cross Validation,CV)确定模型中的惩罚因子c和核函数参数g。经过反复调试,在下述参数设置情况下,SVR-2~SVR-10模型具有较好的预测效果(除此之外的其他参数采用系统默认值)。
SVR-2~SVR-10模型的最佳参数设置见表1,拟合及预测效果见表2及图1。由表2及图1可以看出:①SVR模型的预测精度和泛化能力随着输入向量维数的增加具有明显的提高趋势,其中SVR-8~SVR-10模型对龙潭站后12年年径流预测的平均相对误差绝对值均小于3%,最大相对误差绝对值均在10%以内,具有较好的预测精度和泛化能力;②由于SVR-2、SVR-3模型输入向量维数较低,训练样本中信息量不足,导致其拟合及预测效果不够理想。
表1 SVR-2~SVR-10模型的最佳相关参数Tab.1 Optimal parameters of SVR-2 ~ SVR-10 models
表2 SVR-2~SVR-10模型对龙潭站年径流拟合及预测相对误差Tab.2 Annual runoff fittings of Longtan station given by SVR-2 ~ SVR-10 models and their relative forecast errors %
图1 SVR-2~SVR-10模型对龙潭站年径流拟合及预测相对误差Fig.1 Annual runoff fittings of Longtan station given by SVR-2 ~ SVR-10 models and their relative errors of forecast values
本文基于预测精度及泛化能力考虑,选取具有较好预测效果的SVR-4~SVR-10模型作为SA-SVR和WA-SVR模型集成的个体模型。
利用SVR-4~SVR-10模型对龙潭站后12年年径流预测的平均相对误差绝对值确定各自权重,结果分别为0.1068,0.1380,0.1323,0.1319,0.1605,0.1646和0.1659。
利用SA和WA两种集成方法将上述具有较好预测效果的SVR-4~SVR-10模型进行综合集成,构建SA-SVR和WA-SVR模型对龙潭站后12年年径流进行预测,预测结果与SVR-8~SVR-10个体模型进行比较,结果见表3及图2。
表3 龙潭站1994—2005年SA-SVR和WA-SVR模型径流预测结果及比较Tab.3 Runoff forecast results given by SA-SVR and WA-SVR models from 1994 to 2005 and their comparison (m3·s-1)
(a) 年径流拟合及预测值 (b) 年径流拟合及预测比较图2 集成模型与SVR-8~SVR-10模型年径流拟合及预测比较Fig.2 Comparison between annual runoff fitting and forecast values given by integrated model and SVR-8~SVR-10 models
从表3及图2可见:①SA-SVR和WA-SVR模型预测龙潭站后12年年径流的平均相对误差绝对值分别为1.73%和1.79%,最大相对误差绝对值分别为6.34%和6.47%,预测精度和泛化能力均优于各SVR个体模型,表明本文提出的集成模型和集成方法用于径流预测是合理可行的。集成模型具有预测精度高、泛化能力强以及稳健性能好等优点。②普遍认为,加权平均集成模型通过给予预测误差较小的个体模型更大的权重能够得到比简单平均集成模型更好的预测精度和泛化能力,但从本实例预测结果来看,由于采用多个(7个)个体模型进行集成,SA-SVR模型的预测效果要优于WA-SVR模型。③在系列长达54年的年径流拟合及预测中,相对误差均在-10%~10%之间,表明SA-SVR、WA-SVR以及SVR-8~SR-10模型均具有较好的拟合及预测效果,其中SA-SVR和WA-SVR模型相对误差均在-8%~8%之间,具有更高的预测精度、泛化能力及稳健性能。
基于SVR原理和NNE基本思想,利用多元变量择优组合的方式构建具有不同维数的SVR年径流预测模型,采用SA和WA两种集成方法构建SA-SVR和WA-SVR模型对龙潭站后12年的年径流进行预测。预测结果表明,SA-SVR和WA-SVR模型具有较高的预测精度和泛化能力。本文在以下两方面可为相关预测研究提供参考:一是仅基于SVR原理及算法,提出利用不同的输入维数构建由多个SVR个体网络集成的年径流预测模型和方法;二是在实际应用中,决定模型预测精度和泛化能力的关键因素是问题本身的复杂程度,对于不同的预测问题,很难片面地认为某一模型或算法的优劣,只有尝试不同模型或算法,反复进行调试,以期获得理想的预测效果。
参 考 文 献:
[1]杨旭, 栾继虹, 冯国章. 中长期水文预报研究评述与展望[J]. 西北农业大学学报, 2000, 28(6): 203-207. (YANG Xu, LUAN Ji-hong, FENG Guo-zhang. Discussion and prospect on mid-to-long-term hydrological forecasting[J]. Acta Univ. Agric. Boreali-occidentalis, 2000, 28(6): 203-207. (in Chinese))
[2]崔东文. 多隐层BP神经网络模型在径流预测中的应用[J]. 水文, 2013, 33(1): 68-73. (CUI Dong-wen. Multi-layers BP neural network model in runoff prediction[J]. Journal of China Hydrology, 2013, 33(1): 68-73. (in Chinese))
[3]邓霞, 董晓华, 薄会娟. 基于BP网络的河道径流预报方法与应用[J]. 人民长江, 2010, 41(2): 56-59. (DENG Xia, DONG Xiao-hua, BO Hui-juan. River runoff forecasting methods based on BP network and its applications[J]. Yangtze River, 2010, 41(2): 56-59. (in Chinese))
[4]杨新华, 马建立, 苏军希, 等. 基于Elman网络的黄河源区径流评估模型[J]. 人民长江, 2007, 38(8): 134-135, 174. (YANG Xin-hua, MA Jian-li, SU Jun-xi, et al. Runoff assessment model for the source area of the Yellow River based on Elman neural network[J]. Yangtze River, 2007, 38(8): 134-135, 174. (in Chinese))
[5]刘荻, 周振民. RBF神经网络在径流预报中的应用[J]. 华北水利水电学院学报, 2007, 28(2): 12-14. (LIU Di, ZHOU Zhen-min. Application of RBF neural network in runoff prediction[J]. Journal of North China Institute of Water Conservancy and Hydroelectric Power, 2007, 28(2): 12-14. (in Chinese))
[6]陈仁升, 康尔泗, 张济世. 应用GRNN神经网络模型计算西北干旱区内陆河流域出山径流[J]. 水科学进展, 2002, 13(1): 333-338. (CHEN Ren-sheng, KANG Er-si, ZHANG Ji-shi. Application of the generalized regression neural network to simulating runoff from the mountainous watersheds of inland river basins in the arid area of northwest China[J]. Advances in Water Science, 2002, 13(1): 333-338. (in Chinese))
[7]田雨波. 混合神经网络技术[M]. 北京: 科学出版社, 2009. (TIAN Yu-bo. Hybrid neural network technology[M]. Beijing: Science Press, 2009. (in Chinese))
[8]王雷. 支持向量机在汽轮机状态监测中的应用[M]. 北京: 北京师范大学出版社, 2012. (WANG-Lei. Applications of support vector machine on turbine state monitoring[M]. Beijing: Beijing Normal University Press, 2012. (in Chinese))
[9]VAPNIK V N. 统计学习理论的本质[M]. 张学工, 译. 北京: 清华大学出版社, 2000. (VAPNIK V N. The nature of statistical learning theory[M]. Translated by ZHANG Xue-gong. Beijing: Tsinghua University Press, 2000. (in Chinese))
[10]田景文, 高美娟. 人工神经网络算法研究及应用[M]. 北京: 北京理工大学出版社, 2006. (TIAN Jing-wen, GAO Mei-juan. Research and application of artificial neural network algorithm[M]. Beijing: Beijing Institute of Technology Press, 2006. (in Chinese))
[11]崔东文. 支持向量机在湖库营养状态识别中的应用研究[J]. 水资源保护, 2013, 29(4): 26-30. (CUI Dong-wen. Application of support vector machine to lake and reservoir trophic status recognition[J]. Water Resources Protection, 2013, 29(4): 26-30. (in Chinese))
[12]崔东文. 支持向量机在水资源类综合评价中的应用研究—以全国31个省级行政区水资源合理性配置为例[J]. 水资源保护, 2013, 29(5): 61-68. (CUI Dong-wen. Application of support vector machines to comprehensive assessment of water resources class[J]. Water Resources Protection, 2013, 29(5): 61-68. (in Chinese))
[13]张大斌, 张景广, 彭森. 基因表达式编程在组合预测建模中的应用[J]. 系统工程理论与实践, 2012, 32(3): 568-573. (ZHANG Da-bin, ZHANG Jing-guang, PENG Sen. Application of gene expression programming on combination forecasting modeling[J]. Systems Engineering-Theory & Practice, 2012, 32(3): 568-573. (in Chinese))
[14]史峰, 王辉, 郁磊, 等. MATLAB智能算法30个案例分析[M]. 北京: 北京航空航天大学出版社, 2011. (SHI Feng, WANG Hui, YU Lei, et al. 30 cases study on MATLAB intelligent algorithm[M]. Beijing: Beihang University Press, 2011. (in Chinese))
[15]MATLAB中文论坛. MATLAB神经网络30个案例分析[M]. 北京: 北京航空航天大学出版社, 2010. (MATLAB Chinese forum. MATLAB neural network analysis of 30 cases[M]. Beijing: Beihang University Press, 2010. (in Chinese))