次世代がより良くなることをどうやって知るのでしょうか?


32

私は最近このMSDN記事で遺伝的アルゴリズムを紹介しました。彼はそれらを組み合わせ進化と呼んでいますが、それは同じことのようであり、2つの潜在的なソリューションを組み合わせることで、少なくともその親として良い。

これはなぜですか?確実に組み合わせると、さらに悪い結果が生じる可能性があります。

私が理解している限り、アルゴリズムは種のオスとメスが子孫を生産するとき、それらの子孫は両方の親の特性を持つという概念に基づいています。いくつかの組み合わせはより良くなり、いくつかはより悪くなり、いくつかは同様に良くなります。(「より良い」の定義が適切であれば)より良いものは、改善された特性を持つ生き残りを生み出し、offsringを生成する可能性が高くなります。しかし、そこになります弱い組み合わせであること。なぜこれがGAの問題ではないのですか?


12
However, there will be combinations that are weaker. Why isn't this an issue with GA?-弱い組み合わせは破棄されるため。
ロバートハーベイ

6
良いものは捨てないが、悪いものは捨てるので、次の世代が悪化することはありません。そして、いくつかの良いものを組み合わせるとさらに良いものになる可能性がありますが、それは保証されません。
user253751 16

7
Why isn't this an issue with GA?まあ、それは、より正確には、そうかもしれません。GAを使用して最適化する多くの(多くの)パラメーターの1つは母集団のサイズです:小さすぎると弱い個体しか生成されない可能性がありますが、大きすぎるとフィットネス関数に関連する計算時間が長すぎる可能性があります。
ルーフィロウ16

3
繁殖除草の違いです。繁殖段階では子孫が悪化する可能性がありますが、除草段階では次の繁殖段階の前に最悪のパフォーマンスを排除する必要があります。
TripeHound 16

あなた方全員に感謝します。私が正しく理解していれば、それは彼が私を道から追い出した記事でそれを表現した方法でした。彼は「新しい、おそらく非常に良い、子供の生物が貧しい生物に取って代わる」と言って、私の質問を促した。間違っていたようです:)
アヴロホムイスロエル

回答:


43

遺伝的アルゴリズムは、人口を間引くことにより、世代ごとに改善を試みます。すべてのメンバーはフィットネス関数に従って評価され、それらのハイスコア部分のみが再現することが許可されています。

ただし、次の世代が前任者のスコアを改善するという保証はありません。

Dawkinsのイタチプログラムを考えてみましょう:文字列を「進化させる」"Methinks it is like a weasel"。ランダムな文字列の母集団から始めて、フィットネス関数は、最も近いテキストの一致を評価します。これは、次世代を生み出すために混乱します。単純なクロスオーバー再生では、2つの高得点の文字列を組み合わせると、非常に簡単に低得点の子孫を生成できます。単一の適合性の高い文字列の「無性」ランダムな変異でさえ、子供のフィットネスを低下させる可能性があります。

これは必ずしも欠陥ではないことに注意してください。この種の検索では、極大の概念があります。人口のメンバーは、そうではない解決策を表すかもしれません、最適な結果が、途中で悪化することなく達成することができることが最善ですが。

イタチプログラムのフィットネス関数が編集距離を見つけるだけでなく、「単語」という概念を持ち、文字列の最後の単語が動物の名前であるかどうかをテストするとします。動物の名前はどれも得点が高いですが"weasel"、大きなボーナスがあります。

場合今何が起こる"Methinks it is like a walrus"進化していますか?得点が高い。最終的なターゲット文字列だけでなく"Methinks it is like a walrut"、単一の突然変異ステップで到達できるより優れた、または他の近いバリエーション。

セイウチの文字列は極大値であり、プログラム次世代のスコアを悪化させない限り、検索はそこで止まる可能性があります。


1
関連性:youtube.com/watch ?v=YT1vXXMsYak-Dawkinのコンピュータープログラムのデモは約12分で開始されますが、進化の基本的な理論的基礎(生物学的またはシミュレート)について説明するため、講義全体を見る価値があります接地。
ペリアタブレアッタ16

24
確かに、「遺伝的多様性」を高めるために、より低いスコアのメンバーの一定の割合を生存させ、既存のメンバーにまったく基づいていない完全にランダムな突然変異を導入することがあります。
ヨルグWミットタグ

@JoshCaswellこれをありがとう。すべての回答は素晴らしいものでしたが、これは、私が尋ねたすべてのものと、まだ質問していないことをカバーしているので、これを受け入れられたものとしてマークします!
アブロホムイズロエル

@AvrohomYisroel
ジョシュキャスウェル

6

それが良くなることはわかりませんが、悪化することはありません。

すべての世代で、最高の要素のospringだけで構成されているのではなく、最高の要素自体も含まれています。彼らはまだ存在しているので、彼らは以前と同じように得点します。つまり、良い子孫がいなければ、前世代の勝者が再び勝ち、再変異/繁殖するということです。

考えてみてください。A たとえばA1、番号を追加することで定義される変異した子など、親の周りに角かっこで書かれたクロスパンソリューションなど(A1B2) そしてそれの後に任意のINDIVISUAL WRITENのフィットネスコア-高い優れています[12]

デモンストレーションのために、5のプールを考えてみましょう。ここでは、最高の2を保持し、それぞれ1つの突然変異体と、雑種を埋めます

ジェネレーション1

  • A [10]
  • B [5]
  • C [4]
  • D [3]
  • E [1]

キープAB彼らはそこに子孫とリフィル最高の2、および他の3つのスロットをしているように、

ジェネレーション2

  • A [10]
  • B [5]
  • (AB) [7]
  • A1 [12]
  • B1 [4]

維持しA(AB)彼らは最高です2-これは、Aほとんどの子供たちが弱く働くので、おじいちゃんがまだプールにいることを意味します

ジェネレーション3

  • A [10]
  • (AB) [12]
  • (A(AB)) [14]
  • A2 [8]
  • (AB)1 [13]

キープ(AB)1(A(AB))-子ども二人は彼らを倒すと、この時間は何の祖父母は、維持されませんでした。しかし、(AB1)パフォーマンスがわずかに悪化した場合は、(AB)代わりに維持します。

これは、スコアが安定するまで続きます。これは、ある種の局所的最大値(おそらくは最大値)に到達したことを示しています。これを検出する理由の1つは、同じ個人が引き続き次世代に「クローン」される場合です。(ただし、時間がかかりすぎる可能性のある高次元の問題の場合は、改善を確認することをお勧めします<特定の許容範囲)


1
「すべての世代で、最高の要素のospringだけで構成されているのではなく、最高の要素自体も含まれています」これは実装に依存します。一部の実装ではこれを行いません。そうすることは「エリート」と呼ばれることもあります。
jpmc26 16

4

一般に、遺伝的アルゴリズムは、各世代の親に多数の(ランダムな)バリエーションを作成することで機能します。次に、いくつかの選択関数が適用され、この関数に従って最も適合する子孫が生き残ります。そのため、バリエーションはランダムであるため、子孫は必ずしも良いわけではありませんが、選択と組み合わせることで時間の経過とともに改善されます。


4
ああ、だからこの記事は少し誤解を招いたように思えます。彼は「新しい、恐らく非常に良い子供の有機体が、貧しい有機体に取って代わる」と言ったが、それは私を混乱させた。彼が生物の負荷を組み合わせている場合、個々の新しい生物は以前のものよりも弱いかもしれないとしても、全体的には増加が期待されるでしょう。そうですか?ありがとう
アヴロホムイズロエル

@AvrohomYisroel:そのとおり。
ジャックB 16

1
@AvrohomYisroel:非専門家の大まかな理解に注意してください。(また、専門家の正確な「専門用語の壁」に注意してください。)
エリックタワーズ

@EricTowersええ、問題がわかりました!彼が書いた以前の記事から判断すると、彼は専門家だと思っていましたが、この記事で明らかに大きな間違いを犯したようです。
アブロホムイズロエル

4

大学で遺伝的アルゴリズムを研究したとき、次のように説明されました。

ソリューションが「遺伝子」の組み合わせであると想像してください。各遺伝子は、ソリューション全体の質に影響します。2つのソリューションが結合されると、それらの遺伝子は各親からランダムに選択されます。

現在、遺伝子が一般的に良い解決策につながる場合、遺伝子プールの頻度が増加します。極端な場合、遺伝子が人口を支配します。

したがって、遺伝的アルゴリズム(および一般的な進化)について考えるとき、個人について考えるべきではありません。遺伝子と集団全体について考える必要があります。1つの「最良の」ソリューションが失われたとしても、それは遺伝子が失われたという意味ではありません。

遺伝的アルゴリズムにはエリート主義の考え方もあります。つまり、最良のソリューションは常に世代を超えて維持されます。これにより、アルゴリズムの収束が高速化される可能性がありますが、アルゴリズムがローカルの最適状態に陥りやすくなります。


2

GAアルゴリズムは決定論的ではありません。世代ごとに改善が得られることを保証するものではありません。また、最適なアルゴリズムを見つける保証もありません。ただし、フィットネス関数を使用したGAの選択フェーズでは、「良いソリューション」が生き残る可能性が高くなります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.