2017-10-31 12 views
0

Ich habe eine benutzerdefinierte Openai Fitness-Studio-Umgebung für ein Spiel ähnlich http://curvefever.io/ implementiert, aber mit diskreten Aktionen statt kontinuierlich. So kann mein Agent in jedem Schritt in eine von vier Richtungen gehen, links/oben/rechts/unten. Eine dieser Aktionen führt jedoch immer dazu, dass der Agent in sich selbst stürzt, da er nicht "umkehren" kann.Ungültige Züge in der Verstärkung Lernen

Momentan lasse ich den Agenten nur irgendeinen Zug machen und lass ihn einfach sterben, wenn er einen ungültigen Zug macht, in der Hoffnung, dass er irgendwann lernen wird, diese Aktion in diesem Zustand nicht zu machen. Ich habe jedoch gelesen, dass man die Wahrscheinlichkeiten für eine illegale Bewegung auf Null setzen kann und dann eine Aktion abtasten kann. Gibt es einen anderen Weg, dieses Problem anzugehen?

Antwort

1

Sie können versuchen, dies durch zwei Änderungen zu lösen:

1: geben Stromrichtung als eine Eingabe und geben Belohnung vielleicht +0,1, wenn er den Zug nimmt, die machen es nicht zum Absturz bringen, und geben -0,7 wenn es macht eine Rückwärtsbewegung, die es direkt zum Absturz bringt.

2: Wenn Sie das neuronale Netzwerk und die Softmax-Funktion als Aktivierungsfunktion der letzten Schicht verwenden, multiplizieren Sie alle Ausgänge des neuronalen Netzwerks mit einer positiven Ganzzahl (Konfidenz), bevor Sie sie der Softmax-Funktion zuweisen. Es kann im Bereich von 0 bis 100 sein, da ich mehr als 100 Erfahrung habe, wird nicht viel beeinflussen. Je größer die Ganzzahl ist, desto sicherer ist es, dass der Agent für einen bestimmten Zustand Maßnahmen ergreifen muss.

Wenn Sie nicht neuronales Netzwerk verwenden oder tiefes Lernen sagen, empfehle ich Ihnen, Konzepte des tiefen Lernens zu lernen, da Ihre Umgebung des Spiels komplex erscheint und ein neuronales Netzwerk die besten Ergebnisse liefert.

Hinweis: Es wird sehr viel Zeit in Anspruch nehmen. Sie müssen also genug warten, um den Algorithmus zu trainieren. Ich schlage vor, dass Sie sich nicht beeilen und es trainieren lassen. und ich spielte das spiel, es ist wirklich interessant :) meine wünsche machen AI für das spiel :)

+0

Danke. Da die KI für einen Wettbewerb war, der letzte Woche beendet wurde und ich es nicht zur Arbeit bringen konnte, gab ich auf, heh. Ich benutzte A3C, also keine softmax-Ebene als Ausgabe. Als ich mir das Gameplay anschaute, bemerkte ich, dass es nicht so oft einen ungültigen Zug machte (da dies den Tod sofort zur Folge hätte, wäre das also kein guter Zug). Ich denke, wo ich versagte, war die Reinigung der Eingabe und auch ein zu hoher Gamma-Wert. Es wurde auf .95 eingestellt, als ich es am längsten trainierte. – ericwenn

+0

Kann ich fragen, welcher Wettbewerb es war? Danke ... –

+0

Es war ein Wettbewerb von Cygni, Sie können es hier http://game.snake.cygni.se/#/?_k=kdwudn finden – ericwenn

Verwandte Themen