introduction to soft computing l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Introduction to Soft Computing PowerPoint Presentation
Download Presentation
Introduction to Soft Computing

Loading in 2 Seconds...

play fullscreen
1 / 116

Introduction to Soft Computing - PowerPoint PPT Presentation


  • 253 Views
  • Uploaded on

Introduction to Soft Computing. Yuji Sato. 講義計画. 1.遺伝的アルゴリズム( GA )とは 2.単純 GA の実装 3. GA の理論的基礎1:スキーマ定理と積木仮説 4. GA の理論的基礎2:騙し問題 5. Messy GA 他 6.進化戦略( ES )と進化的プログラミング( EP ) 7.遺伝的プログラミング( GP ) 8.応用(組合せ最適化、関数最適化、機械学習) 9.ニューロンのモデル、パーセプトロン 10.バックプロパゲーション 11.ホップフィールドモデル 12.教師なし学習 13.連想記憶.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Introduction to Soft Computing' - jana


Download Now An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide2
講義計画

1.遺伝的アルゴリズム(GA)とは

2.単純GAの実装

3.GAの理論的基礎1:スキーマ定理と積木仮説

4.GAの理論的基礎2:騙し問題

5.Messy GA他

6.進化戦略(ES)と進化的プログラミング(EP)

7.遺伝的プログラミング(GP)

8.応用(組合せ最適化、関数最適化、機械学習)

9.ニューロンのモデル、パーセプトロン

10.バックプロパゲーション

11.ホップフィールドモデル

12.教師なし学習

13.連想記憶

slide3
評価方法

1.評価方法:試験+出席率

2.配点:試験:87点,出席:13点

3.その他:

 (1)遅刻,早退:0.5点/回  欠席:0点/回

slide4
講義内容(第1回目)

1.参考書紹介

2.遺伝的アルゴリズムとは

 (1)遺伝的アルゴリズムの歴史

 (2)遺伝的アルゴリズムの概要

slide5
参考書

1.坂和正敏、田中雅博 共著 「遺伝的アルゴリズム」 朝倉書店

2.北野宏明 編著 「遺伝的アルゴリズム」、「遺伝的アルゴリズム2」、「遺伝的アルゴリズム3」 、「遺伝的アルゴリズム4」 産業図書

3.伊庭斉志 監訳 「遺伝的アルゴリズムの方法」 東京電機大学出版局

4.嘉数 監訳 「遺伝アルゴリズムの理論」 森北出版

5.D.E. Goldberg, “Genetic Algorithms in Search, Optimization and Machine Learning”, Addison-Wesley (1989).

6.J.H. Holland , “Adaptation in Natural and Artificial Systems”, MIT Press (1975).

slide6
参考書
  • 坂和,田中 共著:「ニューロコンピューティング入門」,

1.坂和,田中 共著:「ニューロコンピューティング入門」,森北出版

2.田中著:「ソフトコンピューティング入門」,科学技術出版

evolutionary computation
進化的計算(Evolutionary Computation)とは?

→生物進化から着想を得た確率的探索手法

従来手法では解決が困難であったさまざまな最適化問題や

探索問題に対して、実用上の準最適解を速やかに得ること

ができる適用範囲の広い多点探索アルゴリズムとして注目

されている

evolutionary computation ec
進化的計算 (Evolutionary Computation, EC)の代表例
  • 遺伝的アルゴリズム (Genetic Algorithms, GA)
  • 遺伝的プログラミング (Genetic Programming, GP)
  • 進化的プログラミング (Evolutionary Programming, EP)
  • 進化的戦略 (Evolution Strategies, ES)
slide9
進化的計算の歴史(1)

(1960年代後半) (1994年) (2000年)

GA: J. Holland D.E. Goldberg

K.A. DeJong

J. Koza

ES: H.-P. Schwefel T. Baeck

I. Rechenberg

EP: L. Fogel D. Fogel

P. Angeline

GP

EC: IEEE

slide10
遺伝的アルゴリズムの概要
  • 遺伝的アルゴリズム(GA)は,生物進化に着想を得た,適用範囲の広い学習的アルゴリズム.生物が何万年も何億年もかけて進化してきた遺伝的な法則を工学的にモデル化したもの.
slide11
用語の説明(1)
  • 個体 (individual):染色体によって特徴付けられる単位
  • 集団 (population):個体の集合
  • 遺伝子 (gene):遺伝情報を表す構成要素
  • 染色体 (chromosome):複数個の遺伝子の並び
  • 対立遺伝子 (alleles):各遺伝子が取りうる値の候補
  • 遺伝子座 (locus):染色体上の各遺伝子の位置
  • 遺伝子型 (genotype):形質を規定する染色体の遺伝子表現
  • 表現型 (phenotype):遺伝子から発現される個体の形質表現
slide12
用語の説明(2)
  • コード化 (coding):表現型から遺伝子型への写像
  • デコード化 (decoding):遺伝子型から表現型への逆写像
  • 適応度 (fitness):環境に対する個体の適応の度合
  • 遺伝的操作 (genetic operation):交叉、突然変異、選択など

の操作

  • 選択 (selection):適応度に基づく個体の選択淘汰
  • 交叉 (crossover):個体間での遺伝子の組み換え
  • 突然変異 (mutation):対立遺伝子への確率的な置き換え
  • 世代 (generation):遺伝的操作の1サイクル、または、

ある時点での集団を構成する個体群

slide13
遺伝的アルゴリズムとは何か?

(特徴的な手続き)

・システムを文字列にコーディングする

・システム(文字列)の集団を対象とする

  →1点探索ではなく、多点探索を行う

・文字列をデコードして実現された、システムの挙動を評価する

・淘汰により、次の世代の親となる集団を選ぶ

・選ばれた集団にオペレータ(genetic operator)を施すことにより新しいシステム(文字列)を生成する

・このサイクルを繰り返すことで、システム集団の評価点を向上させる

slide14

ゲノム (Genome)とフェノム (Phenome)

ゲノムはフェノムを成長させるコードである

Phenome

Genome

成長

Genome

slide15
染色体と遺伝子(例)

染色体(遺伝子型)の例:0110110

染色体(遺伝子型)0110110の1番目の遺伝子座の

遺伝子:0、2番目の遺伝子座の遺伝子:1

slide16
染色体の定義例

システム

結合行列

1 2 3 4 5 6 7 8

1 0 0 0 1 0 1 0 0

2 0 0 0 1 1 0 1 0

3 0 0 0 0 1 0 0 1

4 1 1 0 0 0 0 1 0

5 0 1 1 0 0 0 0 1

6 1 0 0 0 0 0 0 0

7 0 1 0 1 0 0 0 0

8 0 0 1 0 1 0 0 0

入力

1

6

出力

4

2

7

5

3

8

染色体

0001010000011010 ….. 00101000

slide17
遺伝的アルゴリズムの手順

次世代

個体群

10110

遺伝的

操作

評価

選択

11001

評価関数

2 a ga 1
講義内容(第2回目A)GAの実装1

1.簡単な関数最適化の例

2.適合度とスケーリング

3.選択

4.演習1の準備問題1

slide19
簡単な関数最適化の例
  • 1変数の簡単な関数

を,閉区間[-1, 2]で最大にするxを求める関数最適化問題

(図2.1)

  • f(x)はがi奇数となるxiに対して局所的最大値をとり, iが偶数となるxiに対して局所的最小値となる.
slide20
簡単な関数最適化の例

1. コード化

個体を{0, 1}の2進文字列とすると22ビット必要

2. 初期個体群の生成

22ビットの2進文字列をランダムに生成

3. 適合度関数

最大化する関数をそのまま適合度関数

4. 遺伝的操作

1点交叉と突然変異

slide21
遺伝子の表現

・ 遺伝的アルゴリズムでは,個体を表す文字列(string)としてどのようなものを用いるかは任意.

・ 一方,Hollandの研究をはじめとして,ほとんど全て2値{0,1}の並びである文字列,すなわちビット列(bit string)によるコード化が用いられることが多い.

slide22
評価ー(適合度とスケーリング)-

1.適合度関数(または,適応度関数)

  予め設計者が明示的に与えることにより、計算機の中で、

 遺伝的操作が自動的に繰り返される。

  精度に大きな影響を与える。

2.スケーリング(scaling)

 (1)線形スケーリング:fi’ = a・fi + b (a, b: 係数)

 (2)シグマ切断: fi’ = fi – (f* - c・ s)

   ( f*:平均適合度、c:定数、 s : 適合度の標準偏差)

 (3)べき乗スケーリング: fi’ = (fi)k

slide23
線形スケーリングの手順

手順1:個体群の平均適合度f*,最大適合度fmax,最小適合度fminを求め,cmult = 2.0とおく.

手順2: fmin > (cmult f* - fmax)/(cmult – 1.0)ならば手順3へ,そうでなければ手順4へ進む.

手順3:a = (cmult – 1.0) f*/(fmax - f*),

b = f*(fmax - cmult f*)/ (fmax - f*)として手順5へ進む.

手順4: a = f*/(f* - fmin), b = - fminf*/ (f* - fmin)として手順5へ進む.

手順5:i = 1, 2, …, Nに対してfi’ = a・fi + b (a, b: 係数)なる線形スケーリングを行う.

slide24
シグマ切断
  • 線形スケーリングに対してfi’ < 0 となる場合が多いとき,すなわち個体群中の多くの個体が高い適合度をもち,残りわずかな個体が非常に小さな値の適合度をもつ場合が多いときには,個体群の適合度の標準偏差sを用いたシグマ切断が有効とされている.
  • シグマ切断(sigma truncation)は以下の式で定義される.

fi’ = fi – (f* - c・s)

ここで, cは1から3の値をとる定数で, fi’ < 0であればfi’ = 0とおく.標準偏差sは世代ごとに計算する必要がある.

slide25
べき乗スケーリング
  • べき乗スケーリング(power law scaling)は,以下に示すべき乗の写像として定義される.

fi’ = (fi)k

ここで,kは問題の構造に依存し,かつ世代の進化に応じて変更する必要がある.

slide26
再生・選択
  • 環境に対する適合度の高い個体が次の世代でより多くの子孫を残すという自然淘汰(natural selection)の考えは,GAでは,再生(reproduction)あるいは選択(selection)とよばれ,個体の中で問題(環境)への適合度の高い個体は増殖し,逆に適合度の低い個体は淘汰される.
slide27
選択の種類

1.ルーレット選択:

 ・適応度に比例した確率で選択される

2.ランキング選択:

 ・ランクに対応した再生数を予め定義

3.トーナメント選択:

 ・トーナメント方式で、次世代に残す個体を決定

4.エリート保存選択:

 ・個体群の中で最も適応度の高い個体は無条件で次世代に残す

slide28
ルーレット選択
  • ルーレット選択は,個体群の中の各個体の適合度とその総計を求めて,適合度の総計に対する各個体の割合を選択確率として個体を選択する.
  • 各個体siの適合度をf(si) (> 0), i = 1, …, Nとするとき,各個体の選択確率は以下の式で表すことができる.
slide29
ルーレット選択のアルゴリズム

手順1:世代tの個体群X(t)の中のN個の個体の適合度fi, i = 1, …, Nとその総計fsumを求める.

手順2:[0, 1]の乱数rand()を発生させ,s = rand() xfsumとする.

手順3: f1 +, …, + fk> sとなるような最小のkを求めて,k番目の個体を世代t+1に生き残る個体の候補とする.

手順4:候補となる個体数がNになるまで,手順2,3を繰り返す.

slide30
期待値選択
  • ルーレット選択に代表される確率的選択では,個体数が十分に多くないときには,乱数の揺らぎによって適合度を正確に反映しない選択となる可能性がある.この問題に対処するために提案された手法が期待値選択(expected-value selection)である.
  • 期待値選択では,個体群中の各個体の適合度とその総計を計算し,適合度の総計に対する各個体の割合で個体数を調整する.(表2.2)
slide31
ランキング選択
  • 再生数が適合度の値により決定される選択手法ではうまくいかない場合に適用される.
  • ランキング選択(ranking selection)は,適合度の大きなものから順に再生する個数を予め決定しておく.バランスのよい再生が可能である.一方,ランクと再生数の関係は,経験に基づき,設計者が試行錯誤で決める必要がある.(表2.3)
slide32
トーナメント選択
  • トーナメント選択(tournament selection)は,個体群中から予め定められた個数の個体をランダムに選択して,その中で最も適合度の高い個体を(トーナメント方式で)次世代に残すという手続きを次世代に残したい数の個体が選択されるまで繰り返す方式.
  • Messy GAなどの手法(後述)で使用されている.
slide33
エリート保存選択
  • エリート保存選択(elitist preserving selection)は,個体群中で最も適合度の高い個体は無条件にそのまま次世代に残すという方式.
  • De Jongは,エリート選択を,以下のように定義.

「s*(t)を,世代tまでに現れた最良の個体とする.もし, X(t+1)を通常の方法で生成したときに, X(t+1)の中に, s*(t)が存在しなければ, s*(t)をX(t+1)のN +1番目の個体として加える.」

slide34
演習1の準備問題1
  • 個体数:100,染色体の全長:16ビット,適応度関数f(x)は,長さ16ビットの文字列x内に存在する”1”の数とする.
  • 1.初期集団生成のプログラムを作成せよ.
  • 2.ルーレット選択のプログラムを作成せよ.
2 b ga 2
講義内容(第2回目B)GAの実装2

1.交叉

2.突然変異

3.設計変数

4.演習1の準備問題2

slide36
交叉の一般的なアルゴリズム

手順1:i = 1として,i番目の個体と交叉する個体をN個の個体からなる個体群の中から選ぶ.

手順2:[0, 1]の乱数rand()を発生させ,pc > rand()なら手順3へ,そうでないなら手順4へ行く.

手順3:2つの個体をある交叉方法で交叉させ,手順5へ行く.

手順4:交叉させなかった2つの個体を一時的に保存して,手順6へ行く.

手順5:交叉させた2つの新しい個体を一時的に保存して,手順6へ行く.

手順6:i < Nならi = i+1として手順1へ戻り,そうでなければ手順7へ行く.

手順7:保存されている2N個の個体の中からNG個(0 < G < 1)をランダムに選び,もとのN個の個体群の中のNG個の個体と入れ替える.

slide37
交叉

1.1点交叉(単純交叉):

 ・交叉点をランダムに1箇所選び、交叉点の右側の文字列を交換する

2.多点交叉:

 ・交叉点をランダムに複数個選び、交叉点の間で交互に部分文字列を交換する

3.一様交叉:

 ・マスクパターン上の1の遺伝子座には親1の遺伝子を、0の遺伝子座には親2の遺伝子を受け継ぐ子と、その逆の受け継ぎ方をする子を生成させる

slide38
交叉の例(1)ー 1点交叉または単純交叉 -交叉の例(1)ー 1点交叉または単純交叉 -

1010110010101011

1010110010110101

1011001011110101

1011001011101011

slide39
交叉の例(2)ー 多点交叉 -

1010110010101011

1010110010110101

1010110010101011

1010111011101011

1011001011110101

1011001011101011

1011001011110101

1011000010110101

slide40
交叉の例(3)ー 一様交叉 -

親1:    11000001

   親2:    10111010

  マスク:   10110110

   子1:    10001000

   子2:    11110011

slide41
突然変異のアルゴリズム

手順1: 2値{0, 1}の文字列,すなわちビット列で表される個体の各遺伝子座に対して[0, 1]の乱数rand()を発生させる.

手順2:pm > rand()ならば,遺伝子座の遺伝子を対立遺伝子に置き換える.すなわち0ならば1,1ならば0とする.

手順3:個体群の中の全ての個体に対して手順1,2を行って終了する.

slide42
突然変異
  • 突然変異は,染色体上のある遺伝子座の値を他の対立遺伝子に置き換えることにより,交叉だけでは生成できない子を生成して,個体群の多様性を維持する.
  • 局所解からの脱出に有効.
  • 突然変異率は遺伝子座(各ビット)ことに定義される.
slide43
突然変異の例

1011100101

1111100001

inversion
逆位(inversion)
  • 個体上のランダムに選ばれた2点間の部分文字列の順序を反転させる操作.
slide45
設計変数(GAパラメータ)
  • GAの精度,性能を向上させるためには,以下に示すパラメータを適切に設定する必要がある.

(1) 個体数(個体群中に存在する個体総数) N

(2) 交叉率 Pc

(3) 突然変異率 Pm

(4) 世代ギャップ(世代間で入れ替える新個体の割合) G

(5) 世代交代数などの終了条件

ga simple genetic algorithm sga
単純GAsimple genetic algorithm: SGA
  • GAにおいて、個体を2値{0, 1}の文字列、すなわちビット列で表現して、再生をルーレット選択、交叉を1点交叉として、通常の突然変異を加えて遺伝的オペレータを構成したものを、単純GAと呼ぶ。
slide47
演習1の準備問題2
  • 個体数:100,染色体の全長:16ビット,適応度関数f(x)は,長さ16ビットの文字列x内に存在する”1”の数とする.

1.一点交叉のプログラムを作成せよ.

2.突然変異のプログラムを作成せよ.

slide48
演習1(単純GAの実装と評価 )

1.適応度比例選択,ルーレット方式,個体数100,染色体の全長16ビット,一点交叉率pc = 0.8,および突然変異率pm = 0.001である単純GAをプログラムせよ.但し,適応度関数f(x)は,長さ16ビットの文字列x内に存在する”1”の数とする.

2.上記プログラムを40回実行し,全てのビットが”1”となる文字列を発見する世代数の平均を求めよ.

3.上記プログラムにおいて,交叉を行わない(pc = 0)設定で同様の実験をせよ.また,交叉と突然変異のどちらも行わない(pc = pm = 0)設定で同様の実験をせよ.交叉を伴う突然変異の場合,突然変異のみの場合,交叉も突然変異も行わない場合で,最適文字列発見までの最短時間および平均時間を比較し考察せよ.

3 ga 1
講義内容(第3回目)GAの理論的基礎1

1.暗黙の並列性(implicit parallelism)

2.スキーマ定理(schema theorem)

3.積木仮説(building block hypothesis)

hamming distance
ハミング距離(Hamming Distance)
  • 2つの個体を a = <anan-1…a1>, b = <bnbn-1…b1>               とするとき,aとbのハミング距離d(a, b)は次式で与えられる.
slide51
スキーマとは

・スキーマ(schemata) S:文字列の部分集合。

 アルファベットの集合にドント・ケア記号*を加えた集合

 から構成される文字列。

 例: S = 01*1*0 →{010100, 010110, 011100, 011110}

・スキーマSの次数(order) O(S) : (全長 L) - (*の数)

 例:上記の例では、6 – 2 = 4

・スキーマSの定義長(defining length) δ(S): 最も左の0または1と最も右の0または1の間の距離。

 例:δ(*0110*) = 5 – 2 = 3, δ(**0*0*) = 4 – 2 = 2

slide52
スキーマの性質

0, 1よりなる長さlのコードである個体を考えるとき、スキーマには以下の性質がある。

1.1つの特定の個体の属するスキーマは2l個ある。

2.サイズnの個体群内に存在し得るスキーマの個数は高々n2l個である。

3.0, 1よりなる長さlのコードに関わるスキーマ数は全部で3l通りある。

slide53
スキーマ数
  • 各遺伝子座での0,1は当確率0.5で生起すると仮定する.このとき,n個の個体によるこの個体群中の異なるスキーマの期待値は以下の式で示される.
implicit parallelism
暗黙的並列性(implicit parallelism)
  • 個体数nの集団の遺伝的アルゴリズムにおいて,同時に処理可能なスキーマ数の上限はn3のオーダー.

  遺伝子の全長をlとし,長さls以下のスキーマのみが生き残ると仮定する.位置を固定して考えると,長さlsのスキーマ数はO(2ls)存在する.位置の取り方は(l-ls+1)通り.個体数nは(平均を考えて)n=2ls/2と考える.従って,並列処理可能なスキーマ数nsは,

ns~2ls(1-ls+1)n=n2(l-ls+1)n =O(n3)

slide55
スキーマ評価値
  • 世代kにおけるスキーマHの評価値f(H, k)は以下の式で与えられる.

但し,|H(k)|は世代kの個体群中でスキーマHに属する個体数.

上記式から,kが異なると同じスキーマに対して評価値は一定でないことが分かる.

slide56
遺伝的操作によるスキーマの変化

1.再生による個体数期待値

2.スキーマHが交叉で破壊されない確率

3.スキーマHが突然変異で破壊されない確率

slide57
スキーマ定理(遺伝的アルゴリズムの基本定理)スキーマ定理(遺伝的アルゴリズムの基本定理)
  • 定義長δ(H)が短く,次数O(H)が低く,平均評価値より高いパフォーマンスを示すスキーマHが,次の世代で生き残る.
building block hypothesis
積木仮説(building block hypothesis)
  • 定義長が短く,次数が低く,適応度が高いスキーマは,交叉により壊されることも少なく,探索過程を通じて保存されやすい.このようなスキーマを積木(building block)と呼ぶ.このような積木単位に交叉した方が,ランダム交叉よりも,最適な遺伝子が得られやすいと思われる.この希望的観測を積木仮説(building block hypothesis)と呼ぶ.
slide59
積木仮説の成立条件
  • 表現型が近い個体は遺伝子型も類似している.
  • 遺伝子座間での干渉が少ない.

例:表現型の7が遺伝子型0111に対応し,8が1000に対応するコード割当は(積木仮説によれば)望ましくない.

slide60
一般化スキーマ定理

n点交叉の場合のスキーマ定理は次式で示される.

slide61
一様交叉とスキーマ定理
  • 一様交叉では,交叉後にスキーマが壊れない確率は (1/2)O(H)-1となり,スキーマ長d(H)に依存しない.従って,多くの問題で有効となる可能性が大きい.
slide62
1点交叉とスキーマ定理
  • 1点交叉では,2つの文字列の値の異なる遺伝子座に着目すると,右と左の位置の間隔が広いほどスキーマが壊れる確率が高くなる.この間隔の大小によって生じる「バイアス」を除く方法として,縮小代理方 (reduced surrogates method)が提案されている.遺伝子座間の距離に関係なく,スキーマが壊される確率が等しくなるように確率を補正して1点交叉を行う方式である.
4 ga 2
講義内容(第4回目)GAの理論的基礎2

1. 2進コードとGrayコード

2.騙し問題

3.GA困難な問題

slide64
Grayコード
  • Grayコード<gl-1gl-2…g0>と2進コード<bl-1bl-2…b0>との間の関係は,次式で定義される.
  • Grayコードは隣り合う値に対するコードはどれか1ビットしか異ならない,すなわちハミング距離が1であるという特徴を持つ.
2 gray
2進コードとGrayコードの対応表

10進 2進 Gray

0 000 000

1 001 001

2 010 011

3 011 010

4 100 110

5 101 111

6 110 101

7 111 100

2 gray66
2進コードとGrayコードの比較
  • f(x) = (x-4)2の最小化問題を3ビットの2進コードとGrayコードにより比較.(表3.5, 表3.6)
  • 2次以上のwjの値についてはGrayコードの方が概して低く,積木仮説が成り立ちやすいことが予想できる.
ga deceptive
騙し問題(GA-deceptive)
  • GAが正常に働かず,評価値の高い個体の生成が妨げられるような問題を騙し問題(deceptive problem)という.
  • 騙し問題では,個体群の全個体中に占める,着目するスキーマ個体数の比率が重要.一方,個体数の比率は,GAの実行または個体数の理論的期待値計算が必要であるために,大変時間がかかり,確率に基づく理論値の計算は困難.従って,厳密性を犠牲にして,スキーマ個体数の比率変化を無視して,騙し性に関する概念の定義を行うことが一般的である.
slide68
競合スキーマ
  • HとH’が競合スキーマ (competiting schemata)であるとは,*の位置が完全に一致して,しかも固定されているいずれかの遺伝子座での値が異なるような場合をいう.
slide69
騙し的
  • f(x)の最大値を与えるxの集合をX*とする.HはX*の要素を含まない次数mのスキーマとする.このとき,あるHに対してそれに競合する別のあるスキーマH’との間に,

f(H) > f(H’)

  が成立するとき,fは次数mで「だまし的」という.

  だまし性は,本来最適でないスキーマが最適であるように振舞うものが存在していることを表している.

slide70
騙し関数の例
  • f(111)が最大値のときの騙し関数の例(例3.6)

次数1: f(**1) < f(**0), f(*1*) < f(*0*), f(1**) < f(0**)

次数2: f(*11) < f(*00), f(1*1) < f(0*0), f(11*) < f(00*)

f(*11) < f(*01), f(1*1) < f(0*1), f(11*) < f(01*)

f(*11) < f(*10), f(1*1) < f(1*0), f(11*) < f(10*)

slide71
騙し関数のタイプ
  • 2ビットの最大化問題において,“11”が最適解であるが,H(0*) > H(1*)である騙し問題を考える.この条件は,以下の式で定義できる.
slide72
騙し関数のタイプ
  • r=f(11)/f(00), c=f(01)/f(00), c’=f(10)/f(00)とおくと騙し問題の条件は,以下のような式となる.

r < 1 + c - c’

  • c>1となるものをタイプI,  となるものをタイプIIの騙し問題という.(図3.6)
  • タイプIはタイプIIよりもGAにより最適化を行うことが容易.タイプIIは最適解が孤立するので,より難しい問題となっている.
slide73
騙し問題と突然変異
  • タイプIの問題:突然変異を含めない場合,GAは繰り返し回数を増やせば最適解に収束する.一方,突然変異率を高くしすぎると,最適解に収束することが困難となる.
  • タイプIIの問題:突然変異を行わない場合,“00”と“11”がアトラクターになる.その際,騙し問題なので“00”が大多数になる.一方,突然変異の割合をある程度大きくさせていくと,2つの局所解を隔てていた境界を越えて,最適解に収束する.
slide74
コードによる騙し性の解消 (1)
  • 騙し問題は,目的関数に対する適合度関数の作り方,および適合度関数とそれに対するコード化が原因となり生じる場合が多い.
  • 図3.6に示される騙し問題は,適切なコードを用いることにより,よりやさしいクラスの問題に置き換えられる.(表3.7,表3.8,図3.7)
slide75
コードによる騙し性の解消 (2)
  • コードを検討することにより,GAで解くのが容易な問題やより簡単な騙し問題に帰着できる.一方,そのようなコードを見つけることが実際は難しい.
  • コード化の問題として,探索幅(コードにより表現される最小単位)が粗すぎる場合がある.その場合,探索するときに鋭く尖っている最適解が粗い目にかかることは期待薄である.
slide76
適合度関数による騙し性の解消
  • g(00)=128, g(01)=1, g(10)=g(11)=32と仮定する.適合度関数をこのままf(x)=g(x)と定義すると

f(0*)=64.5,f(1*)=32

で騙し問題になっている.

  • 一方, f(x)=log2g(x)と定義すると

f(00)=7, f(01)=0, f(10)=f(11)=5

f(0*)=3.5,f(1*)=5

で騙し性が解消される.(例3.7)

slide77
GA困難な問題
  • GAの基本的な遺伝的操作である,再生,交叉,突然変異と,標準的なパラメータを用いて大域的な最適解を求めることができる問題をGA容易な問題,そうでない問題をGA困難な問題という.
  • GA容易な完全騙し問題の例(例3.8)
  • 騙し問題ではないがGA困難な問題の例(例3.9)
slide78
単純GAと騙し問題
  • 単純GAでは,GA-hard(単純な3種類の操作(増殖,交叉,突然変異)のGAでは解法が困難な問題)ではないのに,局所最適解に収束してしまう場合が存在する.
  • 一方,一般的に,ほとんどのMDP(Minimal Deceptive Problem)はGA-hardではない.
slide79
マルコフ連鎖解析
  • GA解析における重要な問題は

(1) 最適解を含む個体群がどれくらいの時点で現れるか?

(2) GAが得意とする問題のクラスはどのようなものか?

(3) 問題に対応して,どのようにGAパラメータを設定するのが最適なのか?

などである.

  • スキーマ定理のみでこれらの問題に対応するのは困難なため,近年,マルコフ連鎖解析を用いたGAの理論的研究も始まっている.
4 b ga 3
講義内容(第4回目B)GAの理論的基礎3

1.ローヤル・ロード関数を用いた,GAと他の山登り法との比較

2.ランダム突然変異山登り法(RMHC)

3.理想的なGA(IGA)

slide81
ロイヤル・ロード関数
  • ロイヤル・ロード関数R1は,積木仮説を調べるために考案された適合度関数の一つ.
  • R1は一連のスキーマsiを使って定義される.各siには係数ciが与えられる.文字列xの適合度R1(x)は以下の式で定義される.
slide82
ロイヤル・ロード関数を用いたGAと他の山登り法との比較ロイヤル・ロード関数を用いたGAと他の山登り法との比較
  • 最急勾配山登り法(SAHC),逐次勾配山登り法(NAHC),ランダム突然変異山登り法(RMHC)とGAを比較.
  • 乱数の種を変えて200回の試行を行い,最適文字列を見つけるまでの関数評価回数を記録.

(最大評価回数を256000 に設定)

  • 平均は,GA: 61334, SAHC: >256000,

NAHC: >256000, RMHC: 6179

steepest ascent hill climbing sahc
最急勾配山登り法Steepest-ascent hill climbing(SAHC)

1.1つの文字列をランダムに選ぶ.この文字列を「現頂上」と呼ぶ.

2.左から右に順に各ビットを反転させてみて,反転結果の文字列の適合度を記録する.

3.もし反転結果の文字列が適合度の増加をもたらすなら,現頂上を反転結果の中で最高の適合度の文字列に変更する.

4.もし適合度の増加がない場合は現頂上を保存し,ステップ1へ戻る.そうでなければステップ2に戻る.

5.設定した回数の関数評価が済んだら,見つかった最高の頂上を返す.

next ascent hill climbing nahc
逐次勾配山登り法Next-ascent hill climbing(NAHC)

1.1つの文字列をランダムに選ぶ.この文字列を「現頂上」と呼ぶ.

2.iを1からl(lは文字列長)まで変えてビットiを反転する.反転により適合度が増えればそれを新たに文字列とし,そうでなければビットは元に戻す.適合度の増加がみられた途端に,他のビット反転を評価することなしに現頂上を適合度の増加した文字列に移してしまう.ステップ2に戻り新たな現頂上について同じ操作を繰り返す.但し,反転するビットの位置は先に適合度の増加が見られたビット位置の隣から始める.

4.もし適合度の増加がない場合は,現頂上を保存しステップ1へ戻る

5.設定した回数の関数評価が済んだら,見つかった最高の頂上を返す.

random mutation hill climbing rmhc
ランダム突然変異山登り法Random-mutationhillclimbing(RMHC)ランダム突然変異山登り法Random-mutationhillclimbing(RMHC)

1.1つの文字列をランダムに選ぶ.この文字列を「最高評価解」と呼ぶ.

2.反転のための遺伝子座をランダムに選ぶ.反転して現在以上の適合度が得られるならば,反転結果を最高評価解とする.

3.最適な文字列が見つかるか,定められた回数の関数評価が済むまでステップ2に戻る.

4.最高評価解を返す.

slide86
RMHCが最適文字列を見つける時間の期待値

ε(K, N) = ε(K, 1)N(1+1/2+1/3+…+1/N)

= ε(K, 1)N(lnN+g)(証明は別紙参照)

→ 2KN(lnN+g)(K → ∞)

  • ε(K, N) : 適合度関数がK個の隣接する1からなるN個のブロックによるものとした時に,RMHCがオール1の最適文字列を見つける時間(関数評価回数)の期待値

g:オイラー定数(0.5772)

slide87
GAにおけるヒッチハイキング
  • 一旦高次のスキーマのインスタンスが見つかると,その高い適合度がスキーマを集団内に急速に広めるが,そのときスキーマの定義部分にある1にヒッチハイキングして,他の位置にある0までも広まってしまう.
  • ヒッチハイキングは,ある遺伝子座でサンプリングされるスキーマを限定してしまうことにより, GAの暗黙の並列化を大きく制限する.
  • ヒッチハイカーの最も起りやすい位置は,高適合度のスキーマの定義部分に近い部分.
ga idealized ga iga
理想的なGAIdealized GA: IGA

1.各タイムステップで新たな文字列を各ビットについて一様分布でランダムに選ぶ.

2.1つ以上の所望のスキーマを含む文字列が初めて見つかったときは,その文字列を保存する.

3.1つ以上の未発見の(所望の)スキーマを含む文字列が見つかったときは,即座に新たな文字列と保存しておいた文字列を交叉させ,保存した文字列がそれまでに見つかった全ての所望のスキーマを持つようにする.

slide89
IGAが最適文字列を見つける時間の期待値

εN(K, N) 2K(lnN+g)

(証明は別紙参照)

IGAは完全に暗黙の並列化を実行するために,RMHCよりもオーダーNだけ速い.

iga rmhc
なぜIGAはRMHCよりも速いか?
  • IGAは完全に暗黙の並列化を実行する.すなわち,新たな文字列は直前の文字列と完全に独立で,新たなサンプルはパーティションごとに独立に得られる.
  • 一方,RMHCは文字列の空間をビットごとの突然変異により元の文字列から動いていくので,新たなサンプルは直前のサンプルと1ビットを除いて変わらない.よって,新たなサンプルは1つのスキーマパーティションだけに1つの新たなサンプルを与える.
slide91
IGAに近づくためには?
  • 独立なサンプル:集団を大きくとる.突然変異率を十分高く設定する.
  • 望ましいスキーマの保存:突然変異率は必要以上に高く設定しない.
  • 即座の交叉:交叉が望ましい2つのスキーマを組み合わせるのに要する時間が,望ましいスキーマが見つかるのにかかる時間に対して十分小さくなるように交叉率を設定する.
  • RMHCを超える高速化:N倍の高速化が効くほど、文字列を長く設定する.
slide92
演習2(GAの理論的基礎 )

1.スキーマ定理(別紙参照)

2.適応度関数f(x)が以下の式で表されるとする.

3(x ∈ 111*・・・*)

f(x) = 2(x ∈ 0*・・・*)

0(上記以外)

 以下のスキーマの平均適応度を求めよ.

(a) 1**・・・*

(b) 11*・・・*

(c) 1*1*・・・*

(d) *1*・・・*

3.3ビットの完全だまし適合度関数を設計せよ.

但し,”111”が最大値を与えると仮定する.

slide93
演習2(GAの理論的基礎 )

4. n点交叉の場合のスキーマ定理は次式で示されることを示せ.

slide94
演習2(GAの理論的基礎 )追加問題

5. 理想的なGA(IGA: Idealized GA)の解析において説明を省略した以下の変形が正しいことを示せ.

 但し,N:個体数,p:ランダムな文字列中にスキーマHが見つかる確率,γ: オイラー定数.また,以下の関係は既知とする.

5 sga
講義内容(第5回目)SGAの弱点を改善するための拡張講義内容(第5回目)SGAの弱点を改善するための拡張
  • CHC:SGAの操作の効率化が目的
  • 拡大GA:騙し問題対応が目的
  • Messy GA:離れた遺伝子座よりなるスキーマ対応が目的
  • 並列GA:並列計算機上での効率向上が目的
slide96
CHC
  • CHCは以下の略語.

C (Cross generational elitist selection):2世代エリート選択

H (Heterogeneous recombination):異種間交叉

C (Cataclysmic mutation):大変動突然変異

  • CHCがSGAと異なる点は,SGAが操作の単純さをその特徴としているのに対して,CHCは単純性を犠牲にする代わりに各操作をより効率的に行い,得られた優良個体は確実に残すことを意図していること.
chc 1
CHCの特徴 (1)
  • 選択(2世代エリート選択)

CHCでは,古い世代の個体群と,新しく交叉によって生じた個体群を混ぜ合わせた中から優れた個体を(確率を使わずに)順に選択する.従って,以下の特徴を持つ.

  • エリート選択である
  • より大きな個体群中の個体の多様性が保たれる
  • ランキング選択なので,個体の評価値のスケーリングに左右されない
  • 2世代個体群から選択する方法は他の方法にはあまり見られない
chc 2
CHCの特徴 (2)

2. 交叉(異種間交叉)

CHCでは,類似の個体間の交叉(近親間交叉)を行わないことで多様性を確保する.具体的には,修正一様交叉を行う.修正一様交叉は,2つの親のビット値が異なる遺伝子座がm個あるとき,そのうちm/2個の位置をランダムに選んでその遺伝子座の親の値を交換する交叉である.この交叉は必ず行うのではなく,ハミング距離が閾値よりも小さい個体間の組み換えを避ける操作が行われる.この閾値は個体群が収束するのと同時にしだいに減少させるので生き残る個体数がほぼ一定になるように制御される.

chc 3
CHCの特徴 (3)

3. 突然変異(大変動突然変異)

CHCでは,突然変異は途中では行わず,個体群が収束したときに個体群中の最良個体を用いて一部の個体を初期化する.1個体中の遺伝子座のうちr(拡散率という)の割合のものの値をランダムに決める.その際,最良の個体そのものを1つ保存することにより進化が逆戻りすることを防いでいる.拡散率rは0.35程度の値が用いられることが多い.

slide100
CHCのアルゴリズム
  • CHCの特徴 (3)

Procedure CHC

begin

k = 0; /* k:世代数 */

d = L/4; /* L:個体長 */

P(k)の初期化(個体数N)

P(k)の評価

終了条件が満たされるまで繰り返す

begin

k = k + 1;

P(k – 1)をコピーしてシャッフルした個体群をC(k)とおく

C(k)の中で組み換えを行い新しい個体群をC’(k)とする

C’(k)の評価

C’(k)とP(k – 1) の中から選択

if P(k) == P(k – 1)

d = d – 1; /* d:閾値 */

if d < 0

begin

P(k)の初期化

d = r(1 – r)L /* r:拡散率 */

end

end

end

end.

slide101
CHCの組み換え

Procedure CHCの組み換え

begin

C(k)中の個体をペアにしてそれぞれに対して

begin

ハミング距離を求める

if ハミング距離/2 > d

修正一様交叉

else

そのペアを個体群から消去

end

end

end.

slide102
CHCの選択

Procedure CHCの選択

begin

P(k - 1)を評価値順に並べP(k)とする

C’(k)を評価値順に並べる

while P(k)の最悪値 < C’(k)の最良値

その2値を入れ替える

end

end.

slide103
CHCの一部初期化

Procedure CHCの一部初期化

begin

P(k - 1)の最良個体をN個作ってP(k)とおく

P(k)のN - 1個の個体に対して

begin

rLビットをランダムに選び,値もランダムに決める   個体評価

end

end.

slide104
拡大GA
  • 全てのステップで完全騙し問題なら,GAを実行して,収束した個体をビット反転すれば最適解が得られる.現実的により難しい問題は部分的騙し問題,すなわち,部分列が騙し問題になっている場合である.このような部分的騙し問題に対処するために考案されたGAが拡大GA(augmented GA)である.拡大GAでは,各ステップにおいて3倍個数の個体評価をするだけで部分的騙し問題を解くことができる.
slide105
拡大GAのアルゴリズム

Procedure 拡大GA

begin

k = 0;

個体群P(k)を初期化

P(k) (個体数N)の中の個体を評価

終了条件が満たされない間繰り返す

begin

k = k + 1;

P(k – 1)からP(k)を選択

P(k)の中で交叉を行う

P(k)の中の個体を全てビット反転してQ(k)を生成

P(k),Q(k)の中から個体を確率的に選んで多点交叉を行いR(k)を生成

P(k),Q(k),R(k)の中の最良の個体を出力(記録)する.

end

end.

messy ga
Messy GA
  • SGAでは,定義長の大きいスキーマは壊れやすく,小さな積木という形のスキーマからしか最適解が構成されない欠点がある.この欠点を補うためにGoldbergらにより考案された手法が,messy GAである.
  • messy GAでは,スキーマの定義長に影響されずに良いスキーマが増殖するように,遺伝子をタグを付けたペア(位置,値)の形で表現する.
messy ga107
Messy GAの遺伝子表現の例
  • 011101

(1, 0) (2, 1) (3, 1) (4, 1) (5, 0) (6, 1) 或いは

(2, 1) (5, 0) (1, 0) (3, 1) (6, 1) (4, 1) など

  • SGAでの1点交叉では交叉点の右と左に分けることしかできなかったのに対して,messy GAでは,同じ1点交叉であらゆる2個の部分集合への分割が可能になる.
messy ga primordial phase
Messy GAのアルゴリズム第一フェーズ(primordial phase)

1.第一フェーズ(primordial phase)

最高騙し次数の長さの全てのスキーマを発生させ,その中で最適解を含む有用なスキーマを残し逆に無用なスキーマを振り落とす.既に初期個体群の中に必ず最適解を含む(騙されない長さの)スキーマが存在するのであるから,次の交叉操作を行うのが容易になる程度までこのフェーズで個体数を絞り込む.

slide109
第一フェーズの手順

1.最高騙し次数mを決定する.

2.次数mのスキーマを全て列挙する.

次数mのスキーマはkCm2m通り存在する.

3.競合テンプレート法(後述)により,初期世代の個体群中に含まれる個体の評価を行う.

4.トーナメント選択で個体数を絞り込む.

(図4.2参照)

5.個体数を減少させる.

messy ga juxtapositional phase
Messy GAのアルゴリズム並列フェーズ(juxtapositional phase)

2.並列フェーズ(juxtapositional phase)

個体中から2つの個体が,切断(cut)と接合(splice)のために,ランダムに選ばれる.切断確率は1つの切れ目ごとに定数pcで定義する.個体長lの場合,1回の操作で切断される確率は,近似的に, pc(l – 1)となる.従って,個体長が長いほど1個体が切断される確率は大きくなる.

一方,接合は,個体長には関係なく,個体単位に接合の確率を定義する.従って,個体長が短い場合には切断されずに接合のみが行われやすくなる.

slide111
切断と接合の例

個体1 (1, 0) (2, 1) (3, 1) (4, 1) (5, 0)

個体2 (5, 1) (4, 0) (2, 0) (1, 1)

新個体1 (1, 0) (2, 1) (3, 1) (4, 1) (2, 0) (1, 1)

新個体2 (5, 1) (4, 0) (5, 0)

slide112
過不足のある個体の評価
  • 先に述べた第一フェーズおよび並列フェーズの中で過不足のある個体の評価値は次のように与える.
  • 多重定義:最初に現れた定義を優先させる.
  • 不足定義:競合テンプレートと呼ばれる方法を用いる.
slide113
競合テンプレート
  • 未定義の遺伝子座がlビットあるとするとき

a) l ビットの文字列を1つランダムに生成する

b) 1, 2, …, lをランダムに並べ替える

  • b)で並び替えた数字の順にランダムな系列の中の対応するビットの値を変化させ,元の系列と変化させた系列の評価値を比較する.良い方に固定する.

d) この操作を一巡させる.

slide114
部分関数のスケーリング(1)
  • トーナメント選択ではスキーマ同士を比較することになるが,異なる遺伝子座を定義しているスキーマを比較評価することは無意味である.
  • このような比較,選択を行わないようにするために,トーナメント選択において個体(スキーマ)の定義されている遺伝子座が一定個数以上共通である場合のみ比較することが必要.また,比較できる別の個体がない個体は優先的に次世代に残すことも有効.
slide115
部分関数のスケーリング(2)
  • 最高騙し次数kが4,積木の長さが3の場合を考える.3ビットの積木に対して残り1ビットを寄生ビットと呼ぶ.
  • 寄生ビットは,第一フェーズでは特に何の問題も起こさない.一方,並列フェーズでは,寄生ビットが有効な結合表現の生成を妨げる可能性がある.
  • この問題をさけるために,遺伝子座をk – 1ビット追加し,kに満たない長さの騙し次数をもつ部分列の寄生ビットに対応する部分にN (Null bit)というコードを使う.
slide116
並列GA

Procedure 並列GA

begin

初期個体の生成

終了条件が満たされない間以下繰り返す

begin

近傍で個体を組み合わせる

交叉を行う

子の適合度が親より良ければ子を新しい個体群に入れる

end

end.