基于改进遗传算法的BP神经网络自适应优化设计概要Word文档格式.docx
《基于改进遗传算法的BP神经网络自适应优化设计概要Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于改进遗传算法的BP神经网络自适应优化设计概要Word文档格式.docx(20页珍藏版)》请在冰点文库上搜索。
(Tel.:
023265106464;
E2mail:
Chaiyi@.
minE1(w,v,θ,r=1
2
6N1
k=1
6n
t=1
[yk(t-^yk(t]2
s.t w∈Rm×
p, v∈Rp×
n,θ∈Rp,r∈Rn
(1
其中E
1为网络总的误差,y
k
(t为教师信号,^yk
(t为网络实际输出
^yk(t=f{6pj=1vjt・f[6mi=1wij・xi(t+θj]}+rt
(2
设E
2=
1
N-N16
N
k=N1
[yk(t-^yk(t]2为检测样
本平均均方误差.表示对网络输出数据可靠性的估计.E2小,网络输出的可靠性大一些,反之,网络输出就不大可靠.
在神经网络的应用过程中,由于被逼近样本的性质不能精确知道,因此即使在网络误差E
为零的条件
下,也未必能保证E
2达到要求.往往会出现E
非常
小,而E
却无法满足要求.这就是所谓的“过拟合”现
象,“过拟合”现象直接影响网络的泛化能力,使得网
络最终失去实用价值.所以算法的设计应当使得E
小于一个给定误差ε,满足网络输出的可靠性.
2 算法的设计
本算法通过使用EGA在由BP网络初步确定的基本解空间上(网络连接权和神经元阀值的取值范围,通过对基因的选择,交叉变异操作.对样本个体不断择优进化,直至进化K(总的进化代数由初始时给定代后,选取个体中适应度最大的个体来确定网络的结构和网络的初始权值和阀值.
1基因编码
基因编码正像遗传基因代表了DNA中的必要信息一样,它在将问题参数表示成一串有意义的符号的过程中代表了有关这一问题的必要信息.本文中编码生成的码串由开关系数编码、权重系数编码两部分组成.开关系数编码表示隐含层神经元与输入输出神经
元的连接状态,开关系数编码串长l
可由初始隐含层神经元的个数来确定.而实际隐含层神经元的个数由开关系数编码中1的个数确定.权重系数编码表示网
络的连接权,采用浮点数编码,串长l
=m×
l1+l1×
nl2(其中m为输入节点的个数,n为输出节点个数.编码按一定的顺序级联成一个长串,每个串对应一组网络结构、连接权.
2基本解空间的确定
采用三层BP网络来初步确定基本解空间(网络连接权和神经元阀值的取值范围,首先设定网络的
训练次数以及网络的训练误差ε
1,输入训练样本进行
训练,之后再输入检测样本得到误差ε
在误差ε1和
ε
都比较满意时,把连接权值中的最大值和最小值分
别记为u
max
和u
min
以该区间[umin∃δ1,umax+δ2](其
中δ
1,2
为调节参数作为连接权的基本解空间.
3初始化样本群体
该步骤的关键是设定群体规模,即基因编码组合
数目.群体规模作为遗传算法的主要控制参数之一,对
于遗传算法的效能的发挥是有很大影响的.在本文中
初始群体由L个个体构成,每个个体由两部分组成,第
一部分是串长为l
的0-1串表示初始开关系数;
第
二部分是区间[u
min∃
δ1,umax+δ2]上的l2个均匀分
布随机数表示初始权值系数.设定群体规模,即设定基
因编码组合数目.我们先随机生成一定数目的基因个
体,然后从中挑出最好的个体加到初始群体中.这个规
模不断迭代,直至初始群体规模达到了网络预先设定
的规模.
4适应度函数计算
在遗传算法中,对适应度函数的唯一要求是针对
输入可以计算出能加以比较的非负结果.因此这里采
用网络的误差函数作为适应度函数,并认为误差大的
个体其适应度小,具体表示为
F(w,v,θ,r=10-6
N1
[yk(t-^yk(t]2(3
计算群体中每个个体的适应度,由开关系数编码得到
网络的隐节点个数,由权重系数码得到网络的连接权,
输入训练样本,按照(3式计算每个个体的适应度.
5引入竞争的选择继承
选择继承的目的是为了从当前群体中选出优良的
个体,使它们有机会作为父代产生后代的个体.判断个
体优良与否的准则就是各自的适应度.计算完各个体
的适应度后,选择适应度大的个体遗传到下一代,从而
使问题的解越来越接近于最优解空间.经典的选择继
承是由下式确定的[1]
ni=(fit/fitλ ,(4
式中,n
i
为a
在(t+1代时的繁殖个数,f
的适
应度函数值,f
为p的适应度函数值的和.但在研究中
发现经典的选择继承的淘汰率过低,特别是当解集中
的成员数比较小时,容易发生震荡.因此为获得较好的
继承个体,在这里引入淘汰率rd,即每遗传一代,则适
应度函数最差的几个成员都被淘汰掉,通过这一竞争
机制能够比较好的解决这个问题,选择继承的过程表
示如下:
nti=(fit/fitλ ,(5
式中f
t=6λ(1-rdi=1fit.
29重庆大学学报(自然科学版 2007年
6交叉算子和变异算子
交叉就是按较大的概率从群体中,随机选择2个个体,交换这2个个体的某些位,交换的目的在于产生新的基因组合,以限制遗传材料的丢失.变异是以较小的概率对群体中的某些个体的位进行改变,在二进制编码中,即“1”变“0”,“0”变“1”;
在实数编码中是对某些个体的位在(0,9产生一个随机数代替原来个体的位.变异的目的在于保护一些适应度低的个体中的优良基因,防止寻优过程中过早收敛于不成熟区.
(1对开关系数编码的交叉和变异操作
对开关系数编码的交叉和变异采用经典遗传算法中的单点交叉、均匀变异的方法方法,在交叉和变异运算时,当某个神经元删除时,相应的有关权重系数编码和阀值系数编码被置为0,也就是说这个网络连接被删除;
而运算增加某个神经元时,则随机初始化有关权重系数编码和神经元阀值编码.由于权重系数编码和神经元阀值编码采用浮点数编码,需要设计新的交叉算子和变异算子.
以p
c
的概率对选择后的个体进行交叉.设在第i个体和第i+1个体之间进行交叉,交叉算子如下:
Xt+1i=ci・Xti+(1-ci・Xti+1
Xt+1i+1=(1-ci・Xti+ci・Xti+1
,(6
式中Xt
Xti+1是一对交叉前的个体,Xt+1i,Xt+1i+1是交叉后
的个体,c
是区间[0,1]的均匀分布的随机数.
m
的概率对交叉后的个体进行变异,设对第i
个体进行变异,变异算子如下:
Xt+1i=Xti+ci ,(7
i是变异前的个体,Xt+1
是变异后的个体,如变
异点在权重系数编码上则c
i是区间[u
-δ1-Xti,
umax+δ2+Xti]上的均匀分布随机数;
这样可以保证变异后的个体仍在搜索区间内.
(2对权重系数编码和神经元阀值编码的交叉和变异操作
对权重系数编码和神经元阀值编码的交叉操作采用多点交叉遗传操作,而不是常规的单点交叉,这样可以进一步增加遗传搜索的分散性,使其可以更快地收敛于所需的精度.多点交叉的交叉点数根据所给定的概率随机生成,交叉点的位置也是随机生成.
对权重系数编码和神经元阀值编码的变异操作采用多点自适应变异.就是使适应度大的个体在较小范围变异,而使适应度小的个体在较大的范围内变异[526].基于这种考虑,引入变异温度的概念,这一概念类似于模拟退火算法中温度的概念,解的变异温度定义如下:
T=1-f(s
fmax
,(8
其中f(s表示个体s的适应度,f
是待求解问题的最
大适应度值.对于很多问题,f
是难以确定的.这里只
要给一个粗略的上限即可,也可以使用当前群体中的最
大适应度值作为f
.引入变异温度的概念以后,可以采
用这样的变异方法.在个体v中随机地选择一个个体
vk,对变异后的个体vk’服从N(vk,δ2(T正态分布.
7生成新一代群体.
8反复进行5~7,每进行一次,群体就进化一代,
连续进化到K代(总的进化代数.
9把第K代选适应度最高的个体解码得到相应
的网络连接权和隐节点个数,输入检测样本检验模型
的泛化能力.
3 番茄常见病害诊断应用实例及其结果分析
在本例中,选取7个病害特征参数的数据(经过必
要的编码来作为所要构建的神经网络的输入,网络的
输出将作为诊断所得到的病害.7个作为网络输入的参
数是:
X
为发病部位;
X2为病斑颜色;
3
为病斑形状;
X4为霉层颜色;
X5为霉层形状;
X6为生长特征;
X7为其
它特征.4个网络输出Y
、Y
4
为二值输出,其输出
的16种输出状态分别代表16种番茄常见病害(番茄茎
基腐病、番茄白绢病、番茄斑枯病等.在建立基于遗传
算法BP神经网络模型时,首先采用三层BP神经网络
估计网络连接权的基本解空间,输入训练样本(表1和
检测样本(表2,按照步骤1求得u
=10.7012,umax=
14.9523,θmin=-9.595θmax=10.7953则连接权的解空
间初步设为[-12,16]阀值的解空间初步设定为[-
11,
13],隐节点个数搜索范围为3~16,遗传算法进化过程
中初始种群L=30,总的进化代数K=100,交叉概率
pc=0.85,淘汰率rd=0.15,当前群体中的最大适应度
fmax=10,变异概率pm=0.006.得到遗传算法误差平方
和曲线、适应度曲线如图1.
图1 其遗传算法误差平方和曲线、适应度曲线
39
第30卷第4期 柴 毅,等:
基于改进遗传算法的BP神经网络自适应优化设计
49重庆大学学报(自然科学版 2007年
表1 训练样本
No.InputExpectoutputx1x2x3x4x5x6x7y1y2y3y410.00000.85710.00040.00000.00000.28570.1778000020.00000.28570.02440.12500.50001.00000.7111000130.41290.85710.0130.00000.00000.14290.2111001040.00000.28570.01260.00000.00000.42860.0333001150.58570.85710.00650.12500.00390.85710.7556010060.57140.85710.01830.12501.00000.85710.1889010170.28571.00000.19510.00000.00000.00000.2667011080.85710.28570.4040.00000.00000.14290.0000011190.14290.28570.02440.00000.00000.14290.32221000100.28570.30360.02550.00000.00000.00000.54441001110.57140.00000.00000.00000.00000.28570.42221010120.28570.28570.19550.00000.00000.00000.85561011130.71430.00000.00000.00000.00000.00000.86671100140.28570.00000.00000.00000.00000.57140.87781101150.57140.00000.00000.00000.00000.00000.97781110161.00000.00000.00000.00000.00000.00000.36671111
表2 测试样本
No.InputExpectoutputx1x2x3x4x5x6x7y1y2y3y410.00000.85710.00010.00000.00000.28570.1778000020.00000.28570.02440.12500.50001.00000.7111000130.14290.85710.0130.00000.00000.14290.2111001040.00000.28570.01260.00000.00000.42860.0333001150.58570.85710.00650.12500.00390.85710.7556010060.57140.85710.01830.12501.00000.85710.1889010170.28571.00000.19510.00000.00000.00000.2667011080.85710.28570.4040.00000.00000.14290.0000011190.14290.28570.02440.00000.00000.14290.32221000100.28570.30360.02550.00000.00000.00000.54441001110.57140.00000.00000.00000.00000.28570.42221010120.28570.28570.19550.00000.00000.00000.85561011130.71430.00000.00000.00000.00000.00000.86671100140.28570.00000.00000.00000.00000.57140.87781101150.57140.00000.00000.00000.00000.00000.97781110161.00000.00000.00000.00000.00000.00000.36671111
得到网络的输入层与隐含层、隐含层与输出层最优连接权值矩阵分别如下
-1.050809.67470-6.428605.533501.12450-5.529005.123
40
5.92690-3.85980-5.96270-3.253208.451701.19850-5.26690
4.79580-7.18620-1.56390-4.52870-
5.75880-2.210900.65814-
6.47800-1.485604.296201.62720-6.81050
3.075702.68700-7.80730
-7.48030
0.618277.516801.717805.690700.10178
1.76540
3.00220
4.478604.61360
5.820504.02280
-1.84780
-4.78900
3.755102.22540
7.07340
4.71490-1.
538403.272200.917774.83660
-4.45570-1.1413013.95230
1.003104.67720
4.39130-1.79530-4.03650-1.062001.28890
4.63960
-0.933923.47560
-3.23350
-3.67760
-4.48450
-4.36950
-1.69970
-1.00240
图2 输入层与隐含连接权值矩阵
0.24016
11.14575.9192-10.0173-2.70895.3735
-1.797300.36120
0.86271
0.94549-4.0781
1.9140
12.11168.0289
1.0495-1
2.637-2.0565-4.79300
-0.524
5.9125
4.9134
-9.3880
7.4591
-3.02493.6317-5.7222
-10.7012
17.62370.52656
-4.7313-14.7947
7.6973-1.4562
-0.19772
15.6988
2.77172.1596
6.2001
-3.7745
-9.8506
图3 隐含层与输出层连接权值矩阵
根据上述网络参数设置网络得到的网络仿真如图
4,与传统设计的BP网络仿真结果图5相比较.基于改进遗传算法的BP神经网络自适应优化设计的网络性能明显克服传统BP设计网络局部最问题.
训练样本的实际输出和测试样本的实际输出如表3.
图4 基于改进遗传算法的BP神经网络自
适应优化设计的网络仿真
图5 传统BP设计,陷入局部最优的仿真结果
从表3我们可以得知对于已训练样本的诊断的正确率100%.对于从未训练过的测试样本的正确率也达到68.75%,证明基于改进遗传算法的BP神经网络自适应优化设计的网络具有良好的网络泛化性.
表3 实际输出和测试样本
TraningsampleoutputTestingsampleoutput
Traningsampleoutput
Testingsampleoutput
y1
y2
y3
y4
0.000.000.000.000.000.000.000.001.000.000.000.000.990.000.000.990.000.000.000.990.000.000.001.000.990.000.000.991.000.000.000.000.000.000.990.000.000.001.000.000.990.000.990.000.990.000.990.000.000.000.991.000.000.001.001.001.000.000.990.991.000.000.990.990.000.990.000.001.000.970.000.991.000.990.000.001.000.990.000.000.001.000.001.000.000.991.000.040.990.990.000.990.990.990.000.990.000.991.000.000.001.001.000.251.000.990.980.001.000.990.980.000.00
0.99
1.00
5
9第30卷第4期 柴 毅,等:
基于改进遗传算法的BP神经网络自适应优化设计
96重庆大学学报(自然科学版 2007年ingCompanyInc,1990.[2] DJMONTANA,LDaTrainingFeedforwardNeuralNetworksUsingGeneticAlgorithms[C]∥Proceedings11MorganKaufman,SanMateoCA:
1989.7622767.thth4 结束语长期以来,由于对神经网络的拓扑结构设计和初始权值的设置,缺乏理论支持.使得所设计的网络往往存在网络规模庞大,设计效率低下与经典BP算法收敛过慢、局部收敛等问题.这常常是神经网络得不到有效应用的因素之一.本文使用遗传算法在全局解空间内对网络拓扑结构和网络参数进行自适应的动态