Mustererkennung Unüberwachtes Lernen R. Neubecker, WS 01 / 01 Übersicht (Un-) Überwachtes Lernen Clustering im Allgemeinen k-means-verfahren 1
Lernen Überwachtes Lernen Zum Training des Klassifikators steht eine Trainingsstichprobe zur Verfügung, die Klassenzugehörigkeit der einzelnen Merkmalsvektoren ist bekannt Unüberwachtes Lernen Die Klassenzugehörigkeit (in der Trainingsstichprobe) ist unbekannt Die Klassen müssen erst einmal identifiziert werden ("Clustering") Automatisches Clustering Was sind sinnvolle Kriterien, die eine Clusterzugehörigkeit bestimmen? Wie beurteile ich die Qualität einer gefundenen Clustereinteilung? Zitat: "Eine Klasse fasst ähnliche Dinge zusammen"? Übersicht (Un-) Überwachtes Lernen Clustering im Allgemeinen k-means-verfahren
Clustering: Grundlegende Probleme Klassengrenzen Überlappende Klassen (im Sinne von: einige Mitglieder der Stichprobe, die eigentlich zu unterschiedlichen Klassen gehören, sind sich trotzdem "sehr ähnlich") kaum lösbares Problem für Clustering Skalenabhängigkeit Skala / Einheit der Merkmalskoordinaten u.u. nicht vergleichbar, keine gleiche Skala für jede Achse des Merkmalsraums Willkür in der Wahl der Skalen Auswirkungen auf Clustering, denn "Ähnlichkeit" = Abstand im Merkmalsraum Clustering: Grundlegende Probleme Merkmals-Skalen Skalierung der Merkmale schlägt sich in Abständen nieder Varianz der gesamten Punktewolke kann aus zufälliger Variation oder aus Klassenzugehörigkeit resultieren x x Abstände werden durch x 1 dominiert x 1 x 1
Clustering: Grundlegende Probleme Klassenzahl Anzahl der Klassen erst einmal unbekannt automatisch bestimmen oder vorgeben? Zu wenige Cluster Klassen werden zusammengefasst Zu viele Cluster Klassen werden in Unterklassen zerrissen Extremfall: Jeder Merkmalspunkt ist seine eigene Klasse Qualitätskriterium notwendig: Wann ist eine Clustereinteilung gut? Übersicht 9 (Un-) Überwachtes Lernen Clustering im Allgemeinen k-means-verfahren
K-Means-Verfahren: Konzept 10 K-Means Ziel: Summe aller Abstände zu den jeweiligen Clusterzentren minimieren J = alle Cluster l alle x k im Cluster l x k μ l Min! d.h. jeder Merkmalsvektor gehört zum nächstgelegenen Clusterzentrum. Entspricht: Minimale Varianz innerhalb jedes Clusters Gesucht: optimale Clusterzentren μ l Implementierung Vorgabe: Anzahl der Cluster L (!), Startwerte für die Clusterzentren μ l Iterationsschleife: a. Weise jedem Merkmalsvektor x k die Klasse des am nächsten gelegenen Clusterzentrums (wieder neu) zu b. Neue Clusterzentren μ l Mittelwerte alle zugehörigen Merkmalsvektoren x k Cluster l (aus Schritt a.) Mögliche Abbruchbedingung: keine Änderung der Klassenzuordnung oder Clusterzentren bewegen sich kaum noch / nicht mehr K-Means-Verfahren: Konzept 11 Beispiel 5
K-Means-Verfahren: Konzept 1 Probleme / Kritikpunkte Die Anzahl der Cluster muss vorgegeben werden Der K-Means-Algorithmus muss nicht die optimale Lösung finden (lokale Minima der Fehlerfunktion), Abhängigkeit der Lösung von den Startwerten pragmatischer Ausweg: mit verschiedenen Startwerten oft laufen lassen K-Means findet nur konvexe Cluster Jeder Merkmalsvektor wird in jedem Iterationsschritt immer "hart" einem Cluster zugeschlagen die Information über die Nähe (Wahrscheinlichkeit der Zugehörigkeit) zu verschiedenen Clustern wird nicht berücksichtigt K-Means-Verfahren: Variante 1 Variante: "Soft-K-Means" Berücksichtigung / Gewichtung des Abstande aller Punkte zu allen Clusterzentren a) Abstand jedes betrachteten Merkmalsvektors x k zu allen Clusterzentren μ l berechnen b) Abstandsgewicht: je größer Abstand desto kleiner der Gewichtsfaktor r r kl = exp( β x k μ l ) l exp( β x k μ l ) Parameter β: "Steifheit" des Clustering (β = klassisches K-Means) c) Jedes der l Clusterzentren jetzt als gewichteter Mittelwert über alle Merkmalsvektoren μ l neu = 1 k r kl k r kl x k Darüber hinaus noch viele andere Varianten und Abwandlungen von k-means
K-Means-Verfahren: Anwendung 1 Anwendung: Segmentieren als Clusterbildungsaufgabe Segmentieren eines Bildes = zusammengehörige Bildregionen identifizieren = "Klassen" bilden Beispiel Binarisierung eines Grauwertbildes Nur 1 Merkmal = Grauwert Pixel des Bildes = Stichprobe Vorgabe Anzahl Klassen = Übersicht 15 (Un-) Überwachtes Lernen Clustering im Allgemeinen k-means-verfahren
1 Wahrscheinlichkeiten Annahme: Verteilung der Merkmale wird von Wahrscheinlichkeitsverteilungen bestimmt! Welche Verteilungsform? Welche Parameter? (Passt das tatsächlich zur vorliegenden Stichprobe?) Gängige / naheliegende Annahme: Gaußsche Normalverteilung D.h. Stichprobe wird von mehreren unabhängigen (multivariaten) Gaußverteilungen bestimmt "Gaussian Mixture Model" - GMM Problem der Clusterbildung: Finde die Mittelpunkte und Kovarianzmatrizen der zugrunde gelegten Normalverteilungen, sowie das jeweilige Gewicht (a-priori Wahrscheinlichkeit) 5 1 0 5 9 5 1 0 5 9 1 Formale Beschreibung Wahrscheinlichkeit, dass gegebener Merkmalsvektor x k zur Klasse ω l gehört p x k x k ε ω l = π l N l μ l, K l = π l π N K l exp [ 1 x k μ l t K l 1 x k μ l ] mit π l = P(ω l ) = a-priori Wahrscheinlichkeit der Klasse ω l Fragestellung: Gegeben ist eine Stichprobe x k. Welches GMM θ (Gaussian Mixture Model mit L Klassen mit den Parametern μ l, K l ) passt dazu? Wie hoch ist die Wahrscheinlichkeit P(θ x k ), dass ein bestimmtes GMM θ die Stichprobe repräsentiert? Auswahl des GMM mit der höchsten Gesamtwahrscheinlichkeit
19 Iterations-Algorithmus für GMM Annahme einer bestimmten Anzahl L von Klassen und entsprechende Parameter der Normalverteilungen Startwerte (Option: Startwerte mit K-Means gewinnen) Iterationsschleife a. Für jedes Mitglied x k der Stichprobe: Berechnung der Wahrscheinlichkeit h kl, dass er zur Normalverteilung N l gehört h kl = p( x k x k ε ω l ) l P x k x k ε ω l ) = Wert von N l bei x k Normierung b. Anpassung der Normalverteilungen Neue Mittelwerte μ l = 1 Neue Kov.matrix K = 1 k h kl k h kl k h kl x k k h kl x k μ l x k μ t l Bei Berechnung der emp. Schätzwerte: Wichtung mit Wahrscheinlichkeit h kl Allgemein: Verfahren zur iterative Anpassung der Parameter von Wahrscheinlichkeitsverteilungen an eine gegebene Stichprobe = Expectation-Maximization-Algorithmen 0 GMM @ Matlab Vorgabe: Klassen x 5 1 GMM Ergebnis Klasse 1: P ω 1 =,% μ 1 =..91 K = 0.5 0.9 0.9 0. 0 5 9 x 1 Klasse : P ω 1 =,% μ 1 = 5.01 1. K = 0.1 0.01 0.01 0.00 9
1 GMM @ Matlab Vorgabe: Klassen x 5 1 GMM Ergebnis Klasse 1: P ω 1 =,% μ 1 =..91 K = 0.5 0.9 0.9 0. 0 5 9 x 1 Klasse : P ω 1 =,% μ 1 = 5.01 1. K = 0.1 0.01 0.01 0.00 Endgültige Klassenzugehörigkeit ergibt sich aus p x k x k ε ω l Klassifikation Fazit Unüberwachtes Lernen erfordert als ersten Schritt ein Clustering: Einteilung der unsortierten (Traninings-) Stichprobe in sinnvolle Cluster = Klassen Danach bekanntes Trainieren des gewählten Klassifikators (= überwachtes Lernen) Clustering Zu einem Cluster sollen "ähnliche" Punkte gehören Distanzen im Merkmalsraum Es gibt wenige robuste Verfahren zum automatischen Clustering Kritisch: (Vorgegebene) Anzahl der Klassen Vorsicht: Skalenabhängigkeit Prinzipiell zwei Arten von Verfahren: Reine Nutzung der Stichproben (z.b. K-Means) Modellbasiert, d.h. Annahme einer zugrundeliegenden Wahrscheinlichkeitsverteilung (z.b. GMM) und Anpassung der Parameter an die Stichprobe 10