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