| | 首页 | 文章中心 | 下载中心 | 本站特供 | 软硬件结合论坛 | 软硬件结合博客 | | |
![]() | |
| 您现在的位置: 中国软硬件结合技术网 >> 文章中心 >> 软件技术 >> Matlab应用 >> 正文 |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| BP神经网络预测技术在船舶与海洋工程中的应用研究 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 作者:杨建民 文章来源:中国知网 点击数: 更新时间:2007-2-21 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 摘要:人工神经网络作为一个具有高度非线性映射能力的的计算模型,在工程中具有广泛的应用前景。在数值预测方面,它不需要预选确定样本的数学模型,仅通过学习样本数据即可以进行预测。本文结合船舶与海洋工程的一些实际问题,探讨了利用BP神经网络进行数值预测的方法和应该注意的问题,并给出了一些有益的建议。 关键词: 人工神经网络,BP网络,数值预测,船舶与海洋工程 0 引言 人工神经网络[1](ANN-artificial neural networks)是属于人工智能(Artificial Intelligence)范畴的一种计算技术,它根据人们对生物神经网络的研究成果设计出来,具有良好的数学描述,可以方便的用计算机程序加以模拟。作为一种具有高度非线性映射能力的计算模型,它已被广泛应用于模式识别、自动控制等诸多领域。在数值预测[2][3][4][5][6]方面,它不需要预先确定样本数据的数学模型,仅通过学习样本数据即可以进行相当精确的预测。这项技术在船舶与海洋工程方面的应用[7][8],国内外已见发表。但笔者经研究发现,这些文献所采用的算法还有需要改进的地方,对于神经网络算法具体应用时的关键技术也没有作系统的阐述。本文的工作正是基于这样的背景,试图能起到抛砖引玉的作用,对国内外同行的研究有所帮助。 本文之所以采用BP算法主要是因为该算法目前应用最为广泛,成果相当显著,而且结构简单,易于实现,功能也较强。 1 BP神经网络及改进 BP神经网络[1]就是采用BP(Back propagation)算法进行训练的网络,该网络具有一个输入层,一个输出层和至少一个隐藏(中间)层,研究结果表明,增加隐藏层的层数不一定能提高网络的精度和表达能力,一般情况下,选用一个隐藏层就足够了, 此时其结构如图1所示。BP算法是非循环多级网络的训练算法,其学习过程由正向传播和反向传播组成,输入值经过非线性变换从输入层经隐单元逐层处理,并传向输出层,每一层神经元的状态将影响到下一层神经元状态,如果在输出层不能得到期望的输出,则转入反向传播,通过修改各神经元权值,使误差信号最小。 2 BP预测算法的实现 2.1 预测算法思想 运用BP算法进行数值预测的思路可简单描述为:(1)收集一定规模的样本集,采用BP算法进行训练,使网络收敛到预定的精度;(2)将网络权值矩阵保存到一存储介质中,例如文本文件或者数据库;(3)对于待预测数据的输入部分,从存储介质中读出网络连接权值矩阵,然后通过BP神经网络的前向传播算法计算网络输出,经过处理即是预测出来的数值向量。 2.2 样本集数据处理 由于BP神经网络的输出值在0~1之间,而且当输入值在-0.6~0.6之间时变化较快,所以应该对学习样本数据进行一定的压缩处理[2] [3] [4],使之满足网络计算的要求。对于船舶与海洋工程(以下简称船海工程)来说,绝大多数情况下处理的输入数据都是正的实数,同时为了减少计算误差,一般可以将将输入数据压缩在(0.1,0.9)范围内,对输出数据也可如此处理。 3 算例及分析 笔者根据前述算法,用C++语言编制了BP神经网络数值预测程序,在Vc++6.0上调试通过,所用电脑配置为PIII933MHz主频, 例 1 现有一模型[13],具有如下映射特性,试拟合之。 X1=1 1 1 1 Y1=1 0 0; X2=0 1 0 0 Y2=0 1 0; X3=1 1 1 1 Y3=0 0 1 1 0 0 1 0 1 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 0 1 1 0 0 1 0 1 0 0 1 1 1 1 这是一个足以考察BP神经网络功能的算例,输入数据4行4列,输出数据3列,它们之间是强非线性映射关系。为处理方便,将输入数据视为一16维向量,按行存放,输出数据为3维向量,隐藏层神经元数取为8,网络精度取为1.0e-3,N取为50000,开始时α=0.1,β=0.8,λ=0.05。结果,仅经过59次训练,耗时不到1秒,网络即达到预定精度,此时E= 7.83415e-4,将样本集中数据输入部分作为待预测数据时,预测(拟合)结果分别为Y‘1=[0.00945159 0.00519334 0.992881],Y‘2=[0.991788 0.0106014 0.00561761],Y‘3=[0.00418537 0.990372 0.00961512],误差均小于1.1%。可见笔者给出的BP训练算法具有相当优异的性能。 例 2 本算例见文献[7],该文收集有8艘比较接近的散货船作为样本船,其输入参数为船长L、船宽B、前吃水TF、后吃水TA、排水量△、舵面积AR、桨直径DP、桨螺距P和航速V,输出参数为回转试验的进距Ad、横距Tr和战术直径DT。具体参数值见下表: 表 1 样本船参数
表 2 样本船试验数据
对该算例,隐藏层神经元数取为12,网络精度取为1.0e-2,N取为50000,开始时α=0.6,β=0.9,λ=0.05。结果,仅经过332次训练,精度即达到要求,此时E=9.86273e-3,耗时约两秒,远快于该文献的12000次训练,这主要得益于笔者采用了动态学习因子和惯性因子技术,加快了收敛速度。此时,对样本集中数据拟合结果如下表所示。 表 3 BP神经网络拟合结果
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||