Q-Learning-Werte überschreiten den Schwellenwert
Bei Ihrer Implementierung von Q-Learning sind Sie auf ein Problem gestoßen, bei dem die Q-Werte übermäßig groß wurden. was zu einem Überlauf führt. Um dieses Problem anzugehen, untersuchen wir die grundlegenden Konzepte und potenziellen Probleme:
Belohnungsfunktion
Die bereitgestellte Belohnungsfunktion weist für jeden Zeitschritt eine positive Belohnung zu und fördert so langfristig Spielen Sie über das Gewinnen. Dies ist unerwünscht, da der Agent einen Anreiz haben sollte, nach dem Sieg zu streben.
Gleichung aktualisieren
Der Kern des Problems liegt in der Aktualisierungsgleichung für Q-Werte:
agent.values[mState] = oldVal + (agent.LearningRate * (agent.prevScore + (agent.DiscountFactor * reward) - oldVal))
Agent.prevScore stellt hier die Belohnung aus der vorherigen Statusaktion dar. In Ihrer Implementierung haben Sie ihn jedoch auf den Q-Wert des vorherigen Schritts (d. h. oldVal) gesetzt. Dieser Fehler führt zu einem unbegrenzten Anstieg der Q-Werte.
Lösung
Nach der Korrektur dieses Fehlers durch Zuweisung von agent.prevScore zur Belohnung aus dem vorherigen Schritt, dem Agenten Verhalten normalisiert sich. Die aktualisierten Q-Werte spiegeln nun die erwartete Gesamtbelohnung wider und bieten dem Agenten einen Anreiz, den Sieg anzustreben.
Q-Wertbereiche
Bei typischen Q-Learning-Problemen ist Q- Die Werte werden durch die maximal möglichen Belohnungen und Strafen begrenzt. In Ihrem Fall begrenzt die Belohnungsfunktion die Q-Werte auf [-1, 1], da sie -1 für einen Verlust und 1 für einen Sieg zuweist. In anderen Szenarien kann der Bereich jedoch größer oder sogar unbegrenzt sein. Die erwartete Gesamtbelohnung ist ein entscheidender Faktor bei der Bestimmung des Bereichs der Q-Werte.
Durch die Bewältigung dieser Probleme haben Sie Q-Learning erfolgreich implementiert und können nun einen Agenten schulen, der strategischer agiert und Prioritäten setzt Über längeres Spiel gewinnen.
Das obige ist der detaillierte Inhalt vonWarum explodieren meine Q-Learning-Werte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!