Reinforcement Learning Seminar F Gerhard NEUMANN Helmut GRABNER A1: Fahren mit Ball B1: Ball...
-
Upload
till-hempe -
Category
Documents
-
view
107 -
download
2
Transcript of Reinforcement Learning Seminar F Gerhard NEUMANN Helmut GRABNER A1: Fahren mit Ball B1: Ball...
Reinforcement LearningSeminar F
Gerhard NEUMANN
Helmut GRABNER
A1: Fahren mit BallB1: Ball stoppen
Aufgabe A1
Fahren mit Ball
A1: Fahren mit BallAufgabenstellung
Der Roboter soll mit dem Ball und einer gegebenen Geschwindigkeit gerade vorwärts fahren.
Der Ball befindet sich zu Beginn entweder in der “Schaufel” oder auf einer geraden Linie vor ihm.
A1: Fahren mit BallModell: Zustandsmenge S
Eigene Geschwindigkeitzu klein; OK; zu groß
Ballentfernung (Abgeschätzt durch Radius)habe Ball; mittel; weit
sehe Ball nicht(3 x 3) +1 = 10 Zustände
A1: Fahren mit BallModell: Aktionsmenge A
Beschleunigungstark negative; negative; null; positive;
stark positivestark negative und negative
Beschleunigung ist nur möglich, wenn sich der Roboter vorwärts bewegt (=kein Rückwärtsfahren ermöglichen)
5 Aktionen zusammen mit den 10 Zuständen: 50 State-
Action-Paare
A1: Fahren mit BallModell: Rewards R
“Hat Ball” und “Geschwindigkeit = OK”
aufsteigende Rewards +1, +2, +3,.. +10bei 10: Ende der Episode: WINNING
sehe Ball nichtEnde der Episode: LOOSE
sonst-1 immer (schnellst möglichstes Beenden
der Episode, anfahren)
A1: Fahren mit BallErgebnisse
Funktioniert Relative einfach zu Lernen (ca. 30 Episoden)RL (eigentlich) nicht notwendig (vgl. fwd)
Probleme“Khepera-Stall” zu klein -> keine großen
Geschwindigkeiten trainierbar
A1: Fahren mit BallErgebnisse
Episode: 200Alpha: 0.0100Epsilon: 0.1000Gamma: 0.9500Lambda: 0.9000
Q - Table 0.2274 1.9155 0.3670 0.1488 3.4439 0.0527 0.0031 3.1233 2.9444 0.2653 1.3847 1.2301 0.3308 0.2875 3.2725 0.2890 0.0529 11.7049 0.2166 0.0294 0.0008 2.1297 0.1587 0.2281 32.6367 0.0366 0.0088 3.6636 0.0956 0.0270 0.0458 2.1206 0.2015 0.2372 5.7928 0.0783 0.1783 3.7540 0.2419 0.0393 0.0308 7.3502 3.5749 1.8260 3.8408 1.9555 0.0000 3.8855 0.0216 0.0467
kein B. v< v< v< v= v= v= v> v> v> nahe mittel fern nahe mittel fern nahe mittel fern
Aktionen (Beschleunigung): 0 .. stark negative 3 .. positive 1 .. negative 4 .. Stark positive 2 .. null
Aufgabe B1.1
Ball stoppen
B1.1: Ball stoppenAufgabenstellung
Der Roboter soll den Ball, der mit einer beliebigen Geschindigkeit von vorne auf ihn zukommt, möglichst “gut” (schnell) abstoppen und bei sich behalten.
B1.1: Ball stoppenModell: Zustandsmenge S
Ballentfernung habe Ball
Eigenbewegung• ja; nein
klein; mittelrelative Geschwindigkeit des Balles
• klein; mittle, hoch, sehr hoch
weit entferntsehe Ball nicht(2 + (2 x 4) + 1) + 1 = 12 Zustände
B1.1: Ball stoppen Abschätzungen
Abstand des Balles
k und d bestimmt mittels Fit (Mathematica)
Geschwindigkeit
starke Unterschiede in der Geschwindigkeits- (Distance-, Radius-) Abschätzung: Daher Mittelung über die gesamte Episode (bis “Hat Ball”).
t
distancev
dradius
kradiusfdistance 1
B1.1: Ball stoppenModell: Aktionsmenge A
Beschleunigungsehr stark negative; stark negative;
negative; null; positive (prozentuell)positive Beschleunigung ist nur möglich,
wenn sich der Roboter rückwärts bewegt (=kein Vorwärtsfahren ermöglichen)
5 Aktionenzusammen mit den 12 Zuständen: 60 State-
Action-Paare
B1.1: Ball stoppenModell: Rewards R
“Hat Ball” +1sobald der Roboter steht und den Ball hat bzw.
wenn er ihn wieder “verliert”: Wartezeit (1 sec)• Falls danach “Hat Ball”: +20 (mit Abfrage!)
Ende der Episode: WINNING• sonst: negativer Reward gewichtet mit der Entfernung des
BallesEnde der Episode: LOOSE
Rewards für jeden Zug-0.1 bei negativen Beschleunigungen-0.2 immer (schnellst möglichstes Beenden der
Episode, abstoppen)
B1.1: Ball stoppenErgebnisse
Funktioniert nicht gut Sehr schwer zu Lernen (> 200 Episoden)Diskretisierung zu ungenau (Ballentfernung,
Geschwindigkeit) -> nur wenige Ballgeschwindigkeiten gut erlernbar
mit “Standard-Schaufel” wird Stehenbleiben gelernt (1/4 der Fälle bleibt der Ball hängen)
ProblemeKamera zu langsam für hohe GeschwindigkeitenGleiche (ähnliche) Situationen mit
unterschiedlichem Ausgang -> Verwirrung
B1.1: Ball stoppenErgebnisse
Episode: 300Alpha: 0.0100Epsilon: 0.1000Gamma: 0.9500Lambda: 0.9000
Q - Table-0.3297 -0.3634 -1.7305 -1.3023 -0.7657 -0.4906 -0.0365 0.0000 0.1974 -0.6724 -0.1371-0.2972 -0.4561 -1.7856 -1.2628 -0.9505 -0.4969 -0.0453 0.0000 -0.6435 -0.6892 -0.1383-0.3719 -0.4353 -1.7697 -1.2390 -0.9453 -0.4891 -0.0296 -0.0016 -0.8337 -0.6674 0.0342-0.3549 -0.4477 -1.5141 -1.3372 -0.1715 -0.5904 -0.0612 0.0000 -0.9180 -0.6662 -0.2781 2.7378 -0.4857 -1.0459 -1.3511 -0.8447 -0.5596 -0.0903 -0.0118 -0.9295 -0.6668 -0.1283
habe fern nahe nahe nahe nahe mittel mittel mittel mittel habe speed > - v< v= v> v>> v< v= v> v>> speed=0
Aktionen (Beschleunigung): 0 .. sehr stark negative 3 .. null 1 .. stark negative 4 .. Positive (%) 2 .. negative
Aufgabe B1.2
Ball stoppen mit linearen Function Approximator (FA)
B1.2: Ball stoppen mit linearen FAModel: Zustände
2 continuierliche States (2D)BallentfernungBallgeschwindigkeit
3 verschobene Tilings (vgl. UE)je 12 x 12Anmerkung: 1. Versuch (ohne Tilings) -> ups
• zuerst Theorie begreifen, dann überlegen, dann programmieren ;-)
3 x (12 x 12) = 432 Parameter (Features) pro Aktion
B1: Ball stoppen mit linearen FAModel: Aktionen, Rewards
Aktionen: gleich 5 Aktionen
zusammen mit den 432 Features: 2160 Parameter
Rewards: gleich
B1.2: Ball stoppen mit linearen FAErgebnisse
Funktioniert besser Bessere Ergebnisse, aber noch schwerer zu
Lernen (> 700 Episoden für annehmbares Verhalten)
Problemeum genaue Ergebnisse zu erhalten noch viel
größer Menge (!) an Trainingsbeispielen notwendig!
B1.2: Ball stoppen mit linearen FAErgebnisse
action0
510
1520
25
Distance 5
10
15
20
25
v
-1
-0.5
0
0.5
Q
510
1520
25
Distance
action1
510
1520
25
Distance 5
10
15
20
25
v
-0.5
0
0.5
Q
510
1520
25
Distance
action2
510
1520
25
Distance 5
10
15
20
25
v
-1
-0.5
0
0.5
Q
510
1520
25
Distance
action3
510
1520
25
Distance 5
10
15
20
25
v
-1-0.5
0
0.5Q
510
1520
25
Distance
action4
510
1520
25
Distance 5
10
15
20
25
v
-1
-0.5
0
0.5
Q
510
1520
25
Distance
Beschleunigungen action0: sehr stark
negative action1: stark negaive action2: negative action3: null action4: positive (%)
Probleme
Roboter Allgemein RL
Allgemeine Roboterprobleme (Khepera)
Fährt Kurven (Kabel)Ausfall des Kamerabildeszu langsame Kamera
ein neues Bild nur alle 50 ms
Schlechte BallerkennungSonne, Kabel, Finger, Arm, ..
Abweichungen der Messwerte (Radius)Ball nicht optimal“Schaufel” nicht optimal
RL Probleme 1
wichtigster Faktor: das Modelmöglichst viel Vorwissen einbringen (Aktionen in
gewissen States nicht zulassen, Rewards verteilen)• ACHTUNG: Roboter lernt zwar schneller, kann jedoch
einige Zeit in lokalen Minima stecken bleiben.
Anfangen mit “einfachen” Beispielenkann das Model überhaupt funktionieren?
• Ausprobieren mit “optimalen” Parameter (wenn möglich) -> Lernen ?
Unsicherheiten möglichst vermeiden• statistische Methoden (Mittelungen)• gute (lineare) Abschätzungen
RL Probleme 2
Große Menge an Trainingsbeispielenfür 250 Episoden (nach langen üben) ca. 1 Stunde ausprobieren von verschiedenen Modellen,
Lernalgorithmen ist mit sehr großen Zeitaufwand verbunden -> Simulator fürs “Grobe”
sehr viele FreiheitsgradeParameterauswahl (, ,…)Lernalgorithmen (verschiedene Versionen)E-trace UpdateAktionen ausführen bis Statewechsel ?…
RL Probleme 3
Zufalldas Lernen hängt sehr vom anfänglichen
“Zufall” abzufällige oder falsch geschätzte Ereignisse
führen zu sehr starker Verwirrung (POMDPs)kontrollierte Trainingsumgebung notwendig
Alternative Lösungen auf dieser Ebene wahrscheinlich effizienter
Regler “ausprogrammieren”
Klassensystem
Modell erstellen Anpassungen der Lernalgorithmen
KlassensystemModell
Ableiten von CEnvironmentModelFunktionen implementieren
float doNextState (CRIAction action)int getNewState()float getContinousState(int dimension)void getAvailableActions (ActionSet)
KlassensystemVorhanden
Sarsa-, (Q-) Learning - greedy policyQ-TableLineare Function ApproximatorLaden und speichern der Parameter
KlassensystemAusbaubar (Anpassungen)
Policies (Parameteranpassungen z.B. )
Q-FunctionsLernalgorithmen
(Modelbased Learning)
State KlassenBehaviors…