1 / 116

Introduction to Soft Computing

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.連想記憶.

jana
Download Presentation

Introduction to Soft Computing

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction to Soft Computing Yuji Sato

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

  3. 評価方法 1.評価方法:試験+出席率 2.配点:試験:87点,出席:13点 3.その他:  (1)遅刻,早退:0.5点/回  欠席:0点/回

  4. 講義内容(第1回目) 1.参考書紹介 2.遺伝的アルゴリズムとは  (1)遺伝的アルゴリズムの歴史  (2)遺伝的アルゴリズムの概要

  5. 参考書 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).

  6. 参考書 • 坂和,田中 共著:「ニューロコンピューティング入門」, 1.坂和,田中 共著:「ニューロコンピューティング入門」,森北出版 2.田中著:「ソフトコンピューティング入門」,科学技術出版

  7. 進化的計算(Evolutionary Computation)とは? →生物進化から着想を得た確率的探索手法 従来手法では解決が困難であったさまざまな最適化問題や 探索問題に対して、実用上の準最適解を速やかに得ること ができる適用範囲の広い多点探索アルゴリズムとして注目 されている

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

  9. 進化的計算の歴史(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

  10. 遺伝的アルゴリズムの概要 • 遺伝的アルゴリズム(GA)は,生物進化に着想を得た,適用範囲の広い学習的アルゴリズム.生物が何万年も何億年もかけて進化してきた遺伝的な法則を工学的にモデル化したもの.

  11. 用語の説明(1) • 個体 (individual):染色体によって特徴付けられる単位 • 集団 (population):個体の集合 • 遺伝子 (gene):遺伝情報を表す構成要素 • 染色体 (chromosome):複数個の遺伝子の並び • 対立遺伝子 (alleles):各遺伝子が取りうる値の候補 • 遺伝子座 (locus):染色体上の各遺伝子の位置 • 遺伝子型 (genotype):形質を規定する染色体の遺伝子表現 • 表現型 (phenotype):遺伝子から発現される個体の形質表現

  12. 用語の説明(2) • コード化 (coding):表現型から遺伝子型への写像 • デコード化 (decoding):遺伝子型から表現型への逆写像 • 適応度 (fitness):環境に対する個体の適応の度合 • 遺伝的操作 (genetic operation):交叉、突然変異、選択など の操作 • 選択 (selection):適応度に基づく個体の選択淘汰 • 交叉 (crossover):個体間での遺伝子の組み換え • 突然変異 (mutation):対立遺伝子への確率的な置き換え • 世代 (generation):遺伝的操作の1サイクル、または、 ある時点での集団を構成する個体群

  13. 遺伝的アルゴリズムとは何か? (特徴的な手続き) ・システムを文字列にコーディングする ・システム(文字列)の集団を対象とする   →1点探索ではなく、多点探索を行う ・文字列をデコードして実現された、システムの挙動を評価する ・淘汰により、次の世代の親となる集団を選ぶ ・選ばれた集団にオペレータ(genetic operator)を施すことにより新しいシステム(文字列)を生成する ・このサイクルを繰り返すことで、システム集団の評価点を向上させる

  14. ゲノム (Genome)とフェノム (Phenome) ゲノムはフェノムを成長させるコードである Phenome Genome 成長 Genome

  15. 染色体と遺伝子(例) 染色体(遺伝子型)の例:0110110 染色体(遺伝子型)0110110の1番目の遺伝子座の 遺伝子:0、2番目の遺伝子座の遺伝子:1

  16. 染色体の定義例 システム 結合行列 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

  17. 遺伝的アルゴリズムの手順 次世代 個体群 10110 遺伝的 操作 評価 選択 11001 評価関数

  18. 講義内容(第2回目A)GAの実装1 1.簡単な関数最適化の例 2.適合度とスケーリング 3.選択 4.演習1の準備問題1

  19. 簡単な関数最適化の例 • 1変数の簡単な関数 を,閉区間[-1, 2]で最大にするxを求める関数最適化問題 (図2.1) • f(x)はがi奇数となるxiに対して局所的最大値をとり, iが偶数となるxiに対して局所的最小値となる.

  20. 簡単な関数最適化の例 1. コード化 個体を{0, 1}の2進文字列とすると22ビット必要 2. 初期個体群の生成 22ビットの2進文字列をランダムに生成 3. 適合度関数 最大化する関数をそのまま適合度関数 4. 遺伝的操作 1点交叉と突然変異

  21. 遺伝子の表現 ・ 遺伝的アルゴリズムでは,個体を表す文字列(string)としてどのようなものを用いるかは任意. ・ 一方,Hollandの研究をはじめとして,ほとんど全て2値{0,1}の並びである文字列,すなわちビット列(bit string)によるコード化が用いられることが多い.

  22. 評価ー(適合度とスケーリング)- 1.適合度関数(または,適応度関数)   予め設計者が明示的に与えることにより、計算機の中で、  遺伝的操作が自動的に繰り返される。   精度に大きな影響を与える。 2.スケーリング(scaling)  (1)線形スケーリング:fi’ = a・fi + b (a, b: 係数)  (2)シグマ切断: fi’ = fi – (f* - c・ s)    ( f*:平均適合度、c:定数、 s : 適合度の標準偏差)  (3)べき乗スケーリング: fi’ = (fi)k

  23. 線形スケーリングの手順 手順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: 係数)なる線形スケーリングを行う.

  24. シグマ切断 • 線形スケーリングに対してfi’ < 0 となる場合が多いとき,すなわち個体群中の多くの個体が高い適合度をもち,残りわずかな個体が非常に小さな値の適合度をもつ場合が多いときには,個体群の適合度の標準偏差sを用いたシグマ切断が有効とされている. • シグマ切断(sigma truncation)は以下の式で定義される. fi’ = fi – (f* - c・s) ここで, cは1から3の値をとる定数で, fi’ < 0であればfi’ = 0とおく.標準偏差sは世代ごとに計算する必要がある.

  25. べき乗スケーリング • べき乗スケーリング(power law scaling)は,以下に示すべき乗の写像として定義される. fi’ = (fi)k ここで,kは問題の構造に依存し,かつ世代の進化に応じて変更する必要がある.

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

  27. 選択の種類 1.ルーレット選択:  ・適応度に比例した確率で選択される 2.ランキング選択:  ・ランクに対応した再生数を予め定義 3.トーナメント選択:  ・トーナメント方式で、次世代に残す個体を決定 4.エリート保存選択:  ・個体群の中で最も適応度の高い個体は無条件で次世代に残す

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

  29. ルーレット選択のアルゴリズム 手順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を繰り返す.

  30. 期待値選択 • ルーレット選択に代表される確率的選択では,個体数が十分に多くないときには,乱数の揺らぎによって適合度を正確に反映しない選択となる可能性がある.この問題に対処するために提案された手法が期待値選択(expected-value selection)である. • 期待値選択では,個体群中の各個体の適合度とその総計を計算し,適合度の総計に対する各個体の割合で個体数を調整する.(表2.2)

  31. ランキング選択 • 再生数が適合度の値により決定される選択手法ではうまくいかない場合に適用される. • ランキング選択(ranking selection)は,適合度の大きなものから順に再生する個数を予め決定しておく.バランスのよい再生が可能である.一方,ランクと再生数の関係は,経験に基づき,設計者が試行錯誤で決める必要がある.(表2.3)

  32. トーナメント選択 • トーナメント選択(tournament selection)は,個体群中から予め定められた個数の個体をランダムに選択して,その中で最も適合度の高い個体を(トーナメント方式で)次世代に残すという手続きを次世代に残したい数の個体が選択されるまで繰り返す方式. • Messy GAなどの手法(後述)で使用されている.

  33. エリート保存選択 • エリート保存選択(elitist preserving selection)は,個体群中で最も適合度の高い個体は無条件にそのまま次世代に残すという方式. • De Jongは,エリート選択を,以下のように定義. 「s*(t)を,世代tまでに現れた最良の個体とする.もし, X(t+1)を通常の方法で生成したときに, X(t+1)の中に, s*(t)が存在しなければ, s*(t)をX(t+1)のN +1番目の個体として加える.」

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

  35. 講義内容(第2回目B)GAの実装2 1.交叉 2.突然変異 3.設計変数 4.演習1の準備問題2

  36. 交叉の一般的なアルゴリズム 手順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個の個体と入れ替える.

  37. 交叉 1.1点交叉(単純交叉):  ・交叉点をランダムに1箇所選び、交叉点の右側の文字列を交換する 2.多点交叉:  ・交叉点をランダムに複数個選び、交叉点の間で交互に部分文字列を交換する 3.一様交叉:  ・マスクパターン上の1の遺伝子座には親1の遺伝子を、0の遺伝子座には親2の遺伝子を受け継ぐ子と、その逆の受け継ぎ方をする子を生成させる

  38. 交叉の例(1)ー 1点交叉または単純交叉 -交叉の例(1)ー 1点交叉または単純交叉 - 1010110010101011 1010110010110101 1011001011110101 1011001011101011

  39. 交叉の例(2)ー 多点交叉 - 1010110010101011 1010110010110101 1010110010101011 1010111011101011 1011001011110101 1011001011101011 1011001011110101 1011000010110101

  40. 交叉の例(3)ー 一様交叉 - 親1:    11000001    親2:    10111010   マスク:   10110110    子1:    10001000    子2:    11110011

  41. 突然変異のアルゴリズム 手順1: 2値{0, 1}の文字列,すなわちビット列で表される個体の各遺伝子座に対して[0, 1]の乱数rand()を発生させる. 手順2:pm > rand()ならば,遺伝子座の遺伝子を対立遺伝子に置き換える.すなわち0ならば1,1ならば0とする. 手順3:個体群の中の全ての個体に対して手順1,2を行って終了する.

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

  43. 突然変異の例 1011100101 1111100001

  44. 逆位(inversion) • 個体上のランダムに選ばれた2点間の部分文字列の順序を反転させる操作.

  45. 設計変数(GAパラメータ) • GAの精度,性能を向上させるためには,以下に示すパラメータを適切に設定する必要がある. (1) 個体数(個体群中に存在する個体総数) N (2) 交叉率 Pc (3) 突然変異率 Pm (4) 世代ギャップ(世代間で入れ替える新個体の割合) G (5) 世代交代数などの終了条件

  46. 単純GAsimple genetic algorithm: SGA • GAにおいて、個体を2値{0, 1}の文字列、すなわちビット列で表現して、再生をルーレット選択、交叉を1点交叉として、通常の突然変異を加えて遺伝的オペレータを構成したものを、単純GAと呼ぶ。

  47. 演習1の準備問題2 • 個体数:100,染色体の全長:16ビット,適応度関数f(x)は,長さ16ビットの文字列x内に存在する”1”の数とする. 1.一点交叉のプログラムを作成せよ. 2.突然変異のプログラムを作成せよ.

  48. 演習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)設定で同様の実験をせよ.交叉を伴う突然変異の場合,突然変異のみの場合,交叉も突然変異も行わない場合で,最適文字列発見までの最短時間および平均時間を比較し考察せよ.

  49. 講義内容(第3回目)GAの理論的基礎1 1.暗黙の並列性(implicit parallelism) 2.スキーマ定理(schema theorem) 3.積木仮説(building block hypothesis)

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

More Related