2016-06-28 15 views
0

Ich implementierte NEAT-System nach offiziellen Forschungsbericht, aber ich mache irgendwo Fehler.NEAT System konnte nicht wachsen und somit Ergebnis

Ich entschied mich, mein System auf dem traditionellen XOR-Netzwerkproblem zu testen, das mindestens ein verstecktes Neuron erfordert. Mein NEAT-System fügt einfach kein neues Neuron hinzu. Um klar zu sein, manchmal, System gefunden Ergebnis (mit etwa 2-3 Neuronen in versteckten Schichten), aber nach wirklich langer Zeit (Tausende von Generationen mit Generation Größe 50 und Spezies zählen 10).

Das ist nicht gut. Was kann dieses Verhalten möglicherweise verursachen? Ich denke, es liegt daran, Innovationen verloren so specie-Subsystem möglicherweise nicht richtig funktioniert ...

EDIT:

generation size 50 
mutate rate 80% 
elitism 
new neuron rate 3% 
new connection rate 5% 
no stolen babies (all species has same number of children) 
specie count 10 
mating between species 0% 
+1

Ohne den Code zu sehen, ist es unmöglich, den Fehler zu identifizieren. Wenn Sie jedoch sicher sind, dass Sie es gemäß dem Papier getan haben, suchen Sie nach Programmierfehlern. Oder holen Sie sich eine andere Implementierung und vergleichen Sie sie. Es gibt eine [NEAT Benutzerseite] (https://www.cs.ucf.edu/~kstanley/neat.html). – zegkljan

+0

Vielen Dank für die Antwort, ich kann nicht Code schreiben, weil es für jetzt geschlossen ist. Ich suche aktiv nach Fehlern, ich habe diese Frage gestellt, weil vielleicht jemand mir einen Zeiger auf Modul geben kann, wo Problem (mögliche) Wurzeln hat. – Seraph

Antwort

1

Wenn Sie einen Beispiel-Code suchen, können Sie es auf meinem GitHub finden: https://github.com/Lucas001/NEAT-for-autonomous-car.

Aber, versuchen, Ihre Frage zu beantworten, was ist Ihre Rate, um ein Neuron hinzuzufügen?

Sie können auch Hilfe in einem Buch namens AI-Techniken für die Programmierung suchen. Der Autor verwendet C++ - Code, um den NEAT-Algorithmus zu implementieren, während er in meinem Code in JAVA ist.