论文部分内容阅读
摘 要:介绍利用Matlab神经网络工具箱,通过各类网络参数的整定,设计出能够准确预测青草沙水库库外潮位变化的BP神经网络。计算结果表明,设计的BP神经网络模型能够准确地预测出潮位的变化情况,有着良好的精度及泛化能力。
关键词:人工神经网络 青草沙 潮位预测
中图分类号:TV675 文献标识码:A 文章编号:1007-3973(2013)012-035-02
青草沙水库是我国最大的河口江心水库,相比黄浦江上游、陈行水库及东风西沙水源地,青草沙水库有着库容大(有效库容达4.35亿立方米)、供水量大(设计供水规模719万立方米/日)、水质好(总体水质达到地表水Ⅱ类标准),在水库蓄满时,可在不取水的情况下连续供应68天。若能够提前预知库外潮位变化情况,水库管理者就能准确制定每日的闸门运行调度计划,使水库总体蓄水量始终保持在合理的范围内,确保1300万上海市民的饮用水安全。针对这一情况,本文提出了一种利用BP神经网络的方法对青草沙库外潮位进行分析和预测的方法。
1 BP神经网络基本原理
BP(Back Propagation)网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。
典型的含有一个隐含层的BP网络模型,在模型的运行过程中,经过反复学习训练,确定与最小误差相对应的网络参数(权值和阈值),训练即告停止。此时经过训练的神经网络即能对类似样本的输入信息,自行处理输出误差最小的经过非线形转换的信息。
具体算法如下:
第一步:初始化,赋给Wij和Wjk各一个较小的随机非零值。
第三步:计算样本的误差项
对所有样本重复第二步和第三步。
第四步:按权值修正公式修改权值
第五步:按新的权值计算输出Yk,考察误差是否达到规定的要求。若达到,则学习结束,否则重复第二步至第五步,直到误差达到要求为止。
2 BP神经网络模型的建立
2.1 网络层
1989年,Robert和Hecht—Nielson证明了对于任何闭区间内的连续函数,都可以用一个隐含层的BP网络来逼近,因而一个三层的BP网络可以完成任意的N维到M维的映射。
2.2 输入层
由于是对潮位进行预测,而潮汐现象是有着非常明显的周期性变化规律,故只需要将上一个时间段的潮位的测量值作为输入变量即可。为了能够充分反映潮汐的变化规律,输入层神经元个数设置为5个。
输入层的训练数据采用2013年6月17日开始青草沙水库上游库外一个潮周期潮位的每小时实测值,训练时将5小时连续的潮位数据编程一组作为模型的输入变量。
2.3 隐含层
如何决定隐含层的神经元个数,取决于输入输出的非线性程度。一般来说,隐含层的神经元个数太少,可能不能训练好网络,不能识别以前没有学习过的样本,容错性差;但隐含层的神经元个数太多,网络很“脆”,能够很好地对训练集分类,但当输入模式有稍微的变,不同于训练集,就不能进行判别,而且显著的增加训练时间,容易出现过度拟合。隐含层的神经元个数的选择是一个十分复杂的问题。
h为隐含层层数,M为输出神经元数,N为输入神经元数,a为1~10之间的常数,设置好参数后对所有的h值进行模拟计算,以确定最佳的隐含层神经元个数。
3 计算实例
网络的训练数据采用2013年6月17日 2:00至2013年7月5日 2:00青草沙水库库外潮位每小时实测数据,共计406组训练数据。
将所有训练数据的输入值输入Matlab的工作表,命名为P,将所有训练数据的输出值输入Matlab的工作表,命名为T。
3.1 隐含层层数的确定
在确定隐含层的层数是,本文采用的是列举比较法,即根据公式(7)计算出在所有符合条件的隐含层的神经元个数,然后建立拥有不同隐含层神经元个数的模型,最后进行训练,选择训练后误差最小的模型,从而确定隐含层的神经元个数。
最终的训练成果如图1所示,由此可见,隐含层神经元个数为9个时,模型训练出来的误差最小,从而设计网络结构中隐含层神经元个数为9个。
3.2 预测效果分析
在隐含层神经元个数设置为n=9,重新对网络进行训练。训练后,将8月1日至8月8日的青草沙水库上游库外潮位数据作为网络的输入值,通过自动计算获得网络的输出值,该值即为神经网络的预测值。将该值与实际值进行比较,结果如图2和表2所示。
由图2可见,模型的预测效果非常好,能够很好地反映出潮位的变化趋势。为了进一步分析误差,将8月1日至8月8日每天12:00的整点潮位实测值与预测值进行列举,并计算实际值与预测值之间的误差,结果如表2所示。
由表2可见,实际值与预测值的误差全部控制在10%以内,说明由模型计算出的预测结果是可信的,是有实际运用价值的。
4 结论
BP神经网络具有很强的学习、联想和容错功能,具有高度非线性函数映射功能,将其应用于青草沙水库库外潮位的预测,取得了令人满意的结果;Matlab中的工具箱使 BP网络的建立、训练以及仿真都变得非常简单,而且训练过程及效果非常直观,使神经网络应用于实际具有更大地可行性。
参考文献:
[1] 高隽.人工神经网络原理及仿真实例[M].北京:机械工业出版社,2010.
[2] 李丽霞,王彤,范逢曦.BP神经网络设计探讨[J].现代预防医学,2005,32(2).
关键词:人工神经网络 青草沙 潮位预测
中图分类号:TV675 文献标识码:A 文章编号:1007-3973(2013)012-035-02
青草沙水库是我国最大的河口江心水库,相比黄浦江上游、陈行水库及东风西沙水源地,青草沙水库有着库容大(有效库容达4.35亿立方米)、供水量大(设计供水规模719万立方米/日)、水质好(总体水质达到地表水Ⅱ类标准),在水库蓄满时,可在不取水的情况下连续供应68天。若能够提前预知库外潮位变化情况,水库管理者就能准确制定每日的闸门运行调度计划,使水库总体蓄水量始终保持在合理的范围内,确保1300万上海市民的饮用水安全。针对这一情况,本文提出了一种利用BP神经网络的方法对青草沙库外潮位进行分析和预测的方法。
1 BP神经网络基本原理
BP(Back Propagation)网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。
典型的含有一个隐含层的BP网络模型,在模型的运行过程中,经过反复学习训练,确定与最小误差相对应的网络参数(权值和阈值),训练即告停止。此时经过训练的神经网络即能对类似样本的输入信息,自行处理输出误差最小的经过非线形转换的信息。
具体算法如下:
第一步:初始化,赋给Wij和Wjk各一个较小的随机非零值。
第三步:计算样本的误差项
对所有样本重复第二步和第三步。
第四步:按权值修正公式修改权值
第五步:按新的权值计算输出Yk,考察误差是否达到规定的要求。若达到,则学习结束,否则重复第二步至第五步,直到误差达到要求为止。
2 BP神经网络模型的建立
2.1 网络层
1989年,Robert和Hecht—Nielson证明了对于任何闭区间内的连续函数,都可以用一个隐含层的BP网络来逼近,因而一个三层的BP网络可以完成任意的N维到M维的映射。
2.2 输入层
由于是对潮位进行预测,而潮汐现象是有着非常明显的周期性变化规律,故只需要将上一个时间段的潮位的测量值作为输入变量即可。为了能够充分反映潮汐的变化规律,输入层神经元个数设置为5个。
输入层的训练数据采用2013年6月17日开始青草沙水库上游库外一个潮周期潮位的每小时实测值,训练时将5小时连续的潮位数据编程一组作为模型的输入变量。
2.3 隐含层
如何决定隐含层的神经元个数,取决于输入输出的非线性程度。一般来说,隐含层的神经元个数太少,可能不能训练好网络,不能识别以前没有学习过的样本,容错性差;但隐含层的神经元个数太多,网络很“脆”,能够很好地对训练集分类,但当输入模式有稍微的变,不同于训练集,就不能进行判别,而且显著的增加训练时间,容易出现过度拟合。隐含层的神经元个数的选择是一个十分复杂的问题。
h为隐含层层数,M为输出神经元数,N为输入神经元数,a为1~10之间的常数,设置好参数后对所有的h值进行模拟计算,以确定最佳的隐含层神经元个数。
3 计算实例
网络的训练数据采用2013年6月17日 2:00至2013年7月5日 2:00青草沙水库库外潮位每小时实测数据,共计406组训练数据。
将所有训练数据的输入值输入Matlab的工作表,命名为P,将所有训练数据的输出值输入Matlab的工作表,命名为T。
3.1 隐含层层数的确定
在确定隐含层的层数是,本文采用的是列举比较法,即根据公式(7)计算出在所有符合条件的隐含层的神经元个数,然后建立拥有不同隐含层神经元个数的模型,最后进行训练,选择训练后误差最小的模型,从而确定隐含层的神经元个数。
最终的训练成果如图1所示,由此可见,隐含层神经元个数为9个时,模型训练出来的误差最小,从而设计网络结构中隐含层神经元个数为9个。
3.2 预测效果分析
在隐含层神经元个数设置为n=9,重新对网络进行训练。训练后,将8月1日至8月8日的青草沙水库上游库外潮位数据作为网络的输入值,通过自动计算获得网络的输出值,该值即为神经网络的预测值。将该值与实际值进行比较,结果如图2和表2所示。
由图2可见,模型的预测效果非常好,能够很好地反映出潮位的变化趋势。为了进一步分析误差,将8月1日至8月8日每天12:00的整点潮位实测值与预测值进行列举,并计算实际值与预测值之间的误差,结果如表2所示。
由表2可见,实际值与预测值的误差全部控制在10%以内,说明由模型计算出的预测结果是可信的,是有实际运用价值的。
4 结论
BP神经网络具有很强的学习、联想和容错功能,具有高度非线性函数映射功能,将其应用于青草沙水库库外潮位的预测,取得了令人满意的结果;Matlab中的工具箱使 BP网络的建立、训练以及仿真都变得非常简单,而且训练过程及效果非常直观,使神经网络应用于实际具有更大地可行性。
参考文献:
[1] 高隽.人工神经网络原理及仿真实例[M].北京:机械工业出版社,2010.
[2] 李丽霞,王彤,范逢曦.BP神经网络设计探讨[J].现代预防医学,2005,32(2).