Warum funktioniert REINFORCE überhaupt?
Hier ist ein Screenshot des beliebten Policy-Gradient-Algorithmus aus Sutton und Bartos Buch -

Ich verstehe die mathematische Ableitung der Aktualisierungsregel - aber ich kann mir keine Vorstellung davon machen, warum dieser Algorithmus überhaupt funktionieren sollte. Was mich wirklich stört, ist, dass wir mit einer falschen Richtlinie beginnen (dh wir kennen die Parameter nicht$\theta$ noch), und wir verwenden diese Richtlinie, um Episoden zu generieren und daraus resultierende Updates durchzuführen.
Warum sollte REINFORCE überhaupt funktionieren? Schließlich wird die Episode, die für die Verlaufsaktualisierung verwendet wird, mithilfe der Richtlinie generiert, die durch Parameter parametrisiert wird$\theta$ die noch aktualisiert werden müssen (die Episode wird nicht mit der optimalen Richtlinie generiert - das können wir auf keinen Fall tun).
Ich hoffe, dass meine Besorgnis klar ist und bitte Sie, sich ein Bild davon zu machen, warum dies funktioniert! Ich vermute , dass, irgendwie , auch wenn wir eine Episode aus der falschen Politik sind Probenahme, wir näher an den richtigen nach jedem Update (monotone Verbesserung). Alternativ könnten wir uns der optimalen Richtlinie (optimaler Parametersatz) nähern$\theta$) im Durchschnitt.
Also, was ist hier wirklich los?
Antworten
Der Schlüssel zum REINFORCE-Arbeiten ist die Art und Weise, in die die Parameter verschoben werden $G \nabla \log \pi(a|s, \theta)$.
Beachten Sie, dass $ \nabla \log \pi(a|s, \theta) = \frac{ \nabla \pi(a|s, \theta)}{\pi(a|s, \theta)}$. Dies macht die Aktualisierung sehr intuitiv - der Zähler verschiebt die Parameter in die Richtung, die die höchste Zunahme der Wahrscheinlichkeit ergibt, dass die Aktion angesichts des Zustands proportional zu den Renditen wiederholt wird - dies ist leicht zu erkennen, da es sich im Wesentlichen um einen Gradientenanstieg handelt Schritt. Der Nenner steuert Aktionen, die gegenüber anderen Aktionen von Vorteil wären, da sie häufiger ausgewählt würden, indem sie in Bezug auf die Wahrscheinlichkeit, dass die Aktion ausgeführt wird, umgekehrt skaliert werden. Stellen Sie sich vor, es hätte hohe Belohnungen gegeben, aber die Aktion zu der Zeit$t$ hat eine geringe Wahrscheinlichkeit, ausgewählt zu werden (z. B. 0,1), dann multipliziert dies die Renditen mit 10, was zu einem größeren Aktualisierungsschritt in der Richtung führt, die die Wahrscheinlichkeit erhöhen würde, dass diese Aktion am meisten ausgewählt wird (wofür der Zähler, wie erwähnt, steuert ).
Das ist für die Intuition - um zu sehen, warum es funktioniert , dann überlegen Sie, was wir getan haben. Wir haben eine objektive Funktion definiert,$v_\pi(s)$, dass wir daran interessiert sind, unter Berücksichtigung unserer Parameter zu maximieren $\theta$. Wir finden die Ableitung dieses Ziels in Bezug auf unsere Parameter und führen dann einen Gradientenanstieg an unseren Parametern durch, um unser Ziel zu maximieren, dh zu maximieren$v_\pi(s)$Wenn wir also weiterhin einen Gradientenanstieg durchführen, konvergieren unsere Richtlinienparameter (eventuell) zu Werten, die sich maximieren $v$ und damit wäre unsere Politik optimal.