DarkrAI: a Pareto ε-greedy policy
Allgemeine Informationen
Dieses Projekt erforscht den Einsatz von bio-inspirierten Techniken, um die Leistung von Reinforcement Learning (RL) zu verbessern und den Lernprozess zu beschleunigen. Insbesondere konzentrieren wir uns auf das Training von RL-Agenten für Pokémon-Kämpfe, ein komplexes Gebiet mit zahlreichen möglichen Ergebnissen in jeder Runde.
Ansatz
Wir haben einen neuen Ansatz entwickelt, der verschiedene Elemente kombiniert:
-
Schadensberechnung: Um die Auswirkungen von Pokémon-Zügen genau zu bewerten, haben wir einen Node-Server eingerichtet, der mit einem API-Server für Schadensberechnungen verbunden ist. Diese Infrastruktur liefert präzise Daten über die Auswirkungen von Zügen.
-
NSGA-II-Optimierung: Wir setzen den genetischen Algorithmus NSGA-II ein, um ein multikriterielles Optimierungsproblem zu lösen. NSGA-II identifiziert Pareto-optimale Züge, die Pokémon in einer bestimmten Runde ausführen können, und verbessert so die Entscheidungsfindung.
-
Künstliches Neuronales Netz (ANN): Wir haben ein ANN entwickelt, dessen Gewichte durch RL gelernt werden. Dieses Netzwerk hilft bei der Optimierung von Pokémon-Aktionen.
-
Trainingsumgebung: Wir verwenden Pokémon Showdown, einen Online-Kampfsimulator, als Trainingsumgebung. Die Python-Bibliothek “poke-env” erleichtert die Kommunikation mit dem Simulator und ermöglicht die Entwicklung von benutzerdefinierten trainierbaren Agenten.
-
Daten von Pikalytics: Um Unsicherheiten über die Pokémon des Gegners zu beseitigen, beziehen wir Daten von Pikalytics ein, die Wettbewerbsanalysen und Erkenntnisse zur Teambildung bieten.
Ergebnisse
Unsere Experimente zeigen vielversprechende Ergebnisse. Der ParetoPlayer, ein mit unserem Ansatz trainierter Agent, zeigt das Potenzial, das Training durch höhere Belohnungen zu verbessern. In Situationen mit einem kleinen Suchraum und einer einzigen Gewinnbedingung übertrifft Player jedoch ParetoPlayer.
Wir erkennen an, dass weitere Optimierungen, die Erforschung von Hyperparametern und Anpassungen der Netzwerktopologie die Ergebnisse verbessern könnten. Zu den Herausforderungen gehören die zeitaufwändige Natur von NSGA-II, das derzeit auf CPU-Berechnungen angewiesen ist, und die Bewältigung erzwungener Wechsel, ein separates Netzwerkproblem.
Umfassende Details, Methodik, Umsetzungsentscheidungen und Ergebnisse finden Sie in unserem Bericht und Präsentationsfolien.
Unsere statistischen Tests umfassen:
normality.R
: Testet die Normalität der Belohnungsunterschiede zwischen zwei RL-Läufen.regression.R
(Veraltet): Erzeugt eine Regressionslinie aus durchschnittlichen Episodenbelohnungen.10_runs_agg.R
: Erzeugt eine Regressionsgerade und führt einen Kolmogorov-Smirnov-Test für durchschnittliche Episodenbelohnungen durch.significance_if_not_normal.R
: Führt einen Wilcoxon-Rangsummentest für Episodenbelohnungsdaten durch.- significance_if_normal.R`: Führt einen Student’s t-Test für Episodenbelohnungsdaten durch.
Weitere Informationen zu unseren statistischen Tests finden Sie in der analysis README.
Mitwirkende
- Samuele Bortolotti
- Simone Alghisi
- Massimo Rizzoli
- Erich Robbi