2016-03-25 4 views
2

Ich konnte nicht finden, warum wir eine globale Innovationsnummer für jedes neue Verbindungsgen in NEAT haben sollten.NeuroEvolution von Augmentationstopologien (NEAT) und globale Innovationsnummer

Von meiner kleinen Kenntnis von NEAT, entspricht jede Innovationsnummer direkt mit einem node_in, node_out-Paar, also, warum nicht nur dieses Paar von IDs anstelle der Innovationsnummer verwenden? Welche neuen Informationen gibt es in dieser Innovationsnummer? Chronologie?

aktualisieren

Ist es ein Algorithmus-Optimierung?

Antwort

0

Ich kann keine detaillierte Antwort geben, aber die Innovationsnummer ermöglicht bestimmte Funktionen innerhalb des NEAT-Modells optimal zu sein (wie die Berechnung der Spezies eines Gens), ebenso wie die Kreuzung zwischen den Genomen variabler Länge zu ermöglichen. Crossover ist in NEAT nicht notwendig, kann aber aufgrund der Innovationsnummer durchgeführt werden.

Ich habe alle meine Antworten von hier:

http://nn.cs.utexas.edu/downloads/papers/stanley.ec02.pdf

Es ist gut, ein

+2

Ja, ich benutze dieses Dokument meine Rost Version zu implementieren https://github.com/TLmaK0/rustneat. Ich habe keine Inovationsnummer verwendet und bin in der Lage, Spezies zu erhalten, und mache einen Crossover mit Genomen variabler Länge. – TlmaK0

+0

Es würde mich interessieren zu erfahren, wie Sie die Bevölkerung ohne Verwendung der Innovationsnummer beschreiben konnten! Ich werde einen Blick auf Ihren Code werfen –

1

Hinweis lesen: dies eher einen längeren Kommentar als Antwort.

Sie sind auf ein Problem gestoßen, das ich auch gerade bei der Entwicklung einer NEAT-Version für Javascript kennengelernt habe. Die Originalarbeit von ~ 2002 ist sehr unklar.

The original paper enthält folgende Komponenten:

Immer wenn ein neues Gens (durch strukturelle Mutation) angezeigt wird, eine globale Innovationsnummer wird inkrementiert und zu diesem Gen zugeordnet. Die Innovationszahlen stellen somit eine Chronologie des Auftretens jedes Gens in dem System dar. [..]; Innovationszahlen werden nie geändert. Somit ist der historische Ursprung jedes Gens in dem System während der gesamten Evolution bekannt.

Aber das Papier ist sehr unklar über den folgenden Fall, sagen wir haben zwei; 'Identisch' (gleiche Struktur) Netzwerke:

enter image description here

Die Netzwerke oben wurden erste Netzwerke; Die Netzwerke haben die gleiche Innovations-ID, nämlich [0, 1]. Jetzt mutieren die Netzwerke zufällig eine zusätzliche Verbindung.

enter image description here

Boom! Zufällig mutierten sie zur selben neuen Struktur. Die Verbindungs-IDs sind jedoch völlig unterschiedlich, nämlich [0, 2, 3] für parent1 und [0, 4, 5] für parent2, da die ID global gezählt wird.

Der NEAT-Algorithmus kann jedoch nicht feststellen, dass diese Strukturen identisch sind. Wenn einer der Eltern höher abschneidet als der andere, ist das kein Problem. Aber wenn die Eltern die gleiche Fitness haben, haben wir ein Problem.

weil das Papier besagt:

bei den Nachkommen Komponieren werden Gene von veither Elternteil in passenden Gene zufällig ausgewählt, während alle Überschuß oder disjunkte Gene werden immer von mehr passen Mutter enthalten, oder wenn Sie sind von beiden Eltern gleichermaßen geeignet.

Also, wenn die Eltern gleichermaßen fit sind, werden die Nachkommen Verbindungen haben [0, 2, 3, 4, 5]. Das bedeutet, dass einige Knoten doppelte Verbindungen haben ... Wenn Sie globale Innovationszähler entfernen und IDs einfach zuweisen, indem Sie auf node_in und node_out schauen, vermeiden Sie dieses Problem.

Also wenn Sie gleich Eltern haben, ja haben Sie den Algorithmus optimiert. Aber das ist fast nie der Fall.


Ganz interessant: in der newer version des Papiers, sie, dass bolded Linie tatsächlich entfernt! Ältere Version here.


By the way, können Sie dieses Problem, indem anstelle der Zuweisung von Innovation IDs lösen, weisen ID basierend auf node_in und node_out pairing functions verwenden. Das schafft ganz interessant neuronale Netze, wenn Fitness ist gleich:

enter image description here

+0

danke @Thomas, lesen Sie Ihre Kommentare machen das Gefühl, dass ich die Papiere wieder lesen sollte! – TlmaK0