web-dev-qa-db-ja.com

NEAT(拡張トポロジーの神経進化))とは何ですか?

私はNEATがyoutubeとインターネットにあるものを調べましたが、私はNEATを使用してプロジェクトを見つけることができるだけですが、ウィキペディアのエントリ(それが紹介されているものだけを言っているだけで、非常に紛らわしい)、それが何であるかまだわかりません、それはライブラリですか、それは一種のニューラルネットワークですか、それはニューラルネットワークをトレーニングする方法ですか?これが明らかな質問である場合はごめんなさい。

11
Karan Elangovan

NEAT、つまり拡張トポロジーのニューロ進化は、ケネス・オスタンリーによって導入された人口ベースの進化的アルゴリズムです[1]。

アルゴリズムは、いくつかの主要な機能に基づいています。

複雑化

初期母集団のネットワークは、可能な限り最も単純で(接続がまったくない極限までで、入力ニューロンと出力ニューロンは未接続のままにします)、アルゴリズムのみadds新しい構造要素(ニューロン、接続)。このように、結果のネットワークは非常に小さくなる傾向があります。

歴史的マーキングによる競合規則の回避

通常の進化的アルゴリズムでは、2人の個人が同じ(または非常に似た)動作をエンコードするが、遺伝子型が非常に異なることが簡単に起こります。これは競合規則と呼ばれます。そのような個人が交叉の対象となる場合、彼らの子供たちはどちらの親よりも悪化する可能性があります。 NEATは、新しい構造要素の履歴マーキングを維持することでこれを解決します。新しい構造要素が(構造変異を介して)作成されると、イノベーション番号(および同じ要素を生成したそのようなすべての変異)が割り当てられます、異なる個体でもこの同じ番号が割り当てられます。次に、2つの個体が交差すると、それらの遺伝子型は、対応するイノベーション番号が一致し、異なる要素のみが交換されるように整列されます。

仕様と適合性の共有

NEATはspeciesの概念で機能します。これは単に、speciesと呼ばれる、個体のいくつかのグループへの細分です。このサブディビジョンは、クロスオーバーを行うときに使用される遺伝子型の類似のアラインメントに基づいて計算される個人の非類似度に基づいています。その場合、異なる種の個体を渡る確率は、種の内側を渡る確率よりもはるかに小さくなります。同じような親同士の交配を促進することで、親同士が相性が良かったので、子供たちは親よりもはるかに悪化する可能性が低くなります。

また、種の中では、個体間で適応度が共有されます。これには2つの目的があります。 (1)突然変異から個人を保護します-突然変異が発生した場合、通常、適合度は低くなりますが、適合性の共有があるため、この新しい構造変化に適応するために、個人(重み)を最適化する時間があります。 (2)種が大きくなるほど、共有される適応度が大きくなり、種のメンバーが適合しなくなるため、多様性が促進されます。

私は強くオリジナルの論文[1]を読むことを勧めます。アルゴリズムは非常によく説明されています。また、より多くの論文へのリンクが多く、NEATの実装と使用法もある NEATユーザーページ もあります。


[1] ケネスO.スタンレーとリストミッキライネン。トポロジーの拡張によるニューラルネットワークの進化。 Evolutionary Computation、10(2):99-127、2002。

16
zegkljan