资源描述
基于Matlab的神经网络在工业用水量
预测方面的探讨
【摘 要】: 工业用水量预测对工业企业的规划、运行具有非常重要的作用。本文利用湖南某企业10年的工业用水量时间序列记录资料作为训练样本,基于Matlab6.1 NNTool中的 Bayesian正则化法建立湖南地区纺织企业工业用水量预测模型。结果表明,由Bayesian法建立的 BP网络能较好地反映了纺织企业用水量规律。
【关键词】:工业用水量;Bayesian正则化;BP网络;时间序列
【Abstract】: The predictive amount of water is very important to the program and option of the industrial enterprise. This reference concentrate of the indexes of time series for the amount of water as studying sample,which is in textile business enterprise in Shanxi province. Based on the Bayesian regularization algorithm from Matlab6.1 NNTool,it establish the model the amount of water in textile business enterprise in Shanxi province. The result shows, the network of BP which is set up by Bayesian algorithm greatly reflects the regulation amount of water for the textile business enterprise .
【Key words】: The amount of water for the industrial enterprise,Bayesian regularization algorithm,BP network,Time sequence
1 引 言
城市工业用水量在城市总用水量中占有较大比例,其预测的准确度对城市规划中的重大工业项目选址、工业结构调整及城市工业政策制定等具有重要影响。同时,企业掌握未来用水量的需求,对水污染的防御和控制有方向性的指导作用,有助于企业开展节约用水工作,为优化改建提供最必要的资料。
由于影响工业企业用水量的因素很多,各因素与用水量之间呈现复杂的非线性关系,因而要将各种因素归于同一回归方程是相当困难的,而且样本序列不可避免的含有噪声。传统的统计模式加经验指标的数据处理方法已不能较好的解决这一问题。近几年来,人工神经网络(Artificial Neural Network,以下简称ANN) 广泛应用于目前的水资源研究,涉及的具体领域包括气候影响分析、水质分析、水文预测与预报、地下水管理和水库优化调度等。
“误差逆传播网络” ( Error Back-Propagation Network) 简称BP人工神经网络,是目前水科学领域应用最广的人工神经网络。许多学者对经典BP网络存在的稳定性差等缺陷进行了研究,提出了不少改进方案,这些方案有的能够提高网络的收敛速度,有的则有助于脱离局部极小,提高网络的收敛精度。本文采用湖南某企业10年的工业用水量时间序列记录资料作为训练样本,基于Matlab(Matrix laboratory)6.1软件中的神经网络工具箱(Neural Network Toolbox简称NNTool)优化网络参数和样本划分,建立网络模型,并用于纺织企业工业用水量预测。
1.1 建模思路
工业用水量为一维的时间序列数据,可设为Q1,Q2,…,Qn,其中n为用水量随时间推移的实测值,预测模型可表示为:
Qt=f(Qn) (1)
工业用水量时间序列预测模型的建立就是寻找f(·)的过程。根据Robert Hecht-Nielson理论,一个三层的BP网络可以以任意精度完成n维到m维的映射。因此,只要选取合理的神经网络结构和参数,使用BP网络即可较精确的反映出函数f(·)。从这个意义上来说,建立预测模型主要应用的是神经网络的函数逼近功能。与传统的数据拟合方式不同的是,所逼近的函数f(·)的描述方式是隐含的。将预处理的用水量时间序列作为学习样本输入BP网络进行学习,网络在反复多次训练中对自身结构和参数进行优化,以记忆学习样本所含信息,并获得联想的能力,训练完成后得到稳定的网络结构、连接权值和阈值[1]。
BP网络用于预测的关键有二:一是学习样本的选取及样本特征的提取。训练样本的预处理方式及数量直接关系到预测模型建立的准确性;二在于处理单元(神经元)、网格结构和学习算法参数等的确定。一般的,训练样本必须达到一定数量才能满足网络精度的要求。
1.2 BP的经典理论
BP算法是利用实际输出与期望输出之差,对网络的各层连接权值和各节点的阈值由后向前逐层校正的一种多层前馈型神经网络。根据最小二乘原理和梯度搜索技术,先通过正向传播,输入信息要先向前从输入层节点传播到隐含层节点,经过作用函数后,再把隐含层节点的输出信息传播到输出层节点,最后给出输出结果。如果在输出层得不到期望输出,则转向反向传播,将误差信号沿原来的连接通路返回,通过修改各层神经单元(节点)的权系数(Weight)和阈值(Threshold),使得误差信号最小。如下所示:
令Y=[y1,y2,…,yn]T,T=[t1,t2,…,tn]T分别为网络的实际输出(input)和期望输出(target);ω为网络的目标函数:
Ep(ω)=1/2∑∑ (yjp-tjp)2 (2)
隐含层和输出层节点的净输入都是前一层节点输出的加权和。每一节点的激活程度由它的输入信号、传递函数和节点的偏置(阈值)来决定[2]。
图1 BP神经网络结构图
1.3 Bayesian正则化算法
Bayesian正则化法(Bayesian Regularization)是避免神经网络过拟合现象的常用方法。过拟合(overfitting)是指网络训练精度很高,但推广检验样本精度较差,也称为网络的泛化能力差。如果神经网络的规模远远小于训练样本集的大小,则发生过拟合的机会就很小。正则化方法就是通过修正网络的训练性能参数来减小网络的规模从而提高其推广能力。标准的神经网络的训练性能函数采用均方误差函数mse,即
(3)
式中ei——预测值与实际值的误差;N——样本对的个数。
在Bayesian正则化方法中,网络性能参数经改进变为如下形式:
(4)
式中γ为比例系数,msw为所有网络权值平方和的平均值,即
(5)
通过采用新的性能指标函数msereg,可以在保证网络训练误差尽可能小的情况下使网络具有较小的权值,即使得网络的有效权值尽可能少,这实际上相当于自动缩小了网络的规模。常规的正则化方法通常很难确定比例系数γ的大小,而Bayesian正则化方法则可以在网络训练过程中自适应调节γ的大小,并使其达到最优。在NNTool中,贝叶斯正则化方法是通过trainbr函数来实现的。它依据Levenberg-Marquardt优化理论对网络的权值和阈值进行调整[2]。
2 预测模型的建立
2.1 样本分析及数据预处理
本文使用湖南省某市某企业1992年~2001年10年的工业用水量实际监测值。对于一个时间变量的非平稳随机时间序列,用传统的非线性函数逼近方法很难实现,如图2所示。
图2 1992~2001某企业的工业用水量
预处理学习样本是为了增加网络权值和阈值对各因子数值变化的灵敏度。对输入样本进行归一化处理,使数值差距较大的输入都落在神经元转换函数梯度最大的区域。
对于工业用水量时间序列Q=(Q1,Q2,…,QT),令qi=Qi/Qi,得到q=(q1,q2,…,qt)。
(6)
经过上述变换后,影响因子都转换到[-1,1]范围内[3]。
2.2 样本对的划分
设整个的有效样本数据总数为T,将T个样本分成训练集(training set)和测试集(test set)2个集合。设两个集合的数据个数分别为k、T-k。训练集数据用于更新网络权重和偏置量;测试集用作对未知样本进行测试并检验网络的计算精度。样本对的构成思路如下:要预测某年某月的用水量,可以以当年该月的前m个月的用水量为训练集,即输入m个影响变量。例如: 以94年3月份的用水量为基准,采用94年1、2月份,93年11、12月份四个用水数据作为输入矢量集,94年3月份用水数据作为期望输出,得到一组样本对的映射。以此类推,可得到m×(k-m)的输入矩阵和1×(k-m)的目标矩阵。在本文中:10年的数据按时间序列排列有120个数据,将前70个数据作为训练集,用于模型的建立;后50个作为测试集,用于模型的检验和预报效果的评估。考虑到工业用水的特点,取m=12较好。
3 水量预测模型的应用
3.1 BP神经网络结构与参数的优化
将处理好的学习集数据输入Matlab数值计算软件,应用贝叶斯正则化函数trainbr对网络进行训练和优化。输入层含有m个影响因子,故BP网络拓扑结构为m-x-1。隐层节点数的选择在目前还没有理论上公认的推导方法。大多通过反复学习,在相同总体误差情况下,选择收敛最快的;或用不同的x值训练网络,最佳x个数由网络训练的最小系统误差确定出。。通过网络调试试验,结果表明:当在x=25 时网络能使测试集误差降至允许误差范围内。最终构建的网络结构如下图所示:
图3 构建的BP网络结构示意图(W为权重,b为偏置)
另外,通过多次的对比分析,可得到最佳网络参数的具体内容如下所示:
net.trainParam.show=5; %显示训练结果的间隔步数
net.trainParam.epochs=1000; %最大训练步数
net.trainParam.goal=0.0001; %训练目标误差
net.trainParam.mu=0.0002; %学习系数的初始值,Marquardt调整参数
net.trainParam.mu_dec=0.1; %学习系数的下降因子
net.trainParam.mu_inc=10; %学习系数的上升因子
net.trainParam.mu_max=1000000;%学习系数的最大值
net.trainParam.min_grad=1e-10; %训练中最小允许梯度值
3.2 计算结果与分析
由于该企业是湖南地区的重点企业,各级主管部门较为重视,企业生产用水量数据详实、可靠性较高。十年中只有两三个月份没有真实记载,在数据预处理时采用内插法估计出该月的用水量。因此该企业工业用水量时间序列基本能较客观地反映湖南省纺织工业生产用水状况。在P4 cpu1.60GHz计算机上操作,BP神经网络预测该纺织企业用水量模型的实际数据与预测结果如表1所示。
表1 原始数据、经平滑后的原始数据和预测数据表
年份
月份
1998
实际
1998
平滑
1998
预测
1999
实际
1999
平滑
1999
预测
2000
实际
2000
平滑
2000
预测
2001
实际
2001
平滑
2001
预测
一月
25.7
25.05
23.3308
26
24.35
24.8062
24.3
22.35
22.161
21.8
22.4
22.1958
二月
26.2
25.95
22.7779
20.6
23.3
24.2257
19.7
22
21.9605
22.5
22.15
21.9051
三月
28.2
27.2
24.6324
21.7
21.15
22.6947
20.7
20.2
21.7261
23.8
23.15
22.7801
四月
26.3
27.25
25.1493
25.1
23.4
23.0384
23.4
22.05
22.6725
24.1
23.95
22.9211
五月
20.9
23.6
23.6024
22.9
24
23.5275
19.5
21.45
22.2776
23.8
23.95
23.5373
六月
25.1
23
24.4216
25.6
24.25
25.6419
22.6
21.05
23.6558
23.8
23.8
24.2438
七月
28.4
26.75
26.042
28.3
26.95
27.3382
26.2
24.4
25.815
27
25.4
25.0587
八月
27.8
28.1
26.854
27.2
27.75
26.5113
24.4
25.3
25.2079
25.4
26.2
25.2806
九月
27.3
27.55
27.2539
27.3
27.25
26.0844
25.1
24.75
24.7927
22.5
23.95
23.7123
十月
23.9
25.6
24.6871
23.1
25.2
24.2012
22.5
23.8
23.1957
21.1
21.8
21.9707
十一月
21.7
22.8
22.2972
20.4
21.75
21.6298
21.8
22.15
21.4553
21
21.05
21.0872
十二月
22.7
22.2
22.9131
20.4
20.4
21.2414
23
22.4
22.387
20
20.5
20.9595
在这里,我们将实际数据资料作了初步的平滑处理,消除一些较明显的噪声,有利于预测效果的比较;将对部分训练集的仿真也列如图4中,可以观察网络的泛化能力。可以发现,经过trainbr函数训练,网络对噪声不敏感,具有较好的推广能力。
图4 1998~2001年训练及预测变化曲线和实际曲线对比图
图5 预测绝对误差变化曲线图
3.3 结论
从表1来看, BP神经网络预测值的合格率在85%以上(相对误差值<5%为合格),计算值与实测值的变化趋势基本吻合。图5的误差曲线呈随机波动状态,说明训练、预测结果的偏差无显著的趋势。因此, BP神经网络预测模型在工业用水量等的中长期预测领域内具有良好的应用前景。
在网络建立和调试过程中,还得出以下结论:
(1)单隐层的函数逼近效果优于双隐层;使用双隐层或增加神经元个数都会大幅度的增加训练时间。
(2)不能过于追求较小的误差训练目标(goal)。过小的goal值会使网络陷入局部最小点,即过拟合状态;同时也会增加训练时间,甚至无法收敛。一般的工程问题goal值选到0.01~10e-5即可。
(3)网络调试众多参数中,以神经元个数和mu值对模型运行效果尤为突出。但神经元个数的选择与函数逼近效果并不呈线性关系。例如:当15个神经元时网络泛化能力较好,而25个时稍逊,这并不意味着30个神经元的效果更糟糕。神经元个数的选择与mu值密切相关。
另外,通过调用Matlab 6.1中的专业工具箱及可视化图形用户界面(GUI),用户不必再编写自己学科范围外的基础程序,避开了繁杂而又繁琐的子程序的编写任务,可以专注于研究的学科内容。
参考文献
[1]王日莲,董曼玲,人工神经网络在水文预报中的应用[J], 水利水电科技进展2002(22):33~37
[2] 许东,吴铮.基于MATLAB6.X的系统分析与设计[M].西安电子科技大学出版社,2002.9.
[3] 赵瑞,申金山.神经网络在城市用水量预测中的应用研究[J]. 郑州工业大学学报,2000,21(1):75~77.
[4] 陈丽华、常沁春,BP网络应用黄河水质的预测研究[J].兰州大学学报,2003(39):53~56
[5] 邵青,SBR工艺中pH值变化时间序列的BP网络预测模型[J].中国农村水利水电.2002(8):40~42
[6] Liu Guodong,Ding Jing.Several problems of application of back propagation neural network to hydrologic forecast[J],Water Supply Research,1999,(1):12~17
[7] Dong Faxiang,Urban & Industry Water Conservation Theory[M].China Architecture & Building Press.2000.6
展开阅读全文