問題タブ [crossover]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
1474 参照

neural-network - NEATアルゴリズム:ばらばらの遺伝子と過剰な遺伝子をクロスオーバーする方法は?

私は現在、元の論文を参考にして、Kenneth Stanley によって開発された NEAT アルゴリズムを実装しています。

クロスオーバー法が説明されているセクションで、1 つのことが少し混乱します。

ここに画像の説明を入力

したがって、上の図はNEATのクロスオーバー方法を示しています。遺伝子がどちらの親から受け継いだかを決定するために、論文は次のように述べています。

一致する遺伝子はランダムに継承されますが、ばらばらの遺伝子 (途中で一致しないもの) と過剰な遺伝子 (最終的に一致しないもの) は、より適合した親から継承されます。

一致する遺伝子 (1 ~ 5) については、簡単に理解できます。Parent1 または Parent2 のいずれかからランダムに継承します (どちらも 50% の確率で)。しかし、バラバラ (6 ~ 8) および過剰 (9 ~ 10) の遺伝子については、これらの遺伝子は Parent1 または Parent2 のいずれかにしかないため、より適切な親から継承することはできません。

例えば:

Parent1 のフィットネスは、Parent2 よりも高いです。ばらばらの遺伝子 6 は Parent2 にのみ存在します (もちろん、ばらばらで過剰な遺伝子は片方の親にしか存在しないため) したがって、この遺伝子をより適切な親から継承することを決定することはできません。他のすべてのバラバラで過剰な遺伝子についても同じことが言えます。それらが存在する親からのみ継承できます。

だから私の質問は、より適合した親からすべての一致する遺伝子を継承し、ばらばらで余分な遺伝子を引き継ぐだけですか? それとも、ここで何か誤解していますか?

前もって感謝します。