Wahrscheinlichkeitstheoretische Planung

Werbung
Wahrscheinlichkeitstheoretische
Planung
Vorlesung Handlungsplanung
Stefan Edelkamp
1
Überblick
- Makrov’sche Entscheidungsprozessprobleme
- Zustandswertfunktion und Aktionswertfunktion
- Monte-Carlo Simulation und Optimierung von Wertfunktionen
- Politikiteration
- Wertfunktionsiteration
- ADDs für Wertfunktionsiteration
Überblick
1
2
MDPs
Ein Makrov’sches Entscheidungsprozessproblem, kurz MDP, wird durch Zustandsund Aktionsmengen in einer Umgebung beschrieben.
Ist ein Zustand S und ein Operator O gegegen, dann ist die Wahrscheinlichkeit für
jeden möglichen Nachfolgezustand S 0 von S beschrieben durch
O = P r[S
0 | S = S, O = O]
PSS
=
S
0
t
t
t+1
Die erwartete Belohnung ist
O = E[r
0
RSS
0
t+1 | St = S, Ot = O, St+1 = S ]
MDPs
2
Beispiel
Roboter, der leere Limonadebüchsen aufsammeln muss. Er hat
- hat Sensoren, um die Limonadebehälter zu finden,
- einen Greifarm, um die Büchsen einzusammeln und
- eine aufladbare Batterie.
Zustandsvariablen für die Batterie: sind {high, low}
Mögliche Aktionen: {search, wait, recharge}, wobei reacharge in high nicht
anwendbar ist.
→ 10 Kombination von S, S 0 und O (vier für search, vier für wait und zwei für
recharge).
MDPs
3
Wahrscheinlichkeitstabelle
O und
Für die Tripel (S,S 0,O) legen wir folgende Wahrscheinlichkeiten PSS
0
O
erwarteten Belohnungen RSS 0 fest:
(high, high, search): (p1, r1)
(high, low, search): (1 − p1, r1)
(low, high, search): (1 − p2, −3)
(low, low, search): (p2, r1)
(high, high, wait): (1, r2)
(high, low, wait): (0, r2)
(low, high, wait): (0, r2)
(low, low, wait): (1, r2)
(high, low, recharge): (1, 0)
(high, low, recharge): (0, 0)
MDPs
4
Übergangsgraph
Übersicht über die stochastischen Transitionen zwischen den Zuständen, die sich
wiederum aus den Kombinationen der Zustandsvariablen ergeben.
Beispiel: zwei Knoten für low und high, 5 möglichen Aktionen zu 7 nicht trivialen
Kanten führen.
Aktionsknoten: Zur besseren Übersicht ausgehende Aktionskanten bündeln
Wie beim nichtdeterministischen Planen sind Lösungen von MDPs keine
Sequenzen von Aktionen.
Pläne: sogenannte Politiken π, die für jedes Zustandsaktionspaar (S, O) eine
Wahrscheinlichkeit festlegen, mit der O in S ausgewählt werden soll.
MDPs
5
Zustandswertfunktion
V π (S) gibt den erwarteten Gewinn bei Ausführung von π in S an, d.h.
V π (S) = Eπ {Rt | St = S}
Analog: Aktionswertfunktion
Qπ (S, O) = Eπ {Rt | St = S, Ot = O}
MDPs
6
Monte-Carlo Simulation
Für V π und Qπ werden verschiedene der Politik π folgende Beispielläufe generiert
und ausgewertet.
Optimale Politik: mit Hilfe der dynamischen Programierung
Approximierte Bellman’sche Optimalitätsgleichung:
V π (S) =
X
O∈O
π(S, O)
X
S 0 ∈S
O [R
π (S 0 )].
PSS
+
δ
·
V
0
0
SS
Der Wert δ ∈ (0, 1) ist der sogenannte Discount, der vorher festgelegt wird und der
garantiert, dass die Erwartungswerte konvergieren.
MDPs
7
Optimale Zustandswertfuntkion
Definition: Für alle S ∈ S gilt:
V ∗(S) = max V π (S)
π
Analog Optimale Aktionswertfuntkion i Q∗(S, O) = maxπ Qπ (S, O).
Wir haben für V ∗ die folgende Rekursionsbedingung:
X
∗
O [R
∗ 0
V (S) = max
PSS
0
SS 0 + δ · V (S )].
O∈O 0
S ∈S
Im Beispiel: V ∗(high) Maximum aus den zwei verschiedenen Werten
r1 + δ[p1V ∗(high) + (1 − p1)V ∗(low)] und r2 + δ · V ∗(high).
MDPs
8
3
Politikiteration
0
π
0
0
π
Ist Politik π durch V zu π verbessert, → verbessere π durch V zu π 00
→ Serie von sich stetig verbessernden Politiken und Wertfunktionen.
- π 0 ensteht aus V π durch Politikverbesserung
- V π entstehe aus π durch Politikauswertung.
Speichereffizienztrick (Auswertung): Beschränkung auf gerade und ungerade
Vektoren in V
Politikiteration
9
Auswerten einer Politik
Procedure Evaluate
for i ∈ {0, . . . , |S| − 1}
V (0, i) ← 0
for t ∈ {0, . . . , T − 1}
for i ∈ {0, . . . , |S| − 1}
π(i)
v ← Ri
for k ∈ {0, . . . , |S| − 1}
π(i)
v ← v + δ · Pi,k
V (t&1, i) ← v
Politikiteration
· V ((t − 1)&1, k)
10
Politik-Iteration
Procedure Policy-Iteration
for i ∈ {0, . . . , |O|}: π(i) ← 1
do Evaluate()
c←0
for i ∈ {0, . . . , |S − 1|}
b ← −∞; o ← −1
for j ∈ {0, . . . , |O| − 1}
j
v ← Ri
for k ∈ {0, . . . , |S| − 1}
j
v ← v + δ · Pi,k · V (0, k)
if (v > b): b ← v; o ← j
if (π(i) 6= o) c ← 1: π(i) ← o
while (c)
Politikiteration
11
Kurz und Knapp
Formal gesprochen ist für alle S ∈ S die Auswertung durch
V (S) =
X
S 0 ∈S
π(S)
π(s)
PS,S 0 [RSS 0 + δV (S 0)]
gegeben und
π(S) = arg max
O∈O
X
S 0 ∈S
O [RO + δV (S 0 )]
PS,S
0
SS 0
ein Verbesserungsschritt.
Politikiteration
12
4
Wertiteration
Nachteil Politikiteration: jede Iteration erfordert vollständige Bewertung erfordert.
→ Auswertung der Politik nach genau einem Backup-Schritt gestoppt wird, kurz
V (S) = max
O∈O
X
S 0 ∈S
O [RO + δV (S 0 )]
PS,S
0
SS 0
Ausgabe: Entsprechende Politik
π(S) = arg max
O∈O
Wertiteration
X
S 0 ∈S
O [RO + δV (S 0 )]
PS,S
0
SS 0
13
5
Implementierung Wertiteration
Procedure Value-Iteration
for i ∈ {0, . . . , |S| − 1}
V (0, i) ← 0
for t ∈ {1, . . . , T }
for i ∈ {0, . . . , |S| − 1}
m←0
for j ∈ {0, . . . , |O| − 1}
j
v ← Ri
for k ∈ {0, . . . , |S| − 1}
j
v ← v + δ · Pi,k · V (t − 1, k)
if (v > m) A ← j; M ← v
V (t, i) = m
Choice
Implementierung Wertiteration
14
6
Aktionsauswahl in Wertiteration
Procedure Choice
for i ∈ {0, . . . , |S| − 1}
b ← −∞; o ← −1
for j ∈ {0, . . . , |O| − 1}
j
v ← Ri
for k ∈ {0, . . . , |S| − 1}
j
v ← v + δ · Pi,k · V (T, k)
if (|v − V (T, i)| < |b − V (T, i)|)
b ← v; o ← j
Aktionsauswahl in Wertiteration
15
Terminierung
Bisher sind wir davon ausgegangen, dass der Benutzer die Anzahl der Iterationen
vorgibt. Dise ist aber nicht unbedingt erstrebenswert.
Eine häufig genutzte Terminierungsbedingung ist ||V n+1 − V n|| < (1 − δ)/2δ,
wobei ||X|| = max{|x| : x ∈ X} die Supremumsnorm bezeichnet.
→ Wertfunktion V n+1 weicht nicht weiter als /2 von der optimalen Wertfunktion
V ∗ ab.
Die resultierende Politik ist -optimal.
Aktionsauswahl in Wertiteration
16
7
ADDs
Algebraische Entscheidungsdiagramme, kurz ADDs: generalisieren BDDs auf
reelwertige Funktionen {0, 1}n → IR.
→ mitunter mehrere Terminalknoten.
Rekursive Definition:
1. Die Funktion f , die von einem mit c ∈ IR beschriebenen Blattknoten dargestellt
wird, ist die konstante Funktion f ≡ c
2. Die Funktion f eines nicht-terminalen Knoten, der mit der Boole’schen Variable
x beschriftet ist, ergibt sich wie folgt aus den Nachfolgerfunktionsdarstellungen
f (x1, . . . , xn) = x1 · f |x1=1(x2, . . . , xn) + ¬x1 · f |x1=0(x2, . . . , xn).
wobei die Boole’schen Werte für xi als 0 und 1 interpretiert werden.
ADDs
17
Eindeutigkeit
Wie BDDs sind Darstellung von Funktionen mit ADDs bei fester Variablenbelegung
eindeutig.
Effizient: Multiplikation, Addition und Maximierung zweier ADDs
Geteilte Darstellung: Teilgraphen von Funktionen werden gemeinsam genutzt.
Bibliotheken Z.B. bietet CUDD ADD Funktionalität an.
ADDs
18
Beispiel
Maximierung ist die Funktion f (x, z) mit Wert 5 für x ∨ z und 0.5 für ¬x ∧ ¬z.
→ ADD zur Ordnung (z, y) hat 2 innere Knoten und 2 Blätter.
Sei desweiteren g(y, z) mit Wert 7 für z, 5.0 für ¬z ∧ y und 0.0 für ¬z ∧ ¬y.
→ ADD zur Ordnung (z, y) hat 2 innere Knoten und 3 Blätter.
→ h(x, y, z) = max(f (x, z), g(z, y)) ein ADD zur Ornung (z, x, y) mit drei
inneren Knoten und drei Blättern
ADDs
19
Wertiteration mit ADDs (SPUDD)
Codierung: Boole’schen Variablensätze x = (x1, . . . , xn) x0 = (x01, . . . , x0n)
Dynamisches Bayes’sches Netz (DBN): Azyklischer Graph mit Knoten für die
Variablen und Kanten, um die Abhängigkeit einer Variablen in von einer anderen zu
beschreiben.
SPUDD-Eingabe: DBN für jede Aktion O ∈ O genutzt.
Bedingte Wahrscheinlichkeitstabelle (CPT): Für jedes x0i die bedingte
Wahrscheinlichkeit PxO0 (x1, . . . , xn) für x0i.
i
Funktionswerte hängen nur von den xj ab, die direkte Vorgänger von x0i sind.
ADDs
20
Aktionsdiagramme
Die CPTs, auch Aktionsdiagramme genannt, werden durch ADDs repräsentiert,
d.h. ür jede Aktion O und jede Variable x0i wird ein ADD PxO0 (x1, . . . , xn) generiert.
i
Auch die Belohnungsfunktion wird als BDD dargestellt,
Beispiel Sei R(c, p) = c · p · 10.0 + c · ¬p · 5.0 mit Variablen c für “verbunden” und
p für ”angestrichen”,
⇒ Ein Gewinn von 10 Einheiten, wenn
- die zwei Objekte verbunden und angestrichen sind und
- einen Gewinn von immerhin 5 Einheiten, wenn die zwei Objekte verbunden aber
nicht angestrichen sind.
ADDs
21
Wertiteration mit BDDs
Procedure BDD Value-Iteration
0,x ,...,x )
V 0 ← R; i ← 0; ∀O ∈ O, xj ∈ X 0: create QO
(x
n
0
j 1
x
j
while ||V i+1 − V i|| > (1 − δ)/2δ
V 0i ← V [x ↔ x0]
∀O ∈ O
v ← V 0i
∀x0j ∈ V 0i
P
v ← a0 v · QO
x0
j
j
VOi+1 ← R + δ · v
V i+1 ← maxO∈O VOi+1
i←i+1
extract ADD π and return (V i+1, π)
ADDs
22
Erläuterungen
Jede Wertfunktion wird als ADD V i(x1, . . . , xn) dargestellt. Da V 0 = R hat V 0
eine klare ADD Repräsentation.
Der Algorithmus beruht auf der Einsicht, dass die ADD Repräsentation direkt
genutzt werden kann, um die Erwartungswerte und Maximierungen durchzuführen.
Eine Iterationsschritt in Prozedur BDD Value-Iteration berechnet V i+1 bei
gegebenen V i.
Demanch müssen zunächst alle Variablen in V von x nach x0 getauscht werden.
Dabei wird V i+1 für jedes O ∈ O getrennt berechnet.
ADDs
23
Duale Aktionsdiagramme
Die ADDs QO
werden duale Aktionsdiagramme genannt und ergeben sich aus
x0
j
PxO0 (x1, . . . , xn) und ¬PxO0 (x1, . . . , xn) = 1 − PxO0 (x1, . . . , xn) wie folgt
j
j
j
0 , x , . . . , x ) = x · P O (x , . . . , x ) + (1 − x ) · ¬P O (x , . . . , x )
QO
(x
0
n
n
n
1
1
i
j
j 1
x
x0
x0
j
j
j
0 , a , . . . , a ) bedingte Wahrscheinlichkeit
Mit anderen Worten: QO
(a
n
0
j 1
a
j
P r(x0j = a0j |x1 = a1, . . . , xn = an) für Aktion O. U
ADDs
24
Berechnung von VOi+1
Um VOi+1 für jedes O ∈ O zu bestimmen, muss für alle Zustände S und S 0 die
Wahrscheinlichkeit berechnet werden, um von S nach S 0 zu gelangen.
Dieses wird durch die Multiplikation des dualen Aktionsdiagramms für x0j mit V 0i
und anschließender Summation über die Werte im resultierenden ADD erreicht.
0 i entsteht eine Funktion f mit
Genauer: Durch die Multiplikation von QO
mit
V
0
x
j
f (a01, . . . , a0n, a1, . . . , an) = V 0i(a01, . . . , a0n)P r(a0j |a1, . . . , an).
Anschließend wird durch Aufaddierern über die beiden Werte aj ∈ {0, 1} für xj der
Erwartungswert
g(x01, . . . , x0j−i, x0j+1 . . . x0n, x1, . . . , xn) =
ADDs
X
i
V 0 (x01, . . . , a0j , . . . , x0n)P r(a0i|x1, . . . , xn)
a0j
25
.
berechnet.
Iteration
Dieser Prozess wird für jede Variable x0j wiederholt.
Damit erhalten wir zum Ende hin eine Funktion
h(x1, . . . , xn) =
X
i
V 0 (a01, . . . , a0n)P r(a01|x1, . . . , xn)·. . .·P r(a0n|x1, . . . , xn).
a01 ,...,a0n
Addiert man nun den Wert R, dann erhält man das ADD für VOi+1.
Letztendlich werden die ADDs für alle O ∈ O maximiert.
ADDs
26
Herunterladen