Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Monte-Carlo-Steuerung | Monte-Carlo-Methoden
Einführung in Reinforcement Learning mit Python

Monte-Carlo-Steuerung

Swipe um das Menü anzuzeigen

Durch das Ersetzen des Schritts der Politikbewertung im Standardalgorithmus der Politikiteration durch die im vorherigen Kapitel beschriebenen Monte-Carlo-Schätzverfahren lässt sich bereits eine neue Variante der Politikiteration ableiten – eine, die auf gesampelten Erfahrungen anstelle von dynamischer Programmierung basiert.

Es gibt jedoch eine entscheidende Einschränkung. In der traditionellen Politikiteration hängt der Schritt der Politikverbesserung davon ab, dass ein vollständiges Modell der Umgebung vorliegt. Konkret wird zur Aktualisierung der Politik folgender Ausdruck verwendet:

π(s)arg maxas,rp(s,rs,a)(r+γv(s))\pi(s) \gets \argmax_a \sum_{s', r} \textcolor{red}{p(s', r | s, a)} \Bigl(r + \gamma v(s')\Bigr)

Diese Gleichung setzt voraus, dass die Übergangswahrscheinlichkeiten p(s,rs,a)p(s', r | s, a) bekannt sind. Genau das ist jedoch das Problem: Monte-Carlo-Methoden sind für modellfreie Umgebungen konzipiert, in denen die Übergangsdynamik der Umgebung unbekannt ist. Wenn ein vollständiges Modell verfügbar ist, sollte man ohnehin dynamische Programmierung verwenden, auch für die Politikbewertung, da dies effizienter und präziser wäre.

Daher ist das Ersetzen der Wertschätzung durch Monte-Carlo-Methoden zwar ein Schritt in Richtung modellfreies Reinforcement Learning, aber wir müssen auch einen Weg finden, die Politikverbesserung ohne Kenntnis des Modells durchzuführen. Dies erfordert einen Wechsel von der Zustandswertfunktion zur Aktionswertfunktion.

Warum Aktionswerte?

Durch die Verwendung von Aktionswerten ist es möglich, die Politikverbesserung ohne ein Modell der Umgebung durchzuführen. Anstatt sich auf Übergangswahrscheinlichkeiten zu stützen, um erwartete Erträge zu berechnen, können direkt die Aktionen gewählt werden, die den höchsten Wert zu liefern scheinen. Der Schritt der Politikverbesserung wird dann zu:

π(s)arg maxaq(s,a)sS\pi(s) \gets \argmax_a q(s, a) \qquad \forall s \in S

Und es ist nicht schwer zu zeigen, dass die neue Politik nicht schlechter ist als die alte, da der Politikverbesserungssatz weiterhin gilt:

qπk(s,πk+1(s))=qπk(s,arg maxaqπk(s,a))=maxaqπk(s,a)qπk(s,πk(s))=vπk(s)\begin{aligned} q_{\pi_{k}}(s, \pi_{k+1}(s)) &= q_{\pi_k}(s, \argmax_a q_{\pi_k}(s, a))\\ &= \max_a q_{\pi_k}(s, a)\\ &\ge q_{\pi_k}(s, \pi_k(s))\\ &= v_{\pi_k}(s) \end{aligned}

Und wie bei DP garantiert dieser Satz, dass entweder πk+1\pi_{k+1} besser ist als πk\pi_k oder dass beide gleich und optimal sind.

Schätzung der Aktionswertfunktion

Der Schätzungsprozess ist nahezu identisch zur Zustandswertfunktion. Alle Konzepte, die zur Schätzung von Zustandswerten verwendet werden, können auch zur Schätzung von Aktionswerten eingesetzt werden.

Pseudocode

Pseudocode für die Aktionswertschätzung mit der Monte-Carlo-Methode

Auf diese Weise sollten sich mit genügend Iterationen die geschätzten Aktionswerte den tatsächlichen Aktionswerten annähern.

Damit lässt sich bereits eine Methode ähnlich zur Policy Iteration entwickeln, die nicht auf ein Modell angewiesen ist. Dazu werden die Schritte Policy Evaluation und Policy Improvement durch die oben beschriebenen Prozesse ersetzt.

Optimierung

Obwohl der Evaluierungsschritt mit Monte-Carlo-Schätzung wie beschrieben durchgeführt werden kann, ist er in der Regel rechnerisch ineffizient. Wie bereits gezeigt, benötigen Monte-Carlo-Methoden typischerweise eine große Anzahl von Stichproben, um einigermaßen genaue Schätzungen zu liefern. Wenn wir eine Struktur ähnlich der Policy Iteration verfolgen, wird diese Ineffizienz noch verstärkt: Nach jeder Politikverbesserung muss die Monte-Carlo-Schätzung erneut ausgeführt werden, um die neue Politik zu bewerten – was zu erheblichem Mehraufwand und langsamen Lernprozessen führt.

Eine natürlichere Alternative besteht darin, die Politik unmittelbar nach der Verarbeitung jeder Episode zu aktualisieren. Anstatt auf eine vollständige Evaluierung der Politik zu warten, kann der Agent sein Verhalten Episode für Episode anhand der neuesten Aktionswertschätzungen verfeinern.

Dies führt zu einer Methode, die Value Iteration stärker ähnelt: Aspekte von Evaluierung und Verbesserung werden in einem einzigen Schritt kombiniert. Dadurch steigt die Stichprobeneffizienz und die Rechengeschwindigkeit erhöht sich.

Pseudocode

Pseudocode für Monte-Carlo-Control mit Exploring Starts

Dieser Algorithmus folgt einem GPI-Framework, da er Schritte zur Politikbewertung und Politikverbesserung enthält, und wird als Monte-Carlo-Kontrolle bezeichnet. Der größte Nachteil dieser speziellen Implementierung ist die Annahme von exploring starts. In den nächsten Kapiteln wird erläutert, warum dies ein Problem darstellt und wie damit umgegangen werden kann.

question mark

Was ist der Hauptvorteil der Verwendung von Aktionswerten anstelle von Zustandswerten in der Monte-Carlo-Kontrolle?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 3

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Monte-Carlo-Steuerung

Durch das Ersetzen des Schritts der Politikbewertung im Standardalgorithmus der Politikiteration durch die im vorherigen Kapitel beschriebenen Monte-Carlo-Schätzverfahren lässt sich bereits eine neue Variante der Politikiteration ableiten – eine, die auf gesampelten Erfahrungen anstelle von dynamischer Programmierung basiert.

Es gibt jedoch eine entscheidende Einschränkung. In der traditionellen Politikiteration hängt der Schritt der Politikverbesserung davon ab, dass ein vollständiges Modell der Umgebung vorliegt. Konkret wird zur Aktualisierung der Politik folgender Ausdruck verwendet:

π(s)arg maxas,rp(s,rs,a)(r+γv(s))\pi(s) \gets \argmax_a \sum_{s', r} \textcolor{red}{p(s', r | s, a)} \Bigl(r + \gamma v(s')\Bigr)

Diese Gleichung setzt voraus, dass die Übergangswahrscheinlichkeiten p(s,rs,a)p(s', r | s, a) bekannt sind. Genau das ist jedoch das Problem: Monte-Carlo-Methoden sind für modellfreie Umgebungen konzipiert, in denen die Übergangsdynamik der Umgebung unbekannt ist. Wenn ein vollständiges Modell verfügbar ist, sollte man ohnehin dynamische Programmierung verwenden, auch für die Politikbewertung, da dies effizienter und präziser wäre.

Daher ist das Ersetzen der Wertschätzung durch Monte-Carlo-Methoden zwar ein Schritt in Richtung modellfreies Reinforcement Learning, aber wir müssen auch einen Weg finden, die Politikverbesserung ohne Kenntnis des Modells durchzuführen. Dies erfordert einen Wechsel von der Zustandswertfunktion zur Aktionswertfunktion.

Warum Aktionswerte?

Durch die Verwendung von Aktionswerten ist es möglich, die Politikverbesserung ohne ein Modell der Umgebung durchzuführen. Anstatt sich auf Übergangswahrscheinlichkeiten zu stützen, um erwartete Erträge zu berechnen, können direkt die Aktionen gewählt werden, die den höchsten Wert zu liefern scheinen. Der Schritt der Politikverbesserung wird dann zu:

π(s)arg maxaq(s,a)sS\pi(s) \gets \argmax_a q(s, a) \qquad \forall s \in S

Und es ist nicht schwer zu zeigen, dass die neue Politik nicht schlechter ist als die alte, da der Politikverbesserungssatz weiterhin gilt:

qπk(s,πk+1(s))=qπk(s,arg maxaqπk(s,a))=maxaqπk(s,a)qπk(s,πk(s))=vπk(s)\begin{aligned} q_{\pi_{k}}(s, \pi_{k+1}(s)) &= q_{\pi_k}(s, \argmax_a q_{\pi_k}(s, a))\\ &= \max_a q_{\pi_k}(s, a)\\ &\ge q_{\pi_k}(s, \pi_k(s))\\ &= v_{\pi_k}(s) \end{aligned}

Und wie bei DP garantiert dieser Satz, dass entweder πk+1\pi_{k+1} besser ist als πk\pi_k oder dass beide gleich und optimal sind.

Schätzung der Aktionswertfunktion

Der Schätzungsprozess ist nahezu identisch zur Zustandswertfunktion. Alle Konzepte, die zur Schätzung von Zustandswerten verwendet werden, können auch zur Schätzung von Aktionswerten eingesetzt werden.

Pseudocode

Pseudocode für die Aktionswertschätzung mit der Monte-Carlo-Methode

Auf diese Weise sollten sich mit genügend Iterationen die geschätzten Aktionswerte den tatsächlichen Aktionswerten annähern.

Damit lässt sich bereits eine Methode ähnlich zur Policy Iteration entwickeln, die nicht auf ein Modell angewiesen ist. Dazu werden die Schritte Policy Evaluation und Policy Improvement durch die oben beschriebenen Prozesse ersetzt.

Optimierung

Obwohl der Evaluierungsschritt mit Monte-Carlo-Schätzung wie beschrieben durchgeführt werden kann, ist er in der Regel rechnerisch ineffizient. Wie bereits gezeigt, benötigen Monte-Carlo-Methoden typischerweise eine große Anzahl von Stichproben, um einigermaßen genaue Schätzungen zu liefern. Wenn wir eine Struktur ähnlich der Policy Iteration verfolgen, wird diese Ineffizienz noch verstärkt: Nach jeder Politikverbesserung muss die Monte-Carlo-Schätzung erneut ausgeführt werden, um die neue Politik zu bewerten – was zu erheblichem Mehraufwand und langsamen Lernprozessen führt.

Eine natürlichere Alternative besteht darin, die Politik unmittelbar nach der Verarbeitung jeder Episode zu aktualisieren. Anstatt auf eine vollständige Evaluierung der Politik zu warten, kann der Agent sein Verhalten Episode für Episode anhand der neuesten Aktionswertschätzungen verfeinern.

Dies führt zu einer Methode, die Value Iteration stärker ähnelt: Aspekte von Evaluierung und Verbesserung werden in einem einzigen Schritt kombiniert. Dadurch steigt die Stichprobeneffizienz und die Rechengeschwindigkeit erhöht sich.

Pseudocode

Pseudocode für Monte-Carlo-Control mit Exploring Starts

Dieser Algorithmus folgt einem GPI-Framework, da er Schritte zur Politikbewertung und Politikverbesserung enthält, und wird als Monte-Carlo-Kontrolle bezeichnet. Der größte Nachteil dieser speziellen Implementierung ist die Annahme von exploring starts. In den nächsten Kapiteln wird erläutert, warum dies ein Problem darstellt und wie damit umgegangen werden kann.

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 3
some-alt