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