Lernende Vektorquantisierung (LVQ) und K-Means-Clustering David Bouchain Proseminar Neuronale Netze Kurs-Nr.: CS4400 ISI WS 2004/05 david@bouchain.de 1 Einleitung Im Folgenden soll zum einen ein Überblick über das Clustering gegeben werden. Darunter versteht man die Aufteilung der Eingabemuster nach bestimmten Merkmalen in Gruppen, den Clustern, die, räumlich gesehen, je nach Ähnlichkeit mehr oder weniger weit auseinander liegen. Zudem wird auf den K-Means-Algorithmus eingegangen, der den Clustern einen oder mehrere Prototypen, oder Referenzvektoren, zuordnet. Zum anderen soll die lernende Vektorquantisierung vorgestellt, erläutert und veranschaulicht werden. Hierbei handelt es sich um ein überwachtes Lernverfahren. Basierend auf der zur jeweiligen Eingabe gegebenen Klasseninformation wird der dem Eingabevektor nächste Gewichtsvektor ersterem entweder angenähert oder von ihm entfernt (Quantisierung). So soll der Eingaberaum iterativ immer besser abgedeckt werden. Es werden vier verschiedene Methoden der lernenden Vektorquantisierung dargelegt, die sich in Stabilität und Effizienz (Lernrate) unterscheiden. Die lernende Vektorquantisierung ist zwar ein überwachtes Lernverfahren, allerdings bildet es im Zusammenhang mit dem Clustering die Grundlage für ein wichtiges unüberwachtes Lernverfahren, nämlich die Self Organizing Feature Maps (selbstorganisierende Karten). Diese werden allerdings in einem separaten Vortrag behandelt. 2 Clustering Unter dem so genannten Clustering versteht man das Sortieren der Elemente des Eingaberaums zu verschiedenen Gruppen, den Clustern. Das Clustering stellt die Klasseninformation für die Eingaben bereit, die für das Training benötigt werden. Clustering spielt bei unüberwachten Lernverfahren (unsupervised learning) eine besondere Rolle, da es eine Möglichkeit bietet, die Eingaben auch ohne Klasseninformation zu ordnen. Das Clustering in Verbindung mit dem K-Means-Algorithmus ist eng verwandt mit den selbstorganisierenden Karten, lediglich die Nachbarschaftsbeziehung zwischen den Neuronen ist hier nicht vorhanden. 1
Der geclusterte Eingaberaum sollte folgende Eigenschaften aufweisen [1]: 1. Die Eingaben in einem Cluster sollten in mindestens einer Eigenschaft ähnlich sein 2. Ähnliche Cluster sollten dicht beieinander liegen Eine Eingabe X wird einem Cluster dann zugeordnet, wenn sie dicht an einem Prototypen desselben Clusters liegt. Der Abstand d lässt sich dabei durch die quadratische euklidische Norm berechnen, allerdings können auch andere Normen verwendet werden [1]. Gegeben sei ein Cluster j. Dann ist der Vektor p j ein Prototyp des Clusters wenn er in der Nähe des geometrischen Mittelpunktes des Clusters liegt. Ein Clustering- Algorithmus ordnet die Elemente des Eingaberaums den Clustern zu. Dies kann erreicht werden, indem zu Beginn des Trainings die Prototypen in ihrer Eigenschaft festgelegt werden. Anschließend werden alle Eingabevektoren demjenigen Prototypen zugewiesen, dem sie am ähnlichsten sind. Um den Cluster zu repräsentieren wird der Prototyp auf das geometrische Mittel aller ihm zugewiesenen Eingaben gesetzt [1]. 3 K-Means Der K-Means-Clustering-Algorithmus dient dem Platzieren der Prototypen auf den geclusterten Eingaberaum. Für eine gegebene Datenmenge muss bekannt sein, wieviele Cluster gebildet werden sollen. Diese Anzahl der Cluster sei K. Nachdem die Prototypen {p 1,..., p K } zufällig im Raum verteilt wurden, beinhaltet der K-Means-Algorithmus folgende Schritte [3]: 1. Jeden Eingabevektor dem Prototypen mit dem geringsten Abstand zuweisen 2. Alle Prototypen in ihr jeweiliges neues Zentrum verschieben 3. Schritt 1 und 2 wiederholen, bis die Cluster stabil sind Ein Problem dieses spezifischen Algorithmus ist, dass das Ergebnis stark von K abhängt und es keine Möglichkeit gibt, den Wert für eine gegebene Datenmenge optimal zu bestimmen. Allerdings gibt es auch Ansätze die versuchen, die Cluster-Anzahl zu schätzen und anzupassen. 2
4 Lernende Vektorquantisierung (LVQ) Die lernende Vektorquantisierung ist ein überwachtes Verfahrung zum Training einschichtiger neuronaler Netze [2], die Klasse des Eingabevektors muss also bekannt sein. Die Gewichtsvektoren {W 1,...,W j } des neuronalen Netzes werden dabei schrittweise soweit optimiert, bis sie die Eingabevektoren {X 1,...,X p } bestmöglich abdecken. Die Adaptation der Gewichtsvektoren erfolgt durch das schrittweise Annähern bzw. Entfernen des gewählten Vektors zum bzw. vom jeweiligen Eingabevektor, wobei der gewählte Vektor W c der Gewichtsvektor ist, der dem Eingabevektor am ähnlichsten ist. Vorgestellt werden vier verschiedene Varianten der lernenden Vektorquantisierung, mämlich LVQ1, LVQ2.1, LVQ3 und OLVQ1. Diese unterscheiden sich in der Methode der Vektorenmodifikation (Quantisierung) und damit in der Effizienz und Stabilität. 4.1 LVQ1 Zu Beginn jeder Iteration muss bei LVQ1 (learning vector quantization 1) der Gewichtsvektor gefunden werden, der dem Eingabevektor X am ähnlichsten ist. Hierzu bietet sich die Minimierung der euklidischen Norm an, aber auch die Maximierung des Skalarproduktes kann verwendet werden [2]. Gleichung 1 zeigt formal die Mimimierung des Skalarproduktes [2]: X W c = min j { X W j } (1) Die Modifikation des gewählten Gewichtsvektors geschieht durch die Annäherung um einen Bruchteil α(t) des Differenzvektors X(t) W c (t) an den Eingabevektor X(t) wenn der Gewichtsvektor W c (t) in derselben Klasse liegt wie der Eingabevektor. Liegt W c (t) nicht in der Klasse des Eingabevektors, wird W c um denselben Wert von X(t) entfernt. α(t), mit 0 < α(t) < 1, ist dabei die Lernkonstante, die entweder konstant oder abhängig von der Iteration t monoton fallend ist [2]. In Abbildung 1 wird der Trainings-Prozess, das Verschieben des Vektors W c, veranschaulicht. Gleichung 2 zeigt diese Lernregel formal: { Wc (t) + α(t)[x(t) W W c (t + 1) = c (t)],kls(w c ) = Kls(X) W c (t) α(t)[x(t) W c (t)],kls(w c ) Kls(X) Alle anderen Gewichtsvektoren bleiben unverändert. Es ergibt sich also: (2) W j (t + 1) = W j (t) j c (3) 3
Abbildung 1: Adaptation des Gewichtsvektors W c bei LVQ1 4.2 LVQ2.1 LVQ2.1 verwendet im Gegensatz zu LVQ1 die beiden nächsten Gewichtsvektoren W i und W j. Eine Modifikation findet unter folgenden Voraussetzungen statt [2]: 1. Die Klassen der beiden Gewichtsvektoren W i und W j sind unterschiedlich 2. X gehört einer der beiden Klassen W i oder W j an 3. X liegt in einem Fenster entlang der Mittelsenkrechten zwischen beiden Klassen. Um herauszufinden, ob X entlang der Mittelsenkrechten zwischen beiden Klassen liegt, wird folgender Ausdruck verwendet, v sollte dabei zwischen 0.2 und 0.3 betragen [2]: { di min, d } j > s,wobei s = 1 v (4) d j d i 1 + v Falls X und W i zur gleichen Klasse gehören (und W j damit laut Voraussetzung nicht in dieser Klasse liegt), gilt folgende Lernregel [2]: W i (t + 1) = W i (t) + α(t)[x(t) W i (t)] W j (t + 1) = W j (t) α(t)[x(t) W j (t)] In Abbildung 2 wird Trainings-Prozess von LVQ2.1 veranschaulicht. Dieses Verfahren modifiziert die den Voraussetzungen entsprechenden Gewichtsvektoren und verschiebt dadurch die Klassengrenzen. (5) 4
Abbildung 2: Adaptation bei LVQ2.1 4.3 LVQ3 LVQ2.1 verändert die Verteilung der Gewichtsvektoren an sich nicht. Daher wurde LVQ3 als Weiterentwicklung von LVQ2.1 entworfen [2], um die Gleichverteilung innerhalb der Klassen und damit eine bestmögliche Abdeckung des Eingaberaums zu gewährleisten. LVQ3 unterscheidet sich in dem Fall von LVQ2.1, in dem die Gewichtsvektoren W i und W j der Klasse des Eingabevektors X angehören. Für die Gleichverteilung sorgt dabei die Konstante e, die nach [2] zwischen 0.1 und 0.5 liegen sollte. e als Koeffizient der Lernkonstante α(t) verhindert eine zu große Modifikation der Gewichtsvektoren und damit Oszillation und Instabilität. Die Lernregel für diesen Fall lautet dann formal [2]: W i (t + 1) = W i (t) + eα(t)[x(t) W i (t)] W j (t + 1) = W j (t) + eα(t)[x(t) W j (t)] Zusätzlich zu den Klassengrenzen verändert LVQ3 also auch die Verteilung der Gewichtsvektoren innerhalb der Klassen. 4.4 OLVQ1 OLVQ1(Optimized Learning Vector Quantization 1) erweitert LVQ1 so, dass jeder Gewichtsvektor eine eigene Lernrate erhält. Dies führt zu folgender Lernregel [2]: (6) { Wc (t) + α W c (t + 1) = c (t)[x(t) W c (t)],kls(w c ) = Kls(X) W c (t) α c (t)[x(t) W c (t)],kls(w c ) Kls(X) α c (t) ergibt sich dabei aus folgender Gleichung [2]: (7) 5
α c (t 1) α c (t) = 1 + s(t)α c (t 1) (8) Dabei ist s(t) = 1, wenn W c in der gleichen Klasse wie X, und s(t) = 1, wenn W c außerhalb der Klasse von X liegt. Es ist unbedingt wichtig, α c (t) nicht größer als 1 werden zu lassen, da sonst der Gewichtsvektor W c am Eingabevektor X vorbei gezogen wird und das neuronale Netz dadurch instabil werden kann. Durch die Zustandsabhängigkeit der Lernkonstante α c vom zugehörigen Gewichtsvektor kann der Startwert α c (0) deutlich größer gewählt werden als bei LVQ1, z. B. 0.3 ([2]), so ein anfänglich schnelleres Training und folglich ein generell schneller konvergierendes Netz erzielt werden. Bei der OLVQ1 wird also jedem Gewichtsvektor eine eigene Lernrate zugewiesen, was ein schnelleres Lernen und damit ein effizienteres Netz zur Folge hat. 5 Zusammenfassung Zunächst wurde ein Überblick über das Clustering, also das Zusammenfassen der Daten des Eingaberaums zu Gruppen bzw. Clustern, und seine Bedeutung gegeben. Zudem wurde mittels des Clustering und dem dazu gehörigen K-Means-Algorithmus die Grundlage für das Verständnis unüberwachter Lernverfahren vermittelt. Daran anschließend wurde das überwachte Lernverfahren lernende Vektorquantisierung mit den dazugehörigen Algorithmen vorgestellt. LVQ1 modifiziert den Gewichtsvektor, der der Eingabe am ähnlichsten ist, entsprechend der Klassenzugehörigkeit. Die zweite Variante, LVQ2.1, verschiebt die Klassengrenzen. LVQ3 sorgt als Erweiterung der LVQ2.1 zusätzlich für eine Gleichverteilung der Gewichtsvektoren in den Klassen. Die optimierte Fassung der LVQ1, OLVQ1, weist jedem Gewichtsvektor eine eigene Lernrate zu, wodurch ein effizienteres Training erzielt werden kann. Literatur [1] R. Callan. The essence of Neural Networks. Prentice Hall 1999. Kap. 3.1 Clustering Patterns - Basic Ideas, pp. 59-62 [2] A. Zell. Simulation Neuronaler Netze. Addison-Wesley 1996. Kap. 14 Lernende Vektorquantisierung, pp. 171-178 [3] B. T. Luke. K-Means Clustering. (http://fconyx.ncifcrf.gov/ lukeb/kmeans.html; Download: 20. 2. 2005) 6