質問

「Polyworld」をカバーするGoogleのテクニカルトークビデオを見ました。 (こちらを参照)、2つのニューラルネットワークを組み合わせて子孫を形成することについて話します。私の質問は、2つのニューラルネットワークをどのように組み合わせるかです。それらは非常に異なっているようであるため、それらを結合しようとすると、まったく無関係な3番目のネットワークが形成されます。おそらく何かが足りないのかもしれませんが、2つの別々のニューラルネットワークのプラスの側面を組み合わせて、それらを単一のニューラルネットワークに結合する良い方法がありません。誰もがこのプロセスについて詳しく説明できれば、感謝しています。

役に立ちましたか?

解決

実際には、2つのニューラルネットワークを一緒に繁殖させることはありません。 「遺伝子」の特定のシーケンスが与えられると、特定のニューラルネットワーク構造を生成するさまざまな遺伝的アルゴリズムを持っていると思われます。彼らは遺伝子配列の集団から始めて、特徴的なニューラルネットワークを生成し、これらのネットワークのそれぞれを同じ訓練計画にさらします。おそらく、これらのネットワークのいくつかは、他のいくつかのネットワークよりもトレーニングによく応答します(つまり、望ましい動作を達成するためにより簡単に「トレーニング可能」になります)。次に、彼らは最良の「研修生」を生み出した遺伝子配列を取り、それらを互いに交配させ、それらの特徴的なニューラルネットワークを生み出し、その後、同じトレーニングレジメンにさらされます。おそらく、これらの第2世代のニューラルネットワークの一部は、第1世代のニューラルネットワークよりもさらにトレーニング可能です。これらは第3世代の親などとなります。

他のヒント

これまでのところ、どちらの応答もPolyworldの性質に当てはまりません!...

両方とも、典型的な遺伝的アルゴリズム(GA)アプリケーションについて説明しています。 GAにはPolyworldで見られる要素(育種、選択)の一部が組み込まれていますが、GAには何らかの形の「客観的」なものも含まれています。 [比較的]特定の目標に向けて進化を導くことを目的とした基準。

一方、

Polyworldは Artificial Life (ALife)のフレームワークです。 ALifeでは、個々のクリーチャーの生存と他の世代に遺伝子を渡す能力は、特定の「フィットネス機能」を満足させる能力によってそれほど方向付けられていませんが、代わりにさまざまなより幅広い、非目的指向の基準、例えば、そのサイズと代謝に見合った方法で自分自身を養う能力、捕食者を避ける能力、交配相手を見つける能力などまた、さまざまな運とランダムさもあります。

クリーチャーとその世界に関連付けられたPolyworldのモデルは、比較的固定されています(たとえば、それらはすべて、さまざまな基本的なセンサーにアクセスできます(ただし、使用しないこともできます)色、形状...)、およびさまざまなアクチュエーター(「食べる」、「合わせる」、「回す」、「移動する...」デバイス)およびこれらの基本的な感覚および運動機能は進化しません(たとえば、自然のように)クリーチャーが熱や音に敏感になる方法を見つけたり、元のモーションプリミティブなどとは異なる移動方法を見つけたりした場合...)

一方、クリーチャーの脳は、クリーチャーの遺伝的構造の産物である構造とつながりを持っています(祖先からの「もの」と)独自の経験。たとえば、ニューロン間の接続の強さを決定するために使用されるメインアルゴリズムは、クリーチャーのライフタイム中にヘビアンロジック(つまり、一緒に火災、一緒にワイヤ)を使用します(初期段階では、アルゴリズムには"時間が経つにつれて、物事を大きく変える能力を最小化する冷却」要因)。モデルに何らかの形のラマルシアン進化が含まれているかどうかは不明であり、それにより、一部の高レベルの行動は、(おそらく)遺伝的に受け継がれる各世代に(おそらく)間接的にではなく、遺伝子を介して受け継がれます構造)。

ALifeとGAの顕著な違い(および他にもあります!)ALifeの焦点は、無指向の方法で観察し、育成することにあります>、緊急行動-それらが何であれ-、たとえば、一部のクリーチャーがメイクを進化させ、近くに山積みの緑色の食物を待ち、暗緑色のクリーチャーが彼らを殺すのを待つ場合、または一部のクリーチャーがたとえば、交配などの目的以外の目的で互いの存在を探求することにより、相互のコラボレーションを開始します。GAでは、進化しているプログラムの特定の動作に焦点が当てられます。例えば、目標はプログラムにビデオ画像のエッジを認識させることであり、したがって、この特定の方向に進化が望まれます。このタスクをよりよく実行する個々のプログラム(「フィットネス関数」を使用した測定)は、進化に関して好まれます。

もう少し明白だが重要な違いは、クリーチャー(またはGAの場合はプログラム)が自分自身を再現する方法に関するものです。 ALifeでは、個々のクリーチャーは最初はランダムに自分の交配相手を見つけますが、特定の属性または行動を示すクリーチャーでしか再現できない場合があります。一方、GAでは、" sex" GAフレームワーク自体に任されます。たとえば、できれば交雑個体を選択します

ニューラルネットワークは(おそらく)この場合、任意のツリーではありません。それらはおそらく、一定の構造、つまり同じノードと接続を持つネットワークであるため、それらを「育てる」には、ノードの重みを「平均化する」必要があります。 2つの対応するネットのノードの各ペアの重みを平均して、「子孫」ネットを生成できます。または、さらに多くの近隣ノードのセットに依存するより複雑な関数を使用することもできます–可能性は広大です。 固定構造に関する仮定が間違っている、または不当である場合、私の答えは不完全です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top