您的位置:控制工程论坛网论坛 » 教程与手册 » 基于地下水位测量的前向神经网络数据处理方法

jshfq

jshfq   |   当前状态:在线

总积分:17995  2024年可用积分:0

注册时间: 2007-08-06

最后登录时间: 2013-11-04

空间 发短消息加为好友

基于地下水位测量的前向神经网络数据处理方法

jshfq  发表于 2008/6/14 7:15:15      1038 查看 0 回复  [上一主题]  [下一主题]

手机阅读









基于地下水位测量的前向神经网络数据处理方法

 
摘 要:非线性系统广泛存在于自然界,人工神经网络有表示任意非线性关系和自学习等能力,为此类问题提供了解决方法。本文在已提供的一系列地下水位测量数据的前提下,分别利用径向基函数神经网络,BP神经网络对地下水位数据进行训练样本集与检测样本集的构建,并分别对仿真结果进行了比较评价。
关 键 词:前向神经网络;非线性;RBF神经网络;BP神经网络
中图分类号:TP118               文献标志码:A

Data processing method for feedward neural network based on measure 
of groundwater level
ZOU Jing, YU Yang, CHEN Liang
(School of Information science &Engineering, Shenyang Ligong University, Shenyang, 
Liaoning 110168, China)


Abstract: Nonlinear system exist extensively in nature, artificial neural network have the ability that can express arbitrarily nonlinear relation and self study, and offer a method that solve these problems. Under the premise of the groundwater level’s data which had already provided, this paper use RBFNN and BPNN respectively to train and test the sample gather of these data, and set up corresponding network. In the last, this paper compare and critique the corresponding simulation result.
Keywords: feedforward neural network; nonlinear; RBF neural network; BP neural network


    前向神经网络结构是阶层型的,信息值可以从输入层单元传播到它上一层的单元。第一层的单元与第二层所有的单元相连,第二层又与其上一层单元相连,同一层中各单元之间没有连接[1] 。前向网络中神经元的输入输出关系,可采用线性阈值硬变换或单元上升的非线性变换,均采用监督学习方式[2],其中的RBF神经网络和BP神经网络在逼近任意的非线性映射中都是很好的解决方法[3]。


   本文把一系列地下水位测量数据作为样本,并把所有的数据样本分为训练样本和检测样本对其进行神经网络的构建,分别用两种前向型神经网络训练样本和检测样本,分析比较两种网络的逼近误差,并由此给出评价结论。


1. 前期准备
    地下水位主要受河道流量、气温、饱和差、降水量和蒸发量等重要因子影响,由此归纳出24组数据,如表1.1所示。选定其中的1—19组作为训练样本,20—24组作为测试样本。(数据已做过归一化处理)



表1.1 地下水位及其影响因子监测数据表

2. RBF网络的创建、训练和测试
    径向基函数(RBF)神经网络由三层组成。输入层节点只传递输入信号到隐层,隐层节点由像高斯函数那样的辐射状作用函数构成,而输出层节点通常是简单的线性函数[4]。隐层节点中的作用函数(基函数)对输入信号将在局部产生响应,也即当输入信号靠近基函数的中央范围时,隐层节点将产生较大的输出,由此可以看出这种网络具有局部逼近能力,所以径向基函数网络也称为局部感知场网络[5]。 


    由上表,得到输入向量p与目标向量t。(训练样本)
    输入测试样本p_test,目标测试样本t_test。(测试样本)
    采用精确设计函数newrbe创建一个0误差的RBF神经网络,自动选择隐含层的数目。
    SPREAD=1.5;
    Net=newrbe(p,t,SPREAD);
    SPREAD为径向基函数的分布密度,越大函数越平滑。由于网络的建立过程就是训练过程,因此,此时得到的网络net已经是训练好了的。如图2.1的RBF神经网络模型。




图2.1 RBF神经网络模型


    然后对网络进行仿真,验证其预测误差如图2.2所示。
    y=sim(net,p_test)
    运行结果y=0.6455 1.0844 0.3816 0.0064 0.1837
    plot(1:5,y-t_test);%得出预测误差如图2.2,由图可见,对于地下水位的预报来说,网络的预报误差并不大。
    此外,SPREAD值的大小影响网络的预测精度。接下来,分别在SPREAD=2,3,4,5的情况下计算网络的预报精度,代码为:
    y=rands(4,5);
    for i=1:4
        net=newrbe(p,t,i+1);
        y(i,:)=sim(net,p_test);
    end
    plot(1:5,y(1,:)-t_test,’r’);
    hold on;
    plot(1:5,y(2,:)-t_test,’b’);
    hold on;
    plot(1:5,y(3,:)-t_test,’g’);
    hold on;
    plot(1:5,y(4,:)-t_test,’.’);
    hold on;



    
图2.2 RBF网络训练误差曲线
    

图2.3 SPREAD取不同值时的预报误差


  由图可以看出,当SPREAD=2或3时,网络的预报误差最小,可得到理想的结果。


3. BP网络的创建、训练和测试


   利用BP网络对地下水位进行重新预报,选择的BP网络为5*11*1的结构。隐层神经元个数由5*2+1得。训练函数为trainlm。设训练次数为1000.


    创建一个二层网络,其网络模型如图3.1所示。



 
图3.1 BP网络结构模型


    net=newff([0 0.6814;0 0.9697;0 1.0000;0 0.6129;0 1.0000],[11 1],{‘tansig’,’logsig’}, ‘trainlm’);
    net.trainParam.epochs=1000;
    net=tran(net,p,t);
    训练次数图如图3.2
 


图3.2 BP网络训练误差


    %测试样本仿真
    y=sim(net,p_test);
    令y_bp=y-t_test
    plot(1:5,y_bp,’*’);
    hold off;
    则误差图在图2.3中体现出来。


4. 比较评析
    从图2.3中可以看出,对于预报精度来说,BP网络明显不如RBF网络,而且BP网络的训练时间明显大于RBF网络,其训练速度比较慢。RBF神经网络由于其输出层是对中间层的线性加权,使得避免了像BP网络那样繁琐冗长的计算,具有较高的运算速度和外推能力,同时使得网络有较强的非线性映射功能。与BP神经网络相比,由于需要调整的参数比较少,只有一个光滑因子,因此可以更快地找到合适的预测网络,具有较大的计算优势。


5. 结语
    从理论上而言,RBF网络和BP网络一样可近似任何的连续非线性函数。两者的主要差别在于各使用不同的作用函数,BP网络中的隐层节点使用的是sigmoid函数,其函数值在输入空间中无限大的范围内为非零值,而RBF网络的作用函数则是局部的。

1楼 0 0 回复