Folien zur Vorlesung - Hochschule Ravensburg-Weingarten
Folien zur Vorlesung - Hochschule Ravensburg-Weingarten
Folien zur Vorlesung - Hochschule Ravensburg-Weingarten
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Lernfähige Roboter<br />
Wahlpflichtfach, Master Informatik, <strong>Hochschule</strong><br />
<strong>Ravensburg</strong>-<strong>Weingarten</strong><br />
Wolfgang Ertel, Richard Cubek, Benjamin Stähle<br />
Sommersemester 2013<br />
Inhalt<br />
1 Einführung<br />
2 Lernen durch Demonstration für Low Level Motorik<br />
3 Lernen durch Demonstration für High Level Planungsaufgaben<br />
4 Support Vektor Maschinen<br />
Überlappende Klassenverteilungen<br />
Kernel-Funktionen<br />
5 Objektklassifikation und Sensorfusion
Literatur I<br />
Bishop, C. (2006). Pattern recognition and machine learning. Springer<br />
New York<br />
Hastie, T., Tibshirani, R., and Friedman, J. (2009). The Elements of<br />
Statistical Learning: Data Mining, Inference, and Prediction. Springer,<br />
Berlin, 3rd. edition. Online version:<br />
http://www-stat.stanford.edu/~tibs/ElemStatLearn/<br />
Sutton, R. and Barto, A. (1998). Reinforcement Learning. MIT Press.<br />
www.cs.ualberta.ca/~sutton/book/the-book.html<br />
Ertel, W. (2007). Grundkurs Künstliche Intelligenz. Vieweg-Verlag.<br />
www.hs-weingarten.de/~ertel/kibuch<br />
Russell, S. and Norvig, P. (2003). Artificial Intelligence: A Modern<br />
Approach. Prentice Hall, 2 edition. 1. Auflage 1995, deutsche Übersetzung<br />
der 2. Auflage 2004 bei Pearson Studium, http://aima.cs.berkeley.edu<br />
Siciliano, B. and Khatib, O., editors (2008). Springer Handbook of<br />
Robotics. Springer, Berlin, Heidelberg<br />
Literatur II
Was können Roboter heute?<br />
schnell (10 m/sec)<br />
exakt (0.1 mm)<br />
stark (hebt bis 100 kg)<br />
Was passiert,<br />
wenn das Auto verschoben ist?<br />
Was ist Servicerobotik?<br />
Waschen<br />
Bügeln<br />
Kochen<br />
Aufräumen<br />
Putzen<br />
Einkaufen gehen<br />
Minen räumen<br />
Altenpflege<br />
...
Schnellkurs Roboterprogrammierung<br />
Video−<br />
kamera<br />
Wahrnehmung<br />
Auge<br />
Umgebung<br />
Steuerung<br />
Aktion<br />
Intelligente Roboter<br />
unstrukturierte Umgebungen<br />
wechselnde Aufgaben<br />
Programmierung sehr schwierig<br />
also:<br />
Roboter soll seine Fähigkeiten lernen!
Was ist Lernen?<br />
für Roboter:<br />
Vokabeln lernen? Einfach<br />
Gedicht auswendig lernen? Einfach<br />
Mathematik lernen? Schwierig<br />
Skifahren lernen? Schwierig<br />
Lernen heißt, aus einer (kleinen) endlichen Menge von Beispielen zu<br />
generalisieren auf einen unendlichen Raum!<br />
Lernen durch Demonstration
Kate lernt im Wohnzimmer<br />
Lernen motorischer Fertigkeiten
Lernen motorischer Fertigkeiten<br />
Lernen durch Demonstration, Literatur<br />
Posenauer, H. (2012). Robot learning from demonstration by<br />
averaging trajectories. Bachelorarbeit, <strong>Hochschule</strong><br />
<strong>Ravensburg</strong>-<strong>Weingarten</strong><br />
Schneider, M. (2009). Learning from Demonstration with Gaussian<br />
Processes. Master’s thesis, <strong>Hochschule</strong> <strong>Ravensburg</strong>-<strong>Weingarten</strong><br />
Schneider, M. and Ertel, W. (2010). Robot Learning by<br />
Demonstration with Local Gaussian Process Regression. In IROS’10<br />
Abdo, N., Kretzschmar, H., Spinello, L., and Stachniss, C. (2013).<br />
Learning manipulation actions from a few demonstrations. In ICRA<br />
2013, Karlsruhe
Drei verschiedene Demonstrationen<br />
Drei verschiedene Demonstrationen<br />
Object B<br />
6<br />
Object B<br />
5<br />
6<br />
Object A<br />
Object B<br />
5<br />
4<br />
5<br />
4<br />
Object A<br />
4<br />
3<br />
3<br />
3<br />
2<br />
Object A<br />
End<br />
2<br />
End<br />
2<br />
1<br />
Start<br />
End<br />
1<br />
Start<br />
1<br />
Start<br />
1 2 3 4 5 6<br />
1 2 3 4<br />
2 3 4 5 6
Drei Trajektorien<br />
4<br />
2<br />
5 10 15 20 25 30<br />
2<br />
4<br />
Abstand Endeffektor zu Objekt A auf x-Achse in Demos 1 - 3.<br />
8<br />
6<br />
standard deviation of Tasse<br />
Tasse<br />
Dimension 0<br />
4<br />
2<br />
0<br />
-2<br />
-4<br />
-6<br />
0 5 10 15 20 25 30<br />
Mittelwert und Standardabweichung<br />
Lernen mit zwei Objekten<br />
8<br />
6<br />
4<br />
standard deviation of Tasse<br />
Tasse<br />
standard deviation of Kaffeemaschine<br />
Kaffeemaschine<br />
Dimension 0<br />
2<br />
0<br />
-2<br />
-4<br />
x-Achse<br />
-6<br />
0 5 10 15 20 25 30<br />
5<br />
4<br />
3<br />
2<br />
1<br />
0<br />
-1<br />
-2<br />
-3<br />
-4<br />
standard deviation of Tasse<br />
Tasse<br />
standard deviation of Kaffeemaschine<br />
Kaffeemaschine<br />
Dimension 1<br />
-5<br />
0 5 10 15 20 25 30
Reproduktion mit zwei Objekten<br />
Resultierende Trajektorie: y-Achse.<br />
16<br />
14<br />
12<br />
10<br />
8<br />
6<br />
4<br />
2<br />
0<br />
standard deviation of Tasse<br />
Tasse<br />
standard deviation of Kaffeemaschine<br />
Kaffeemaschine<br />
Dimension 0<br />
-2<br />
0 5 10 15 20 25 30<br />
x-Achse, transformiert auf aktuelle Objektpositionen.<br />
18<br />
16<br />
14<br />
12<br />
10<br />
8<br />
6<br />
4<br />
2<br />
standard deviation of Tasse<br />
Tasse<br />
standard deviation of Kaffeemaschine<br />
Kaffeemaschine<br />
Dimension 1<br />
0<br />
0 5 10 15 20 25 30<br />
Reproduktion mit zwei Objekten<br />
y-Achse, transformiert auf aktuelle Objektpositionen.x<br />
16<br />
14<br />
12<br />
10<br />
8<br />
6<br />
4<br />
2<br />
0<br />
standard deviation of Tasse<br />
Tasse<br />
standard deviation of Kaffeemaschine<br />
Kaffeemaschine<br />
standard deviation of Group4-Trajectory<br />
Group4-Trajectory<br />
Dimension 0<br />
-2<br />
0 5 10 15 20 25 30<br />
Resultierende Trajektorie: x-Achse.<br />
18<br />
16<br />
14<br />
12<br />
10<br />
8<br />
6<br />
4<br />
2<br />
standard deviation of Tasse<br />
Tasse<br />
standard deviation of Kaffeemaschine<br />
Kaffeemaschine<br />
standard deviation of Group4-Trajectory<br />
Group4-Trajectory<br />
Dimension 1<br />
0<br />
0 5 10 15 20 25 30
Produkt von Normalverteilungen<br />
Normalverteilung, Dichtefunktion (PDF):<br />
f σ,µ (t) =<br />
1<br />
σ √ 2 ∗ π<br />
e−<br />
(t−µ)2<br />
2σ 2 (1)<br />
1.0<br />
0.8<br />
0.6<br />
0.4<br />
0.2<br />
1.5 2.0 2.5 3.0 3.5 4.0<br />
Grüne PDF ist das Produkt der anderen.<br />
Produkt von n Normalverteilungen:<br />
f σi ,µ i<br />
(t) =<br />
1<br />
σ i<br />
√<br />
2 · π<br />
e − (t−µ i )2<br />
2σ 2 i (2)<br />
=<br />
n∏<br />
f σi ,µ i<br />
(t) =<br />
i=1<br />
1<br />
(2π) n 2<br />
∏ n<br />
i=1 σ i<br />
=<br />
=<br />
exp<br />
(<br />
n∏<br />
i=1<br />
1<br />
√ e − (t−µ i )2<br />
2σ<br />
i<br />
2<br />
σ i 2 · π<br />
1<br />
(2π) n 2<br />
∏ n<br />
i=1 σ i<br />
1<br />
(2π) n 2<br />
∏ n<br />
i=1 σ i<br />
− 1 2<br />
(<br />
t 2 [ n∑<br />
i=1<br />
( 1 σ 2 i<br />
exp<br />
exp<br />
)<br />
]<br />
(<br />
(<br />
−<br />
−<br />
− 2t<br />
n∑<br />
i=1<br />
n∑<br />
i=1<br />
[ n∑<br />
i=1<br />
)<br />
(t − µ i ) 2<br />
2σ 2 i<br />
t 2 − 2tµ i + µ 2 i<br />
2σ 2 i<br />
µ i<br />
σ 2 i<br />
]<br />
+<br />
[ n∑<br />
i=1<br />
µ 2 i<br />
σi<br />
2<br />
)<br />
]))
Exponent erweitern mit<br />
n∏<br />
f σi ,µ i<br />
(t) =<br />
i=1<br />
1<br />
[ ∑n<br />
i=1<br />
(2π) n 2<br />
∏ n<br />
i=1 σ i<br />
1<br />
σ 2 i<br />
] −1:<br />
⎛<br />
t 2 − 2t<br />
exp ⎜<br />
⎝ −<br />
P n<br />
i=1 µ i<br />
1<br />
σ 2 i<br />
P n<br />
i=1 1<br />
σ 2 i<br />
2<br />
1<br />
P n<br />
i=1 1<br />
σ 2 i<br />
+<br />
P n<br />
i=1 µ2 1<br />
i σ 2<br />
P n<br />
i=1 1 i<br />
σ<br />
i<br />
2<br />
⎞<br />
⎟<br />
⎠<br />
Koeffizientenvergleich mit (1):<br />
µ =<br />
∑ n<br />
i=1 µ i<br />
∑ n<br />
i=1<br />
1<br />
σi<br />
2<br />
1<br />
σi<br />
2<br />
σ 2 =<br />
1<br />
∑ n<br />
i=1<br />
1<br />
σ 2 i<br />
Wo ist das Problem?<br />
P n<br />
i=1 µ2 1<br />
i σ 2<br />
P n<br />
i=1 1 i<br />
σ<br />
i<br />
2<br />
ersetzen durch<br />
(∑ n<br />
i=1 µ i<br />
∑ n<br />
i=1<br />
1<br />
σi<br />
2<br />
1<br />
σi<br />
2<br />
) 2<br />
+ c =<br />
∑ n<br />
i=1 µ2 1<br />
i σi<br />
∑ 2 n 1<br />
i=1 σi<br />
2<br />
(3)<br />
c =<br />
∑ n<br />
i=1 µ2 i<br />
∑ n<br />
i=1<br />
1<br />
σi<br />
2<br />
1<br />
σi<br />
2<br />
−<br />
(∑ n<br />
i=1 µ i<br />
∑ n<br />
i=1<br />
1<br />
σi<br />
2<br />
1<br />
σi<br />
2<br />
) 2<br />
(4)<br />
liefert<br />
n∏<br />
f σi ,µ i<br />
(t) =<br />
i=1<br />
1<br />
(2π) n 2<br />
∏ n<br />
i=1 σ i<br />
exp<br />
c<br />
2<br />
1<br />
P n<br />
i=1 1<br />
σ 2 i<br />
· e − (t−µ)2<br />
2σ 2 (5)<br />
Korrekturterm c liefert nur einen konstanten Faktor.
Joint Space und Task Space<br />
Elegantere Bewegung durch Kombination von Joint Space und Task<br />
Space. Siehe [Buss, 2009, Siciliano and Khatib, 2008].<br />
Dynamic Time Warping<br />
3.25<br />
3.2<br />
3.15<br />
demo 1<br />
demo 2<br />
Dynamic Time Warping - Test Data<br />
3.1<br />
3.05<br />
3<br />
2.95<br />
2.9<br />
2.85<br />
0 50 100 150 200 250 300 350 400<br />
Zwei zeitversetzte und verzerrte Trajektorien.<br />
3.25<br />
3.2<br />
3.15<br />
demo 1<br />
demo 2<br />
Dynamic Time Warping - step size condition 2<br />
3.1<br />
3.05<br />
3<br />
2.95<br />
2.9<br />
2.85<br />
0 50 100 150 200 250 300 350
Der DTW-Algorithmus, Literatur<br />
Müller, M. (2007). Information Retrieval for Music and<br />
Motion. Springer-Verlag Berlin Heidelberg<br />
Posenauer, H. (2012). Robot learning from demonstration by<br />
averaging trajectories. Bachelorarbeit, <strong>Hochschule</strong><br />
<strong>Ravensburg</strong>-<strong>Weingarten</strong><br />
Der DTW-Algorithmus<br />
Gesucht: Angleichung von zwei diskreten Trajektorien T a and T b .<br />
1-dimensionale Werte x ∈ R<br />
T a = {x a 1, x a 2, ..., x a m}<br />
T b = {x b 1, x b 2, ..., x b n}
Die Abstandsmatrix d<br />
Abstandsmaß d(x a i, x b j) für i ∈ {1, ..., m} und j ∈ {1, ..., n}.<br />
Abstand der ersten Ableitungen berechnen!?<br />
m × n Abstandsmatrix:<br />
d i,j = d(x a i, x b j) = ∣ ∣ẋ a<br />
i − ẋ b ∣<br />
j<br />
Die Abstandsmatrix d<br />
Links: Abstandsmatrix d mit Warping-Pfad p ∗ in Gelb, Rechts: akkumulierte<br />
Abstandsmatrix D mit Pfad .
Der Warping-Pfad p<br />
Ein Warping-Pfad p = {p 1 , p 2 , ..., p end } ist ein Pfad durch die Matrix<br />
D bestehend aus Indexpaaren:<br />
p i = (a i , b i ) mit a i ∈ {1 . . . m}, b i ∈ {1 . . . n}<br />
1 Anfangs- und Endbedingungen:<br />
2 Monotoniebedingung:<br />
p 1 = (1, 1), p end = (m, n)<br />
a i ≤ a i+1 ∧ b i ≤ b i+1 for i ∈ {1, ..., end − 1}<br />
3 Schrittweitenbedingung:<br />
p i+1 − p i ∈ {(1, 0), (0, 1), (1, 1)} for i ∈ {1, ..., end − 1}<br />
Der Warping-Pfad p<br />
Pfadlänge ˆd(p) =<br />
∑end<br />
i=1<br />
Optimaler Pfad p ∗ in der Menge P aller Pfade.<br />
d pi<br />
p ∗ = argmin(ˆd(p))<br />
p∈P<br />
Naiver Algorithmus: Längen aller Pfade vergleichen.<br />
Falls diagonale Schritte verboten sind,<br />
Pfadlänge = n + m − 1, also Rechenzeit ≈ (m + n − 1) · q
Zahl der Pfade<br />
Linkes Bild: Zahl der Pfade zu einem Punkt. Rechtes Bilde: Pascal’sches<br />
Dreieck.<br />
Zahl der Pfade<br />
q = N p (n, m) =<br />
( ) m + n − 2<br />
n − 1<br />
=<br />
( ) m + n − 2<br />
m − 1<br />
N p (m + 1, n + 1)<br />
N p (m, n)<br />
=<br />
=<br />
( m+n<br />
)<br />
n<br />
( m+n−2<br />
n−1<br />
) =<br />
(m + n − 1)(m + n)<br />
nm<br />
= m2 + n 2 + 2mn − m − n<br />
mn<br />
(m + n)!(m − 1)!(n − 1)!<br />
(m + n − 2)! · n! · m!<br />
= m n + n m + 2 − 1 m − 1 n
Zahl der Pfade<br />
n, m → ∞:<br />
N p (m + 1, n + 1)<br />
N p (m, n)<br />
≈ m n + n m + 2<br />
m = n:<br />
N p (n + 1, n + 1)<br />
N p (n, n)<br />
Mit diagonaolen Pfaden:<br />
N p (n, n) = ω((m + n − 1) · 4 n ).<br />
≈ 4<br />
N p (n, n) = Θ(4 n ).<br />
Akkumulierte Abstandsmatrix D<br />
D ˆm,1 =<br />
ˆm∑<br />
i=1<br />
d i,1 ˆm ∈ {1, ..., m}<br />
D 1,ˆn =<br />
ˆn∑<br />
j=1<br />
d 1,j ˆn ∈ {1, ..., n}<br />
D ˆm,ˆn = min{D ˆm−1,ˆn−1 , D ˆm,ˆn−1 , D ˆm−1,ˆn } + d ˆm,ˆn<br />
für ˆm ∈ {1, ..., m} ∧ ˆn ∈ {1, ..., n}
Optimaler Pfad<br />
Start in D m,n .<br />
Nachbarpunkte:<br />
{D ˆm−1,ˆn−1 , D ˆm−1,ˆn , D ˆm,ˆn−1 }<br />
Wiederhole bis D 1,1 erreicht:<br />
Falls Rand erreicht, folge dem Rand bis D 1,1 .<br />
Andernfalls wähle den Nachbarn mit minimalem Wert D.<br />
—————————————<br />
Aufwand durch Berechnung von D bestimmt<br />
Rechenzeit: O(n · m).<br />
Naiver Algorithmus: O(4 n ).<br />
Dynamische Programmierung spart viel Rechenzeit.<br />
Die Abstandsmatrix D<br />
Links: Abstandsmatrix D mit Warping-Pfad p ∗ in Gelb, Rechts: akkumulierte<br />
Abstandsmatrix D mit Pfad .
Ergebnisse<br />
3.25<br />
3.2<br />
demo 1<br />
demo 2<br />
Dynamic Time Warping - step size condition 1<br />
3.15<br />
3.1<br />
3.05<br />
3<br />
2.95<br />
2.9<br />
2.85<br />
0 50 100 150 200 250 300<br />
Klassisches DTW kann horizontale Linien erzeugen.<br />
3.25<br />
3.2<br />
3.15<br />
demo 1<br />
demo 2<br />
Dynamic Time Warping - step size condition 2<br />
3.1<br />
3.05<br />
3<br />
2.95<br />
2.9<br />
2.85<br />
0 50 100 150 200 250 300 350<br />
Optimierung von DTW<br />
Mit Längenbeschränkung horizontaler und vertikaler Pfadabschnitte.<br />
Andere Schrittweitenbeschränkungen:<br />
Sakoe-Chiba-Band or Itakura-Parallelogramm.)<br />
Kann auch auf n-dimensionale Daten verallgemeinert werden.<br />
Heuristiken <strong>zur</strong> Beschleunigung.<br />
Siehe auch <strong>Vorlesung</strong> Theoretische Informatik [Ertel, 2012].
Praktische Ergebnisse<br />
Lernen durch Demonstration, Zukunft<br />
Der Roboter:<br />
1 beobachtet den Trainer<br />
2 lernt<br />
3 macht nach
Lernen auf höherer Ebene (High-Level Learning)<br />
Roboter lernt komplexe Aktionssequenzen oder längerfristige Ziele<br />
Beispiele: Tisch decken, Objekte nach Form oder Farbe sortieren<br />
High-Level Learning<br />
Übersicht:<br />
Grundlegendes beim High-Level Learning<br />
Lösen von Planungsaufgaben höherer Ebene<br />
Lernen von Planungszielen durch menschliche Demonstration
High-Level Learning: Was ist grundlegend?<br />
Kaelbling et al., AAAI 2001:<br />
”It is hard to imagine a truly intelligent agent that does not conceive<br />
of the world in terms of objects and their properties and relations to<br />
other objects”.<br />
→ The green box has to be on the small table.<br />
High-Level Learning: Was ist grundlegend?<br />
Auf höherer Abstraktionsebene grundlegend sind:<br />
Objekte<br />
Objekteigenschaften<br />
Beziehungen zwischen Objekten<br />
→ Prädikatenlogik als Wissensrepräsentation!
Prädikatenlogik als Wissensrepräsentation<br />
Objekte: Konstanten und Variablen, z.B. A oder X<br />
Objekteigenschaften: Ein - oder zweistellige Prädikate, z.B.<br />
RED(X ) oder HAS COLOR(X , RED)<br />
Objektbeziehungen: Relationen (mehrstellige Prädikate), z.B.<br />
IN(X , Y ) oder ON(X , TABLE)<br />
Exkurs: High-Level Planungsaufgaben<br />
Gegeben: Welt mit Fakten und Regeln<br />
Gegeben: Problem mit Fakten und Ziel<br />
Gesucht: Plan <strong>zur</strong> Erreichung des Ziels<br />
→ Ein Plan ist eine zum Ziel führende Aktionsfolge
Klassische Planungsaufgabe: Blocks-World<br />
Notwendige Aktionsfolge (Versetzen von Blöcken) als Plan gesucht<br />
D<br />
1<br />
C<br />
2<br />
3<br />
A<br />
B<br />
4<br />
A<br />
B<br />
C<br />
1<br />
D<br />
2<br />
3<br />
4<br />
Startzustand<br />
Zielzustand<br />
High-Level Planungssprachen: STRIPS<br />
STRIPS (Fikes and Nilsson, 1971):<br />
Stanford Research Institute Problem Solver<br />
Basiert auf Prädikatenlogik<br />
Zielt auf die Bedürfnisse der Robotik (”Shakey”)<br />
Roboter ”Shakey”
High-Level Planungssprachen: STRIPS<br />
Hauptbestandteile eines STRIPS-Problems:<br />
Weltbeschreibung<br />
Objekte, Eigenschaften und Beziehungen<br />
Zulässige Aktionen (Vorbedingungen, Effekte)<br />
Startzustand<br />
Zielzustand<br />
High-Level Planungssprachen: STRIPS<br />
Analogie zu Theorembeweisern:<br />
Weltbeschreibung<br />
Objekte, Eigenschaften und Beziehungen → Prädikate<br />
Zulässige Aktionen (Vorbedingungen, Effekte) → Inferenzregeln<br />
Startzustand → Wissenbasis<br />
Zielzustand → Anfrage
High-Level Planungssprachen: ADL<br />
ADL (Pednault, 1989) als Erweiterung zu STRIPS:<br />
Action Description Language<br />
Bedingte Effekte<br />
Quantoren für Variablen<br />
High-Level Planungssprachen: PDDL<br />
PDDL (McDermott, 1998):<br />
Planning Domain Definition Language<br />
Basiert auf STRIPS und ADL<br />
Entstanden im Rahmen der International Planning Competition<br />
(Konferenzen AIPS bzw. ICAPS)<br />
Einheitliche, einfache Sprache<br />
→ Mehrere leistungsfähige PDDL-Planer frei verfügbar!
Planungsaufgaben mit PDDL<br />
Eine PDDL-Planungsaufgabe besteht aus zwei Dateien:<br />
Domain-Datei<br />
Deklarierung von Typen, Konstanten und Prädikaten<br />
Mögliche Aktionen (mit Parametern, Vorbedingungen und<br />
Effekten)<br />
Problem-Datei<br />
Startzustand<br />
Zielzustand<br />
→ Lösung mit PDDL-Planer (z.B. LAMA oder Metric-FF )<br />
PDDL-Syntax<br />
Struktur einer PDDL-Domain-Datei<br />
(define (domain ...)<br />
(:requirements ...)<br />
(:constants ...)<br />
(:predicates ...)<br />
; Name der Domain (Welt)<br />
; Sprachkern (relativ unwichtig)<br />
; Konstanten (z.B. Farben, Objekte)<br />
; Prädikate (Eigenschaften, Beziehungen)<br />
)<br />
(:action ...<br />
; Aktion (Name)<br />
:parameters (...) ; Parameter (Objekte)<br />
:precondition (...) ; Vorbedingungen <strong>zur</strong> Ausführbarkeit<br />
:effect (...) ; Zustandsänderung nach Ausführung<br />
)
PDDL-Syntax<br />
Struktur einer PDDL-Problem-Datei<br />
(define (problem ...)<br />
(:domain ...)<br />
(:objects ...)<br />
(:init ...)<br />
; Name des Problems<br />
; Name der zugehörigen Welt (Domain)<br />
; Objekte<br />
; Startzustand<br />
)<br />
(:goal ...)<br />
; Zielzustand<br />
PDDL-Beispiel: Blocks-World-Domain<br />
Name und Requirements<br />
(define (domain blocksworld)<br />
(:requirements :strips :adl)<br />
; funktioniert bei den meisten<br />
; Planern auch ohne Angabe
PDDL-Beispiel: Blocks-World-Domain<br />
Konstanten<br />
(:constants<br />
BLOCK_A<br />
BLOCK_B<br />
BLOCK_C<br />
BLOCK_D<br />
; die 4 Blöcke<br />
)<br />
POS_1<br />
POS_2<br />
POS_3<br />
POS_4<br />
; die 4 Positionen auf dem Tisch<br />
PDDL-Beispiel: Blocks-World-Domain<br />
Prädikate<br />
(:predicates<br />
(ON ?X ?Y) ; Beziehung "X steht auf Y"<br />
(BLOCK ?X) ; Eigenschaft "X ist ein Block"<br />
(FREE ?X) ; Eigenschaft "X ist frei" (um einen Block<br />
; darauf zu stellen)<br />
)
PDDL-Beispiel: Blocks-World-Domain<br />
Aktion ”PUT”<br />
(:action PUT<br />
:parameters<br />
(?X ?Y ?Z) ; "stelle X von Y auf Z"<br />
:precondition<br />
(AND (BLOCK ?X)<br />
(ON ?X ?Y)<br />
(FREE ?X) (FREE ?Z)<br />
(NOT (= ?X ?Y)) (NOT (= ?X ?Z)) (NOT (= ?Y ?Z))<br />
)<br />
:effect<br />
(AND (ON ?X ?Z)<br />
(FREE ?Y)<br />
(NOT (ON ?X ?Y))<br />
(NOT (FREE ?Z))<br />
)<br />
)<br />
) ; PDDL-Domain Ende<br />
PDDL-Beispiel: Blocks-World-Problem<br />
Name und Domain<br />
(define (problem stackABC)<br />
(:domain blocksworld)
PDDL-Beispiel: Blocks-World-Problem<br />
Startzustand<br />
(:init<br />
(BLOCK BLOCK_A)<br />
(BLOCK BLOCK_B)<br />
(BLOCK BLOCK_C)<br />
(BLOCK BLOCK_D)<br />
(ON BLOCK_D POS_1)<br />
(ON BLOCK_C POS_2)<br />
(ON BLOCK_B POS_4)<br />
(ON BLOCK_A BLOCK_B)<br />
; was alles Blöcke sind<br />
; welcher Block steht wo<br />
)<br />
(FREE BLOCK_D)<br />
(FREE BLOCK_C)<br />
(FREE BLOCK_A)<br />
(FREE POS_3)<br />
; wo kann etwas drauf gestellt werden<br />
D<br />
1<br />
C<br />
2<br />
3<br />
A<br />
B<br />
4<br />
A<br />
B<br />
C<br />
1<br />
D<br />
2<br />
3<br />
4<br />
Startzustand<br />
Zielzustand<br />
PDDL-Beispiel: Blocks-World-Problem<br />
Zielzustand<br />
(:goal ; A auf B auf C auf Pos. 1<br />
(AND (ON BLOCK_A BLOCK_B)<br />
(ON BLOCK_B BLOCK_C)<br />
(ON BLOCK_C POS_1)<br />
)<br />
)<br />
) ; PDDL-Problem Ende<br />
D<br />
1<br />
C<br />
2<br />
3<br />
A<br />
B<br />
4<br />
A<br />
B<br />
C<br />
1<br />
D<br />
2<br />
3<br />
4<br />
Startzustand<br />
Zielzustand
PDDL-Beispiel: Planerstellung mit Metric-FF<br />
shell> metricff -o domain.pddl -f problem.pddl<br />
...<br />
ff: found legal plan as follows<br />
step<br />
0: PUT BLOCK_D POS_1 POS_3<br />
1: PUT BLOCK_C POS_2 POS_1<br />
2: PUT BLOCK_A BLOCK_B POS_2<br />
3: PUT BLOCK_B POS_4 BLOCK_C<br />
4: PUT BLOCK_A POS_2 BLOCK_B<br />
time spent:<br />
0.00 seconds searching, evaluating 43 states, ...<br />
0.00 seconds total time<br />
Lösung des Frame-Problems in PDDL<br />
Situationskalkül:<br />
Zustand der Welt wird modelliert durch Menge von Fakten<br />
Diese Menge kann verändert werden:<br />
Fakten können der Menge hinzugefügt werden<br />
Fakten können der Menge entnommen werden (mittels “NOT”)<br />
Beispiel: Aktion ”PUT”<br />
:effect<br />
(AND (ON ?X ?Z)<br />
(FREE ?Y)<br />
(NOT (ON ?X ?Y))<br />
(NOT (FREE ?Z))
Lösung des Frame-Problems in PDDL<br />
Closed World Assumption:<br />
Was nicht angegeben ist, ist nicht wahr<br />
Nicht-Effekte von Aktionen müssen nicht definiert werden<br />
→ Logik ist nichtmonoton<br />
Beispiel: Pinguin Tweety und Rabe Abraxas.<br />
(RABE abraxas)<br />
(WHEN (RABE ?X) (VOGEL ?X))<br />
(PINGUIN tweety)<br />
(WHEN (PINGUIN ?X) (VOGEL ?X))<br />
(WHEN (AND (VOGEL ?X) (NOT (PINGUIN ?X))) (FLIEGEN ?X))<br />
Nur mit der Closed World Assumption folgt: FLIEGEN(abraxas)<br />
Lösung des Frame-Problems in PDDL (formal)<br />
Ein Plan ist ein Paar 〈O,
PDDL-Beispiel: Existenzquantoren<br />
Verwendung bspw. in Vorbedingungen<br />
:precondition<br />
...<br />
(NOT (EXISTS (?V) (ON ?V ?X)))<br />
(NOT (EXISTS (?V) (ON ?V ?Z)))<br />
anstelle von<br />
:precondition<br />
...<br />
(FREE ?X)<br />
(FREE ?Z)<br />
→ Prädikat FREE() wird dann gar nicht benötigt<br />
PDDL-Beispiel: Funktionen<br />
Deklaration<br />
(:functions<br />
(CAPACITY ?X)<br />
(LOAD ?X)<br />
)<br />
Initialisierung der Funktionen im Starzustand<br />
(:init<br />
...<br />
(= (CAPACITY CONTAINER_A) 3) ; Kapazität des Containers<br />
(= (LOAD CONTAINER_A) 0) ; Beladung des Containers<br />
)<br />
Funktionen haben keinen klassischen Funktionsrumpf<br />
Syntax von der Sprache LISP übernommen (KI-Sprache in USA)
PDDL-Beispiel: Funktionen<br />
Verwendung der Funktionen (und anderer Operatoren) in einer Aktion<br />
(:action PUT_IN_CONTAINER<br />
)<br />
:parameters (?X ?Y)<br />
; stelle X in Y<br />
:precondition<br />
...<br />
(CONTAINER ?Y)<br />
; Y muss ein Container sein<br />
(> (CAPACITY ?Y) (LOAD ?Y)) ; Kapazität noch über Beladung<br />
:effect<br />
...<br />
(INCREASE (LOAD ?Y) 1) ; Beladung um 1 erhöhen<br />
PDDL: Plan-Metrik<br />
Domain<br />
(:functions<br />
...<br />
(TOTALCOST)<br />
)<br />
Problem<br />
(:init<br />
...<br />
(= (TOTALCOST) 0)<br />
)<br />
...<br />
(:metric MINIMIZE (TOTALCOST))<br />
→ Planer optimiert nun hinsichtlich minimaler Kosten
PDDL: Plan-Metrik<br />
Metrik in Aktionen<br />
(:action ROBOT_PUT<br />
...<br />
:effect<br />
...<br />
(INCREASE (TOTALCOST) 1)<br />
)<br />
(:action ROBOT_MOVE<br />
...<br />
:effect<br />
...<br />
(INCREASE (TOTALCOST) 5)<br />
)<br />
→ Aktionen können so unterschiedliche Kosten haben<br />
High-Level Lernen durch Demonstration<br />
Gemeinsamkeiten mit dem Low-Level Learning<br />
Es erfolgen mehrere Demonstrationen<br />
Lernen erfolgt über Erkennung von Gemeinsamkeiten in<br />
demonstrierten Aktionen<br />
Der gelernte Verhalten muss in neuen Situationen anwendbar sein<br />
Unterschiede zum Low-Level Learning<br />
Objektrelationales Lernen anstelle von Bewegungsmustern<br />
Gelerntes Wissen wird in symbolischer Form abgelegt
Beispiel: Tisch decken<br />
Ekvall and Kragic (2008), Idee:<br />
Lernphase: Lernen des Demonstrationsziels<br />
Reproduktion: Anwendung eines symbolischen Planers<br />
Lernen jedoch noch nicht gänzlich objektrelational<br />
→ Anwendung der Idee auf höherer Abstraktionsebene<br />
→ Es soll z.B. gelernt werden: on(cup, saucer)<br />
Erkennung des Demonstrationsziels<br />
Erkennung von Effekten von Aktionen<br />
Beziehungen entstehen am Ende von Aktionen: on(cup, saucer)
Key Frame Extraction<br />
Key frame extraction durch visuelle Beobachtung<br />
Key frame extraction durch kinesthetic teaching<br />
Symbol Grounding Problem<br />
10.230 5.784 12.333<br />
11.487 7.890 12.333<br />
12.788 9.122 12.900<br />
...<br />
?<br />
on(cup, saucer)<br />
Chella et al. (2006), Idee:<br />
Repräsentation der Demonstrationen in Conceptual Spaces<br />
Adaption der Idee im Sinne objektrelationaler Repräsentation
Conceptual Spaces: Beispiel (reduzierter) Farbraum<br />
green<br />
+<br />
Saturation<br />
+<br />
+<br />
Color Real world concepts<br />
(convex observations regions)<br />
white +<br />
Hue<br />
→ Konzeptionelle Ähnlichkeit = inverse euklidische Distanz<br />
→ Überführung in Symbol durch Konzept<br />
Konzeptdefinition<br />
Concept<br />
+<br />
Prototype<br />
→ Konzeptdefinition nach Prototyp und Maximalabstand
Räumliche Beziehungen (Relationen) als Konzepte<br />
z (distance)<br />
+<br />
ON<br />
y (relative)<br />
x (relative)<br />
In der Mathematik ist eine n-stellige Relation eine Menge von<br />
n-Tupeln.<br />
Hier ist eine Relation eine konvexe Menge von Punkten<br />
(k-Tupeln) in einem k-dim. Unterraum des Conceptual Space.<br />
Definition von Konzepten (Relationen)<br />
Bisher (manuell):<br />
Überlegung zum Prototyp (Dimensionen, Position im Raum)<br />
Bestimmung eines subjektiv sinnvollen Maximalabstandes<br />
Harte Konzeptübergänge (ON oder ¬ON)<br />
In Zukunft:<br />
Lernen der Repräsentation durch Beispiele<br />
Prototyp kann das Mittel aus den Beispielen sein<br />
Maximalabstand kann die zweifache Standardabweichung sein<br />
Unnötige Dimensionen können mittels PCA gefunden werden<br />
Anhand der Verteilung der Beispiele können Konzeptübergänge<br />
probabilistisch sein (Vermeidung unnatürlicher, harter Übergänge)
Der Demonstration Space und Key Events<br />
Der Demonstration Space und Key Events
Der Demonstration Space und Key Events<br />
Der Demonstration Space und Key Events
Der Demonstration Space und Key Events<br />
Der Demonstration Space und Key Events<br />
Spatial<br />
relations<br />
Active object<br />
properties<br />
Passive<br />
object<br />
properties
Der Demonstration Space und Key Events<br />
Spatial<br />
relations<br />
+<br />
Active object<br />
properties<br />
Passive<br />
object<br />
properties<br />
Der Demonstration Space und Key Events<br />
Spatial<br />
relations<br />
+<br />
Active object<br />
properties<br />
Passive<br />
object<br />
properties
Der Demonstration Space und Key Events<br />
Spatial<br />
relations<br />
+<br />
Active object<br />
properties<br />
Passive<br />
object<br />
properties<br />
Der Demonstration Space und Key Events<br />
Spatial<br />
relations<br />
+<br />
+<br />
+<br />
Active object<br />
properties<br />
Passive<br />
object<br />
properties
Der Demonstration Space und Key Events<br />
Spatial<br />
relations<br />
+<br />
+<br />
+<br />
Active object<br />
properties<br />
Passive<br />
object<br />
properties<br />
Der Demonstration Space und Key Events<br />
Spatial<br />
relations<br />
+<br />
+<br />
+<br />
Active object<br />
properties<br />
Passive<br />
object<br />
properties
Der Demonstration Space und Key Events<br />
Spatial<br />
relations<br />
+<br />
+<br />
+<br />
Active object<br />
properties<br />
+<br />
+<br />
+<br />
Passive<br />
object<br />
properties<br />
Der Demonstration Space und Key Events<br />
Spatial<br />
relations<br />
+ +<br />
+<br />
+<br />
+<br />
+<br />
Active object<br />
properties<br />
Passive<br />
object<br />
properties
Der Demonstration Space und Key Events<br />
Conceptual<br />
similarity<br />
Spatial<br />
relations<br />
+ +<br />
+<br />
+<br />
+<br />
+<br />
Active object<br />
properties<br />
Passive<br />
object<br />
properties<br />
Suche nach Clustern in Unterräumen<br />
Bisher:<br />
Hierarchisches Clustern, da Anzahl Cluster unbekannt<br />
Brute-Force-Suche über alle Eigenschaftsunterräume<br />
Räumliche Dimensionen werden bei jeder Suche alle einbezogen<br />
Hohe Berechnungskomplexität: Bei n Objekteigenschaften müssen<br />
2 2n Projektionen ausprobiert werden<br />
Bei m Knoxeln Komplexität bei wiederholtem hierarchischen<br />
Clustern dann O(2 2n m 3 )<br />
In der Praxis bisher gut handhabbar (in der Regel wenige Knoxel)<br />
In Zukunft:<br />
Data Mining Techniken des Subspace Clustering<br />
Probieren von Verfahren, z.B. ”inverse PCA”
Formalisierung erkannter Demonstrationsziele<br />
Jeder gefundene Cluster wird als Demonstrationsziel formuliert:<br />
∀x ∃y P a (x) ⇒ P p (y) ∧ R(x, y)<br />
P a (x): Eigenschaften des aktiven Objektes<br />
P p (x): Eigenschaften des passiven Objektes<br />
R(x, y): Beziehung (Relation) zwischen den beiden Objekten<br />
Reproduktionsphase in neuen Situationen:<br />
Formulierung der Demonstrationsziele in PDDL<br />
Erstellung eines Planes <strong>zur</strong> Realisierung der Ziele<br />
Verwendung des Demonstration Space<br />
Erkennung konzeptioneller Ähnlichkeiten (1)<br />
Symbol Grounding der objektrelationalen Repräsentation (2)
Experimente in virtueller Umgebung<br />
OpenRAVE<br />
Metric-FF (PDDL)<br />
Experimente in virtueller Umgebung<br />
Roboter lernt, Objekte in Paletten zu sortieren<br />
Lernen<br />
Reproduktion
Support Vektor Maschinen<br />
Literatur:<br />
Bishop, C. (2006). Pattern recognition and machine<br />
learning. Springer New York<br />
Schölkopf, S. and Smola, A. (2002). Learning with Kernels:<br />
Support Vector Machines, Regularization, Optimization,<br />
and Beyond. MIT Press<br />
Videos, Skripten:<br />
<strong>Vorlesung</strong> von Andrew Ng: Machine Learning, Univ. Stanford<br />
http://cs229.stanford.edu/<br />
Videos dazu (Nr. 7,8) auf http:<br />
//www.youtube.com/view_play_list?p=A89DCFA6ADACE599<br />
Videolecture v. Colin Campbell<br />
http://videolectures.net/aop07_campbell_svm/<br />
Support Vektor Maschinen (SVM)<br />
Vorteile von linearen Modellen:<br />
schnelles Lernen<br />
Konvergenzgarantie<br />
geringe Gefahr für Overfitting<br />
Vorteile von nichtlinearen Modellen:<br />
komplexe Funktionen können gelernt werden<br />
Nachteile von nichtlinearen Modellen:<br />
lokale Minima, Konvergenzprobleme und Overfitting<br />
Lösung: Support-Vektor-Maschinen
Das Perzeptron<br />
y(x) = sign(w T x)<br />
M + , M − : Menge der positiven (negativen) Trainingsmuster<br />
PerzeptronLernen(M + , M − )<br />
w = 0<br />
Repeat<br />
For all x ∈ M +<br />
If w T x ≤ 0 Then w = w + x<br />
For all x ∈ M −<br />
If w T x > 0 Then w = w − x<br />
Until alle x ∈ M + ∪ M − werden korrekt klassifiziert<br />
Das Perzeptron<br />
{ 1 if xn ∈ M<br />
Target-Wert, Label t n =<br />
+<br />
−1 if x n ∈ M −<br />
Trainingsmuster x n wird α n mal verwendet.<br />
N = Anzahl der Trainignsmuster.<br />
N∑<br />
w = α n t n x n<br />
n=1<br />
Der Kerneltrick:<br />
( N<br />
) (<br />
∑<br />
N<br />
)<br />
∑<br />
y(x) = sign(w T x) = sign α n t n x T n x = sign α n t n k(x n , x)<br />
mit der Kernelfunktion k(x, z) = x T z.<br />
n=1<br />
n=1
Das Perzeptron<br />
w =<br />
N∑<br />
α n t n x n<br />
n=1<br />
If t n w T x n ≤ 0 Then α n = α n + 1<br />
sign(t n w T x n ) = sign<br />
(<br />
t n<br />
∑ N<br />
m=1<br />
α m t m x T mx n<br />
)<br />
= sign<br />
(<br />
t n<br />
∑ N<br />
m=1<br />
α m t m k(x m , x n )<br />
)<br />
Das Perzeptron<br />
PerzeptronLernen(M + , M − )<br />
α 1 = α 2 = . . . = α n = 0<br />
Repeat<br />
For all x n ∈ M + ∪ M −<br />
If t n<br />
N<br />
∑<br />
m=1<br />
α m t m k(x m , x n ) ≤ 0 Then α n = α n + 1;<br />
Until alle x ∈ M + ∪ M − werden korrekt klassifiziert<br />
( N<br />
)<br />
∑<br />
Gewichtsänderung, wenn t n α m t m k(x m , x n ) ≤ 0.<br />
m=1
Kernel und Gram-Matrix<br />
Kernelfunktion k(x, z) = x T z.<br />
Skalarprodukt<br />
Ähnlichkeit der Vektoren x und z<br />
Datenpunkte definieren die Gram-Matrix K mit<br />
K mn = k(x m , x n )<br />
Die Gram-Matrix ist symmetrisch<br />
Nachteil des Perzeptrons<br />
−<br />
−<br />
− −<br />
−<br />
−<br />
−<br />
−<br />
−<br />
−<br />
−<br />
−<br />
+ +<br />
+<br />
+<br />
+ + +<br />
+ + +<br />
−<br />
−<br />
−<br />
−<br />
x 1<br />
x 2<br />
+ +<br />
+ +<br />
+<br />
+<br />
+ + +<br />
+<br />
−<br />
−<br />
−<br />
−<br />
Typischerweise unendlich viele trennende Geraden!<br />
Trennende Gerade ist nicht optimal !?<br />
Gesucht: Maximal trennende Gerade
Support Vektor Maschinen<br />
Nichtlineare Transformation der Daten mit der Eigenschaft, dass<br />
die transformierten Daten linear separabel sind.<br />
Die Transformation wird als Kernel bezeichnet.<br />
Im transformierten Raum werden die Support-Vektoren bestimmt.<br />
Lineare Trennung der Klassen<br />
Es ist immer möglich, durch Transformation des Vektorraumes die<br />
Klassen linear separabel zu machen, sofern die Daten keine<br />
Widersprüche enthalten. 1<br />
z.B. durch Einführung einer neuen Dimension x n+1 :<br />
x n+1 =<br />
{ 1 if x ∈ Klasse 1<br />
0 if x ∈ Klasse 0.<br />
+<br />
+<br />
+<br />
x 2<br />
− −<br />
− + −<br />
−<br />
+ + −<br />
+ −<br />
+<br />
−<br />
+ + +<br />
So einfach geht es aber nicht. Warum?<br />
−<br />
+<br />
x 1<br />
x −<br />
3<br />
x<br />
− 2<br />
+ + +<br />
+ +<br />
+<br />
1 Ein Punkt ist widersprüchlich, wenn er zu beiden Klassen gehört.<br />
−<br />
−<br />
+<br />
+<br />
+<br />
−<br />
−<br />
−<br />
+<br />
−<br />
−<br />
+<br />
x 1
Lineare Klassifikation mit maximalem Rand<br />
y(x) = w T φ(x) + b (6)<br />
Feature-Funktion φ : R D → R M transformiert x nach φ(x).<br />
Trainingsdaten (x 1 , t 1 ), . . . (x N , t N ).<br />
Annahme: Trainingsdaten sind linear separabel, d.h. es gibt eine<br />
Gerade y(x), so dass für alle Punkte x n gilt:<br />
t n = 1 ⇒ y(x n ) > 0<br />
t n = −1 ⇒ y(x n ) < 0<br />
|y(x)|/‖w‖ = Abstand eines Punktes x von einer Hyperebene<br />
y(x) = 0.<br />
Korrekte Klassifikation wenn t n y(x n ) > 0.<br />
Also:<br />
t n y(x n )<br />
‖w‖<br />
= t n(w T φ(x n ) + b)<br />
‖w‖<br />
Lineare Klassifikation mit maximalem Rand 2<br />
y = 1<br />
y = 0<br />
y = −1<br />
y = −1<br />
y = 0<br />
y = 1<br />
margin<br />
Gesucht ist die Gerade y(x) = w T φ(x) + b mit<br />
( )<br />
1<br />
(w, b) = argmax<br />
w,b ‖w‖ min[t<br />
n(w T φ(x n ) + b)]<br />
n<br />
2 Bilder aus [Bishop, 2006].
Transformation des Problems<br />
Ebenengleichung ist invariant bezüglich Skalierung:<br />
w → κw, b → κb.<br />
Setze also<br />
t n (w T φ(x i ) + b) = 1<br />
für den nächsten Punkt x i <strong>zur</strong> Ebene. Also: Nebenbedingungen<br />
t n (w T φ(x n ) + b) ≥ 1 für n = 1, . . . , N.<br />
Zu maximieren ist nun 1/‖w‖.<br />
Neues Optimierungsproblem:<br />
argmin<br />
w,b<br />
1<br />
2 ‖w‖2<br />
Quadratische Programmierung<br />
Zu minimieren ist die quadratische Funktion<br />
unter den Nebenbedingungen:<br />
argmin<br />
w,b<br />
1<br />
2 ‖w‖2<br />
t n (w T φ(x n ) + b) ≥ 1 für n = 1, . . . , N.<br />
Konvexe Funktion ‖w‖ 2 .<br />
Lokales Optimum ist gleich globalem Optimum, falls die<br />
Nebenbedingungen linear sind.
Lagrange-Funktion<br />
L(w, b, a) = 1 2 ‖w‖2 −<br />
mit Lagrange-Parametern a n ≥ 0.<br />
liefert<br />
w =<br />
N∑<br />
a n [t n (w T φ(x n ) + b) − 1] (7)<br />
n=1<br />
∂L<br />
∂w = 0 und ∂L<br />
∂b = 0<br />
N∑<br />
a n t n φ(x n )<br />
n=1<br />
Einsetzen in Gl. 7 (Kernel Trick):<br />
und<br />
N∑<br />
a n t n = 0 (8)<br />
n=1<br />
˜L(a) =<br />
N∑<br />
a n − 1 2<br />
n=1<br />
N∑ N∑<br />
a n a m t n t m φ T (x n )φ(x m ) (9)<br />
n=1 m=1<br />
Duale Repräsentation I<br />
Zu maximieren ist nun<br />
N∑<br />
˜L(a) = a n − 1 2<br />
=<br />
n=1<br />
N∑<br />
a n − 1 2<br />
n=1<br />
N∑ N∑<br />
a n a m t n t m φ T (x n )φ(x m ) (10)<br />
n=1<br />
N∑<br />
m=1<br />
n=1 m=1<br />
N∑<br />
a n a m t n t m k(x n , x m ) (11)<br />
mit k(x, x ′ ) = φ T (x)φ(x ′ )<br />
unter den Randbedingungen<br />
a n ≥ 0 für n = 1, . . . , N.<br />
und<br />
N∑<br />
a n t n = 0<br />
n=1
Duale Repräsentation II<br />
Einsetzen von (8) in (6) ergibt (vgl. Perzeptron) den Klassifikator:<br />
y(x) =<br />
(<br />
∑ N<br />
)<br />
a n t n k(x n , x) + b (12)<br />
n=1<br />
Karush-Kuhn-Tucker Bedingungen für Maximum unter<br />
Ungleichungsnebenbedingungen:<br />
a n ≥ 0<br />
t n y(x n ) − 1 ≥ 0<br />
a n (t n y(x n ) − 1) = 0<br />
Supportvektoren 3<br />
Für alle Punkte gilt a n = 0 oder t n y(x n ) = 1<br />
Punkte mit a n = 0 kommen in (12) nicht vor.<br />
Alle anderen Punkte (Supportvektoren) mit t n y(x n ) = 1 liegen<br />
auf einer der beiden Rand-Ebenen.<br />
y = −1<br />
y = 0<br />
y = 1<br />
Nach dem Training können alle Datenpunkte ausser den<br />
Supportvektoren gelöscht werden<br />
3 Bild aus [Bishop, 2006].
Supportvektoren<br />
Neue einfachere Formel für den Klassifikator:<br />
( )<br />
∑<br />
y(x) = a n t n k(x n , x)<br />
n∈S<br />
+ b<br />
mit S = Menge der Supportvektoren.<br />
Was fehlt noch? Berechnung von b:<br />
Auflösung von t n y(x n ) = 1 nach b und Mittelung über alle<br />
Supportvektoren ergibt:<br />
(<br />
b = 1 t n − ∑ )<br />
a n t n k(x n , x m )<br />
|S|<br />
n∈S<br />
Beispiel mit Gauß’schem Kernel 4<br />
Datenpunkte, Supportvektoren und Höhenlinien von y(x).<br />
4 Bild aus [Bishop, 2006].
Lösung des quadratischen Optimierungsproblems<br />
Lagrangefunktion ist konvex und hat ein globales Minimum.<br />
Lokale Suchstrategien führen zum globalem Minimum.<br />
Schneller Algorithmus gesucht.<br />
Idee: Koordinatenabstieg<br />
5<br />
4<br />
3<br />
2<br />
1<br />
0<br />
-1<br />
-2<br />
-3<br />
-2 0 2 4 6<br />
Koordinatenabstieg<br />
gesucht: Minimum der Funktion f (a 1 , . . . a N )<br />
Koordinatenabstieg(f,a)<br />
Repeat<br />
For i = 1, . . . N<br />
a i = argminâi f (a 1 , . . . , a i−1 , â i , a i+1 , . . . a N )<br />
Until Konvergenz<br />
Wegen ∑ N<br />
n=1 a nt n = 0 nicht anwendbar!<br />
Denn a 1 = − 1 t 1<br />
N<br />
∑<br />
n=2<br />
a n t n = const.<br />
Daher SMO (sequential minimal optimization):<br />
Variiere immer 2 Parameter: a i , a j .<br />
Heuristische Wahl von a i , a j in jedem Schritt.
Überlappende Klassenverteilungen<br />
Wollen wir das?<br />
Überlappende Klassenverteilungen 5<br />
bisher: Minimum von ‖w‖ unter Nebenbedingungen<br />
nun: ???<br />
Minimum von<br />
C<br />
N∑<br />
ξ n + 1 2 ‖w‖2<br />
n=1<br />
mit Slack-Variablen ξ n :<br />
Maß für Abstand von Punkt x n <strong>zur</strong><br />
Randfläche.<br />
ξ n = 0 für Punkte, die auf oder innerhalb<br />
der korrekten Randfläche liegen.<br />
ξ n = |t n − y(x n )| für andere Punkte.<br />
5 Bild aus [Bishop, 2006].<br />
ξ < 1<br />
ξ = 0<br />
ξ > 1<br />
y = −1<br />
y = 0<br />
y = 1<br />
ξ = 0
Die Slack-Variablen ξ n<br />
6<br />
Nebenbedingungen bisher: t n y(x n ) ≥ 1<br />
Nebenbedingungen nun: t n y(x n ) ≥ 1 − ξ n<br />
y = −1<br />
y = 0<br />
ξ > 1 y = 1<br />
ξ < 1<br />
ξ = 0<br />
6 Bild aus [Bishop, 2006].<br />
Lagrange-Funktion<br />
Minimum gesucht für<br />
ξ = 0<br />
L(w, b, ξ, a, mu) = 1 2 ‖w‖2 −<br />
N∑<br />
a n [t n y(x n ) − 1 + ξ n ] −<br />
n=1<br />
N∑<br />
µ n ξ n<br />
n=1<br />
mit Lagrange-Parametern a n ≥ 0 und µ n ≥ 0 und zugehörigen<br />
Karush-Kuhn-Tucker Bedingungen:<br />
a n ≥ 0<br />
t n y(x n ) − 1 + ξ n ≥ 0<br />
a n (t n y(x n ) − 1 + ξ n ) = 0<br />
µ n ≥ 0<br />
ξ n ≥ 0<br />
µ n ξ n = 0
Duale Repräsentation<br />
ähnlicher Rechenweg wie oben liefert<br />
˜L(a) =<br />
N∑<br />
a n − 1 2<br />
n=1<br />
N∑ N∑<br />
a n a m t n t m k(x n , x m )<br />
n=1 m=1<br />
unter den Randbedingungen<br />
N∑<br />
0 ≤ a n ≤ C und a n t n = 0 n = 1, . . . , N.<br />
n=1<br />
Klassifikation wieder mit<br />
( )<br />
∑<br />
y(x) = a n t n k(x n , x) + b.<br />
n∈S<br />
Nur die Supportvektoren sind beteiligt!<br />
Beispiel 7 −2 0 2<br />
2<br />
0<br />
−2<br />
Daten mit Klassentrennlinie und Support-Vektoren<br />
7 Bild aus [Bishop, 2006].
Kernel-Funktionen<br />
Wir hatten definiert: k(x, x ′ ) = φ T (x)φ(x ′ )<br />
Das Skalarprodukt einer Featurefunktion φ(x) definiert einen<br />
Kernel!<br />
Umkehrung???<br />
Zur Erinnerung:<br />
Ein Vektorraum über einem Körper (K, +, ·) ist eine additive<br />
kommutative Gruppe (V , +) mit einer skalaren Multiplikation.<br />
Ein Banachraum ist ein vollständiger normierter Vektorraum.<br />
R n mit der euklidischen Norm ist ein Banachraum.<br />
R R mit welcher Norm ist ein Banachraum?<br />
Ein Banachraum mit Skalarprodukt heißt Hilbertraum.<br />
Vektoren und Funktionen<br />
v T = (1.1, 4.1, 3.8, 1.5, 1.1, 1.2, 1.4, 2.2, 3.1, 3.2, 3.0, 2.3, 1.2)<br />
1 2 3 4 5 6 7 8 9 10 11 12 13<br />
Vektor v ∈ R 13 und Funktion f : [1, 13] → R, bzw. f ∈ R [1,13] .
Vektoren und Funktionen<br />
Vektoren<br />
Funktionen<br />
‖x‖ = √ ∑i x 2<br />
i<br />
‖f (x)‖ L2 =<br />
√ ∫ ∞<br />
−∞ f 2 (x)dx<br />
x T y = 〈x, y〉 = ∑ i x iy i<br />
〈f , g〉 = ∫ ∞<br />
−∞ f (x)g(x)dx<br />
L 2 = Raum der Funktionen mit der L 2 -Norm und Skalarprodukt ist ein<br />
Hilbertraum.<br />
Die Kernelmatrix (Gram-Matrix)<br />
Sei (x 1 , . . . , x m ) gegeben:<br />
K ij = k(x i , x j )<br />
Für beliebigen Vektor z gilt<br />
z T Kz = ∑ ∑<br />
z i K ij z j = ∑ ∑<br />
z i φ T (x i )φ(x j )z j<br />
i j<br />
i j<br />
= ∑ ∑ ∑<br />
z i φ k (x i )φ k (x j )z j = ∑ ∑ ∑<br />
z i φ k (x i )φ k (x j )z j<br />
i j k<br />
k i j<br />
= ∑ ∑<br />
(z i φ k (x i )) 2 ≥ 0.<br />
k i<br />
K ist positiv semidefinit.
Kernelfunktion versus Skalarprodukt<br />
Theorem (Mercer’s Theorem)<br />
Sei k : R M × R M → R gegeben. Dann sind die beiden folgenden<br />
Eigenschaften äquivalent:<br />
1 Für jede endliche Datenmenge (x 1 , . . . , x m ) ist die dadurch<br />
definierte Kernelmatrix K symmetrisch und positiv definit.<br />
2 Es gibt eine Feature-Funktion φ mit deren Hilfe sich die<br />
Kernelfunktion k an zwei Punkten x und x ′ als Skalarprodukt<br />
schreiben läßt:<br />
k(x, x ′ ) = φ T (x)φ(x ′ )<br />
Die Richtung “2 ⇒ 1” wurde soeben gezeigt.<br />
Feature-Funktion φ kann in einen unendlich dimensionalen Raum<br />
abbilden.<br />
Polynomielle Kernels<br />
k(x, z) = (x T z) 2 ist ein gültiger<br />
Kernel, denn<br />
(x T z) 2 =<br />
= ∑ i<br />
( ∑<br />
i<br />
= ∑ i,j<br />
x i z i<br />
) 2<br />
∑<br />
x i z i x j z j<br />
j<br />
x i x j z i z j<br />
= φ T (x)φ(z)<br />
mit φ(x) =<br />
⎛<br />
⎜<br />
⎝<br />
⎞<br />
x 1 x 1<br />
.<br />
x 1 x n<br />
x 2 x 1<br />
.<br />
x 2 x n<br />
.<br />
x n x 1<br />
⎟<br />
. ⎠<br />
x n x n<br />
k(x, z) = (x T z) M ist ein gültiger Kernel für M ∈ N.
Der Gauß’sche Kernel<br />
also<br />
k(x, z) = exp<br />
) (− ‖x−z‖2<br />
2σ 2<br />
ist ein gültiger Kernel.<br />
‖x − z‖ 2 = x T x − 2x T z + z T z<br />
k(x, z) = exp(−x T x/2σ 2 ) · exp(x T z/σ 2 ) · exp(−z T z/2σ 2 )<br />
mit<br />
exp(x T z) =<br />
∞∑<br />
n=0<br />
(x T z) n<br />
n!<br />
∑ ∞<br />
= 8 φ T n(x)φ n (z) = ψ T (x)ψ(z)<br />
n=0<br />
ψ T (x) = (φ T 0(x), φ T 1(x), . . .)<br />
also ist exp(x T z) ein Kernel.<br />
Da für beliebiges f auch f (x)k(x, z)f (z) ein Kernel ist, ist also k(x, z)<br />
ein Kernel.<br />
8 Jede Potenz eines Kernels ist ein Kernel.<br />
Übungen<br />
Formulieren Sie die Pseudoinversenmethode <strong>zur</strong> Lösung<br />
überbestimmter Gleichungssysteme mit Hilfe eines Kernels.<br />
Zeigen Sie, dass k(x, z) = (x T , z + c) 2 ist ein gültiger Kernel ist<br />
und bestimmen Sie die zugehörige Feature-Funktion φ.<br />
Zeigen Sie, dass die Summe von zwei Kernels ein Kernel ist.<br />
Zeigen Sie, dass das Produkt von zwei Kernels ein Kernel ist.<br />
Zeigen Sie, dass f (x)k(x, z)f (z) ein Kernel ist, wenn k(x, z) ein<br />
Kernel ist.
Intelligente Objekterkennung<br />
Übersicht<br />
Sensorik<br />
Daten und Features<br />
Objektmodelle<br />
Objekttraining<br />
Objektklassifikation<br />
Semantisches Wissen<br />
Intelligente Objekterkennung: Einführung<br />
Einführung<br />
Warum ist Objekterkennung wichtig?<br />
Was sind Objekte?<br />
Wie kann man ein Objekt beschreiben
Sensorik: Übersicht<br />
1D Sensoren<br />
Klassische Lasersysteme<br />
2D Sensoren<br />
RGB/IR Kameras<br />
3D Sensoren<br />
Bewegliche Lasersysteme<br />
Stereokameras<br />
Time of Fligt Sensoren<br />
Musterbasierte 3D Sensoren<br />
Sensorik: 1D/3D Laser
Sensorik: 1D/3D Laser<br />
Vorteile:<br />
Schnell<br />
Präzise<br />
Relativ Robust<br />
Nachteile:<br />
3D Szenenerfassung ist nur mit beweglichen Teilen möglich<br />
Probleme mit durchsichtigen Materialien<br />
Sensorik: 2D Kamera(RGB/IR)
Sensorik: 2D Kamera(RGB/IR)<br />
Vorteile:<br />
Hohe Auflösung<br />
Farbinformationen<br />
Nachteile:<br />
Keine Tiefeninformationen<br />
Sensorik: 3D Stereokamera
Sensorik: 3D Stereokamera<br />
C1/C2 = Kamera1/2, b=Kameraabstand, f=Brennweite<br />
IP=Bildprojektionsfläche, D=Gesuchte Distanz, P1,P2,P = Bildpunkt<br />
Sensorik: 3D Stereokamera<br />
Vorteile:<br />
Unempflindlich gegen starke Lichtquellen<br />
Kann mit transparenten Materialien umgehen<br />
Nachteile:<br />
Benötigt ausreichende Beleuchtung<br />
Benötigt Texturfeatures<br />
Langsam bei hoher Auflösung
Sensorik: 3D Time of Flight<br />
Sensorik: 3D Time of Flight
Sensorik: 3D Time of Flight<br />
Vorteile:<br />
Hohe Geschwindigket<br />
3D Punktwolke ohne bewegliche Teile<br />
Nachteile:<br />
Sehr teuer<br />
Empflindlich gegen Lichtquellen<br />
Sensorik: 3D Kamerasystem (bekanntes Muster)
Sensorik: 3D Kamerasystem (bekanntes Muster)<br />
Sensorik: 3D Kamerasystem (bekanntes Muster)
Sensorik: 3D Kamerasystem (bekanntes Muster)<br />
Sensorik: 3D Time of Flight<br />
Vorteile:<br />
Hohe Geschwindigket<br />
3D Punktwolke ohne bewegliche Teile<br />
Nachteile:<br />
Sehr empflindlich gegen Lichtquellen<br />
Funktioniert nur auf glatten Oberflächen zuvelässig
Sensorik: 3D Kamerasystem (Stereo/Muster)<br />
Daten und Features<br />
Rohdaten<br />
Pixel-basierte Bilder<br />
Punktwolken<br />
Features<br />
Farbe<br />
Textur<br />
Form
Features: Farbhistogramme<br />
Features: Farbhistogramme
Features: Texturfeatures<br />
Beispiel: FAST<br />
Features: 3D Punktwolken<br />
Beispiel: PFH (Point Feature Histogram)
Objektmodelle<br />
Objekttraining
Automatisiertes Objekttraining<br />
Drehtisch<br />
Kamerahalterung<br />
Objektklassifikation
Objektklassifikation<br />
Positive und negative Beispiele<br />
Drehtisch<br />
Kamerahalterung
Positive und negative Beispiele<br />
Drehtisch<br />
Kamerahalterung<br />
Semantisches Wissen
Literaturliste I<br />
Abdo, N., Kretzschmar, H., Spinello, L., and Stachniss, C. (2013).<br />
Learning manipulation actions from a few demonstrations.<br />
In ICRA 2013, Karlsruhe.<br />
Bishop, C. (2006).<br />
Pattern recognition and machine learning.<br />
Springer New York.<br />
Buss, S. R. (2009).<br />
Introduction to inverse kinematics with jacobian transpose, pseudoinverse and damped least squares methods.<br />
Article not officially published, but online available.<br />
Ertel, W. (2007).<br />
Grundkurs Künstliche Intelligenz.<br />
Vieweg-Verlag.<br />
www.hs-weingarten.de/~ertel/kibuch.<br />
Ertel, W. (2012).<br />
Theoretische informatik, vorlesungsfolien.<br />
Hastie, T., Tibshirani, R., and Friedman, J. (2009).<br />
The Elements of Statistical Learning: Data Mining, Inference, and Prediction.<br />
Springer, Berlin, 3rd. edition.<br />
Online version: http://www-stat.stanford.edu/~tibs/ElemStatLearn/.<br />
Müller, M. (2007).<br />
Information Retrieval for Music and Motion.<br />
Springer-Verlag Berlin Heidelberg.<br />
Literaturliste II<br />
Posenauer, H. (2012).<br />
Robot learning from demonstration by averaging trajectories.<br />
Bachelorarbeit, <strong>Hochschule</strong> <strong>Ravensburg</strong>-<strong>Weingarten</strong>.<br />
Russell, S. and Norvig, P. (2003).<br />
Artificial Intelligence: A Modern Approach.<br />
Prentice Hall, 2 edition.<br />
1. Auflage 1995, deutsche Übersetzung der 2. Auflage 2004 bei Pearson Studium, http://aima.cs.berkeley.edu.<br />
Schneider, M. (2009).<br />
Learning from Demonstration with Gaussian Processes.<br />
Master’s thesis, <strong>Hochschule</strong> <strong>Ravensburg</strong>-<strong>Weingarten</strong>.<br />
Schneider, M. and Ertel, W. (2010).<br />
Robot Learning by Demonstration with Local Gaussian Process Regression.<br />
In IROS’10.<br />
Schölkopf, S. and Smola, A. (2002).<br />
Learning with Kernels: Support Vector Machines, Regularization, Optimization, and Beyond.<br />
MIT Press.<br />
Siciliano, B. and Khatib, O., editors (2008).<br />
Springer Handbook of Robotics.<br />
Springer, Berlin, Heidelberg.<br />
Sutton, R. and Barto, A. (1998).<br />
Reinforcement Learning.<br />
MIT Press.<br />
www.cs.ualberta.ca/~sutton/book/the-book.html.