date-created: 2024-07-16 02:18:05 date-modified: 2024-07-16 07:39:52
Reinforcement Learning #nachtragen
anchored to 116.00_anchor_machine_learning
Overview
In dieser Struktur möchten wir unsere Werte primär / vorwiegend selbst generieren und dann anhand dieser Daten / Werte, die wir erzeugt haben, einen “Reward” einbringen, der uns dabei helfen kann, einzuschätzen / wie gut etwas / eine Aktion war / ist.
Grundlage | Definition
[!Definition] Reinforcement learning
Wir betrachten hierbei das Lernen von funktionen, mit gegebenen Mengen:
Wir wissen etwas über:
- das System/ Welt mit der wir interagieren, beschrieben mit: , wobei den Zustand beschreibt, die Aktion ist und die Zeit.
- Wir können jetzt für eine gewisse Handlung - die wir bestimmen / umsetzen möchten - einen Reward definieren / einfuhren:
Was wir beim reinforcement learning erreichen wollen:
Wir möchten die Funktion - auch Policy genannt - beschreiben, sodass sie den erwarteten Reward maximiert!, also
Visuell können wir das etwa folgend darstellen:
[!tip]
In general stellen wir diese stochastischen System unter Verwendung von Markov Decision Processes dar
Und dabei folgt:
- wir müssen und die Modelle von gleichzeitig lernen
- und damit kann der Reward in der betrachtung auch sehr sparse sein –> also etwa nur nach einer langen Ausführung erhalten wir eine entsprechend Berechnung!
Beispiele |
Beispiele bilden etwa:
- Bots, die Spiele spielen –> AlphaGo etwa
- Roboter lernen bestimmte Aktionen, wie Sprünge o.ä.
- Laufsimulationen unter Betrachtung von
Learning | Planning
Wir können die Struktur Entscheidungen zu treffen in zwei Möglichkeiten / in zwei Grundlagen aufteilen:
[!Tip] Reinforcement Learning
Hier versuchen wir wieder maschinelle und durch viel trainieren eine Lösung zu finden. Dabei:
- ist das anfangs unbekannt
- der Agnt interagiert mit dem und das wird verschiedene Konsequenzen - Rewards misst diese - haben
- Der Agent versucht unter des Feedbacks vom Reward dann seine Policy –> Also die Funktion <– anzupassen
- das heißt es ist ein Modell von Learning by doin –> wobei wir durch unsere Fehler lernen wollen / können!
ein Beispiel dafür wäre etwa, wenn wir versuchen würden, dass ein System Atari spielen soll / kann:
- hierbei sind die Regeln unbekannt, wir wollen direkt durch die Interaktion mit dem Spiel lernen und daraus etwas bilden
- man könnte hier etwa die Eingabe des Joysticks und die Veränderung der Pixel betrachten und evaluieren.
Im Kontrast steht dabei noch Planning:
[!Tip] Planning
Hier kennen wir das Environment schon und können somit theoretisch “in die Zukunft schauen” –> weil wir das Modell kennen und somit diverse Schritte wissen / in Erfarhung bringen können.
Das heißt also:
- Das Model des ist bereits bekannt
- der Agent führt verschiedene Berechnungen aus, - das macht er intern, um quasi zu schauen, welche Schritte in der Zukunft am besten sein könnten!
- anshcließend wird er seine Policy verbessern -> Anpassen
- das heißt hier wird abgewägt, was man machen wird / möchte etc.
ein Beispiel dafür kann das Spielen eines spezifischen Spieles sein:
- wir kennen hier die Regeln des Spieles
- wir können einen “Emulator” aufbauen und schauen, wie das Spiel sich bei bestimmten Eigenschaften verändern könnte –> wir können also nach und nach mögliche Zustände betrachten, evaluieren und dann den besten Verlauf auswählen
Unterschiede:
[!Req] Planning | Anwendung | Konzept
Planning ist eher eine on-the-fly computation –> der besten Aktion, die wir durch die “Vorhersage” erörtert haben
–> nennt sich dann short-horizon optimization
[!Req] Reinforcement Learning | Anwendung | Konzept
hier lernen wir über lange Zeit / Iterationen, um eine optimale Policy erzeugen zu können:
Dabei löst das Problem dann jetzt ein global optimization problem!
Es werden vorherige Interaktionen armotisiert in eine policy-Funktion übernommen –> damit ist es dann in der Ausführung selbst relativ schnell, weil wir nicht immer “vorhersehen” müssen, um eine Entscheidung zu treffen.
Wir können hier auch einfach eine Kombination dieser Strukturen anwenden:
Wenn etwas schnell sein muss - zur Laufzeit auch - dann nimmt man wahrscheinlich Reinforcement-Learning
dabei muss aber das Modell auch schon trainiert werden, damit es dann entsprechend schnell Antworten liefern / berechnen kann.
Markov Decision Processes |
#nachtragen
State-Action Value Functions
Deep RL |
Also Motivation für diese Betrachtung:
What if the state-space is continous or simply very big?
In diesem Scope möchten wir dann einnen Approximator einbringen, etwa durch ein neuronales Netzwerk realisiert - was uns dann die -Funktion approximieren kann, die die besten werte für uns liefert ( liefern kann).
[!Tip]
Diese neuronalen Netze heißen im Kontext von Reinforcement Learning entsprechend DQN - Deep Q Networks
Diese Strukturen sind gerade in etwa 2015 sehr stark ausgebrochen, weil hier ein gutes Modell für Atari-Spiele publiziert wurde.
Actor Critic | continous action-space
Sofern wir jetzt einen Continous Bereich von Aktionen betrachten, dann müssen wir das Modell bzw die Approximierende Funktion etwas anpassen:
[!Definition] Actor Critic
Wir nutzen auch hier wieder einen function approximator um approximieren zu können.
Ferner brauchen wir nun auch einen Approximator, um unsere Policy –> die eine Aktion dann ausführen wird <– festlegen / bestimmen zu können
Das macht man dann mit Actor-Critic methods, wie PPO, TD3, SAC, MPO und weiteren
Als Beispiel dafür dient etwa eine Simulation vom prof und dessen Team selbst: