TA的每日心情 | 慵懒 2017-6-1 21:49 |
|---|
签到天数: 6 天 连续签到: 1 天 [LV.2]偶尔看看I 累计签到:6 天 连续签到:1 天
|
马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
生物的进化是一个奇妙的优化过程,它通过选择淘汰,突然变异,基因遗传等规律产生适应环境变化的优良物种。遗传算法是根据生物进化思想而启发得出的一种全局优化算法。
/ Z# |* e% [: _) ?% a# a: U/ T
7 Z% r' o6 |, z' ?) M遗传算法的概念最早是由Bagley J.D在1967年提出的;而开始遗传算法的理论和方法的系统性研究的是1975年,这一开创性工作是由Michigan大学的J.H.Holland所实行。当时,其主要目的是说明自然和人工系统的自适应过程。
% o, A" u8 C4 L( i2 h* N* g. W5 w1 E4 A3 l$ A) d4 w
遗传算法简称GA(Genetic Algorithm),在本质上是一种不依赖具体问题的直接搜索方法。遗传算法在模式识别、神经网络、图像处理、机器学习、工业优化控制、自适应控制、生物科学、社会科学等方面都得到应用。在人工智能研究中,现在人们认为“遗传算法、自适应系统、细胞自动机、混沌理论与人工智能一样,都是对今后十年的计算技术有重大影响的关键技术”。( b+ X: J& b- j8 x
9 V. ?" [2 m7 D5 t. a* f% q* l3.2.1 遗传算法的基本概念2 a* E1 Y q% ]% O$ |+ R( }4 R
4 R1 \4 h$ _: z6 o9 e6 a! |! z r遗传算法的基本思想是基于Darwin进化论和Mendel的遗传学说的。
. Z, A0 ~8 N, `% r* {1 f# y: M8 L6 E6 ^) Z! N3 i# `1 P1 E6 f
Darwin进化论最重要的是适者生存原理。它认为每一物种在发展中越来越适应环境。物种每个个体的基本特征由后代所继承,但后代又会产生一些异于父代的新变化。在环境变化时,只有那些熊适应环境的个体特征方能保留下来。
$ O; C; J6 f9 v; ?
+ R4 A% S: q- M+ q+ g" P% zMendel遗传学说最重要的是基因遗传原理。它认为遗传以密码方式存在细胞中,并以基因形式包含在染色体内。每个基因有特殊的位置并控制某种特殊性质;所以,每个基因产生的个体对环境具有某种适应性。基因突变和基因杂交可产生更适应于环境的后代。经过存优去劣的自然淘汰,适应性高的基因结构得以保存下来。
# [" q3 [! l: I! D* g( d. U9 j0 j1 H; U& X3 f$ ^( y/ W5 a) m1 z
由于遗传算法是由进化论和遗传学机理而产生的直接搜索优化方法;故而在这个算法中要用到各种进化和遗传学的概念。这些概念如下:
. Q, A% l1 d8 _4 f- \0 T: J' ?' O% V
一、串(String) 4 P8 @( d/ q4 ?; _: R
: u7 Q- I0 |1 L/ h6 }6 ]
它是个体(Individual)的形式,在算法中为二进制串,并且对应于遗传学中的染色体(Chromosome)。+ I. ] k9 P6 l" ]% q5 p( v
: p9 u0 F' ?2 e7 ?5 U& {# Z. x二、群体(Population)
; m% }0 k6 j5 `: a, P& M& y
+ @* Q$ t+ w, w( T个体的集合称为群体,串是群体的元素; n4 O5 j9 t4 b7 c" E$ `
L7 L7 S6 E% f
三、群体大小(Population Size) ( u- q, `6 m5 q: O5 ]9 c! Z
2 n3 Z) ?; t$ ~, L; Q
在群体中个体的数量称为群体的大小。- t8 p+ K2 s# s9 {: u+ c) @* b
1 t% w6 B, Y( X1 ]8 W+ _四、基因(Gene) ' q0 Z" ` O: }) J- N
) T% b6 o3 l. _- h( p: d
基因是串中的元素,基因用于表示个体的特征。例如有一个串S=1011,则其中的1,0,1,1这4个元素分别称为基因。它们的值称为等位基因(Alletes)。 Y& ^. a: l& \9 u4 v( s" {9 s
( Z) k% L& l( c K% v
五 、基因位置(Gene Position)
7 s& n) B+ t# Z% N' B: X! |) z; |2 B2 j* _7 o( R
一个基因在串中的位置称为基因位置,有时也简称基因位。基因位置由串的左向右计算,例如在串S=1101中,0的基因位置是3。基因位置对应于遗传学中的地点(Locus)。
/ O$ U. @1 v" f( [
+ ~8 T$ h* }: P: x) G' F4 q, Y六、基因特征值(Gene Feature)
( G. s& z3 `+ @6 g
~. W0 C2 y, Z. n在用串表示整数时,基因的特征值与二进制数的权一致;例如在串S=1011中,基因位置3中的1,它的基因特征值为2;基因位置1中的1,它的基因特征值为8。
$ L+ z0 W. g: y1 Z# O8 D: i3 D9 D" A" z' H
七、串结构空间SS
3 \3 y- e" _5 z- C. p8 M) A3 Y
) B* ?( u& R1 C' T在串中,基因任意组合所构成的串的集合。基因操作是在结构空间中进行的。串结构空间对应于遗传学中的基因型(Genotype)的集合。
# q# n7 a$ i7 g: W2 ]8 b4 g8 h2 A% `+ ~% \# T
八、参数空间SP / b2 p, K" j' z% \
: v# u5 V% o+ ~4 f' c! }这是串空间在物理系统中的映射,它对应于遗传学中的表现型(Phenotype)的集合。: G! h7 }* T6 S5 ~. p; p1 C" q$ V# J
, X8 A0 R$ R/ G& R
九、非线性# m' v) w; Q1 Z0 j" K
/ q/ `# I; j' b6 N4 e1 r- K+ g它对应遗传学中的异位显性(Epistasis)
i2 `+ @7 ]: i ~4 P$ ~2 B. D; a" ]
十、适应度(Fitness)
) E# e& q E# t5 M: D) H6 t4 R" J* [2 S
表示某一个体对于环境的适应程度。
4 m9 o3 P- x8 y, ?' D1 T7 U) D5 @; a- Q5 B
遗传算法还有一些其它的概念,这些概念在介绍遗传算法的原理和执行过程时,再进行说明。
& W, E- p: q! O) { f0 f) r
. X8 l% C; C. d$ m! A1 {3.2.2遗传算法的原理
R, v" e1 K3 @: U) k
7 n" t# ?3 C* G t* _遗传算法GA把问题的解表示成“染色体”,在算法中也即是以二进制编码的串。并且,在执行遗传算法之前,给出一群“染色体”,也即是假设解。然后,把这些假设解置于问题的“环境”中,并按适者生存的原则,从中选择出较适应环境的“染色体”进行复制,再通过交叉,变异过程产生更适应环境的新一代“染色体”群。这样,一代一代地进化,最后就会收敛到最适应环境的一个“染色体”上,它就是问题的最优解。" U9 A) ]0 R' h$ E0 O+ _
( _( H- y$ {" z: W# D1 D
一、遗传算法的目的
) }; c, d9 p& E3 w- r
4 _9 p j8 n# f典型的遗传算法CGA(Canonical Genetic Algorithm)通常用于解决下面这一类的静态最优化问题:+ O& o3 ~" }% W8 a
& u8 @% i9 d+ d9 Q' `
考虑对于一群长度为L的二进制编码bi,i=1,2,…,n;有
- U, r+ \+ d6 O/ s- y5 j; z @! M& l8 v$ m+ A
bi∈{0,1}L (3-84)
% ^4 M: q& a( M# h. q; T6 M F* t3 }
Z# A" {7 r5 e c$ i$ E% @& ]给定目标函数f,有f(bi),并且
+ y( ~) W M. p) `+ Q J' R
5 e% \. I1 @! p4 B0<F(BI)<∞< P>
8 C* A+ A6 B# V( j# V- T2 T
. G! H" e' _' w同时; S& Z* [; F# E5 y
" A2 q" O( H! ^: s/ z' K; {1 ^, b
f(bi)≠f(bi+1)
8 ^- P2 U8 a+ ]; N' G' ^9 V9 I0 ]! z6 k
求满足下式
& l+ x% K. k* W
$ n, n+ x$ ?1 z, A2 K7 ~: ]9 g2 H( smax{f(bi)|bi∈{0,1}L}
6 L/ n4 \: T9 Y4 _2 x7 S
8 F `+ r v9 n1 ]的bi。
+ F$ U1 n/ s# v% X- f0 G, I5 Y9 l
' J5 G+ z; }, K2 O$ M6 c' h6 z很明显,遗传算法是一种最优化方法,它通过进化和遗传机理,从给出的原始解群中,不断进化产生新的解,最后收敛到一个特定的串bi处,即求出最优解。
s4 J' n9 t2 X: l& _
8 I& Y6 V$ i2 ^7 r/ {4 L7 F0 r二、遗传算法的基本原理7 S3 t9 v% C( w3 P- ~0 p1 N
) p' O6 S: t4 a! A长度为L的n个二进制串bi(i=1,2,…,n)组成了遗传算法的初解群,也称为初始群体。在每个串中,每个二进制位就是个体染色体的基因。根据进化术语,对群体执行的操作有三种:
6 I X# B+ S& x4 s/ X1 y0 W- V' a8 Z c6 f9 C
1.选择(Selection)
# T6 u' t3 t0 ]! D% B0 D5 G9 S" H- l
这是从群体中选择出较适应环境的个体。这些选中的个体用于繁殖下一代。故有时也称这一操作为再生(Reproduction)。由于在选择用于繁殖下一代的个体时,是根据个体对环境的适应度而决定其繁殖量的,故而有时也称为非均匀再生(differential reproduction)。0 U* ]' [. m3 f; }* K- |- h4 v
9 u# \: G( A) w5 _% C
2.交叉(Crossover) * E" _- i7 O$ L
' J" a1 M1 t2 f0 G# \& b这是在选中用于繁殖下一代的个体中,对两个不同的个体的相同位置的基因进行交换,从而产生新的个体。6 x: f$ _4 p2 c5 M Q! ~ O+ g9 Z9 u2 r
9 ?2 B% W& v; ^4 E) Y# M5 d' x+ O7 Q) f3.变异(Mutation)
6 h5 D' z" }* ]) B' i, H/ `1 U% ]. W; ?9 y6 c) V
这是在选中的个体中,对个体中的某些基因执行异向转化。在串bi中,如果某位基因为1,产生变异时就是把它变成0;反亦反之。- s' @7 j# M0 c \/ ^
% S, t% M& Y2 Z* M
遗传算法的原理可以简要给出如下:
, L2 |5 w1 h _7 U' z* ~
2 q) \7 k# v. k$ I" _5 V& Zchoose an intial population
- s: x# x5 G* i$ L+ ^7 }0 V7 V( |- P5 H- Z+ x7 X+ K
determine the fitness of each individual
# s# y, v# C4 v- y, n: X. X3 y
perform selection
; n& @! C) }3 j# f1 x5 R2 m- h% T) \
repeat
1 Y) ] I6 l8 V) C1 `& Y& q
* e) ]: i: q, `* r perform crossover - t+ ^) ^5 i. N
6 S8 P# N2 o% D. Z. A
perform mutation
8 y" t" k+ _% k" Q u1 P
1 |' ?' @5 z1 c/ }% W determine the fitness of each individual 8 r& M( e* I! Z5 D
' N, a5 s* Y' k) r, R' P4 c% V/ t0 W$ n' t perform selection g- M& l. m( G) W) O: h
6 z# g) l F! P/ {until some stopping criterion applies & n5 i+ |* S B5 Q3 u
$ N0 o6 k! t9 y5 S
这里所指的某种结束准则一般是指个体的适应度达到给定的阀值;或者个体的适应度的变化率为零。: J% e! A" K. n: q
三、遗传算法的步骤和意义6 F. S8 d8 V" N+ K
: k o; U: P) n; L* n6 _
1.初始化$ ~* a. u; V# ~5 Q( N2 S
; o8 J! i9 G y7 e- Q& Q$ r7 F) ~7 V6 l
选择一个群体,即选择一个串或个体的集合bi,i=1,2,...n。这个初始的群体也就是问题假设解的集合。一般取n=30-160。; ?! m: g# x/ s+ Q- |% V4 A
6 b# \; R7 T2 f$ w) ]. U5 p& _通常以随机方法产生串或个体的集合bi,i=1,2,...n。问题的最优解将通过这些初始假设解进化而求出。' W) ?. u$ l0 ?6 x1 V
( U% J+ T& b% J. ^ a: J
2.选择
, h8 Q. u* \ z" c( E l8 S l
: o' i; _' C* `+ o% K根据适者生存原则选择下一代的个体。在选择时,以适应度为选择原则。适应度准则体现了适者生存,不适应者淘汰的自然法则。# s/ O' |. f# a* P1 J, B) k4 m5 H& e
6 [1 S# ]0 ~" n2 G0 S6 A
给出目标函数f,则f(bi)称为个体bi的适应度。以
6 i7 a$ S( K! B8 G* b
6 R: E5 ?; Y, a% u, Q
1 i! R& {7 \2 c2 u% P7 e
& D! i! T |8 o, u
为选中bi为下一代个体的次数。
& u+ m& }$ W+ V9 ~7 X4 Q4 q' j; e- b W9 V& r) S
显然.从式(3—86)可知:
{5 i: y: [2 H5 E: H' r. q9 q; g1 c, F l# E- ^
(1)适应度较高的个体,繁殖下一代的数目较多。
1 ^# s* ?1 {+ k2 x; B+ K) o0 m# u
(2)适应度较小的个体,繁殖下一代的数目较少;甚至被淘汰。- R. f4 V F7 h* b4 m+ L
\& V0 @& ~) q! p* D8 d3 h
这样,就产生了对环境适应能力较强的后代。对于问题求解角度来讲,就是选择出和最优解较接近的中间解。9 `' e: f4 X# V
/ M K, u# O0 x9 f
3.交叉$ P+ F& P d" l3 U
对于选中用于繁殖下一代的个体,随机地选择两个个体的相同位置,按交叉概率P。在选中的位置实行交换。这个过程反映了随机信息交换;目的在于产生新的基因组合,也即产生新的个体。交叉时,可实行单点交叉或多点交叉。. C% ?8 [1 k1 _9 f" U1 [! i# e
0 a% M- I# H+ |( p+ T
例如有个体
* i$ L) U0 Z' t$ ], m- w5 _0 T
: V& Y+ _* w9 MS1=100101 ) r( s1 N( h7 n. Z
$ M' q+ e X+ u( W% ?
S2=010111 - D7 Z" Q5 Y, ^8 m* X. }" D7 D
3 r$ J4 _$ y# n9 T- s% l
选择它们的左边3位进行交叉操作,则有
6 K g0 c; t% _7 }' V/ @- J% n. m/ e! h$ Y, D
S1=010101 5 a+ e+ B3 c" V7 A% A j
/ o: d6 ^ t9 nS2=100111 1 q% v0 o) C+ h c, |; L
, M8 X# I7 t6 n% l
一般而言,交 婊显譖。取值为0.25—0.75。3 F( K! n) u% J2 f/ H
# f$ y/ }& Z F2 V4 \/ k
4.变异
( v' C0 Z; i0 ^- @
2 K/ {- s; h+ M5 S根据生物遗传中基因变异的原理,以变异概率Pm对某些个体的某些位执行变异。在变异时,对执行变异的串的对应位求反,即把1变为0,把0变为1。变异概率Pm与生物变异极小的情况一致,所以,Pm的取值较小,一般取0.01-0.2。
' _: {8 N' N7 ?$ _5 D# y2 \- H
/ S' S4 | ?6 x1 Z$ X" O$ j+ a例如有个体S=101011。4 l! S7 P% t( e) L1 h5 D
( H+ W S7 p0 E) ~0 \, Y% |
对其的第1,4位置的基因进行变异,则有
Q, G) U- \$ y, ~7 o* h" F; i* P7 C" G- I( M8 O1 Q
S'=001111 & ]1 `0 ^: }4 e7 r, h' S2 j- k1 K( P
5 S+ W6 X: i8 W) q( Q) H2 m4 s
单靠变异不能在求解中得到好处。但是,它能保证算法过程不会产生无法进化的单一群体。因为在所有的个体一样时,交叉是无法产生新的个体的,这时只能靠变异产生新的个体。也就是说,变异增加了全局优化的特质。3 N6 @! f8 v6 O* b2 w& j: e
8 \$ I) N5 F2 v: H# g8 {5.全局最优收敛(Convergence to the global optimum) + t0 x' l4 I# {$ M0 a9 G7 F
0 F. j, \* G8 S* x1 o y
当最优个体的适应度达到给定的阀值,或者最优个体的适应度和群体适应度不再上升时,则算法的迭代过程收敛、算法结束。否则,用经过选择、交叉、变异所得到的新一代群体取代上一代群体,并返回到第2步即选择操作处继续循环执行。
; i) x: U- }$ p9 [! i0 }! w8 X4 E, O- X4 W, t: r3 n% `3 r' z
图3—7中表示了遗传算法的执行过程。' v7 z: L5 k. K6 a/ I$ d
2 T! h0 \# b; m; z8 {3 h. n* w4 a7 N4 I1 ]
1 F, D, E# g: m2 J! K
! @' ~/ c+ l v2 g" G" Z图3-7 遗传算法原理
$ [4 L" F, z5 V1 w& ]$ d1 n# \5 b) v% g' V2 q2 ?9 m1 X, m
3.2.3遗传算法的应用 s) a& W$ m7 U% A' M; o( U2 V
% ~; D8 [2 B0 f1 H* ?遗传算法在很多领域都得到应用;从神经网络研究的角度上考虑,最关心的是遗传算法在神经网络的应用。在遗传算法应用中,应先明确其特点和关键问题,才能对这种算法深入了解,灵活应用,以及进一步研究开发。2 |" E1 I. e/ e6 }1 T
9 T' f3 m( p! r/ H$ \
一、遗传算法的特点
' J O" S v' T- W, l, Z5 \4 B
2 G8 b6 H- ?% b1 q1.遗传算法从问题解的中集开始嫂索,而不是从单个解开始。
% N; T+ y4 T! }. x4 h
# Z. N4 M8 M" V# b! a* t# I- k- T" N这是遗传算法与传统优化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;容易误入局部最优解。遗传算法从串集开始搜索,复盖面大,利于全局择优。# u* w5 e3 Q/ d) ~7 E* [
0 |: m. F/ t$ t5 {. D5 ~
2.遗传算法求解时使用特定问题的信息极少,容易形成通用算法程序。
) s" n* Q A3 \/ p- b8 n
! {- F% ?* ~, I) w4 S9 V由于遗传算法使用适应值这一信息进行搜索,并不需要问题导数等与问题直接相关的信息。遗传算法只需适应值和串编码等通用信息,故几乎可处理任何问题。+ R9 `6 C9 X) Q0 r
, ^+ c) @5 s# o4 R0 f% M3.遗传算法有极强的容错能力
1 u8 S; Y: w1 w
0 g% A8 S3 U5 d7 ?% i+ o+ g0 w! \ V遗传算法的初始串集本身就带有大量与最优解甚远的信息;通过选择、交叉、变异操作能迅速排除与最优解相差极大的串;这是一个强烈的滤波过程;并且是一个并行滤波机制。故而,遗传算法有很高的容错能力。
; a. b3 U" L* Z- b( z
. \& i8 b9 v* V$ x' ^4.遗传算法中的选择、交叉和变异都是随机操作,而不是确定的精确规则。
$ N# w7 D/ T6 |- J. ?( L I+ W3 t6 V
. Q* |4 P" m+ E7 u, L! I2 c: c这说明遗传算法是采用随机方法进行最优解搜索,选择体现了向最优解迫近,交叉体现了最优解的产生,变异体现了全局最优解的复盖。
0 { u" w7 ~' G
4 y0 D" D' x6 x+ I7 v5.遗传算法具有隐含的并行性
% @4 N5 B5 w/ i; d% R1 O
& q6 C8 T7 b9 @遗传算法的基础理论是图式定理。它的有关内容如下:
( Q. {4 E" R7 G- x' V& T9 ^# B1 |2 _
(1)图式(Schema)概念1 F- E8 g9 ?; j( M" V+ Y* N
: ?) B; x$ |5 ^; V一个基因串用符号集{0,1,*}表示,则称为一个因式;其中*可以是0或1。例如:H=1xx 0 x x是一个图式。- }7 B2 M9 G6 c
4 I; y4 T3 a( u2 S& w(2)图式的阶和长度! d) y5 X D: p3 \% \
) A; J( X2 m6 c4 b
图式中0和1的个数称为图式的阶,并用0(H)表示。图式中第1位数字和最后位数字间的距离称为图式的长度,并用δ(H)表示。对于图式H=1x x0x x,有0(H)=2,δ(H)=4。1 f/ c; n( y. l/ W, m7 E) U0 |" W
4 {/ u# C6 d5 s0 U: t2 x% n5 R(3)Holland图式定理* {8 R' p' T: p' \5 |) a
' s9 Z5 s+ v7 C
低阶,短长度的图式在群体遗传过程中将会按指数规律增加。当群体的大小为n时,每代处理的图式数目为0(n3)。& M0 g# ^! Q6 l0 [+ d
1 `* l" B0 V* d( N; \) l遗传算法这种处理能力称为隐含并行性(Implicit Parallelism)。它说明遗传算法其内在具有并行处理的特质。
% i" T a: w8 ^0 I2 |1 J( Q# n
' _4 E* L) ^! s9 Y- L1 z5 h _二、遗传算法的应用关键! B2 J% n! S0 q- a9 m7 O# y# n
+ ?& v @0 t& v7 ]; _遗传算法在应用中最关键的问题有如下3个$ p# w) G! O7 d
- Q" ]% ?! y* d# b/ a7 f7 S `1.串的编码方式8 w% F9 T: B* {6 A3 K
7 H( \# i# U$ z这本质是问题编码。一般把问题的各种参数用二进制编码,构成子串;然后把子串拼接构成“染色体”串。串长度及编码形式对算法收敛影响极大。
4 p2 X; x* ^0 {8 Q% x0 I; H v
! l l: _( E+ U* l7 F2.适应函数的确定. ], c8 F6 F) [# A) y
) k1 ]3 Y7 ~" T2 @适应函数(fitness function)也称对象函数(object function),这是问题求解品质的测量函数;往往也称为问题的“环境”。一般可以把问题的模型函数作为对象函数;但有时需要另行构造。
, ?- f5 z# _3 g% J$ J6 B6 I! `6 E" }0 _7 D% U2 x$ Y) v
3.遗传算法自身参数设定+ B L; q2 J% O E P
5 x1 A) o z2 m遗传算法自身参数有3个,即群体大小n、交叉概率Pc和变异概率Pm。2 j7 U$ A' o" L) C R3 j
c1 K" t# W5 O' _9 z8 _6 }群体大小n太小时难以求出最优解,太大则增长收敛时间。一般n=30-160。交叉概率Pc太小时难以向前搜索,太大则容易破坏高适应值的结构。一般取Pc=0.25-0.75。变异概率Pm太小时难以产生新的基因结构,太大使遗传算法成了单纯的随机搜索。一般取Pm=0.01—0.2。% V7 q# L, V* O7 N8 U
- k' H t2 _& @% g$ r1 X, J, |
三、遗传算法在神经网络中的应用
5 F* _3 |5 v3 ?' c! a5 ^5 w! a, L6 P* e" \: R9 u
遗传算法在神经网络中的应用主要反映在3个方面:网络的学习,网络的结构设计,网络的分析。% D! }' K- k# l- |' h! H+ G
) Y& f4 ^+ Y6 d& l/ l1.遗传算法在网络学习中的应用
! R8 p' t2 V# U( t1 n4 ?1 k
+ p0 d3 f3 g8 G% j! T在神经网络中,遗传算法可用于网络的学习。这时,它在两个方面起作用 p' M6 I* t/ n( }- n% C. U- l
; M' e5 ?* B. w: G9 \' t
(1)学习规则的优化
9 C- z+ E# f4 A, @! J$ m! [+ @1 _: ]
用遗传算法对神经网络学习规则实现自动优化,从而提高学习速率。
0 Q9 ~1 i$ S7 r
* ]2 ?$ x _' [: `(2)网络权系数的优化- l, t8 A$ V0 X- {( |3 p: P
/ x! R) V* \2 k7 \1 v+ X用遗传算法的全局优化及隐含并行性的特点提高权系数优化速度。2 }6 g/ F ]/ _; d( B
2 ]* X; t ?0 B. k. [2.遗传算法在网络设计中的应用, i/ G1 l @8 H# v$ ^" n
0 e% a; U+ Y( X5 M* O
用遗传算法设计一个优秀的神经网络结构,首先是要解决网络结构的编码问题;然后才能以选择、交叉、变异操作得出最优结构。编码方法主要有下列3种:
; z ]1 b0 {5 R( R* k
4 A$ b" ~( i( G* E7 u* h(1)直接编码法5 _# x7 o% e# J# D! a1 ]( \1 r
' H+ Z: c% @$ N. `这是把神经网络结构直接用二进制串表示,在遗传算法中,“染色体”实质上和神经网络是一种映射关系。通过对“染色体”的优化就实现了对网络的优化。
* r$ E, h$ n( B3 I; f0 [$ a& N7 q
" H- j/ L' f. z0 @2 R(2)参数化编码法
; s8 a% U# r& L! ^& E6 B" f
2 v0 Z( Y. n+ w参数化编码采用的编码较为抽象,编码包括网络层数、每层神经元数、各层互连方式等信息。一般对进化后的优化“染色体”进行分析,然后产生网络的结构。
8 \; ] |0 ^$ N6 `6 q6 s/ _! u
- m: j3 G& j8 x# k) p( q(3)繁衍生长法# W7 _* P8 X9 R, o
" E% z2 [, F2 B1 Z9 ?这种方法不是在“染色体”中直接编码神经网络的结构,而是把一些简单的生长语法规则编码入“染色体”中;然后,由遗传算法对这些生长语法规则不断进行改变,最后生成适合所解的问题的神经网络。这种方法与自然界生物地生长进化相一致。
- r" Y5 D9 p' l2 _* z1 C1 \6 C3 H: x8 ~+ Z( z/ ?% b0 L# p
3.遗传算法在网络分析中的应用
" T) _4 v2 h8 Q' S
# p6 ^* B8 z5 D- S/ {遗传算法可用于分析神经网络。神经网络由于有分布存储等特点,一般难以从其拓扑结构直接理解其功能。遗传算法可对神经网络进行功能分析,性质分析,状态分析。* A: z! C$ {$ y& W3 m; U
1 Q8 p( {& V3 J- P5 [
遗传算法虽然可以在多种领域都有实际应用,并且也展示了它潜力和宽广前景;但是,遗传算法还有大量的问题需要研究,目前也还有各种不足。首先,在变量多,取值范围大或无给定范围时,收敛速度下降;其次,可找到最优解附近,但无法精确确定最扰解位置;最后,遗传算法的参数选择尚未有定量方法。对遗传算法,还需要进一步研究其数学基础理论;还需要在理论上证明它与其它优化技术的优劣及原因;还需研究硬件化的遗传算法;以及遗传算法的通用编程和形式等。
5 x7 [% K$ i% X/ p, M; n5 Z# E2 R+ B- Y7 O" m4 z0 H$ B' }
$ T4 L+ S( U* ] u; }三、遗传算法的步骤和意义
; y/ k8 V: u% P) K3 t; `: ?2 z6 t/ V
1.初始化
% s1 H4 P; | x" r3 s4 m4 r3 A! ^7 M) ^/ ~. x' C/ U0 p' Z
选择一个群体,即选择一个串或个体的集合bi,i=1,2,...n。这个初始的群体也就是问题假设解的集合。一般取n=30-160。
; ^+ W: y) |' E* n$ x
6 W" w: [, g# p# [: e6 m; x* r通常以随机方法产生串或个体的集合bi,i=1,2,...n。问题的最优解将通过这些初始假设解进化而求出。
( ]5 p$ v1 l3 p( {* u3 r2 F. n8 F {; J7 Q) [. h$ }
2.选择# y: x. ]/ T" H+ [
7 N3 \- }3 @ u7 K* A, G根据适者生存原则选择下一代的个体。在选择时,以适应度为选择原则。适应度准则体现了适者生存,不适应者淘汰的自然法则。: s5 N2 _# W4 H" a0 y( x" I
: }* V% S4 a7 F1 x; D/ F
给出目标函数f,则f(bi)称为个体bi的适应度。以: [ v: `& d1 R# ]
3 d3 T; W# D' F3 j S7 Y5 v- R* |& G
4 U6 w. s6 D, v
, ^: Z9 v) s9 R7 f/ b- W为选中bi为下一代个体的次数。6 p% n7 @5 X! W; Z% K
6 i! a+ v6 g' t; _/ U
显然.从式(3—86)可知:
) W5 A; c0 s) Q8 n1 \, q$ p3 `9 C- b1 `- ]$ E1 ^8 W0 u
(1)适应度较高的个体,繁殖下一代的数目较多。
: h9 _1 _4 y4 d( ?0 L. O/ A! ~; T9 L" K( S7 x4 h* ]$ r A
(2)适应度较小的个体,繁殖下一代的数目较少;甚至被淘汰。& V) V/ ^2 m7 h# ?6 @
; ?$ {& `3 C7 b4 e+ S
这样,就产生了对环境适应能力较强的后代。对于问题求解角度来讲,就是选择出和最优解较接近的中间解。
% |5 T8 {3 J1 z1 W6 k" \# P
+ Q7 B, E* W- J" K, l3.交叉) _, d: r! \( C. s8 ]4 S' G/ }0 ]
对于选中用于繁殖下一代的个体,随机地选择两个个体的相同位置,按交叉概率P。在选中的位置实行交换。这个过程反映了随机信息交换;目的在于产生新的基因组合,也即产生新的个体。交叉时,可实行单点交叉或多点交叉。5 t3 F* ?. X Y! F7 @+ {
9 y, I' `% [2 r9 A$ F+ u9 \
例如有个体 E5 c2 D5 |9 m
: d/ \) y2 I9 |9 O% }
S1=100101 , X5 u& v6 F; k
0 z: A4 f1 b) B' f
S2=010111
/ A7 X8 s$ E1 }: ~8 e, K# t
, B# b# z* h, N选择它们的左边3位进行交叉操作,则有
$ G! f+ @' i4 g* a: ~
4 C# o2 t4 U. v N7 D3 }S1=010101 7 P: H9 v# D7 |5 i6 l
- J5 O/ }$ C. j/ q; I: [) nS2=100111 7 m6 a7 u' h3 C5 c: X! L
: V, Q7 d4 K& Z" s7 J4 K8 c3 W一般而言,交 婊显譖。取值为0.25—0.75。7 z# `7 g( k. y9 k( Q# q9 ^& B6 f
" O+ o2 g- D# X2 @0 ?7 S4.变异
$ L: f- u+ ]) z8 _5 K5 Q! A/ e& T. h
根据生物遗传中基因变异的原理,以变异概率Pm对某些个体的某些位执行变异。在变异时,对执行变异的串的对应位求反,即把1变为0,把0变为1。变异概率Pm与生物变异极小的情况一致,所以,Pm的取值较小,一般取0.01-0.2。
, |2 h) x. ~' L6 I: K& Y/ k6 u4 g- \! ]0 k7 E; u/ T; [! c
例如有个体S=101011。
% k4 N5 C8 W, G; _6 j3 T0 J" w3 o0 T6 }$ P/ g3 G
对其的第1,4位置的基因进行变异,则有$ d0 _2 R+ H8 \6 z
3 k% ^1 f d( ?& j3 W6 c, m
S'=001111
: X v! I. y+ d
* {& p9 L, L' u2 F单靠变异不能在求解中得到好处。但是,它能保证算法过程不会产生无法进化的单一群体。因为在所有的个体一样时,交叉是无法产生新的个体的,这时只能靠变异产生新的个体。也就是说,变异增加了全局优化的特质。: T# D( F7 Y% M2 W6 K; O* p ^3 L
5 }; K1 C- @5 }! o3 h* A
5.全局最优收敛(Convergence to the global optimum)
; |. e* p) N' ?" v* U
& q0 d. s) L% ?2 G/ j2 e# e当最优个体的适应度达到给定的阀值,或者最优个体的适应度和群体适应度不再上升时,则算法的迭代过程收敛、算法结束。否则,用经过选择、交叉、变异所得到的新一代群体取代上一代群体,并返回到第2步即选择操作处继续循环执行。
' o5 u( R/ i$ T9 D. ?: ]. v% F
# o4 E, S8 M1 _图3—7中表示了遗传算法的执行过程。
$ p: F/ y1 I4 e5 Z: Z, L
1 b: V# x+ I* P# o3 r/ Y# I3 p) b5 o. ?2 K- `7 p( S k
5 n7 y5 i; o: `
1 A6 r. a9 p" l( Q/ t
图3-7 遗传算法原理# L9 {5 f" c7 L) `1 m3 f* P A
5 H4 k7 ^) |6 ^( g. |
3.2.3遗传算法的应用 b* M2 b9 P M9 O8 Z: M
! b: A' ^4 B1 ?& ^
遗传算法在很多领域都得到应用;从神经网络研究的角度上考虑,最关心的是遗传算法在神经网络的应用。在遗传算法应用中,应先明确其特点和关键问题,才能对这种算法深入了解,灵活应用,以及进一步研究开发。
# @% O" l' G9 y; c% u" @: w
9 \ K8 `. i; Z+ z一、遗传算法的特点
# j; [. [, }' y; [% m1 `6 m, N& ~$ X* u6 N' }
1.遗传算法从问题解的中集开始嫂索,而不是从单个解开始。2 _3 H+ O; {) F8 J# D* w9 e) B$ F
; {( X# h w+ f: w+ Y这是遗传算法与传统优化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;容易误入局部最优解。遗传算法从串集开始搜索,复盖面大,利于全局择优。2 j' f7 k% ^- @6 J8 b. w! s
! g$ w2 J! V( x$ i$ q
2.遗传算法求解时使用特定问题的信息极少,容易形成通用算法程序。
0 A. x7 y- r# L0 P9 ~
4 s, D' v9 q1 n' F5 N+ O/ y由于遗传算法使用适应值这一信息进行搜索,并不需要问题导数等与问题直接相关的信息。遗传算法只需适应值和串编码等通用信息,故几乎可处理任何问题。! |, [5 f1 A5 f. n
8 N2 E" `1 G+ p9 _ p1 a. R. k, R3.遗传算法有极强的容错能力; N1 Z8 F+ o, V
( @4 O) ?2 r8 P9 M7 @; Q遗传算法的初始串集本身就带有大量与最优解甚远的信息;通过选择、交叉、变异操作能迅速排除与最优解相差极大的串;这是一个强烈的滤波过程;并且是一个并行滤波机制。故而,遗传算法有很高的容错能力。4 |' E8 N4 l* f; w' l: i
& B! T ^9 ^* A C6 ]& }( }# T
4.遗传算法中的选择、交叉和变异都是随机操作,而不是确定的精确规则。1 a, Y* ~7 Z0 }, Y" R$ {
+ ~$ I; l" t- J7 D4 B+ K$ {
这说明遗传算法是采用随机方法进行最优解搜索,选择体现了向最优解迫近,交叉体现了最优解的产生,变异体现了全局最优解的复盖。" S$ H4 r1 ?" E# P& |. @& H; S
& f9 l! M4 M3 K$ s$ v/ K
5.遗传算法具有隐含的并行性
% J. H d0 M6 i1 y+ f! k d+ t" Z* J6 J J& ~8 O% Y; n
遗传算法的基础理论是图式定理。它的有关内容如下:
+ ^/ q( G, j0 p {
$ C% g H: p: f5 L9 m \(1)图式(Schema)概念
* H0 P4 V( E: V+ |6 G6 J1 D, ]
8 X0 _4 M ^* W0 J5 i4 A一个基因串用符号集{0,1,*}表示,则称为一个因式;其中*可以是0或1。例如:H=1xx 0 x x是一个图式。8 R& z0 t+ u0 h- D7 y
7 ?' Y; U2 s6 W% b! g4 ^9 J2 w8 v(2)图式的阶和长度
9 J5 k9 Z2 c& K; J& M
l9 W. {: |0 v* d- q; J m4 j/ z图式中0和1的个数称为图式的阶,并用0(H)表示。图式中第1位数字和最后位数字间的距离称为图式的长度,并用δ(H)表示。对于图式H=1x x0x x,有0(H)=2,δ(H)=4。* Y# Q Z7 t# `7 X, n
- Y; S g0 V! w" j( ^8 Z, K6 q4 U(3)Holland图式定理
+ |+ h, B/ g; s3 c" \- H
, ~0 S+ w4 Q1 O; ]% {2 s, O低阶,短长度的图式在群体遗传过程中将会按指数规律增加。当群体的大小为n时,每代处理的图式数目为0(n3)。' ?* U8 f$ @( }8 D
8 z3 a- T. D1 u9 {/ @4 ^& A
遗传算法这种处理能力称为隐含并行性(Implicit Parallelism)。它说明遗传算法其内在具有并行处理的特质。
# x; I: d' O, P2 h) s# ~7 ~9 `- ^
二、遗传算法的应用关键' t9 a3 i/ {' o
8 Q0 K' W! Z+ f1 d& k
遗传算法在应用中最关键的问题有如下3个
' m# `! d4 K/ q: Y/ e1 {, I7 {& ?( R* Z' w0 T4 E
1.串的编码方式2 U# c! |$ a& R+ w" U0 h' k3 W
+ }9 \/ }1 `$ R: O# p- Y这本质是问题编码。一般把问题的各种参数用二进制编码,构成子串;然后把子串拼接构成“染色体”串。串长度及编码形式对算法收敛影响极大。
, o" M' k& E! b& F: ^" X
6 Q# C9 K. e' F5 S2.适应函数的确定
7 Y8 ] h+ D9 x+ D
9 l9 J1 }& g& c5 B( b: b9 T适应函数(fitness function)也称对象函数(object function),这是问题求解品质的测量函数;往往也称为问题的“环境”。一般可以把问题的模型函数作为对象函数;但有时需要另行构造。
9 T+ ]: |: b8 g" }3 P5 x( J: Y* u1 ?3 h0 `; a) R9 W
3.遗传算法自身参数设定
x' Q7 g; X( K$ D# a8 E
" r0 A8 h$ W- A) \" c, q遗传算法自身参数有3个,即群体大小n、交叉概率Pc和变异概率Pm。% g& a: @/ V+ T( u: f
0 F' O' t: D9 Q1 y* n; `0 S0 S
群体大小n太小时难以求出最优解,太大则增长收敛时间。一般n=30-160。交叉概率Pc太小时难以向前搜索,太大则容易破坏高适应值的结构。一般取Pc=0.25-0.75。变异概率Pm太小时难以产生新的基因结构,太大使遗传算法成了单纯的随机搜索。一般取Pm=0.01—0.2。4 h7 M" j3 Z! d# Z
8 C2 n6 h* S3 W! ^* r三、遗传算法在神经网络中的应用
+ C9 j2 ~& J: f! X; V# F- y, |# I7 d" y, m
遗传算法在神经网络中的应用主要反映在3个方面:网络的学习,网络的结构设计,网络的分析。
' p- v( e n; n. G& K* R: ]" ]* B9 P# B
1.遗传算法在网络学习中的应用3 r- E- e& o: L# ~; O7 x1 z
; ^+ W+ N$ H' t1 W: i7 }* [
在神经网络中,遗传算法可用于网络的学习。这时,它在两个方面起作用
- a, w# P' j- b4 D
; h2 @ e7 ?+ s% G6 `(1)学习规则的优化
9 k" }. K3 A" T( i) L" m" m: ~7 _) v& y6 E, f2 \1 l) L
用遗传算法对神经网络学习规则实现自动优化,从而提高学习速率。: I" {, B4 e& B1 W5 T% d. n0 t, q$ X/ ]
" p) g9 Z( d% Q3 a(2)网络权系数的优化/ c# L+ w6 c& ]
H W, S6 }" E' G H用遗传算法的全局优化及隐含并行性的特点提高权系数优化速度。7 ~. O4 U: s& L: f
9 L+ N& M8 s* `2 d+ b2 `; e* R' V4 K" `) c
2.遗传算法在网络设计中的应用
% K7 `$ o+ ~% L! l `
' _5 T& w1 e1 k7 H9 h# e1 b用遗传算法设计一个优秀的神经网络结构,首先是要解决网络结构的编码问题;然后才能以选择、交叉、变异操作得出最优结构。编码方法主要有下列3种:6 o C+ W2 M y& N
) E$ Q4 v6 C" L' |8 o0 u+ |3 E
(1)直接编码法' v- U1 N2 p% j' x* i# U% L
$ G9 `- q" I4 Y" |5 ^1 K
这是把神经网络结构直接用二进制串表示,在遗传算法中,“染色体”实质上和神经网络是一种映射关系。通过对“染色体”的优化就实现了对网络的优化。5 k( e, ?( ]# e j' E* v
. X4 m, n% F0 f8 s: K( u! n0 U( }(2)参数化编码法
3 E4 l' H% M# t( D0 j4 k- b' N* _" R/ |
参数化编码采用的编码较为抽象,编码包括网络层数、每层神经元数、各层互连方式等信息。一般对进化后的优化“染色体”进行分析,然后产生网络的结构。) H$ k6 H9 ]8 a# j* l {
$ V- Q' |: z5 j0 F, n2 \
(3)繁衍生长法
4 `" V, W* u, j2 \) b/ h4 P6 I& o: z, H
这种方法不是在“染色体”中直接编码神经网络的结构,而是把一些简单的生长语法规则编码入“染色体”中;然后,由遗传算法对这些生长语法规则不断进行改变,最后生成适合所解的问题的神经网络。这种方法与自然界生物地生长进化相一致。
& x6 L4 M6 B ^0 F0 a3 C8 t
+ B$ A9 z- k0 S L+ N3.遗传算法在网络分析中的应用
" _$ O v* k' l' N& q! m
( \; A+ A3 O+ e遗传算法可用于分析神经网络。神经网络由于有分布存储等特点,一般难以从其拓扑结构直接理解其功能。遗传算法可对神经网络进行功能分析,性质分析,状态分析。: w6 K% Z/ f, U! I: v9 C, h% r" ~
* S5 R: o6 P( L) c遗传算法虽然可以在多种领域都有实际应用,并且也展示了它潜力和宽广前景;但是,遗传算法还有大量的问题需要研究,目前也还有各种不足。首先,在变量多,取值范围大或无给定范围时,收敛速度下降;其次,可找到最优解附近,但无法精确确定最扰解位置;最后,遗传算法的参数选择尚未有定量方法。对遗传算法,还需要进一步研究其数学基础理论;还需要在理论上证明它与其它优化技术的优劣及原因;还需研究硬件化的遗传算法;以及遗传算法的通用编程和形式等。
$ h2 [7 ~2 e$ p$ q7 r/ ~5 r5 d |
|