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