Upload
helene-wolfinger
View
106
Download
2
Embed Size (px)
Citation preview
Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von
Simulated Annealing
Seminar: Ausgewählte Kapitel des Softcomputing
Dezember 2007
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 2
Gliederung
• Einleitung
• k-Nearest-Neighbor Algorithmus
• Simulated Annealing
• Realisierung von KNN mit SA
• Zusammenfassung
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 3
Einleitung
• Häufiges Problem in der Informatik: Große, ungeordnete/unbestimmte Datenmengen.– Webpages
– Bildsammlungen
– Datencluster
– …
• Lösung: Klassifikation, d.h. Einordnung der Daten in vorher bestimmte Klassen.
• Spezialfall: Textklassifikation
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 4
Textklassifikation
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 5
Textklassifikation (2)
• Anwendungen:– Klassifikation von Dokumenten
– Filtern von Spam-Mails
– …
• Einzelne Dokumente sind für Menschen leicht zu klassifizieren.
• Klassifizierung von großen Mengen an Dokumenten sehr zeitaufwendig.
Maschinelle Klassifikation
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 6
Textklassifikation (3)
• Algorithmen/Methoden:– Decision Rules
– Support Vector Machines
– Naive Bayes
– Neuronale Netze
– Lineares Trennen
– k-Nearest-Neighbor (KNN)
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 7
k-Nearest-Neighbor
• KNN einer der beliebtesten Algorithmen für Klassifizierung.
• Verwendung z.B. bei Suchmaschinen.
• Nachteil: KNN sehr rechenintensiv
• Lösung: Beschleunigung von KNN durch heuristische Optimierungsverfahren
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 8
KNN (1)
• Voraussetzung: Alle Instanzen eines Problems können als Punkte im dargestellt werden.
• Algorithmus berechnet die k nächsten Nachbarn einer Instanz.
• Abstand wird durch Distanzfunktionen bestimmt.
n
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 9
Distanzfunktionen
• Beispiele für Distanzfunktionen:– Euklidische Distanz:
– Kosinus Distanz:
n
iiie yxyxd
0
2)(),(
n
i
n
iii
n
iii
k
yx
yxyxd
1 1
1
²²
),(
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 10
5-NN Beispiel (1)
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 11
5-NN Beispiel (2)
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 12
5-NN Beispiel (3)
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 13
KNN (2)
• Fehlerwahrscheinlichkeit bzgl. des optimalen Bayes-Klassifikator:
• Nachteil: Für jede Testinstanz muss die Distanz zu jeder anderen Instanz berechnet werden
Hohe Komplexität
k
PPPP NN
BkNNB
2
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 14
Voraussetzungen (1)
• Voraussetzungen für die Anwendung von KNN auf Textklassifikation:– Kodierung der Dokumente
– Wissensbasis
• Methode zur Kodierung: Feature Extraction.
Features (lat. Wörter, chin. Schriftzeichen, etc.) des Dokumentes werden extrahiert und in schnellen Speicherstrukturen abgelegt.
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 15
Voraussetzungen (2)
• Für jedes Feature wird zusätzlich eine Gewichtung gespeichert.
• Mögliche Gewichtungen:– Relatives Wortvorkommen– Absolutes Wortvorkommen– Information Gain– …
• Wissensbasis wird aus Trainingsdokumenten erstellt.• Für jedes Trainingsdokument: manuelle Ergänzung der
Klasse
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 16
Beispiel: Tabelle
Hier:• Speicherstruktur: Tabelle.• Binäre Angabe, ob Wort in Dokument vorkommt.
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 17
Performance (1)
• Vergleich mit anderen Algorithmen durch Benchmarks
• Vergleichskriterien:
– Precision:
– Recall:
– F1: F =
Wobei D = #Dokumente, = # insg. korrekt zugewiesenen Dokumente
= # vom Algorithmus korrekt zugewiesenen Dokumente
D
DP kA
k
kA
D
DR
PR
RP
2
kD
kAD
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 18
Performance (2)
• Benchmark von Yang/Sigir 1998
• Textsammlung: Reuter-Corpus 21578
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 19
Performance (3)
• Fazit: SVM und KNN z.T. deutlich besser als andere Algorithmen
• SVM jedoch effizienter als KNN
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 20
Optimierung durch SA
• Ziel: Beschleunigung von KNN.
• Methode: Verwendung von heuristischen und Metaheuristischen Optimierungsverfahren zur Approximation der optimalen Lösung.
• Gewähltes Verfahren: Simulated Annealing.
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 21
Simulated Annealing (1)
• Simulated Annealing (SA) ist ein heuristisches Optimierungsverfahren zur Lösung von n-dimensionalen Optimierungsproblemen.
• 1983 von Kirkpatrick, Gelatt und Vecchi vorgestellt
• Urspung in der Mechanik beim sog. Glühen.
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 22
Simulated Annealing (2)
• Benötigte Komponenten:– Energiefunktion
– Funktion für zufällige Zustandsänderungen
– Temperatur T und Abkühlungsstrategie
– Entscheidungsfunktion für die Akzeptanz schlechterer Zustände
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 23
Simulated Annealing (3)
• Lösungen werden durch Vektoren repräsentiert
• Energiefunktion Optimierungsfunktion Q(x)
• Zustandsänderungen sind zufällige Änderungen in den Komponenten einer Lösung
• Abkühlungsstrategie und Temperatur sollten problemabhängig gewählt werden
• Wahrscheinlichkeit für Akzeptanz schlechterer Zustände:
• Bessere Zustände werden immer akzeptiert.
T
XQYQ
ep)()(
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 24
Algorithmus
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 25
Beispiel (1)
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 26
Beispiel (2)
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 27
Beispiel (3)
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 28
Beispiel (4)
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 29
Beispiel (5)
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 30
Beispiel (6)
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 31
Beispiel (7)
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 32
Simulated Annealing (4)
• Suchverhalten des Algorithmus wird von der Temperatur T und der Abkühlungsstrategie bestimmt:
• Hohe Temperatur:– Schlechte Zustände werden häufig akzeptiert
– Großer Teil des Suchraums wird erforscht
• Niedrige Temperatur:– Schlechte Zustände werden selten akzeptiert
– Suche wird lokaler
• Vorteil von SA: Verlassen lokaler Minima
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 33
Rahmenbedingungen (1)
• Speicherstrukturen:– Dokumente samt Gewichtung werden in Arraylists gespeichert
– Features werden in einer Featurelist gespeichert.
– Gewichtung: Information Gain
– Jedes Feature wird mit allen Dokumenten verlinkt, die es enthalten (verlinkte Feature-Arraylist)
– Listen werden nach Gewichtung sortiert.
• Erschaffung der Wissensbasis durch Feature Extraction der Trainingsdokumente.
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 34
Speicherstruktur
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 35
Rahmenbedingungen (2)
• Voraussetzungen für SA:– Lösungsrepräsentation Set von k Dokumenten (result)
– Zustandsübergänge Abarbeitung der höchstgewichteten Features des Testdokumentes.
– Starttemperatur T wird auf k gesetzt.
• Initiale Lösung: erste k Dokumente aus der Arraylist des höchstgewichteten Features.
• Übergangslösungen werden in temporären result set (temp) zwischengespeichert.
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 36
Algorithmus (1)
1. Suche Feature mit nächst höchster Wertung.
2. Speichere die T vordersten Dokumente in temp.
3. Berechne Distanzen zwischen dem Testdokument und temp und speichere sie.
4. Bestimme aus result und temp die k Dokumente mit dem geringsten Abstand und speichere sie in result. Dabei sei n die Anzahl der ersetzten Dokumente.
5. Falls n=0: Algorithmus beenden mit Lösung result.
6. Falls n>0: und beginne wieder mit Schritt 1.
kknT *))1.0)/(*10(lg(
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 37
Algorithmus (2)
Modifiziertes SA:Schlechtere Zustände werden
zwar in temp zwischengespeich-
ert, allerdings nie akzeptiert.
Erklärungsansatz:Kaum lokale Optima, daher nicht
notwendig, schlechte Zustände zu
akzeptieren
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 38
Tests
• Vergleich des modifizierten KNN (KNN_SA) mit dem traditionellen KNN (KNN_trad) durch Benchmark.
• Samples:– Peking-Corpus: 19.892 Webseiten
– Sogou-Corpus: 17.910 Dokumente
• Vergleichskriterien: – Precision
– Performance
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 39
Resultat Peking-Corpus
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 40
Resultat Sogou-Corpus
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 41
Resultat Allgemein
• Generell:– Erkennungsrate beim Peking-Corpus höher
– Beste Ergebnisse von KNN_trad für k=10, 25
– Beste Ergebnisse von KNN_SA für T=35,50
• Vergleich:– Precision von KNN_trad geringfügig besser
– Performance von KNN_SA viel besser
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 42
Zusammenfassung
• KNN ist ein einfach zu realisierender Algorithmus, der im Vergleich mit anderen Verfahren gute Ergebnisse liefert, allerdings sehr uneffizient ist.
• Simulated Annealing ist ein heuristisches Optimierungsverfahren mit der Stäke, lokale Optima verlassen zu können.
• Die Realisierung von KNN mit SA liefert zwar geringfügig schlechtere Ergebnisse, ist allerdings viel effizienter als das traditionelle KNN.
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 43
Offene Fragen…
• Stärke von SA, das Verlassen lokaler Optima, wird nicht genutzt: Ist SA wirklich geeignet für diese Realisierung?
• Wie ist die Performance von anderen Optimierungsverfahren wie GA, PSO, ACO,… ?
Marcel Scheibmayer: Schnelle k-Nearest-Neighbor Algorithmen auf der Basis von Simulated Annealing 44
Schlusswort
Vielen Dank für ihre Aufmerksamkeit!