基于遗传—神经网络的沿海港口
吞吐量的预测
齐兴敏 尹朝庆
摘 要:针对遗传算法(Genetic Algorithm,GA)和人工神经网络(Artificial Neural Network,ANN)的缺陷,把二者有机结合起来,提出了基于GA—BP神经网络的沿海港口吞吐量的预测模型,并将预测结果与一般BP神经网络做比较,结果表明该模型比一般BP神经网络预测模型的预测精度要高很多。 关键词:遗传算法 神经网络 沿海港口吞吐量
中图分类号:TP389.1 文献标识码:A 文章编号:1006-7973(2006)03-0044-02
一、引言
本文将神经网络和遗传算法有机的结合起来,建立了一种遗传神经网络模型。该模型既克服了GA不具备全局收敛性和ANN易陷入局部最小点的缺陷,又充分利用他们各自的优点。将这个遗传神经网络模型应用到对沿海港口吞吐量的预测中,实验表明它具有较好的全局性和较快的收敛速度,预测精度相当高。
二、遗传神经网络模型 1.遗传算法的思想
遗传算法是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型。其思想源于生物遗传学和适者生存的自然规律,是具有“生存+检测”的迭代过程的搜索算法。遗传算法以一种群体中的所有个体为对象,并利用随机技术指导,对一被编码的参数空间进行搜索。其中,选择、交叉、变异构成了遗传算法的遗传操作;参数编码、初始群体的设定、适应度函数的设计、遗传操作的设计和控制参数的设计五个基本要素组成了遗传算法的核心内容。
GA的基本步骤为:首先对数据进行编码,将它们转换成遗传的基因型表示,然后随机挑选一组编码作为进化的第一代群体,经过选择、交叉和变异操作生成新一代种群,最后通过新老个体产生下一代群体,算法不断重复,直到结束条件得到满足。
为了提高GA的搜索效率,本文引进交叉概率pc和变异概率pm,计算公式如下:
⎧k(f−f)2max⎪pm=(f−⎨max⎪k,f<
fave⎩4
fave),f≥f
cave
(2)
式中k1=k2=1,k2=k4=0.5,fmax为种群中适应度最大的个fave为种群中的平均适体,fc为交叉前父代双亲适应度最大者,应度,f为需要变异个体的适应度。
2.BP算法的基本思想
BP学习算法是一种迭代算法,一次学习过程由输入数据的正向传播和误差的反向传播两个子过程组成。(1)正向传播过程中学习样本由输入单元输入,隐层单元处理后到输出单元,输出单元处理后得到样本的网络计算输出值。(2)误差反向传播:将网络计算输出值与期望输出值做比较,若计算输出值达到期望的结果,则学习过程结束;否则进入误差反向传播过程,把网络输出值与期望输出值的误差由输出单元向输入单元反向传播,在传播过程中修改各层神经元的连接权值。
3.遗传神经网络方法 (1)神经网络结构的确定
本文采用的神经网络结构为:输入节点有6个,输出节点1个,隐含层节点的个数按
公式:Lh≤
I(O+3)+1计算为5个。这里I和O分别为
输入层和输出层节点数,Lh为隐含层节点数上限。
(2)遗传神经网络的学习算法
该算法的主要思想是采用遗传算法对神经网络的N组初始化权值进行快速优化,定出一个较好的解空间,并将此空间作为BP算法的N组初始化权值,然后利用BP神经网络局部搜索能力强的优点,进行精确寻优,找出最优解。
具体步骤表述如下:
⎧k(f)−
1maxfc⎪
(f−pc=⎨max
⎪,<
⎩k3fcfave
fave),f≥f
cave
(1)
收稿日期:2006-1-25
作者简介:齐兴敏 武汉理工大学计算机学院04级硕士研究生 (430063)
第3期 齐兴敏等:基于遗传—神经网络的沿海港口吞吐量的预测 45
1)编码:在区间[-0.5,0.5]上随机产生神经网络的一组权值分布,并将这些权值按顺序(由于本文采用的是三层神经网络,所以其权值的排列顺序为输入层到隐含层的连接权值,隐含层到输出层的连接权值)连接成一个长串。通过编码将这个数值长串转换成GA可以识别的二进制数串。一个二进制数串代表一个个体也即一个染色体。
2)初始化种群:按(1)中的方法产生N个个体,这N个个体构成一个初始化
种群Q,Q=(X1,X2,…,XN)
,Xi(i=1,2…N)表示第i个个体,即神经网络的第i组权值分布,每个Xi=[W1
,
W2,…,W
M],Wk
(k=1,2…M)表示神经网络中两个节点间的连接权值,M为连接权的总数。
3)用神经网络对种群中的每个个体进行训练,计算学习误差E,从而确定适应度值,因为本文选取的适应度函数
f=11n∗
(E+1)
,E=
∑y∗
,n为样本总数,2i
(k−yk)2
yk
为
第k个样本的期望输出,yk为第k个样本的网络输出值。
4)染色体的选择:产生一个位于[0,1]区间的随机数序列,其长度为n。若任一数r 累加概率i qi=j∑=1nj ,fi为第i个染色体的适应值。 5)染色体的交叉:对新一代种群产生一个长度为n且位于[0,1]区间的随机数序 列。若任一随机数r j ,i,j= 1,2…N ai'=ai(1−β)+βaj; aj'=aj(1−β)+βai, 其中∈ai',aj'分别为ai,aβj交叉生成的后代, [0,1]内的随机交叉参数。 6)染色体的变异:在[0,1]区间内产生N个随机数,若 任一随机熟r 7)计算当前群体中每个个体的学习误差及其适应值。找出适应度值最大的个体X,若其学习误差E<ε,则转(8);若E≥ εi ,且当前遗传迭代次数=指定的迭代次数T,则转 (8);若E≥ ε,而当前迭代次数小于迭代次数T,则转(4)。 8)对Xi 解码,得到的神经网络连接权值,再用BP算 法学习,直到误差小于指定的最小值ε,算法结束。 算法中设计到的参数取值分别为:种群大小N=20,训练样本个数n= 11,迭代次数T=100,指定误差ε=0.0001。 三、算法的应用:将遗传神经网络的学习算法应用于对沿海港口货物吞吐量的预测。 1.样本的选取 选取1988年到2004年17年的沿海港口吞吐量(数据来源于2004年统计年鉴)作为训练样本。1988~1993年的吞吐量作为第一个样本的输入,1994年的吞吐量作为输出;再取1989~1994年的吞吐量作为第二个样本的输入,1995年的吞吐量作为输出;以此类推,一共有11个学习样本。 2.数据的预处理 对于每个样本输入向量xk=(x1k,x2k,…,xnk),令 x'= xik−xminik .a+b,式中xik为样本输入向量xk的第i xmax−xmin 个向量xik规范化后的输入值,xmin为所有样本输入值中的最小值,xmax为所有样本输入值中的最大值,参数 a=0.9,b= (1−a) 2 =0.05。 3.结果分析 用GA-BP神经网络预测的1994~2004年的11个吞吐量结果见表1。 表1 1994 ̄2004年的吞吐量预测结果 单位:万吨 年份实际值GA-BP预测 相对误差值 相对误差/ % BP预测值 /% 19947437075843 1.98 76043 2.25 19958016681449 1.60 78787 -1.72 19968515285004 -1.74 83440 -2.01 19979082291639 0.90 92247 1.57 19989223792025 -2.30 94653 2.62 1999105162102912 -2.14 1072231.96 2000125603127976 1.89 122752-2.27 2001142634140737 -1.33 139525-2.18 2002166628164261 -1.42 1692271.56 2003201126203618 1.24 1982701.36 2004246074 248657 1.05 2497651.50 总相对误差/% GA-BP预测 BP预测值 -0.27 值 4.64 从表(1)可以看出,GA-BP预测值的最大绝对值误差为2.3%,最小的才0.27%,误差的比例是比较合理的。 误差比较表(2) 误差绝对值 最小 最大 BP神经网络 1.36 2.62 GA-BP神经网络 0.27 0.90 参考文献 [1] 尹朝庆,尹皓.人工智能与专家系统.[M].北京.中国水利 水电出版社.2001. [2] 陈国良.遗传算法及其应用.[M].北京.人民邮电出版 社.1996.
因篇幅问题不能全部显示,请点此查看更多更全内容