13.01.2014 Aufrufe

Folien zur Vorlesung - Hochschule Ravensburg-Weingarten

Folien zur Vorlesung - Hochschule Ravensburg-Weingarten

Folien zur Vorlesung - Hochschule Ravensburg-Weingarten

MEHR ANZEIGEN
WENIGER ANZEIGEN

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.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!