| 论文导读:研究方向为人工神经网络、图论及其应用。地下水动态受一系列自然和人为因素的影响。关于地下水位的动态预测。探讨基于LM(levenberg-marquardt)算法的地下水位动态预测。关键词:算法,地下水动态,预测,研究
 
 一.问题的提出 地下水动态受一系列自然和人为因素的影响。研究表明,影响地下水位的主要因素有河道流量、气温、饱和差、降水量、蒸发量等,其变化是一个十分复杂的非线性过程。 关于地下水位的动态预测,目前有许多方法,但各种方法均存在优缺点。BP网络是利用非线性可微分函数进行权值训练的多层神经网络,由于其结构简单、可塑性强,故广泛应用于函数逼近、模式识别、信息分类和数据压缩等。 本文利用BP神经网络优良的非线性映射能力,探讨基于LM(levenberg-marquardt)算法的地下水位动态预测。 二.LM(levenberg-marquardt)算法 在BP神经网络的各种训练算法中,常用的有梯度下降法、共轭梯度法、牛顿算法等,每种算法都有其不足。其中牛顿法是一种基于二阶泰勒(Taylor)级数的快速优化算法,基本方法是 
 式中 是当前的权值和阈值矩阵,  是当前表现函数的梯度,  为误差性能函数在当前权值和阈值下的Hessian矩阵(二阶导数)  |  
 牛顿算法通常比梯度下降法、共轭梯度法的收敛速度快,但对于前馈神经网络计算Hessian矩阵是很复杂的,付出的代价也很大。论文大全。 当表现函数是平方和的形式时,可以采用计算量更小、速度更快的训练算法,即LM(levenberg-marquardt)算法。论文大全。该算法不需要计算Hessian矩阵,Hessian矩阵可以用下面的矩阵来近似代替: 
 其梯度为  ,
 式中J是雅克比(Jacobian)矩阵,它含有网络训练误差的一阶导数,是权值和阈值的函数,e是网络训练误差矢量。 有 当 =0时,就变成具有近似Hessian矩阵的牛顿法;当  较大时,LM(levenberg-marquardt)算法就更接近小步长的梯度法。在迭代过程中,如果训练成功,就减小  的值;如果训练失败,就增大  的值。论文大全。这样,该算法每一步迭代的误差性能总是减小的,表现函数最终会减小到设定的值,并且逼近最小误差的速度更快,精度更高。 三.应用实例 本节以MATLAB7.0为平台,滦河某地的地下水动态模拟与预测实例来说明LM(levenberg-marquardt)算法的实际应用. 1)原始数据的引入与预处理 原始数据引自罗定贵等(见表一), 这些数据是滦河某观测站24个月的地下水位实测序列值及5个影响因子实测序列值。河道流量、气温、饱和差、降水量、蒸发量都是影响地下水位的重要因子。本节通过LM(levenberg-marquardt)算法建立地下水位与各影响因子间的非线性关系模型。 表一 地下水位及影响因子实测值   
    
        
            | 序 号 | 河道 气温 饱和差 降水量 蒸发量 水位 流量 埋深 |  
            | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 1.5 -10.0 1.20 1.0 1.2 6.92 1.8 -10.0 2.0 1.0 0.8 6.97 4.0 -2.0 2.5 6.0 2.4 6.84 13.0 10.0 5.0 30.0 4.4 6.5 5.0 17.0 9.0 18.0 6.3 5.75 9.0 22.0 10.0 113.0 6.6 5.54 10.0 23.0 8.0 29.0 5.6 5.63 9.0 21.0 6.0 74.0 4.6 5.62 7.0 15.0 5.0 21.0 2.3 5.96 9.5 8.5 5.0 15.0 3.5 6.3 5.5 0 6.2 14.0 2.4 6.8 12.0 0.5 4.5 11.0 0.8 6.9 0.5 1.0 2.0 1.0 1.0 6.7 3.0 -7.0 2.5 2.0 1.3 6.77 7.0 0 3.0 4.0 4.1 6.67 10.0 10.0 7.0 0 3.2 6.33 4.5 18.0 10.0 19.0 6.5 5.82 8.0 21.5 11.0 81.0 7.7 5.58 57.0 22.0 5.5 186.0 5.5 5.48 35.0 19.0 5.0 114.0 4.6 5.38 39.0 13.0 5.0 60.0 3.6 5.51 23.0 6.0 3.0 35.0 2.6 5.84 11.0 1.0 2.0 4.0 1.7 6.32 4.5 -7.0 1.0 6.0 1.0 6.56 |    获得有关地下水位的数据后,在用于训练样本和测试样本之前,需要进行归一化处理, [pn,minp,maxp,tn,mint,maxt] = premnmx(u,v); 为检验网络的预测效果,测试集应为训练集以外的样本,所以任意选择第6~24组为训练样本,第1~5为测试样本。编写代码: p=pn(1:5,6:24); %训练集的输入矩阵 t=tn(1:1,6:24); %训练集的目标矩阵 p_test=pn(1:5,1:5); %测试集的输入矩阵 2) 网络训练与水位预测 t1=clock; net=jinnewrb(p,t,0.1,300,25); t_test=sim(net,p_test); waterlevel=postmnmx(t_test,mint,maxt); waterlevel=postmnmx(t_test,mint,maxt) datat=etime(clock,t1) figure plot(1:5,v(1,1:5)-waterlevel(1,:),'b:o'); 执行后产生如下图形和结果: 
 LM(levenberg-marquardt)算法的地下水位预测误差 waterlevel =6.787.09 6.596.38 5.66 datat = 0.4690 即第1~5组样本的水位预测序列值为: 6.787.09 6.596.38 5.66 水位实测序列值为:6.926.97 6.846.50 5.75 从中可以看出,LM(levenberg-marquardt)算法具有良好的预测效果,运行效率高且泛化能力很强。 四.结论 对于包含数百个权值的函数逼近网络, LM(levenberg-marquardt)算法收敛速度最快,尤其是当精度要求强较高时,该算法具有更小的均方误差,非线性映射能力较强,用它进行地下水位预测,误差小、速度快,具有一定的推广价值。其不足之处是需要较大的存储空间和较多的训练样本数量。 参考文献:
 [1] 郑阿奇.MATLAB实用教程[M].北京:电子工业出版社,2006.
 [2]罗定贵,郭青,王学军.基于RBF神经网络的地下水动态模拟与预测[J].地球学报,2003,24(5):475-478.
 [3] 董长虹.MATLAB神经网络与应用[M].北京:国防工业出版社,2005.
 [4]飞思科技产品研发中心.神经网络理论与MATLAB7实现[M] .北京:电子工业出版社,2006.
 
   |