Warum verwendet Q-Learning beim Testen epsilon-greedy?


18

In DeepMinds Artikel über Deep Q-Learning für Atari-Videospiele ( hier ) verwenden sie eine Epsilon-gierige Methode zur Erkundung während des Trainings. Dies bedeutet, dass bei Auswahl einer Aktion im Training diese entweder als Aktion mit dem höchsten q-Wert oder als zufällige Aktion ausgewählt wird. Die Auswahl zwischen diesen beiden erfolgt zufällig und basiert auf dem Wert von Epsilon. Epsilon wird während des Trainings so geglüht, dass zunächst viele zufällige Aktionen ausgeführt werden (Exploration). Im Verlauf des Trainings werden jedoch viele Aktionen mit den maximalen q-Werten ausgeführt (Ausbeutung).

Während des Testens verwenden sie auch diese Epsilon-gierige Methode, wobei Epsilon jedoch einen sehr niedrigen Wert aufweist, sodass eine starke Neigung zur Ausbeutung gegenüber der Exploration besteht und die Auswahl der Aktion mit dem höchsten q-Wert einer zufälligen Aktion vorgezogen wird. Manchmal werden jedoch immer noch zufällige Aktionen ausgewählt (in 5% der Fälle).

Meine Fragen sind: Warum ist zu diesem Zeitpunkt überhaupt eine Erkundung erforderlich, da das Training bereits durchgeführt wurde? Wenn das System die optimale Richtlinie gelernt hat, warum kann dann nicht immer die Aktion mit dem höchsten q-Wert ausgewählt werden? Sollte die Erkundung nicht nur im Training erfolgen und kann der Agent nach dem Erlernen der optimalen Richtlinie einfach wiederholt die optimale Aktion auswählen?

Vielen Dank!


Es könnte irgendwie mit der deterministischen Natur der ALE-Umgebung verbunden sein. Wenn Sie bei Auswertungen keine zufälligen Aktionen ausführen, werden Sie immer die gleiche Reihenfolge von Aktionen ausführen (da die Reihenfolge der Status identisch ist). Sie machen auch zufällige Starts - warten Sie bis zu 30 Frames, die aus diesem Grund nichts tun.
Yobibyte

Antworten:


10

In dem Naturpapier erwähnen sie:

Die trainierten Agenten wurden bewertet, indem jedes Spiel 30-mal für jeweils bis zu 5 Minuten mit unterschiedlichen anfänglichen Zufallsbedingungen ('noop'; siehe Extended Data Table 1) und einer E-Greedy-Richtlinie mit epsilon 0.05 gespielt wurde. Dieses Verfahren wird angewendet, um die Möglichkeit einer Überanpassung während der Bewertung zu minimieren.

Ich denke, was sie bedeuten, ist "die negativen Auswirkungen von Über- / Unteranpassung aufzuheben". Die Verwendung von epsilon von 0 ist eine vollständig ausnutzende Wahl (wie Sie hervorheben) und macht eine starke Aussage.

Stellen Sie sich zum Beispiel ein Labyrinthspiel vor, bei dem die aktuellen Q-Schätzungen des Agenten mit Ausnahme eines Rasters auf die optimale Richtlinie konvergiert werden und sich gierig auf eine Grenze zubewegen, die dazu führt, dass der Agent im selben Raster verbleibt. Wenn der Agent einen solchen Status erreicht und die Aktion "Max Q" auswählt, bleibt er für die Ewigkeit dort hängen. Wenn jedoch ein vage exploratives / stochastisches Element in seiner Politik (wie eine kleine Menge von Epsilon) beibehalten wird, kann es solche Zustände verlassen.

Aus den Code-Implementierungen, die ich mir in der Praxis angeschaut (und selbst codiert) habe, wird die Leistung jedoch oftmals mit gierigen Richtlinien gemessen, und zwar aus den genauen Gründen, die Sie in Ihrer Frage angeben.


3

Die Antwort ist in der Zeitung selbst zu finden. Sie verwendeten , um eine Überanpassung zu vermeiden. Dieses Modell wird als Basis verwendet. Und yobibyte erwähnte in dem Kommentar, dass sie zufällige Starts aus dem gleichen Grund machen. Anschließend wird der Algorithmus auf Leistung gegen einen menschlichen Experten hin bewertet. Der Algorithmus hat kein Modell seines Gegners, also das winzige Epsilon. Wenn Sie das Modell Ihres Gegners haben, ist Ihr Problem deterministisch anstatt stochastisch. Ich hoffe das beantwortet deine Frageϵ =0,05


2

Ich denke, der Zweck des Testens ist es, ein Gefühl dafür zu bekommen, wie das System in realen Situationen reagiert.


ϵ

Option 2:
Wenn sie besorgt sind, brüchig zu sein und gegen einen weniger "makellos rationalen" Spieler zu spielen, können sie ihre Trainingsergebnisse "ausglühen", um sie nicht zu überschätzen.

Option 3:
Dies ist ihr magischer Rauch. Es wird Teile davon geben, die sie nicht teilen können und wollen. Sie könnten dies veröffentlichen, um etwas Eigenes oder außergewöhnlich Relevantes für ihr Geschäft zu verbergen, das sie nicht teilen möchten.

Option 4:
Sie könnten wiederholte Tests und verschiedene Epsilon-Werte verwenden, um zu testen, wie viel "Fett" noch im System vorhanden ist. Wenn sie eine schwache Randomisierung hatten oder so viele Stichproben, dass sich sogar eine faire Randomisierung von selbst zu wiederholen beginnt, dann könnte die Methode ein unwahres Verhalten lernen, das mit Pseudo-Random-Bias zu tun hat. Dies könnte eine Überprüfung in der Testphase ermöglichen.

Ich bin mir sicher, dass es ein halbes Dutzend anderer bedeutungsvoller Gründe gibt, aber das war es, woran ich denken konnte.

EDIT: Notiz an mich selbst, ich mag den "spröden" Gedanken wirklich. Ich denke, es könnte eine existenzielle Schwäche der KI der ersten Generation sein.


1

ϵ

ϵϵ=0,05

Insbesondere da die vorverarbeitete Eingabe eine Historie von zuvor angetroffenen Zuständen enthält, besteht die Sorge darin, dass der Agent, anstatt sich auf das zugrunde liegende Gameplay zu verallgemeinern, nur die optimalen Trajektorien für dieses bestimmte Spiel speichert und diese während der Testphase wiederholt. Damit ist "die Möglichkeit einer Überanpassung bei der Bewertung" gemeint . Für deterministische Umgebungen ist dies offensichtlich, aber auch für stochastische Zustandsübergänge kann ein Auswendiglernen (dh eine Überanpassung) auftreten. Die Verwendung der Randomisierung während der Testphase in Form von No-Op-Starts mit zufälliger Länge sowie eines Teils der zufälligen Aktionen während des Spiels zwingt den Algorithmus, mit unvorhergesehenen Zuständen umzugehen, und erfordert daher ein gewisses Maß an Generalisierung.

ϵϵ=0Während des Testens könnte sich die Leistung möglicherweise verbessern. Hier geht es jedoch darum, die Fähigkeit zur Verallgemeinerung aufzuzeigen. Darüber hinaus entwickelt sich der Staat in den meisten Atari-Spielen auch im No-Op-Modus weiter, und der Agent würde natürlich "hängen bleiben", falls dies jemals passieren sollte. In Anbetracht des an anderer Stelle erwähnten Labyrinth-Beispiels, in dem sich die Umgebung nicht im Leerlauf entwickelt, würde der Agent schnell erkennen, dass das Anstoßen an eine Wand keine gute Idee ist, wenn die Belohnung richtig geformt ist (beispielsweise -1 für jeden Schritt). Besonders bei Verwendung optimistischer Anfangswerte erfolgt die erforderliche Exploration auf natürliche Weise. Wenn Sie immer noch feststellen, dass Ihr Algorithmus in einigen Situationen hängen bleibt, müssen Sie die Trainingszeit erhöhen (dh mehr Episoden ausführen), anstatt eine zusätzliche Randomisierung in Bezug auf die Aktionen einzuführen.

Wenn Sie jedoch in einer Umgebung mit sich entwickelnder Systemdynamik arbeiten (das sind die zugrunde liegenden Zustandsübergänge oder Belohnungsänderungen im Laufe der Zeit), müssen Sie ein gewisses Maß an Exploration beibehalten und Ihre Richtlinie entsprechend aktualisieren, um mit den Änderungen Schritt zu halten.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.