04.03.2013 Aufrufe

Künstliche Intelligenz fur ortsbasierte Dienste - Lehrstuhl für Mobile ...

Künstliche Intelligenz fur ortsbasierte Dienste - Lehrstuhl für Mobile ...

Künstliche Intelligenz fur ortsbasierte Dienste - Lehrstuhl für Mobile ...

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.

<strong>Künstliche</strong> <strong>Intelligenz</strong> <strong>für</strong> <strong>ortsbasierte</strong> <strong>Dienste</strong><br />

Raphael Teßmer<br />

Seminar: Trends in mobilen und verteilten Systemen<br />

Sommersemester 2011<br />

<strong>Lehrstuhl</strong> <strong>für</strong> <strong>Mobile</strong> und Verteilte Systeme<br />

Institut <strong>für</strong> Informatik<br />

Ludwig-Maximilians-Universität München<br />

Abstract: In dieser Arbeit soll sich damit befasst werden welchen Nutzen <strong>Künstliche</strong><br />

<strong>Intelligenz</strong> <strong>für</strong> <strong>ortsbasierte</strong> <strong>Dienste</strong> hat. Hierbei soll zuerst eine Einführung in das Thema<br />

<strong>Künstliche</strong> <strong>Intelligenz</strong> gegeben werden. Es wird das Konzept von intelligenten<br />

Agenten beschrieben. Die Lernmethoden unsupervised Learning, supervised Learning<br />

und semi-supervised Learning werden kurz beschrieben. Des Weiteren wird sich mit<br />

Methoden und Arbeitstechniken beschäftigt die im Bereich der <strong>ortsbasierte</strong>n <strong>Dienste</strong><br />

relevant sind. Hierbei wird auf k-Nearest Neighbor Search, Hidden Markov Modelle<br />

und Joint Boosting eingegangen. Zum Schluss sollen konkrete Forschungsarbeiten<br />

beschrieben werden, die sich im Bereich der <strong>ortsbasierte</strong>n <strong>Dienste</strong> bewegen und sich<br />

Lernmechanismen der <strong>Künstliche</strong>n <strong>Intelligenz</strong> zu Nutze machen. Dabei werden zwei<br />

Arbeiten behandelt die unterschiedliche Ansätze verfolgen um menschliche Routinen<br />

zu erkennen. Zum Schluss wird noch auf das Simultaneous Localization and Mapping<br />

Problem eingegangen, bei dem sich ein Roboter auf einer Karte lokalisieren soll, die<br />

er selbst in einer ihm unbekannten Umgebung erstellt.<br />

1 Einführung<br />

1.1 Was ist Wissen?<br />

Ein wichtiger Teil dieser Arbeit soll der <strong>Künstliche</strong>n <strong>Intelligenz</strong> selbst gewidmet werden.<br />

Dabei stellt sich als erstes die Frage, was Wissen überhaupt bedeutet.<br />

Neben der Philosophie haben sich viele andere Wissenschaften wie die Mathematik, die<br />

Psychologie, die Neurologie oder gar die Wirtschaftswissenschaften damit beschäftigt<br />

Wissen zu definieren.<br />

Eine allgemeingültige Definition von Wissen ist daraus nicht hervorgegangen und mag<br />

vielleicht unmöglich zu fassen sein. Wichtige Fragen der Philosophie sind beispielsweise:<br />

• Können mit formalen Regeln richtige Schlüsse gezogen werden?<br />

• Wie kann der Verstand aus dem Gehirn entspringen?<br />

• Woher kommt Wissen?


• Wie führt Wissen zur Tat?<br />

In der <strong>Künstliche</strong>n <strong>Intelligenz</strong> gibt es verschiedene Ansätze mit diesem Begriff umzugehen.<br />

Es wird dabei nicht versucht Wissen nachzuempfinden, sondern vielmehr intelligentes<br />

Verhalten zu modellieren.<br />

Russell und Norvig (2010) beschreiben vier Ansätze von <strong>Künstliche</strong>r <strong>Intelligenz</strong> [RN10]:<br />

• Menschlich handeln.<br />

• Menschlich denken.<br />

• Rational denken.<br />

• Rational handeln.<br />

Der Ansatz des rationalen Handelns bildet dabei <strong>Künstliche</strong> <strong>Intelligenz</strong> auf Modelle ab.<br />

Diese sollen Maschinen darstellen, die intelligent handeln. Die Modelle werden dabei als<br />

Agenten bezeichnet. Hierbei geht es nicht darum nur zu denken, also zu philosophieren.<br />

Vielmehr geht es darum autonom zu agieren, die Umgebung wahrzunehmen, sich neuen<br />

Situationen anzupassen und sich auch in ungewissen Situationen bestmöglich zu verhalten<br />

[RN10].<br />

Diese Form der <strong>Künstliche</strong>n <strong>Intelligenz</strong> soll in dieser Arbeit behandelt werden.<br />

2 <strong>Künstliche</strong> <strong>Intelligenz</strong><br />

2.1 Intelligente Agenten<br />

Agent<br />

Sensoren<br />

?<br />

Aktuatoren<br />

Wahrnehmung<br />

Aktionen<br />

Abbildung 1: Aufbau eines simplen Agenten. Zwischen Sensoren und Aktuatoren befindet sich das<br />

Agentenprogramm, welches die Agentenfunktion ausführt. Quelle: [RN10]<br />

Um <strong>Künstliche</strong> <strong>Intelligenz</strong> zu beschreiben, kommt das Modell der intelligenten Agenten<br />

zum tragen. Diese Agenten erkennen ihre Umgebung durch Sensoren und interagieren mit<br />

Umgebung


Wahrnehmungsfolge Aktion<br />

(A, Sauber) Gehe zu B<br />

(A, Dreckig) Sauge<br />

(B, Sauber) Gehe zu A<br />

(B, Dreckig) Sauge<br />

(A, Sauber), (B, Sauber) Tue nichts<br />

(A, Sauber), (A, Dreckig) Sauge<br />

...<br />

Abbildung 2: Eine mögliche Agentenfunktion <strong>für</strong> die Staubsaugerwelt.<br />

ihr über Aktuatoren. Alles was der Agent über seine Sensoren aufnimmt, wird als Wahrnehmung<br />

bezeichnet. Die Wahrnehmung des Agenten wird mit der Agentenfunktion in<br />

Relation zu seiner Aktion gesetzt. Die Funktion beschreibt also was der Agent mit gegebenem<br />

Input machen soll. Ferner ist die Wahrnehmungsfolge eine Folge von Signalen die<br />

ein Agent über die Zeit wahrnimmt. Beispielsweise die Position und Blickrichtung des<br />

Agenten oder die Folge von Positionen des Agenten nachdem er sich fortbewegt hat.<br />

Ein Beispiel ist die Staubsaugerwelt. Die Staubsaugerwelt ist eine idealisierte Umgebung<br />

mit einem intelligenten Agenten, dem Staubsauger. Diese Umgebung hat zwei benachbarte<br />

Bereiche: A und B. Der Staubsaug-Agent nimmt lediglich zwei Dinge wahr: in welchem<br />

Bereich er ist und ob dieser Bereich dreckig ist. Die einzigen Aktionen, die er ausführen<br />

kann sind: nach links in den Bereich A gehen, nach rechts in B gehen, den Dreck weg<br />

saugen oder nichts tun.<br />

Mit diesen Vorraussetzungen ist der Agent soweit komplett. Um aber die Aufgabe zu<br />

erfüllen die Staubsaugerwelt sauber zu halten, bedarf es einer Agentenfunktion [RN10].<br />

Zwar ist das Saugen die Aufgabe des Agenten, die Agentenfunktion aber, ist der Teil der<br />

die <strong>Künstliche</strong> <strong>Intelligenz</strong> im Agenten ausmacht. Die Funktion entscheidet <strong>für</strong> die Wahrnehmungsfolge,<br />

welche Aktion der Agent ausführen soll. Abbildung 2 zeigt eine angedeutete<br />

Beispielfunktion <strong>für</strong> die Staubsaugerwelt.<br />

Um die Qualität von intelligenten Agenten zu ermitteln, bewertet man ihre Rationalität.<br />

Ein Agent ist rational, wenn er das ” Richtige“ tut. Um zu wissen was das Richtige ist,<br />

betrachtet man die Umgebung des Agenten. Der Agent verrichtet eine Folge von Aktionen<br />

in Abhängigkeit von seiner Wahrnehmung und Agentenfunktion. Ist der Zustand der Umgebung<br />

erwünscht, hat der Agent gut gearbeitet. Um die ” Erwünschtheit“ zu beschreiben,<br />

wird jede Folge von Umgebungszuständen einer Leistungsbewertung unterzogen.<br />

Die Leistungsbewertung kann nicht allgemein <strong>für</strong> eine Aufgabe, sondern muss vielmehr je<br />

nach Umgebung individuell erfolgen. Der Staubsauger kann zum Beispiel danach bewertet<br />

werden wie oft er eine Fläche an einem Tag geputzt hat. Doch vielleicht ist es <strong>für</strong> einen<br />

Familienhaushalt sinnvoller, wenn der Staubsauger nur einmal am Tag saugt, um Nerven<br />

zu schonen und Strom zu sparen. Auch kann der Grad ab dem der Staubsauger eine Fläche<br />

als dreckig ansieht variieren. Soll der Staubsauger lieber kürzer und da<strong>für</strong> ungenauer arbeiten,<br />

oder länger und gründlicher?<br />

Die Leistungsbewertung muss also nicht nur <strong>für</strong> die Umgebung, sondern auch <strong>für</strong> den<br />

Zweck individuell gestaltet werden [RN10].


2.2 Rationale Agenten<br />

Russell und Norvig (2010) definieren einen rationalen Agenten wie folgt [RN10]:<br />

For each possible percept sequence, a rational agent should select an action<br />

that is expected to maximize its performance measure, given the evidence<br />

provided by the percept sequence and whatever built-in knowledge the agent<br />

has.<br />

Auch wenn ein rationaler Agent nie wissen kann was passieren wird, sollte er jedoch aufgrund<br />

seiner Wahrnehmung genau das tun, was wahrscheinlich zu einem richtigen Ergebnis<br />

führt. Angenommen ein Agent soll eine Straße überqueren. Man würde hierbei von<br />

einem Rationalen Agenten verlangen, dass er sich vorher umschaut. Das heißt, es ist zwar<br />

rational die Straße zu überqueren wenn kein Auto in Sicht ist, aber wenn sich der Agent<br />

gar nicht erst umschaut, ist es ihm überhaupt nicht möglich rational zu handeln. Man sollte<br />

also sichergehen, dass der Agent nicht nur richtig schlussfolgert - kommt ein Auto,<br />

überquere ich nicht - sondern, dass er auch die da<strong>für</strong> entscheidenden Dinge wahrnimmt.<br />

Um mit seiner Umgebung interagieren zu können braucht ein Agent eine Vorstellung von<br />

seiner Welt. Es ist möglich dem Agenten strikt seine Welt vorzugeben, was jedoch Probleme<br />

mit sich bringen kann. Wenn sich seine Umgebung verändert, oder gar wenn er selbst<br />

seine Umgebung verändert, kann er die fest definierte Vorstellung seiner Welt dahingehend<br />

nicht anpassen. Dies führt dazu dass seine Leistung beeinträchtigt werden kann.<br />

Wenn ein solcher Roboter beispielsweise ein Ei auf einem Löffel balancieren soll, das Ei<br />

aber auf halben Wege verliert, wird er dies nicht merken und seinen Weg unbeirrt weiter<br />

gehen als sei nichts passiert.<br />

Der Agent kann aber auch ein gewisses Vorwissen von seiner Welt haben, das sich durch<br />

seine Wahrnehmung verändern und erweitern kann. Er lernt wie sich seine Umgebung<br />

verändert [RN10].<br />

2.3 Lernen<br />

Lernen ist eine der wichtigsten Eigenschaften von intelligenten Agenten. Ein Agent lernt,<br />

indem er durch Beobachten seiner Umgebung seine Leistung steigert.<br />

Dies wird notwendig wenn sich ein Agent neuen Situationen und Umgebungen anpassen<br />

soll. Zum Beispiel wenn ein Roboter der eine Rennstrecke abfährt, später auch dazu in der<br />

Lage sein soll neue ihm unbekannte Strecken zu bestehen. Oder wenn ein Agent Zustände<br />

analysieren soll die sich über die Zeit verändern, wie Börsenkurse oder das Verhalten des<br />

Wetters.<br />

Es kann aber auch sein, dass es <strong>für</strong> einen Menschen unmöglich ist, dem Agenten die<br />

gewünschte Funktion selber vorzugeben. Beispielsweise können Menschen selbst zwar<br />

bekannte Gesichter erkennen, aber es gibt keine Möglichkeit dies einem Agenten beizubringen<br />

ohne Lern-Algorithmen zu verwenden [RN10].<br />

Russell und Norvig (2010) teilen Lernmethoden nach den zugrunde liegenden Daten ein<br />

[RN10]. Hierbei ist es wichtig gelabelte Daten und nicht gelabelte Daten voneinander zu


unterscheiden. Ein Label ist als Anweisung eines Lehrers zu verstehen. Es soll <strong>für</strong> den<br />

gelabelten Datenpunkt die erwünschte Ausgabe des Algorithmus angeben. Einem Datenpunkt<br />

oder einem Datenset kann das erwünsche Ergebnis (Label) z.B. in einer Messung<br />

mitgegeben werden [ZG09].<br />

Beim Unsupervised Learning bekommt der Agent eine nicht gelabelte Datenmenge, aus<br />

der er Muster erkennen soll. Er hat aber keine weiteren Informationen über die Datensätze.<br />

Ein Beispiel <strong>für</strong> diese Lernmethode ist Clustering. Beim Clustering sollen Daten aufgrund<br />

ähnlicher Eigenschaften gruppiert werden. Ein Beispiel ist der k-means-Algorithmus. Dieser<br />

funktioniert wie folgt:<br />

Abbildung 3: Prinzip Clustering mit Schwerpunkten <strong>für</strong> k = 3.<br />

Aus n Punkten sollen k Gruppen (Cluster) gebildet werden die ähnliche Objekte enthalten.<br />

Für sie sollen Schwerpunkte definiert werden. Die Schwerpunkte sollen so gewählt<br />

sein, dass sie in der Mitte des Clusters liegen (siehe Abbildung 3). Jeder Punkt der hinzu<br />

kommt, wird dem Cluster zugeordnet, dessen Schwerpunkt ihm am nächsten ist. Die<br />

Schwerpunkte werden aufgrund der neuen Punkte neu berechnet und am Ende werden die<br />

Punkte erneut den Clustern zugewiesen. Dies wird schleifenweise solange wiederholt bis<br />

sich die Schwerpunkte stabilisiert haben [Mac67].<br />

Beim Supervised Learning braucht der Agent genug gelabelte Daten mit denen er übt,<br />

um richtige Schlüsse über alle folgenden Daten schließen zu können. Dabei soll der Agent<br />

mit Input-Output Paaren trainiert werden. Er soll dabei eine Funktion lernen die den Input<br />

auf den Output abbildet:


Für eine Trainingseinheit (x1, y1), (x2, y2), . . ., (xN, yN)<br />

wobei jedes yi von einer unbekannten Funktion y = f(x) erzeugt wurde,<br />

finde eine Funktion h die die echte Funktion f annähert.<br />

Die Funktion h ist eine Hypothese.<br />

Nach Russell und Norvig (2010): “Learning is a search through the space of possible<br />

hypotheses for one that will perform well, even on new examples beyond the training set”<br />

[RN10]<br />

Beim Semi-Supervised Learning gibt es sehr wenige gelabelte Datensätze von denen auf<br />

eine sehr große Menge von Daten geschlossen werden soll. Dies ist nützlich, da es sehr<br />

aufwendig und unter Umständen teuer sein kann an gelabelte Daten zu kommen.<br />

Zhu und Goldberg (2009) definieren neben dem Label die Instanz [ZG09]. Eine Instanz x<br />

bezeichnet ein Objekt, welches von einer Menge Eigenschaften beschrieben wird. Dabei<br />

sollen die Eigenschaften nur die Merkmale beinhalten, die <strong>für</strong> die Aufgabe sinnvoll sind,<br />

und nicht alle die beim Objekt beobachtet werden können.<br />

Zum Beispiel:<br />

Seien die Eigenschaften Gewicht und Körpergröße Eigenschaften der Menschen. Eine<br />

Mögliche Aufgabe wäre es nun, von diesen Daten darauf zu schließen ob es sich um Kinder<br />

oder Erwachsene handelt. Eine Instanz könnte also sein:<br />

x1 = (180cm, 70Kg)<br />

Sei diese Person erwachsen, würde ein gelabeltes Datenset nun so aussehen:<br />

Die Klasse des Alters beschreibe {erwachsen, kind}.<br />

Es gelte: erwachsen = −1 und kind = 1.<br />

z1 = (x1, −1)<br />

Ein weiteres Beispiel sind Spamfilter. Die Instanz hier ist die Email und das Label ist die<br />

Beurteilung des Nutzers. Um den Nutzer nicht zu sehr aufzuhalten, soll dieser nur wenige<br />

Daten labeln müssen und das System daraus lernen, was Spam ist und was nicht [ZG09].<br />

3 Methoden<br />

3.1 Lokalisierungsproblem<br />

Beim Sammeln von ortsbezogegen Informationen ist die Nutzung von GPS weit verbreitet.<br />

Jedoch kann sich ein Agent ohne Satellitenverbindung, beispielsweise in Häusern oder<br />

Straßenschluchten, nicht mehr selbst lokalisieren und ist auf andere Methoden angewiesen.<br />

Die Arbeit von Kawauchi et al. (2009) befasst sich mit der Lokalisierung über die Signalstärke<br />

beziehungsweise den Signaleigenschaften [KKR09]. Hierbei wird versucht die<br />

Entfernung zum W-Lan Access Point festzustellen, dessen Position bekannt sein soll.<br />

Während der Received Signal Strength Indicator (RSSI) nur die Signalstärke beschreibt<br />

die mit dem Signal übermittelt wird, gibt es folgende Verfahren zur Indoor-Positionierung:


Bei Time-of-Arrival (TOA) wird die Ankunftszeit von Signalen in einem mobilen Gerät<br />

gemessen um die Entfernung zum Access Point zu bestimmen. Um dieses Verfahren zu<br />

verbessern basiert TOA auf dem Vergleich der Ankunftszeiten von mehr als drei Access<br />

Points. Diese Methode ist präziser als RSSI, jedoch müssen die Uhren der Access Points<br />

hier sehr präzise aufeinander abgestimmt sein.<br />

Die Angle-of-Arrival (AOA) Methode bezieht den Winkel, mit dem das Signal beim<br />

Gerät ankommt, in die Standortbestimmung mit ein. Ein Gerät muss hierzu einen Sensor<br />

haben, der bei Ankunft eines Signals dessen Richtung feststellen kann. Es ist möglich<br />

die Position eines Gerätes zu bestimmen, wenn man die Signal-Ausrichtung von zwei<br />

Access Points misst. Diese Methode ist zwar robuster als die Analyse der Signalstärke,<br />

braucht aber spezielle Sensorik und ist damit nicht ohne weiteres von bereits existierenden<br />

Geräten nutzbar.<br />

Ähnlich wie AOA bezieht Angle-of-Emission (AOE) den Winkel des Signals mit ein. Jedoch<br />

geht es hier um den Winkel aus dem heraus das Signal gesendet wird. Der Vorteil gegenüber<br />

AOA ist, dass das Endgerät selbst keine Richtungsmessung vornehmen muss. Jedoch<br />

muss die sendende Basisstation hierbei auch über eine gerichtete Antenne verfügen.<br />

Kawauchi und Rekimoto (2009) stellen in ihrer Arbeit ein auf AOE basierendes System<br />

vor, mit dem sie gerichtete W-Lan Signale mit einer sich rotierenden Antenne senden. Die<br />

Antenne sendet mit jedem Signal ihren aktuellen Winkel mit. Somit braucht das Endgerät<br />

keine besonderen Messungen machen, und bekommt den Winkel mit dem eingetroffenen<br />

Signal übermittelt. Zudem fließt in ihr System, welches sie direct beaconing nennen auch<br />

die Signalstärke mittels RSSI ein, die das System zusätzlich stabilisieren soll [KKR09].<br />

In der Arbeit von Bolliger et al. (2009) wird versucht den Standort eines Gerätes mittels<br />

eines Fingerabdruckes der umliegenden W-Lan-Signale zu ermitteln [PBL09]. Ein Punkt<br />

im Raum hat zu seinen umliegenden Access Points ein eindeutiges Empfangsmuster. Dieses<br />

Muster spiegelt sich in den Access Points und deren Signalstärke zu dem Punkt wieder<br />

und wird als Fingerabdruck bezeichnet wie in Abbildung 4 zu sehen. Der Fingerabdruck<br />

ist also eine Kombination aus der Menge der Access Points und deren Empfangsstärken,<br />

die an diesem Punkt eindeutig sind. Ändert sich die Position des Gerätes, ändern sich auch<br />

die Entfernungen zu den Access Points und somit auch die zu messenden Signalstärken.<br />

Der Nachteil dieses Verfahrens ist, dass Fingerabdrücke erst <strong>für</strong> jeden Ort erzeugt werden<br />

müssen, damit diese Muster später wieder den Orten zugewiesen werden können.<br />

Da die Signalstärke von Objekten im Raum beeinflusst wird, muss bei jeder räumlichen<br />

Veränderung neu gemessen werden. Der zweite Schritt ist, den Daten Bedeutung zu geben.<br />

Hier soll ein Fingerabdruck mit der Position, an dem er gemessen wurde gelabelt werden.<br />

In ihrer Arbeit führen Bolliger et al. (2009) das adaPtive Indoor Localization System<br />

(PILS) ein [PBL09]. Es soll das Labeln eines Fingerabdrucks über Endnutzer ermöglichen.<br />

Angenommen ein Benutzer bewegt sich in einer Umgebung die vermessen werden soll.<br />

Anstatt bewusst an einen Punkt zu gehen und diesen zu messen, beschreiben die Forscher<br />

das asynchrone Intervall-Labeln. Dieses funktioniert wie folgt:<br />

Ein Nutzer, der sich in einem zu vermessenden Gebiet befindet, wird erst später die Bereiche<br />

labeln an denen er sich aufgehalten hat (asynchron). Das System misst dazu einen<br />

Fingerabdruck immer nur dann, wenn sich der Nutzer <strong>für</strong> einen gewissen Zeitraum an<br />

einem Punkt aufgehalten hat (Intervall). Somit ist die Fehlerquote beim Labeln geringer,<br />

da sich ein Nutzer nicht an einen genauen Zeitpunkt sondern an einen längeren Zeitraum


Abbildung 4: Drei Fingerabdrücke aus drei verschiedenen Räumen. Die Räume 2212 und 2214 liegen<br />

nebeneinander. Raum 2152 ist weiter entfernt. Die Farben der Signale stellen die verschiedenen<br />

Access Points dar. Quelle: [PBL09]<br />

erinnern soll. Zudem ist das System Nutzerfreundlicher, da die Nutzer nicht direkt ihren<br />

aktuellen Standort benennen sollen, sondern dies später erledigen können [PBL09].<br />

Nachdem die Daten von dem System aufgenommen wurden, kommt der Schritt der Verarbeitung<br />

dieser Daten. Hierbei finden Werkzeuge der Klassifizierung Verwendung, auf die<br />

im Folgenden eingegangen werden soll.<br />

3.2 k-Nearest Neighbor Search (kNN)<br />

Schon im Jahr 2000 beschrieben Bahl und Padmanabhan RADAR, ein System, um mobile<br />

Geräte in Gebäuden mittels W-Lan zu lokalisieren [BP00]. Sie verteilten dazu auf einem<br />

Stockwerk drei Basisstaionen mit bekanntem Ort. Die mobilen Geräte, die sich in dem Gebiet<br />

bewegten, sendeten dabei ständig Pakete an die Basisstationen. Dabei unterteilte sich<br />

das Experiment in zwei Teile: Im off-line-Teil sollten Fingerabdrücke auf dem Stockwerk<br />

erstellt werden, während im real-time-Teil die Position der Nutzer bestimmt werden sollte.<br />

Eine Basisstation maß bei jedem eingehenden Signal die Signalstärke und hielt den Zeitpunkt<br />

fest. Im off-line-Teil wurde zudem von den Nutzern verlangt ihre Position auf einer<br />

Karte des Areals zu markieren. Hiermit wurden die Fingerabdrücke der Funksignale mit<br />

Positionsinformationen verbunden.<br />

Im real-time-Testlauf vergleichen die Forscher die Signalstärken der Nutzer am aktuellen<br />

Punkt mit den gemessenen Fingerabdrücken. Ein Fingerabdruck, bei dem ähnliche<br />

Signalstärken gemessen wurden, ist vermutlich auch nahe an dem Punkt, an dem sich<br />

der Nutzer aktuell befindet (nearest neighbor). Um dieses Verfahren noch zu verbessern<br />

erweiterten sie die Methode und verwendeten den k-Nearest Neighbor Search (kNN) Algorithmus.<br />

Hierbei wird nicht nur ein Nachbar, sondern werden k Nachbarn gesucht. Somit<br />

wird es möglich, einen vermuteten Punkt zu finden der näher am tatsächlichen Punk ist,<br />

als es einer der Nachbarn wäre. Abbildung 5 verdeutlicht dies [BP00].


N 2<br />

W<br />

N 1<br />

V<br />

Abbildung 5: Der vermutete Punkt V ist durch das Einbeziehen von drei Nachbarn(N1, N2, N3)<br />

näher am tatsächlichen Punkt (W) als einer der Nachbarn <strong>für</strong> sich. Quelle: [BP00]<br />

3.3 Hidden Markov Model (HMM)<br />

Sonnig Regen<br />

Bevölkt<br />

Abbildung 6: Markov Model des Wetters. Quelle: [Rab89]<br />

Das Hidden Markov Model (HMM) ist ein Werkzeug der Statistik, welches bei Lernproblemen<br />

sehr häufig zum Einsatz kommt. Die erste große Anwendung fand das Modell bei<br />

der Spracherkennung, wo es darum ging, einen Audio-Datenfluss zu analysieren und dabei<br />

Sprache von Störgeräuschen zu unterscheiden. Ein System sollte also lernen was Sprache<br />

ist und was nicht.<br />

Das HMM basiert auf dem Markov Modell, welches ein Zustandsmodell beschreibt bei<br />

dem zu jedem Zeitpunkt eine gewisse Wahrscheinlichkeit besteht, dass ein Zustand in<br />

einen anderen übergeht. Ein Beispiel hier ist das Wetter. Zu den Zuständen Regen, Wolken<br />

und Sonne würde das Model beschreiben wie die Wahrscheinlichkeiten sind, dass auf<br />

Regen Sonne folgt, auf Wolken Sonne, und so weiter, wie in Abbildung 6 zu sehen.<br />

N3<br />

N 4<br />

N 5


Das HMM geht etwas weiter. Damit soll es möglich sein, Aussagen über das Wetter zu<br />

treffen, ohne die tatsächlichen Zustände überhaupt beobachten zu können. Das heißt, die<br />

eigentlichen Zustände sind nicht sichtbar (hidden). Stattdessen hat man andere Zustände<br />

mit Wahrscheinlichkeitswerten von denen man auf die versteckten Zustände schließen soll.<br />

Im Wetterbeispiel würde man z.B. die Zustände beobachten: sehr trocken, trocken, feucht<br />

und nass. Das Hidden Markov Model darauf angewendet würde nun die<br />

Übergangswahrscheinlichkeiten der Wetter-Zustände darstellen wie in Abbildung 7 [Rab89].<br />

sehr<br />

trocken<br />

trocken feucht nass sichtbar<br />

Sonnig Regen<br />

Bevölkt<br />

Abbildung 7: Hidden Markov Modell welches das Wetter beschreiben soll. Quelle: [Rab89]<br />

verborgen<br />

In ihrer Arbeit nutzen Blanke und Schiele (2009) beispielsweise Hidden Markov Modelle<br />

um Tagesroutinen zu erkennen [BS09]. Sie beobachten dabei aber nur simpelste Aktionen<br />

wie sitzen, essen, laufen, Hände waschen, etc. In diesem Falle sind also die eigentlich<br />

festzustellenden Zustände nicht sichtbar, weil sie selbst gar nicht beobachtet werden. Um<br />

die Erfassung komplexer Aktivitäten zu erkennen, werden hier schichtweise Daten von<br />

HMM zu HMM übergeben (Von Oliver et al. (2002) auch Layered HMM (LHMM) genannt<br />

[NO02]).<br />

Somit war es zum Beispiel möglich, die Aktivität Präsentation halten über Aktionen wie<br />

Sprechen, Schreiben, nichts tun, etc. zu erkennen. Da die HMM normalerweise nur seperate<br />

Ereignisse erkennen können aber nicht die Aktionen selbst einem ganzen Vorgang<br />

zuordnen können, wurden Hirachien der HMM gebildet. Somit war es möglich Vorgänge<br />

zu erkennen, wie sich im Supermarkt oder in der Videothek aufhalten.


3.4 Boosting<br />

Boosting basiert auf der Idee, dass ein schwacher Algorithmus der nur geringfügig besser<br />

ist als der Zufall, zu einem akkuraten und starken Lernalgorithmus verstärkt werden kann<br />

[FS99].<br />

Dabei werden zuerst viele schwache Hypothesen gebildet die eine Sache beschreiben sollen.<br />

Diese werden dann alle gewichtet in eine eigene Hypothese geformt.<br />

Das Grundprinzip ist, eine Menge von Daten zu klassifizieren indem man schwache Regeln<br />

definiert. Diese Regeln alleine beschreiben die Klasse von Objekten, die man erfassen<br />

will noch nicht. Will man beispielsweise die Klasse der Äpfel unter allen Früchten<br />

beschreiben, würde man folgende Regeln treffen:<br />

• Ein Apfel ist rund.<br />

• Ein Apfel ist rot.<br />

Nun schränkt dies die Früchte noch nicht hinreichend ein. Schließlich würden zu dieser<br />

Klassifizierung auch Tomaten oder Kirschen zählen. Auch sind nicht alle Äpfel rot, sie<br />

können auch grün oder gelb sein. Eine genauere und gewichtete Klassifizierung würde so<br />

aussehen:<br />

• Ein Apfel ist rund.<br />

• Ein Apfel ist meistens rot.<br />

• Ein Apfel ist manchmal grün.<br />

• Ein Apfel ist selten gelb.<br />

• Ein Apfel kann einen Stil haben.<br />

Um einen Apfel von einer Tomate abzugrenzen kann man sagen, dass manche Äpfel (noch)<br />

einen Stil haben. Jedoch ist ein Apfel der keinen Stil hat immer noch ein Apfel und keine<br />

Tomate. Diese Regeln beschreiben also <strong>für</strong> sich nicht die Klasse der Äpfel. Doch mithilfe<br />

des Boostings sollen diese <strong>für</strong> sich unzureichenden Annahmen zu einer Hypothese<br />

verbunden werden, die in der Lage ist, die Klasse der Äpfel zu erkennen.


Der AdaBoost Algorithmus von Freund und Schapire (1999) beschreibt Boosting wie<br />

folgt [FS99]:<br />

Der Input sind die Trainingseinheiten der Form (x1, y1), . . ., (xm, ym)<br />

Für t = 1, 2, ..., T gilt:<br />

• Lerne eine schwache Regel ht von den Trainingsdaten.<br />

• Bestimme die Gewichtung wt dieser Regel.<br />

• Hebe die Trainingsdaten hervor die nicht mit ht übereinstimmen (also vermutlich<br />

falsch sind).<br />

Der Algorithmus ruft einen schwachen Lernalgorithmus in t Durchläufen mehrmals auf.<br />

Die Gewichtungen der Trainingseinheiten sind anfangs alle gleich, wobei nach jeder Runde<br />

die falsch klassifizierten Einheiten heruntergestuft werden, so dass sich eine stärkere<br />

Hypothese bildet.<br />

Daraus ergibt sich die Funktion:<br />

H(x) =<br />

T<br />

wtht (x) mit einem normalisierten w. [FS99] (1)<br />

t=1<br />

Ein großer Nachteil des Algorithmus ist der, dass die Klassen alle <strong>für</strong> sich aufgespaltet und<br />

isoliert werden. Jede Klasse hat ihre eigene Menge an Regeln und kann nicht gemeinsame<br />

Regeln mit anderen Klassen teilen.<br />

Zum Beispiel haben wir bei der Klassifizierung von Äpfeln kein Wissen darüber, dass<br />

Äpfel ähnlich aussehen wie Tomaten (also ähnliche Regeln treffen).<br />

Eine Verbesserung, die diese Probleme adressieren soll, ist das Joint Boosting [AZS09].<br />

Hierbei ist es möglich <strong>für</strong> eine Klasse gewisse Attribute (Regeln) aus einem großen Pool<br />

von Attributen auszuwählen die von vielen verschiedenen Klassen verwendet werden können.<br />

Dies ist nicht nur effizienter, da Regeln wiederverwendet werden können, sondern es ist<br />

auch möglich Beziehungen und Abhängigkeiten von Klassen festzustellen [AZS09].<br />

4 Anwendungen<br />

4.1 Aktionserkennung über Low-Level Aktionen<br />

Im folgenden sollen einige konkrete Beispiele gegeben werden.<br />

Aktionserkennung ist eine wichtige Komponente von kontextsensitiven Systemen. Aktionen<br />

können dabei von simplen Gesten bis hin zu komplizierten Tagesroutinen reichen.<br />

Simpelste Aktionen wie Essen, Sitzen, Stehen, Abwaschen, Trinken, etc. werden dabei als<br />

Low-Level-Aktionen bezeichnet. Komplexere Aktivitäten wie Tagesroutinen, die mehrere<br />

Aktionen beinhalten und sich über einen längeren Zeitraum erstrecken, werden High-<br />

Level-Aktivitäten genannt.


Es gibt verschiedene Ansätze und Methoden um Aktionen zu erkennen. Die meisten jedoch,<br />

wie beim Maschinenlernen üblich, nutzen die in Abschnitt 3 beschriebenen Methoden.<br />

Bestimmte High-Level-Aktivitäten anhand der Beobachtung von Low-Level-Aktivitäten<br />

zu erkennen, beschreibt die Arbeit von Blanke und Schiele (2009) [BS09]. Die Arbeit ist<br />

dabei hauptsächlich auf das Auswerten von Daten fokussiert. Hierbei kommen Boosting-<br />

Methoden zum Einsatz. Die Low-Level-Aktionen stellen in diesem Falle die schwachen<br />

Regeln dar, mithilfe derer eine Hypothese gefunden werden soll, die die High-Level-<br />

Aktivität beschreiben kann.<br />

Die Sensordaten auf die sie in ihrer Arbeit zurückgreifen repräsentieren Low-Level-Aktivitäten<br />

und deren Häufigkeit. Als ersten Schritt wenden sie auf die Sensordaten Unsupervised<br />

Learning-Methoden an um die Daten zu clustern. Damit können sie die Aktivitäten ihrem<br />

Aufkommen nach zusammenfassen. Diese werden dann zusätzlich in bestimmte Zeitfenster<br />

zusammengefasst, die dann als Input <strong>für</strong> das Boosting dienen. Sie versuchen hiermit<br />

die Aktivität anhand der in einem gewissen Zeitraum am häufigsten gemessenen Low-<br />

Level Aktionen festzustellen. In ihrer Arbeit stellen die Forscher fest, dass Joint Boosting<br />

in ihren Tests die Rechenleistung signifikant reduziert, da die schwachen Regeln klassenübergreifend<br />

geteilt werden können.<br />

Die Daten erfassen Blanke und Schiele (2009) über dreidimensionale Beschleunigungssensoren,<br />

welche die Probanden sieben Tage am Handgelenk und in ihrer Hosentasche<br />

trugen [BS09]. Dabei sollten die vier Routinen Abendessen, Pendeln, Mittagessen und<br />

Büroarbeiten erkannt werden. Diese sollten anhand von 34 gelabelten Low-Level-Aktionen,<br />

von denen 24 Teil der Routinen waren, erkannt werden. Zum Beispiel gehörten zur Routine<br />

Abendessen die Aktionen: Essen vorbereiten, Essen essen und Abwaschen. Sie kamen<br />

zu dem Schluss, dass diese Methode brauchbare Resultate liefert und, dass schon<br />

überraschend geringe Datenmengen zur Unterscheidung von Routinen wie Abendessen<br />

und Pendeln ausreichen.<br />

4.2 Aktionserkennung über Körper-Modell<br />

Im Gegensatz dazu legen Zinnen et al. (2009) ihren Fokus auf das Messen der Minimal-<br />

Aktionen [AZS09]. Sie stellen fest, dass mit den bisherigen Signal-basierten Methoden,<br />

wie der Messung mit Beschleunigungssensoren gerade kurze und seltene Bewegungen<br />

nur schwer erkannt werden können. Ihre Aktionserkennung basiert auf einem Modell des<br />

menschlichen Körpers und soll dadurch robuster sein, da die zu erkennenden Aktivitäten<br />

schließlich von Körperbewegungen abgeleitet sind. Neben den Körperbewegungen wie<br />

Hand heben, Körper drehen oder Arm drehen beziehen sie ebenfalls die Körperhaltung<br />

sowie Standortinformationen mit ein. Schließlich wollen sie ihre Methode anhand von<br />

Aktionen einer Autoinspektion wie Kofferraum öffnen oder Lack auf Kratzer untersuchen<br />

überprüfen.<br />

Sie plazieren dazu an mehreren Stellen des Körpers eines Probanden Sensoren. Während<br />

Beschleunigungssensoren nur Veränderungen in der Bewegung messen, also ob sich ein<br />

Sensor bewegt, können mit der Erfassung des ganzen Körpers absolute Bewegungen fest-


gestellt werden wie in Abbildung 8 oben zu sehen. So kann die Aktion Hände heben erkannt<br />

werden, egal in welcher Position sich die Hände vorher befanden. Die Testpersonen<br />

Abbildung 8: Oben: Zu sehen ist eine Person von hinten, die gerade den Kofferraum des Autos öffnet.<br />

Unten: Die Bewegungsänderungen des rechten und linken Arms. Bei jedem lokalen Minimum wird<br />

ein SFP oder TP vermutet (rote Kreise). Quelle: [AZS09]<br />

tragen Sensoren an Ober- und Unterarmen sowie am Torso. Eine der größten Schwierigkeiten<br />

ist es, die Bewegungen die <strong>für</strong> die Aktivitäten wichtig sind, von anderen zu trennen.<br />

Um Aktionen voneinander zu trennen, behelfen sie sich zweier Bewegungsmuster. Mit<br />

SFP <strong>für</strong> short but fixed positions bezeichnen sie eine kurzzeitige fixe Position der Hände<br />

die häufig am Anfang und Ende einer Aktivität zu beobachten sei. Mit TP <strong>für</strong> turning<br />

points wollen sie Wendepunkte in Handbewegungen nutzen um Aktionen voneinander zu<br />

unterscheiden. Da zwischen zwei Aktionen die Hände langsamer bewegt werden, sei die<br />

Änderung der Armposition bei SFP und TP gering und somit gut zu erkennen.<br />

Fasst man die Bewegungen der Arme in einem Diagramm zusammen wie in Abbildung<br />

8 unten, welches die Abtastrate gegen die Positionsänderung der Arme abträgt, müssten<br />

sich immer an den lokalen Minima (also dort wo die Änderung der Armposition gering ist)


SFP oder TP ereignen. Die Forscher verifizieren diese Annahme experimentell. Insgesamt<br />

maßen sie 280 Minuten. Die durchschnittliche Länge der Aktivität war 1,4 Sekunden mit<br />

einer Abweichung von 0,95 Sekunden. Ein SFP oder TP dauerte weniger als 0,15 Sekunden.<br />

Um die Bewegung weiter zu abstrahieren definieren die Forscher Bewegungsprimitive.<br />

Beispielsweise sollen Höhenprimitive die Differenz der Personengröße (Hände hoch versus<br />

Ducken) oder Push-Pull-Primitive das Stoßen und Ziehen der Arme abbilden.<br />

Neben der Körperhaltung wird noch die Position der Person mittels Ubisense ermittelt.<br />

Dies erlaubt einen Kontext herzustellen und zu klassifizieren welche Aktion denn an der<br />

aktuellen Position überhaupt möglich ist.<br />

Die Forscher studierten 20 Routinen einer Auto-Inspektion. Sie klassifizierten ihre Daten<br />

mittels Joint Boosting. Zinnen et al. (2009) machen klar, dass das System nur Nutzer-<br />

Abhängig gut funktionieren könne, da sich die exakte Ausführung einer Aktion von Person<br />

zu Person stark unterscheiden kann [AZS09]. Sie kamen zu dem Schluss, dass das System<br />

<strong>für</strong> die Aktionserkennung bei gleichen Testpersonen gute bis sehr gute Ergebnisse lieferte.<br />

Aber auch bei Personen-Unabhängigen Experimenten erbrachte ihre Methode noch gute<br />

Ergebnisse [AZS09].<br />

4.3 Simultaneous Localization and Mapping (SLAM)<br />

Bei Simultaneous Localization and Mapping (SLAM) geht es um ein Problem der Lokalisierung<br />

eines Roboters. Das Problem beschäftigt sich mit der Frage ob es ein mobiler<br />

Roboter, der an einem unbekannten Ort in einer unbekannten Umgebung ausgesetzt wird<br />

schafft, sich sukzessive eine vollständige Karte seiner Umgebung zu bauen während er<br />

simultan seine Position auf dieser Karte bestimmen muss. Eine Lösung dieses Problems<br />

galt <strong>für</strong> die Robotik lange als Weg zu einem tatsächlich autonomen Roboter [DWB06].<br />

Ein Roboter kann mittels seiner Sensoren eine unbekannte Umgebung erkunden und daraus<br />

eine Karte generieren. Jedoch ist es schwierig <strong>für</strong> den Roboter seine eigene Position<br />

in der teilweise erkundeten Karte festzustellen, sowie zu merken, dass er neues Territorium<br />

erreicht hat. Eine Möglichkeit seine Umgebung zu erkennen, wären Merkmale in der<br />

Landschaft mit bekannter Position. Jedoch ist die Vorgabe, dass dem Roboter seine Umgebung<br />

gänzlich unbekannt ist [CN01].<br />

Ein Roboter soll sich also durch eine Umgebung bewegen und dabei subjektive Beobachtungen<br />

von unbekannten Landschaftsmerkmalen mit seinem Sensor machen. Zu einem<br />

Zeitpunkt k seien die folgenden Größen definiert:<br />

• xk: Zustandsvektor der die Position und Blickrichtung des Roboters beschreibt.<br />

• uk: Kontrollvektor, gesetzt zum Zeitpunkt k − 1 um den Roboter zu einem Zustand<br />

xk zum Zeitpunkt k zu bringen.<br />

• mi: Ein Vektor der das i-te Lanschaftsmerkmal beschreibt, dessen Position als zeitunabhängig<br />

angesehen werden soll.<br />

• zik: Beobachtung des Roboters vom i-ten Landschaftsmerkmal zum Zeitpunkt k.


Zudem werden Mengen definiert die den Verlauf der Roboter-Positionen, den Verlauf von<br />

Kontrolleingaben, alle Landschaftsmerkmale sowie alle beobachteten Landschaftsmerkmale<br />

beinhalten [DWB06].<br />

x k-1<br />

uk<br />

x k<br />

m i<br />

m j<br />

x k-1<br />

u k+2<br />

x k+1<br />

Geschätzt<br />

Wahr<br />

x k+2<br />

Roboter<br />

Abbildung 9: Beobachtung des Roboters und dessen tatsächliche Umgebung<br />

Landschafts<br />

merkmal<br />

Hier ist zu sehen, dass der Roboter nie das wahre Bild der Umgebung kennt. Er kann nur<br />

subjektiv bestimmen was um ihn herum ist, hat aber keine anderen Daten um dies zu verifizieren.<br />

Doch auch wenn der Roboter ein um den Messfehler seines Sensors verfälschtes<br />

Bild von seiner Umgebung hat, ist dieser Fehler systematisch und die Karte des Roboters<br />

also nur verschoben. Lösungen dieses Problems sind deshalb wahrscheinlichkeitstheoretisch<br />

begründet.<br />

Auch wenn es noch Schwierigkeiten bei allgemeinen Einsätzen und komplizierten Karten<br />

gibt, gilt das Problem sowohl theoretisch als auch praktisch als gelöst [DWB06].


5 Fazit<br />

<strong>Künstliche</strong> <strong>Intelligenz</strong> ist heute ein wichtiges Forschungsfeld. Nicht nur wird versucht,<br />

einen künstlich denkenden Roboter zu bauen. Vielmehr kommen Werkzeuge und Ideen aus<br />

diesem Gebiet auch anderen Forschungsrichtungen zugute. Kontextbewusstsein ist dabei<br />

wohl einer der größten Trümpfe der KI. <strong>Mobile</strong> <strong>Dienste</strong> sollen einen Nutzer mit Informationen<br />

versorgen, die <strong>für</strong> seine Situation, <strong>für</strong> seinen Standort und <strong>für</strong> seine Vorlieben<br />

sinnvoll sind.<br />

Moderne Smartphones haben heute schon eine umfassende Sensorik verbaut. Beschleunigungssensoren,<br />

Gyroskope und GPS-Empfänger können das Gerät nicht nur lokalisieren,<br />

sondern auch dessen Ausrichtung im dreidimensionalen Raum bestimmen. Mit dieser<br />

Hardware ließen sich schon dank der Methoden der Aktionserkennung aus Abschnitt 4.1<br />

Schlüsse auf das Verhalten und die Tagesroutinen von Nutzern folgern.<br />

Jedoch brauchen diese Verfahren zum Teil noch viel Rechenzeit. Die Anzahl der Boosting-<br />

Runden die es braucht, um eine gute Hypothese zu finden, machen diese Erkennung<br />

noch unpraktikabel <strong>für</strong> Live-Systeme. Aber mit fortschreitender Rechenleistung in mobilen<br />

Geräten und Cloud-Computing wird dies in der Zukunft wohl keine größeren Probleme<br />

mehr darstellen.<br />

Auch das Sammeln von Daten kann problematisch werden. In Abschnitt 4.1 weisen die<br />

Forscher zwar darauf hin, wie wenige Daten doch nötig sind um komplexe Routinen zu<br />

erkennen. In der Arbeit die in Abschnitt 4.2 beschrieben wird, werden jedoch komplexe<br />

dreidimensionale Modelle aufgezeichnet und ausgewertet.<br />

<strong>Künstliche</strong> <strong>Intelligenz</strong> spielt aber nicht nur in der Forschung eine wichtige Rolle. Zum<br />

Beispiel hat künstliche <strong>Intelligenz</strong> auch in der Medizin wichtige Aufgaben. Beispielsweise<br />

können mobile Defibrillatoren die sich in U-Bahn-Stationen befinden dem Benutzer<br />

nicht nur sagen was er tun muss, sondern zum Beispiel auch erst dann einen Stromimpuls<br />

abgeben, wenn sie korrekt platziert sind. Sie handeln bereits rational.<br />

Abschließend lässt sich sagen, dass zwar eine absolut autonom handelnde und denkende<br />

Maschine noch nicht praktisch implementiert werden konnte. Doch, dass vorallem die Methoden<br />

künstlicher <strong>Intelligenz</strong> bereits große Erfolge erzielt haben. HMM, Lernmethoden<br />

und Klassifizierungsverfahren helfen <strong>Intelligenz</strong> in Systeme und <strong>Dienste</strong> zu bringen die<br />

dem Nutzer <strong>ortsbasierte</strong>r <strong>Dienste</strong> eine neue und verbesserte Erfahrung bieten können.<br />

Literatur<br />

[AZS09] C. Wojek A. Zinnen und B. Schiele. Multi Activity Recognition Based on Bodymodel-<br />

Derived Primitives. Location and Context Awareness, 4:1–18, 2009.<br />

[BP00] P. Bahl und V.N Padmanabhan. RADAR: an in-building RF-based user location and<br />

tracking system. INFOCOM, 2:775–784, 2000.<br />

[BS09] U. Blanke und B. Schiele. Daily Routine Recognition through Activity Spotting. Location<br />

and Context Awareness, 4:192–206, 2009.


[CN01] H. Choset und K. Nagatani. Topological Simultaneous Localization and Mapping<br />

(SLAM): Toward Exact Localization Without Explicit Localization. Robotics Automation<br />

Magazine, 17:125–137, 2001.<br />

[DWB06] H. Durrant-Whyte und T. Bailey. Simultaneous localization and mapping: part I. Robotics<br />

Automation Magazine, Seiten 99–110, 2006.<br />

[FS99] Y. Freund und R. Schapire. A short introduction to boosting. Journal of Japanese Society<br />

for Artificial Intelligence, Seiten 771–780, 1999.<br />

[KKR09] T. Miyaki K. Kawauchi und J. Rekimoto. Directional Beaconing: A Robust WiFi Positioning<br />

Method Using Angle-of-Emission Information. Location and Context Awareness,<br />

4:103–119, 2009.<br />

[Mac67] J. MacQueen. Some methods for classification and analysis of multivariate observations.<br />

Proceedings of the fifth Berkeley symposium, 5:281–297, 1967.<br />

[NO02] A. Garg N. Oliver, E. Horvitz. Layered representations for human activity recognition.<br />

Proceedings of the 4th IEEE International Conference on Multimodal Interfaces, 4, 2002.<br />

[PBL09] M. Chu P. Bolliger, K. Partridge und M. Langheinrich. Improving Location Fingerprinting<br />

through Motion Detection and Asynchronous Interval Labeling. Location and<br />

Context Awareness, 4:37–51, 2009.<br />

[Rab89] L.R Rabiner. A Tutorial on Hidden Markov Models and Selected Applications in Speech<br />

Recognition. Proceedings of the IEEE, 77:257–286, 1989.<br />

[RN10] S. Russell und P. Norvig. Artificial Intelligence: A Modern Approach. Pearson Education<br />

Inc., 2010.<br />

[ZG09] X. Zhu und A.B Goldberg. Introduction to Semi-Supervised Learning. Morgan Claypool<br />

Publishers, 2009.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!