Heim  >  Artikel  >  Backend-Entwicklung  >  Warum explodieren meine Q-Learning-Werte? Eine Geschichte über überhöhte Belohnungen und Floating-Point-Limits.

Warum explodieren meine Q-Learning-Werte? Eine Geschichte über überhöhte Belohnungen und Floating-Point-Limits.

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-26 00:50:28619Durchsuche

 Why Are My Q-Learning Values Exploding? A Tale of Inflated Rewards and Floating Point Limits.

Q-Learning-Werte überschreiten den Schwellenwert

Bei dem Versuch, Q-Learning zu implementieren, trat ein Problem auf, bei dem die Zustandsaktionswerte den Schwellenwert überschritten Grenzen einer Gleitkommavariablen mit doppelter Genauigkeit. Die ursprüngliche Implementierung führte dieses Problem auf die Verwendung von agent.prevState anstelle eines Status-Aktions-Tupels zurück. Als Grundursache wurde jedoch die Berechnung von prevScore identifiziert.

Das Problem verstehen

Q-Learning aktualisiert den Wert von Q(s, a) basierend auf Formel:

Q(s, a) = Q(s, a) + (LearningRate * (prevScore + (DiscountFactor * reward) - Q(s, a)))

Der entscheidende Aspekt ist, dass prevScore die Belohnung für die vorherige Zustandsaktion darstellt, nicht den Q-Wert. In der ersten Implementierung enthielt prevScore den Q-Wert des vorherigen Schritts anstelle der Belohnung selbst, was zu überhöhten Werten führte, die das Gleitkomma-Limit überschritten.

Auflösung

Durch die Überarbeitung von prevScore, um die wahre Belohnung für den vorherigen Schritt zu erhalten, verhielt sich der Lernprozess wie beabsichtigt. Der Maximalwert nach 2 Mio. Episoden verringerte sich erheblich und das Modell zeigte während des Spiels ein angemessenes Verhalten.

Die Rolle der Belohnung

Es ist wichtig, den Einfluss der Belohnungsfunktion zu beachten beim verstärkenden Lernen. Das Ziel besteht darin, die erwartete Gesamtvergütung zu maximieren. Wenn für jeden Zeitschritt eine Belohnung gegeben wird, begünstigt der Algorithmus eine Verlängerung des Spiels, was zu zu hohen Q-Werten führt. In diesem Beispiel ermutigte die Einführung einer negativen Belohnung für jeden Zeitschritt den Agenten, den Sieg anzustreben und die Q-Werte in angemessene Grenzen zu bringen.

Das obige ist der detaillierte Inhalt vonWarum explodieren meine Q-Learning-Werte? Eine Geschichte über überhöhte Belohnungen und Floating-Point-Limits.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn