Lernen in Neuronalen Agenten: Unterschied zwischen den Versionen
Pale (Diskussion | Beiträge) (→Q-Learning: <- Mit Inhalt befüllt) |
|||
Zeile 124: | Zeile 124: | ||
==Q-Learning== | ==Q-Learning== | ||
+ | Q-Values oder auch Action-State-Values sind ein Maß dafür, welchen Reward man durch die Ausführung einer bestimmten Aktion (a) in einem bestimmten State (s) erwartet. Wählt man immer die Aktion mit dem größten Q-Wert, so sollte sich auch der long term reward maximieren. Dazu müssen die korrekten Q-Values angelernt werden. Funktioniert folgendermaßen: | ||
+ | |||
+ | *Initialisierung aller geschätzten <math>\hat Q(s,a)</math> mit 0 [Anm.: Bei unendlich häufiger Ausführung des Algorithmus nähern sich die geschätzen <math>\hat Q</math> den optimalen (welche den long-term reward maximieren) <math>Q*</math> an.] | ||
+ | *beobachte den aktuellen State <math>s=s_t</math> | ||
+ | *Wiederhole: | ||
+ | **Wähle eine Aktion <math>a=a_t</math> im aktuellen Zustand entsprechend der policy (z.B. greedy Auswahl der Aktionen mit maximalem Q-Wert oder Bolzmann Auswahl) und führe sie aus | ||
+ | **Erhalte den sofortigen reward | ||
+ | ** Beobachte den neuen Zustand <math>s'=s_{t+1}</math> | ||
+ | **Update des geschätzten <math>\hat Q</math> nach folgender Update-Gleichung | ||
+ | <math>\hat Q_{k+1}(s,a):=Q_{k}(s,a)+\beta \cdot \left ( r+ \gamma \cdot \max_{a' \in A} \left (\hat Q_k(s',a') \right ) -\hat Q_k(s,a) \right )</math> | ||
+ | **<math>s \leftarrow s'</math> | ||
+ | *Bis die Zustände erschöpfend durchsucht wurden | ||
+ | |||
+ | Die Updateregel ist wie folgt zu interpretieren: | ||
+ | |||
+ | Die neue Schätzung des Q-Values einer Aktion a (welche soeben durchgeführt wurde) im vorigen Zustand s (Der Zustand vor dem Ausführen der Aktion a) setzt sich aus der alten Schätzung dieses Wertes zusammen plus einen Anpassungsterm, welcher mit einer skalaren Größe <math>\beta</math> gewichtet ist, welche die Lerngeschwindigkeit beeinflusst. | ||
+ | Der Anpassungsterm ist der, durch Ausführung von a, erhaltene Reward + dem maximal möglichen Q-Value des Zustandes in dem ich mich aktuell befinde minus dem Q-Value des vorigen Stuzandes. Der Faktor Gamma sorgt dafür, dass die Q-Werte mit steigender Entfernung (im Sinne von aufeinander folgenden Zuständen) zu einem Zustand, in welchem es einen großen Reward gibt, stetig fallen. Damit kann eine Art Q-Value Gradientenaufstieg in Richtung von besonders positiven Zuständen erfolgen (oder eben eine Abwendung von besonders negativen). Die Subtraktion des Q-Values am Ende sorgt nur dafür, dass diese nicht ins Endlose steigen. Sieht man gut, wenn man beta als 1 annimmt. | ||
+ | |||
==Exploration/Exploitation revisited== | ==Exploration/Exploitation revisited== | ||
==SARSA-Learning== | ==SARSA-Learning== |
Version vom 13. Februar 2009, 23:41 Uhr
Begriffliche Grundlagen
Verhalten
Entspricht dem natürlichsprachlichen Begriff des Verhaltens und umfasst alle strukturierten Interaktionen mit der Umwelt. Dabei kann man, sofern man das möchte, zwischen komplexem Verhalten und Basisverhalten unterscheiden (wobei sich komplexes Verhalten aus Basisverhalten zusammensetzt)
Agent
Ein Agent ist eine physische oder virtuelle Entität (Ferber 2001),
- die selbständig in einer Umwelt agieren kann
- die direkt mit anderen Agenten kommunizieren kann
- die durch eine Menge von Absichten angetrieben wird (in Form von individ. Zielen, Befriedigungs-/Überlebensfunktionen, die sie versucht zu optimieren)
- die eigene Ressourcen besitzt
- die fähig ist, ihre Umwelt wahrzunehmen (nur in einem best. Ausmaß!)
- die nur eine partielle Repräsentation der Umwelt (Modell) besitzt
- die bestimmte Fähigkeiten besitzt (oder erwirbt) und Dienste offerieren kann
- die sich ggf. selbst reproduzieren kann
- deren Verhalten darauf ausgerichtet ist, ihre Ziele unter Berücksichtigung der ihr zur Verfügung stehenden Ressourcen und Fähigkeiten zu befriedigen und die dabei auf ihre Wahrnehmung, ihre internen Modelle und ihre Kommunikation mit anderen Agenten (oder Menschen) angewiesen ist
Stability-Plasticity Dilemma
Ist das Problem auf neue Situationen reagieren zu können und diese zu lernen, dabei aber bereits angesammeltes Wissen zu bewahren.
Exploration-Exploitation Dilemma
Ebenfalls ein Standardproblem von lernenden Systemen. Um neues Wissen über meine Umwelt zu erlangen müsste ich ständig explorieren, andererseits sollte ich aber auch ständig bekannte Aktionen ausführen um bereits gelerntes Wissen anzuwenden (exploitation) Lösungsansätze kommen später
Ebenen des Lernens und der Wissensrepräsentation
prozedurales Wissen
- Verhaltenswissen bzw. Sensomotorische Intelligenz.
- Beschreibt für eine ganz konkrete sensorische Situation die möglichen Aktionen des Agenten
deklaratives Wissen
- deliberatives oder auch kognitives Wissen
- Stellt Repräsentation der Umwelt da
- dient der Planung von Verhalten
Aus deklarativem Wissen können Subziele einer Handlungsstrategie festgelegt werden, welche dann mit Hilfe des prozeduralen Wissens abgearbeitet werden. Zum Beispiel könnte ein, mittels deklarativem Wissen erstelltes, Subziel, auf dem Weg ein Wasserglas zu greifen, sein, den Arm auszustrecken. Das prozedurale Wissen beschreibt dann wie die Muskeln anzusteuern sind, um den Arm nach vorne zu bekommen.
Reinforcement Learning
Grundidee des RL
Für jede Ausgeführte Handlung (Oder auch am Ende eines Handlungsstranges) erhält ein Agent eine Belohnung oder Bestrafung (Reinforcement). Dieses Akkumuliert sich über die Zeit. Ziel Des Reinforcementlearning ist es nun, durch Lernen solche Entscheidungsstrategien zu finden, dass die akkumulierten Reinforcements optimiert werden.
Charakterisierung des RL
- Lernparadigma:
- irgendwo zwischen überwachtem Lernen und unüberwachtem Lernen
- nutzt ebenfalls ein Feedback, aber nur zur Bewertung des Verhaltens
- alleinige Aussage, ob das Verhalten gut war oder schlecht, aber nicht, wie es hätte sein müssen
- Grundsatz (noch mal in einem Satz):
- autonomes Lernen komplexer Wahrnehmungs-Verhaltens-Muster basierend auf einem unspezifischen skalaren Signal, welches das Systemverhalten bewertet
- Findet Anwendung in: Robotik, Optimaler Regelung, Spielen uvm.
General RL-Task
<graphviz> digraph G { Umgebung -> Agent [label="Zustand (State)"]; Umgebung -> Agent [style=dotted,label="Reinforcement"]; Agent -> Umgebung [label="Aktion"]; } </graphviz>
- Ziel: Zu lernen die Aktionen auszuführen die zum größten Lanzeit reward führen
-
- ... Langzeitreward
- ... Discountfaktor [0,1]
- ... reward zum Zeitpunkt t
- Durchführung: Ausführung einer Aktion und beobachten des Ergebnisses
- Anpassen der Policy, welche die Aktion ausgewählt hat, je nach dem ob das Reward positiv oder negativ ausgefallen ist, damit die Aktion öfter ausgeführt wird oder weniger oft, wenn der selbe Zustand wieder erreicht werden sollte.
- Die beste Aktion in einem Zeitschritt führt nicht immer zum besten Langzeitergebnis!
schwache und starke RL-Verfahren
- schwache RL-Verfahren
- Haben nur eine begrenzte Zeitliche Sicht
- Wählen immer die für ihre Sicht optimale Aktion aus
- starke RL-Verfahren
- besitzen zeitlich unbegrenzte Sicht
- Versuchen eine global optimale Policy zu erlernen
- Maximierung der Summe aller rewards
RL als MDP
- MDP (Makrov Decision Processes)
- Annahmen
- es gibt nur eine endliche Menge an Zuständen
- es gibt eine endliche Menge an ausführbaren Aktionen
- Der Zustand kann zu jeden Zeitpunkt beobachtet werden und es ist möglich eine Aktion auszuwählen für den Zustand anhand einer Policy
- Nach der Ausführung der Aktion gibt es ein reward
- Der Zustand wird durch die Aktion in den nächsten Zustand überführt
- Markov Annahme
- Der nächste Zustand wird ausschließlich durch den aktuellen Zustand und die auszuführende Aktion bestimmt
- Damit kann der zu erwartende Reward anhand es aktuellen Zustandes berechnet werden
Basiskomponenten einses RL-Agenten
\\ Bild Folie 3a-16
Policy
- Entscheidungsfunktion welche Angibt welche Aktion ausgeführt werden soll wenn sich der Agent in einem bestimmten Zustand befindet
- Die Policy bestimmt das verhalten und die Performance des Agent alleine
- Alle anderen Komponenten existieren nur damit die Policy verbessert und angepasst werden kann
Reinforcment Funktion
- Definiert die Ziele des Agenten
- Wird vom Entwickler vorgegeben
- Ist eine Funktion die den Zustand bewertet und angibt wie erwünscht er ist
- => Definiert was gut und was schlecht ist
- Darf während des Lernens nicht geändert werden, sonst kann man keine Policy erreichen
Value/Action Funktion
- Value V(S) ist eine Funktion welche angibt welchen Reward man erhalten würde wenn man sich im Zustand S befindet und der Policy folgt
- Action-Value Q(s,a) ist eine Funktion welche angibt welchen Reward man erhalten würde wnn man sich im Zustand S befindet die Aktion a ausführt und dann der Policy folgt
- Somit kann nicht nur kurzsichtig agiert werden sondern auch langfristig
- Kann approximiert werden durch Lookup Tabellen oder MLP/RBF- Netzwerke
- Eine der Hauptaufgaben des RL ist es die Funktion durch lernen effizient zu approximieren
Umgebungsmodell
- Kann durch den Entwickler vorgegeben werden oder selbst erlernt werden
- Hilft den neuen Zustand vorherzusagen wenn man eine bestimmte Aktion ausführt
- Nicht jeder RL-Agent besitzt ein Umgebungsmodell aber es erhöt die Geschwindigkeit mit der ein Agent die optimale Policy lernt
- Modellfreie RL-Agenten finden die selbe Lösung ... es dauert nur länger
Umgebung
- Muss wenigstens teilweise Beobachtbar sein
- Siehe: State vs. Situation
- Umgebung gibt die möglichen Aktionen mit vor
State vs. Situation
- State (Zustand)
- Alle notwendigen Parameter um eine Umgebung zu beschreiben und eine Aktion auszuwählen sind dem Agenten zugänglich
- wie z.B. globale Positionsinformation
- Situation
- Der Agent hat nur Zugriff auf einen Teil der Parameter. Somit kann er den aktuellen Zustand nicht immer eindeutig beschreiben.
- z.B. navigation mit IR oder Ultraschall Sensoren
Q-Learning
Q-Values oder auch Action-State-Values sind ein Maß dafür, welchen Reward man durch die Ausführung einer bestimmten Aktion (a) in einem bestimmten State (s) erwartet. Wählt man immer die Aktion mit dem größten Q-Wert, so sollte sich auch der long term reward maximieren. Dazu müssen die korrekten Q-Values angelernt werden. Funktioniert folgendermaßen:
- Initialisierung aller geschätzten mit 0 [Anm.: Bei unendlich häufiger Ausführung des Algorithmus nähern sich die geschätzen den optimalen (welche den long-term reward maximieren) an.]
- beobachte den aktuellen State
- Wiederhole:
- Wähle eine Aktion im aktuellen Zustand entsprechend der policy (z.B. greedy Auswahl der Aktionen mit maximalem Q-Wert oder Bolzmann Auswahl) und führe sie aus
- Erhalte den sofortigen reward
- Beobachte den neuen Zustand
- Update des geschätzten nach folgender Update-Gleichung
- Bis die Zustände erschöpfend durchsucht wurden
Die Updateregel ist wie folgt zu interpretieren:
Die neue Schätzung des Q-Values einer Aktion a (welche soeben durchgeführt wurde) im vorigen Zustand s (Der Zustand vor dem Ausführen der Aktion a) setzt sich aus der alten Schätzung dieses Wertes zusammen plus einen Anpassungsterm, welcher mit einer skalaren Größe gewichtet ist, welche die Lerngeschwindigkeit beeinflusst. Der Anpassungsterm ist der, durch Ausführung von a, erhaltene Reward + dem maximal möglichen Q-Value des Zustandes in dem ich mich aktuell befinde minus dem Q-Value des vorigen Stuzandes. Der Faktor Gamma sorgt dafür, dass die Q-Werte mit steigender Entfernung (im Sinne von aufeinander folgenden Zuständen) zu einem Zustand, in welchem es einen großen Reward gibt, stetig fallen. Damit kann eine Art Q-Value Gradientenaufstieg in Richtung von besonders positiven Zuständen erfolgen (oder eben eine Abwendung von besonders negativen). Die Subtraktion des Q-Values am Ende sorgt nur dafür, dass diese nicht ins Endlose steigen. Sieht man gut, wenn man beta als 1 annimmt.