Reinforcement Learning Seminar F Gerhard NEUMANN Helmut GRABNER A1: Fahren mit Ball B1: Ball stoppen

Preview:

Citation preview

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…

Recommended