2017-01-18 3 views
0

Ich begann ein wenig über neuronale Netzwerke zu lernen Ich wollte ein neuronales Netzwerk erstellen, das Tetris lernen lernt.NEAT Neuronales Netzwerk JavaScript

Also stolperte ich über NEAT JS Library und hakte es mit einem Konsole Tetris-Spiel in nodejs. Mein Anliegen ist, dass etwas nicht stimmt, weil das Netzwerk immer nur einen Knopf drückt, egal wie viele Kacheln bereits auf dem Bildschirm sind. Nicht sicher, ob ich eine nicht korrekte Fitnessfunktion geschrieben habe oder mein Trainer mein bestes Genom fallen lässt. Denn wenn das Netzwerk einige Punkte durch die Beschleunigung der Kachel erzielt, ist dieses Verhalten in der nächsten Generation verschwunden.

Hilfe ist immer :-) geschätzt, wenn Sie eine der repo

Besuche suchen haben wollen es laufen nur cd in das Verzeichnis, und führen Sie index.js mit node.js

Vielen Dank an alle im Voraus !

+0

Dies ist wahrscheinlich zu breit wie gefragt und bietet keine sofort umsetzbare Informationen. –

+0

Ok, dann lass mich meine Frage umformulieren. Warum scheint das Netzwerk nicht seine Auswahl zu treffen, basierend auf dem Status des Spielfeldes. Es scheint sich für nur einen Knopf zu entscheiden und probiert nie ein zweites das ganze Spiel aus. – user2581391

+0

Umzuformulieren, was Sie fragen: "Bitte lesen und verstehen Sie meine Codebasis und debuggen sie." Das ist eigentlich eine sehr schwere Sache. –

Antwort

0

Sie können ein paar Dinge ausprobieren ...

  1. Testen Sie, ob Sie Ihre Scoring-Funktion richtig verstanden haben. Versuchen Sie, es zu ändern, um etwas Dummes zu belohnen, wie das Platzieren von Blöcken ganz links. Wenn Sie das erwartete Verhalten erhalten, können Sie die Funktion wahrscheinlich leicht an Ihr Problem anpassen. Wenn das Ergebnis das Gegenteil von dem ist, was Sie erwartet haben, könnten Sie dem Algorithmus den Fehler anstelle der Punktzahl mitteilen, also multiplizieren Sie den Wert mit -1, bevor Sie ihn zurückgeben.
  2. Verfolgen Sie die durchschnittlichen Ergebnisse pro Generation und sehen Sie, ob sie im Laufe der Zeit besser werden. Wenn ja, ist alles in Ordnung, aber Sie brauchen wahrscheinlich mehr Trainingszeit. Wenn nicht etwas im Algorithmus falsch ist.
  3. Überprüfen Sie Ihre Evolutionsparameter. Sie sollten eine möglichst große Population haben, um Abwechslung zu gewährleisten. ungefähr 200 sollten das Minimum sein. Verwenden Sie die besten 10% Ihrer Bevölkerung, um sich zu reproduzieren. Jedes reproduzierte Genom sollte eine kleine (etwa 3%) Chance haben, zu mutieren.