Was ist der Unterschied zwischen Q-Learning und SARSA?


79

Obwohl ich weiß, dass SARSA nicht den Richtlinien entspricht, während Q-Learning nicht den Richtlinien entspricht, ist es (für mich) schwierig, bei der Betrachtung ihrer Formeln einen Unterschied zwischen diesen beiden Algorithmen festzustellen.

Nach dem Buch Reinforcement Learning: An Introduction (von Sutton und Barto). In dem SARSA-Algorithmus kann bei gegebener Richtlinie die entsprechende Aktionswertfunktion Q (im Zustand s und Aktion a zum Zeitpunkt t), dh Q (s t , a t ), wie folgt aktualisiert werden

Q (s t , a t ) = Q (s t , a t ) + α * (r t + γ * Q (s t + 1 , a t + 1 ) - Q (s t , a t ))

Andererseits ist der Aktualisierungsschritt für den Q-Learning-Algorithmus der folgende

Q (s t , a t ) = Q (s t , a t ) + α * (r t + γ * max a Q (s t + 1 , a) - Q (s t , a t ))

was auch geschrieben werden kann als

Q (s t , a t ) = (1 - α) * Q (s t , a t ) + α * (r t + γ * max a Q (s t + 1 , a))

Dabei ist γ (Gamma) der Abzinsungsfaktor und r t die Belohnung, die zum Zeitpunkt t von der Umgebung erhalten wird.

Ist der Unterschied zwischen diesen beiden Algorithmen die Tatsache, dass SARSA nur den nächsten Richtlinienwert nachschlägt, während Q-Learning den nächsten maximalen Richtlinienwert nachschlägt ?

TLDR (und meine eigene Antwort)

Vielen Dank an alle, die diese Frage beantwortet haben, seit ich sie zum ersten Mal gestellt habe. Ich habe ein Github-Repo mit Q-Learning gemacht und empirisch verstanden, was der Unterschied ist. Alles hängt davon ab, wie Sie Ihre nächstbeste Aktion auswählen. Unter algorithmischen Gesichtspunkten kann dies eine mittlere , maximale oder beste Aktion sein, je nachdem, wie Sie sie implementiert haben.

Der andere Hauptunterschied ist , wenn diese Auswahl geschieht (zB Online - vs offline ) und wie / warum das Lernen auswirkt. Wenn Sie dies im Jahr 2019 lesen und eher eine praktische Person sind, ist das Spielen mit einem RL-Spielzeugproblem wahrscheinlich der beste Weg, um die Unterschiede zu verstehen.

Ein letzter wichtiger Hinweis ist, dass sowohl Suton & Barto als auch Wikipedia häufig gemischte, verwirrende oder falsche formelhafte Darstellungen in Bezug auf die beste / maximale Aktion und Belohnung des nächsten Staates haben :

r (t + 1)

ist in der Tat

r (t)

Hoffe, das hilft jedem, der jemals daran hängen bleibt.

Antworten:


56

Ja, das ist der einzige Unterschied. On-Policy-SARSA lernt Aktionswerte in Bezug auf die Richtlinie, der es folgt, während Off-Policy-Q-Learning dies in Bezug auf die gierige Richtlinie tut. Unter bestimmten Bedingungen konvergieren beide zur Realwertfunktion, jedoch mit unterschiedlichen Raten. Q-Learning konvergiert tendenziell etwas langsamer, kann jedoch weiter lernen, während Richtlinien geändert werden. Es ist auch nicht garantiert, dass Q-Learning in Kombination mit linearer Approximation konvergiert.

In der Praxis berechnet Q-Learning gemäß der ε-gierigen Richtlinie die Differenz zwischen Q (s, a) und dem maximalen Aktionswert, während SARSA die Differenz zwischen Q (s, a) und der gewichteten Summe der durchschnittlichen Aktion berechnet Wert und das Maximum:

Q-Learning: Q (s t + 1 , a t + 1 ) = max a Q (s t + 1 , a)

SARSA: Q (s t + 1 , a t + 1 ) = ε · bedeutet a Q (s t + 1 , a) + (1 - ε) · max a Q (s t + 1 , a)


4
Ok, wie wählt Sarsa dann eine Richtlinie aus? Ich sehe, dass Qlearning immer nach der Richtlinie strebt, die verspricht, dass Sie zur nächstbesten Richtlinie gelangen. Was sind die Kriterien für die Auswahl der nächsten Richtlinie in Sarsa (im Grunde möchte ich wissen, wie man für eine Richtlinie Q (S, A) bewertet, wie man die beste Aktion auswählt). Ist es nicht dasselbe, dh für Zustand S die Aktion A zu wählen, die das höchste (dh maximale) Q '(S, A) hat?
Ælex

6
Die Richtlinie ist die Regel für die Auswahl der nächsten Aktion. Dies ist etwas, das Sie bei der Implementierung des Algorithmus auswählen müssen. Die einfachste Richtlinie ist die gierige - bei der der Agent immer die beste Aktion auswählt. Mit dieser Richtlinie sind SARSA und Q-Learning identisch. Eine bessere Wahl für das Lernen ist die ε-gierige Politik, bei der einige der Aktionen nach dem Zufallsprinzip ausgewählt werden.
Don Reba

2
Ok, deshalb habe ich die Frage zuerst gestellt, in diesem Fall sind beide gleich. Vielen Dank ! Ich benutze e-Greedy. Qlearning unterscheidet sich also nur im Fall von Off-Policy, wo Aktionen zufällig ausgewählt werden und die Aktualisierung mit Q-Learning die Richtlinienwerte maximiert.
Ælex

2
Unter der ε-gierigen Politik ist der erwartete Wert unter SARSA die gewichtete Summe des durchschnittlichen Aktionswerts und des besten Aktionswerts: Q (s_t + 1, a_t + 1) = ε · Mittelwert (Q (s, a)) + (1-ε) · max (Q (s, a)). Das Lehrbuch gibt es in Kapitel 5.4 On-Policy-Monte-Carlo-Kontrolle.
Don Reba

65

Als ich diesen Teil lernte, fand ich ihn auch sehr verwirrend, also habe ich die beiden Pseudocodes von R. Sutton und AGBarto zusammengestellt, um den Unterschied klarer zu machen.

Geben Sie hier die Bildbeschreibung ein

Blaue Kästchen markieren den Teil, in dem sich die beiden Algorithmen tatsächlich unterscheiden. Die Zahlen verdeutlichen den detaillierteren Unterschied, der später erläutert wird.

TL; NR :

|             | SARSA | Q-learning |
|:-----------:|:-----:|:----------:|
| Choosing A' |   π   |      π     |
| Updating Q  |   π   |      μ     |

wobei π eine ε-gierige Politik ist (z. B. ε> 0 mit Exploration) und μ eine gierige Politik ist (z. B. ε == 0, KEINE Exploration).

  1. Angesichts der Tatsache, dass Q-Learning unterschiedliche Richtlinien verwendet, um die nächste Aktion A 'auszuwählen und Q zu aktualisieren. Mit anderen Worten, es wird versucht, π zu bewerten, während eine andere Richtlinie μ befolgt wird. Es handelt sich also um einen Algorithmus außerhalb der Richtlinie.

  2. Im Gegensatz dazu verwendet SARSA ständig π, daher handelt es sich um einen On-Policy-Algorithmus.

Detailliertere Erklärung :

  1. Der wichtigste Unterschied zwischen den beiden besteht darin, wie Q nach jeder Aktion aktualisiert wird. SARSA verwendet das Q 'genau nach einer ε-gierigen Richtlinie, wie A' daraus gezogen wird. Im Gegensatz dazu verwendet Q-Learning das maximale Q 'über alle möglichen Aktionen für den nächsten Schritt. Dies lässt es so aussehen, als würde man einer gierigen Politik mit ε = 0 folgen, dh KEINER Erkundung in diesem Teil.

  2. Wenn Q-Learning jedoch tatsächlich eine Aktion ausführt, verwendet es immer noch die Aktion, die aus einer ε-gierigen Richtlinie stammt. Aus diesem Grund befindet sich "Choose A ..." in der Wiederholungsschleife.

  3. Nach der Schleifenlogik beim Q-Learning stammt A 'immer noch aus der ε-gierigen Politik.


4
Herzlichen Glückwunsch zu den schönen Grafiken und Bildern. Jahre nachdem ich diese Frage gestellt hatte, wurde mir klar, dass die Status- und Aktionsiteration sowie die Iteration und Aktualisierung des Richtlinienwerts zwei verschiedene Prozesse sind. Leider machen Sutton und Barto dies nicht sehr deutlich. Wie Sie sich für Aktionen entscheiden, wirkt sich auf die von Ihnen erläuterten Algorithmen aus. Maximale Aktion beim Q-Learning bedeutet normalerweise, dass Sie die Aktion mit den nächstbesten Q (s, a) auswählen, z. B. gierig. In Sarsa ist dies nicht der Fall. Sie folgen entweder der Richtlinie (online) oder Sie suchen je nach zufälliger Wahrscheinlichkeit nach einer neuen. Ihre Beschreibung ist genau richtig!
Ælex

@ SilentCrash, nein, es wertet π aus. μ ist die gierige Richtlinie, nur um eine Aktion auszuwählen.
Zyxue

1
@zyxue Aber in der Tabelle haben Sie geschrieben, dass Q aktualisiert wird, als ob es μ folgt (μ bewertet), während es tatsächlich der ε-gierigen Richtlinie π folgt.
SilentCrash

Kann die Off-Policy-Methode A 'aus menschlichem Verhalten (π) auswählen und Q aus einer gierigen Richtlinie (μ) aktualisieren?
Robert

1
Ein weiterer Punkt, den ich ansprechen möchte, ist, dass sowohl SARSA als auch Q-learning bei der Auswahl der nächsten Aktion die epsilon-gierige Richtlinie verwenden. Wenn alle Q-Werte gleich sind, sollten sie dieselbe Aktion auswählen, wenn die zufälligen Teile in epsilon ignoriert werden. gierig. Die Q-Werte werden jedoch irgendwann während des Lernens unterschiedlicher, da die Aktualisierungsgleichung für SARSA und Q-Learning unterschiedlich ist. Daher können sie möglicherweise unterschiedliche Aktionen auswählen, selbst wenn dieselbe Strategie zur Verbesserung der Epsilon-gierigen Richtlinien verwendet wird. Mit anderen Worten, die iterierte Richtlinie wird anders.
StayFoolish

13

Was ist der mathematische Unterschied?

Wie bereits in den meisten anderen Antworten beschrieben, besteht der Unterschied zwischen den beiden Aktualisierungen mathematisch tatsächlich darin, dass beim Aktualisieren des Q- Werts für ein Zustands-Aktions-Paar (S t , A t ) :

  • Sarsa verwendet die Verhaltensrichtlinie (dh die Richtlinie, die vom Agenten verwendet wird, um Erfahrungen in der Umgebung zu generieren, die normalerweise epsilon- grau ist), um eine zusätzliche Aktion A t + 1 auszuwählen , und verwendet dann Q (S t + 1 , A t) +1 ) (abgezinst durch Gamma ) als erwartete zukünftige Rendite bei der Berechnung des Aktualisierungsziels.
  • Q- Learning verwendet die Verhaltensrichtlinie nicht, um eine zusätzliche Aktion A t + 1 auszuwählen . Stattdessen werden die erwarteten zukünftigen Renditen in der Aktualisierungsregel als max. A Q (S t + 1 , A) geschätzt . Der max Operator hier verwendet wird, als „nach“ der ganz gierig Politik betrachtet werden. Der Agent folgt jedoch nicht der gierigen Richtlinie . In der Aktualisierungsregel heißt es nur: "Angenommen, ich würde von nun an der gierigen Richtlinie folgen. Wie hoch wären dann meine erwarteten zukünftigen Renditen?".

Was bedeutet das intuitiv?

Wie in anderen Antworten erwähnt, bedeutet der oben beschriebene Unterschied unter Verwendung der technischen Terminologie, dass Sarsa ein On-Policy- Lernalgorithmus und Q-Learning ein Off-Policy- Lernalgorithmus ist.

In der Grenze (bei unendlich viel Zeit, um Erfahrung zu sammeln und zu lernen) und unter einigen zusätzlichen Annahmen bedeutet dies, dass Sarsa und Q-Learning zu unterschiedlichen Lösungen / "optimalen" Richtlinien konvergieren :

  • Sarsa wird zu einer Lösung konvergieren, die unter der Annahme optimal ist, dass wir weiterhin dieselbe Richtlinie befolgen, die zur Generierung der Erfahrung verwendet wurde . Dies ist oft eine Politik mit einem Element von (eher "dummer") Zufälligkeit, wie epsilon- grau, weil wir sonst nicht garantieren können, dass wir überhaupt zu irgendetwas konvergieren.
  • Q-Learning wird zu einer Lösung konvergieren, die unter der Annahme optimal ist, dass wir nach dem Generieren von Erfahrung und Training auf die gierige Politik umsteigen .

Wann soll welcher Algorithmus verwendet werden?

Ein Algorithmus wie Sarsa ist normalerweise in Situationen vorzuziehen, in denen wir uns um die Leistung des Agenten während des Lernprozesses / der Generierung von Erfahrung kümmern . Stellen Sie sich zum Beispiel vor, dass der Agent ein teurer Roboter ist, der kaputt geht, wenn er eine Klippe hinunterfällt. Wir möchten, dass es während des Lernprozesses nicht zu oft herunterfällt, weil es teuer ist. Daher kümmern wir uns um die Leistung während des Lernprozesses. Wir wissen jedoch auch, dass wir es brauchen, um manchmal zufällig zu handeln (z. B. epsilon-gierig). Dies bedeutet, dass es für den Roboter sehr gefährlich ist, entlang der Klippe zu laufen, da er sich möglicherweise dazu entschließt, zufällig (mit Wahrscheinlichkeit epsilon) zu handeln und herunterzufallen. Wir würden es also vorziehen, schnell zu lernen, dass es gefährlich ist, in der Nähe der Klippe zu sein.Selbst wenn eine gierige Politik in der Lage wäre, direkt daneben zu gehen, ohne zu fallen, wissen wir, dass wir eine epsilon-gierige Politik mit Zufälligkeit verfolgen, und wir legen Wert darauf, unsere Leistung zu optimieren, da wir wissen, dass wir manchmal dumm sind . Dies ist eine Situation, in der Sarsa vorzuziehen wäre.

Ein Algorithmus wie Q-Learning wäre in Situationen vorzuziehen, in denen wir uns nicht um die Leistung des Agenten während des Schulungsprozesses kümmern, sondern nur eine optimale gierige Richtlinie lernen möchten, zu der wir irgendwann wechseln werden. Stellen Sie sich zum Beispiel vor, wir spielen ein paar Übungsspiele (bei denen es uns manchmal nichts ausmacht, aufgrund von Zufälligkeiten zu verlieren) und spielen anschließend ein wichtiges Turnier (bei dem wir aufhören zu lernen und von epsilon-gierig zu gierig wechseln ). Hier wäre Q-Learning besser.


Dies ist absolut die beste Erklärungsrichtlinie, unabhängig von den Algorithmen
Ege

4

Ihre Formel für Q-Learning enthält einen Indexfehler. Seite 148 von Sutton und Barto.

Q (st, at) <- Q (st, at) + alpha * [r (t + 1) + gamma * max Q (st + 1, a) - Q (st, at)]

Der Tippfehler steht im Argument des max:

Die Indizes sind st + 1 und a, während sie in Ihrer Frage st + 1 und bei + 1 sind (diese sind für SARSA korrekt).

Hoffe das hilft ein bisschen.


1

Im Q-Learning

Dies ist Ihr: Q-Learning: Q (St, At) = Q (St, At) + a [R (t + 1) + Rabatt * max Q (St + 1, At ) - Q (St, At)]

sollte in Q-Learning geändert werden: Q (St, At) = Q (St, At) + a [R (t + 1) + Rabatt * max Q (St + 1, a ) - Q (St, At)]

Wie Sie sagten, müssen Sie den maximalen Q-Wert für die Update-Gl. Wenn Sie das a ändern , erhalten Sie ein neues Q (St, At). SORGFÄLTIG ist das a , das Ihnen den maximalen Q-Wert gibt, nicht die nächste Aktion. Zu diesem Zeitpunkt kennen Sie nur den nächsten Status (St + 1), und bevor Sie zur nächsten Runde gehen, möchten Sie die St um St + 1 aktualisieren (St <- St + 1).

Für jede Schleife;

  • Wählen Sie At aus der St mit dem Q-Wert

  • nimm At und beobachte Rt + 1 und St + 1

  • Aktualisieren Sie den Q-Wert mit der Gl.

  • St <- St + 1

Bis St Terminal ist


Eigentlich haben sie das Publikum verwirrt; es ist nicht R [t + 1], es ist R [t], aber sie zeigen es tatsächlich an einer Stelle im Buch als R [t + 1]. Wenn Sie jedoch R [t + 1] einstellen, skalieren die Belohnungswerte nicht zwischen 0 und 1, und noch schlimmer, Sie stoßen auf Probleme mit Algorithmusiterationen, da Q [t ] = R [t], wenn der Zustand terminal ist, was bei Verwendung von R [t + 1] niemals wahr sein wird. Wikipedia hatte es falsch gemacht (ich habe es bearbeitet) und Sutton und Barto verwenden die beiden Variationen im Buch, ohne wirklich zu erklären, warum.
Ælex

0

Der einzige Unterschied zwischen SARSA und Qlearning besteht darin, dass SARSA die nächste Aktion basierend auf der aktuellen Richtlinie ausführt, während qlearning die Aktion mit maximalem Nutzen des nächsten Status ausführt


Das ist nicht wahr. Beide Methoden führen genau die gleiche Aktion aus (ε-gierig). Der Unterschied besteht (wie in anderen Antworten erwähnt) darin, dass sie eine andere Richtlinie verwenden, um die Q-Funktion zu aktualisieren.
Mobeets
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.