bioguider.com - 生物导航网

在线投稿 投稿指南 RSS订阅 邮件订阅 资讯通告:2008年网站全面更新,新设想新飞越!

[图文] BP神经网络预测技术在船舶与海洋工程中的应用研究

更新:2007-2-26 来源:Internet 作者:佚名 【

摘要:人工神经网络作为一个具有高度非线性映射能力的的计算模型,在工程中具有广泛的应用前景。在数值预测方面,它不需要预选确定样本的数学模型,仅通过学习样本数据即可以进行预测。本文结合船舶与海洋工程的一些实际问题,探讨了利用BP神经网络进行数值预测的方法和应该注意的问题,并给出了一些有益的建议。

 

关键词 人工神经网络,BP网络,数值预测,船舶与海洋工程

0 引言

 

人工神经网络[1]ANN-artificial neural networks)是属于人工智能(Artificial Intelligence)范畴的一种计算技术,它根据人们对生物神经网络的研究成果设计出来,具有良好的数学描述,可以方便的用计算机程序加以模拟。作为一种具有高度非线性映射能力的计算模型,它已被广泛应用于模式识别、自动控制等诸多领域。在数值预测[2][3][4][5][6]方面,它不需要预先确定样本数据的数学模型,仅通过学习样本数据即可以进行相当精确的预测。这项技术在船舶与海洋工程方面的应用[7][8],国内外已见发表。但笔者经研究发现,这些文献所采用的算法还有需要改进的地方,对于神经网络算法具体应用时的关键技术也没有作系统的阐述。本文的工作正是基于这样的背景,试图能起到抛砖引玉的作用,对国内外同行的研究有所帮助。

本文之所以采用BP算法主要是因为该算法目前应用最为广泛,成果相当显著,而且结构简单,易于实现,功能也较强。

 

1 BP神经网络及改进

 

BP神经网络[1]就是采用BPBack propagation)算法进行训练的网络,该网络具有一个输入层,一个输出层和至少一个隐藏(中间)层,研究结果表明,增加隐藏层的层数不一定能提高网络的精度和表达能力,一般情况下,选用一个隐藏层就足够了, 此时其结构如图1所示。BP算法是非循环多级网络的训练算法,其学习过程由正向传播和反向传播组成,输入值经过非线性变换从输入层经隐单元逐层处理,并传向输出层,每一层神经元的状态将影响到下一层神经元状态,如果在输出层不能得到期望的输出,则转入反向传播,通过修改各神经元权值,使误差信号最小。

2 BP预测算法的实现

 

2.1 预测算法思想 运用BP算法进行数值预测的思路可简单描述为:(1)收集一定规模的样本集,采用BP算法进行训练,使网络收敛到预定的精度;(2)将网络权值矩阵保存到一存储介质中,例如文本文件或者数据库;(3)对于待预测数据的输入部分,从存储介质中读出网络连接权值矩阵,然后通过BP神经网络的前向传播算法计算网络输出,经过处理即是预测出来的数值向量。

2.2 样本集数据处理 由于BP神经网络的输出值在01之间,而且当输入值在-0.60.6之间时变化较快,所以应该对学习样本数据进行一定的压缩处理[2] [3] [4],使之满足网络计算的要求。对于船舶与海洋工程(以下简称船海工程)来说,绝大多数情况下处理的输入数据都是正的实数,同时为了减少计算误差,一般可以将将输入数据压缩在(0.10.9)范围内,对输出数据也可如此处理。

3 算例及分析

 

笔者根据前述算法,用C++语言编制了BP神经网络数值预测程序,在Vc++6.0上调试通过,所用电脑配置为PIII933MHz主频,512M内存,硬盘50G, 现结合两个算例进行分析。

1 现有一模型[13],具有如下映射特性,试拟合之。

X11 1 1 1 Y11 0 0 X20 1 0 0 Y20 1 0 X31 1 1 1 Y30 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神经网络功能的算例,输入数据44列,输出数据3列,它们之间是强非线性映射关系。为处理方便,将输入数据视为一16维向量,按行存放,输出数据为3维向量,隐藏层神经元数取为8,网络精度取为1.0e-3,N取为50000,开始时α0.1β0.8λ0.05。结果,仅经过59次训练,耗时不到1秒,网络即达到预定精度,此时E= 7.83415e-4,将样本集中数据输入部分作为待预测数据时,预测(拟合)结果分别为Y1=[0.00945159   0.00519334  0.992881],Y2=[0.991788    0.0106014   0.00561761],Y3=[0.00418537  0.990372    0.00961512],误差均小于1.1%。可见笔者给出的BP训练算法具有相当优异的性能。

 

2 本算例见文献[7],该文收集有8艘比较接近的散货船作为样本船,其输入参数为船长L、船宽B、前吃水TF、后吃水TA、排水量、舵面积AR、桨直径DP、桨螺距P和航速V,输出参数为回转试验的进距Ad、横距Tr和战术直径DT。具体参数值见下表:

1 样本船参数

序号

L(m)

B(m)

TF(m)

TA(m)

△(t)

AR(m2)

DP(m)

P(m)

V(kn)

1

180

32.2

7.172

8.078

35192

31.446

6.3

4.58

15.8

2

180

31.2

8.09

8.21

37136

32.25

6.5

4.616

15.7

3

183

31.5

3.444

6.871

22773

36.908

5.7

4.212

17.24

4

168

23.2

3.48

6.64

15369

22.99

5.6

4.2

17.19

5

170

28.4

4.07

6.15

18586

28.25

5.6

4.67

17

6

182.3

28.044

5

7.25

23443

24.7

6.15

4.54

13.75

7

145

27.2

2.546

5.937

12013

24.59

5.2

3.809

15.59

8

171.7

22.4

5.48

6.32

17755

26.49

4.915

3.601

16

2 样本船试验数据

序号

1

2

3

4

5

6

7

8

Ad(m)

541.8

705.6

538

529.2

550.8

683.5

482.9

479

Tr(m)

196.2

255.6

217.8

205

321.3

384.6

208.8

235.2

DT(m)

453.6

550.8

534.4

502.3

586.5

663.5

494.5

475.6

 

对该算例,隐藏层神经元数取为12,网络精度取为1.0e-2,N取为50000,开始时α0.6β0.9λ0.05。结果,仅经过332次训练,精度即达到要求,此时E=9.86273e-3,耗时约两秒,远快于该文献的12000次训练,这主要得益于笔者采用了动态学习因子和惯性因子技术,加快了收敛速度。此时,对样本集中数据拟合结果如下表所示。

3 BP神经网络拟合结果

序号

1

2

3

4

5

6

7

8

Ad(m)

552.015

685.374

534.146

524.078

550.905

683.981

480.102

481.28

Tr(m)

186.934

256.893

217.67

206.296

319.808

380.916