Learning Vector Quantization


 2.0 Der LVQ- Algorithmus

/4//14/

Das Prinzip der Lernenden-Vektor-Quantisierung (Learning Vector Quantization) wurde 1988 von T. Kohonen vorgestellt.
Beim LVQ- Ansatz handelt es sich um einen überwachten Lernalgorithmus (supervised learning), wobei die Klassenzugehörigkeit der Eingabevektoren in der Lernphase bekannt sein muß.

2.1 Beschreibung des LVQ- Algorithmus

Die Erklärung des LVQ-Algorithmus setzt voraus, daß die grundlegenden Begriffe, wie bspw.  Eingabevektor, Netzeingabe oder Aktivierungsfunktion dem Leser bekannt sind. Bevor der  LVQ - Algorithmus dargestellt wird, werden die verwendeten Zeichen und Gleichungen kurz beschrieben.
 

                               (4)
 
Damit sind die wesentlichen Bestandteile des LVQ-Algorithmus kurz eingeführt. Die Anwendung dieser Gleichungen sowie Empfehlungen für die Wahl der Parameter werden durch die Schritte 1 bis 4 auf der nächsten Seite näher vorgestellt. Erfahrungen zur Wahl der Parameter für einige Anwendungsfälle beinhaltet Abschnitt 5 dieses Kapitels.

1. Schritt: Initialisierung
Zu Beginn des Trainings wird die Gewichtsmatrix W initialisiert. Die Komponenten der Gewichtsvektoren können mit zufälligen oder aus den Trainingsdaten gewonnenen Werten besetzt werden. Aus den Trainingsdaten können bspw. Median und Mittelwert zur Initialisierung der Gewichte genutzt werden.
Weiterhin wird die initiale Lernschrittweite festgelegt, Kohonen schlägt aufgrund numerischer Untersuchungen Werte von (0) = 0.l ... 0.3 vor.
Während der Initialisierungsphase muß auch die Klassenzugehörigkeit der einzelnen Neuronen festgelegt werden. Die Anzahl der Neuronen und deren Zuordnung zu den Klassen hängt stark von der Struktur der Trainingsdaten ab. Fehlt jeglicher Ansatz über die Komplexität der Trainingsdaten sollte mit gleicher Anzahl von Neuronen je Klasse begonnen werden. Über die Analyse der Gewinnerhäufigkeiten jedes Neurons lassen sich während des Trainingsvorgangs Rückschlüsse auf eine verbesserte Wahl der Neuronenanzahl ziehen.
 

2. Schritt: Ermittlung des Gewinnerneurons und Änderung der Gewichtsvektoren
Die Ermittlung des Gewinnerneurons  erfolgt durch Gl. (2). Als nächstes wird das Gewicht des Gewinners nach (4) verändert. Dieser Schritt wird für alle festgelegten Eingabevektoren des Trainingsdatensatzes wiederholt. Die vollständige Abarbeitung des Schrittes 2 wird Epoche bezeichnet.
 

3. Schritt: Reduzierung der Lernschrittweite
Man sollte mit einer kleinen Lernschrittweite starten (0)=0.l ... 0.3 und dann monoton fallen lassen. Im Verlauf des Lernvorgangs empfiehlt es sich auf Werte um 0.01 und darunter zu verringern. Der Verlauf (t)  ist unkritisch, sowohl lineares als auch nichtlineares Absenken von  ist möglich.

4. Schritt: Abbruch
Der Trainingsabbruch ist stark problemabhängig. Deshalb liegen keine allgemeinen Abbruchkriterien vor. Ein Abbruchkriterium währe die Anzahl von Iterationen festlegen. Die Empfehlungen für die Iterationsanzahl unterscheiden sich. Eine Empfehlung /13//4/ für die Iterationsanzahl ist t=z*m (m Anzahl der Neuronen; z=30..50). Der Parameter z sollte 200 nicht übersteigen, da das Netz sich sonst auf die Trainingsdaten spezialisiert. /14/ schlägt eine Iterationsanzahl von t=z*k (z=20..100, k ist die Anzahl aller festgelegten Eingabevektoren des Trainingsdatensatzes) vor. Solange die Anzahl der festgelegten Iterationen nicht erreicht ist, wird mit Schritt 2 fortgefahren.

Die Gleichung (4) beschreibt die Lernphase des LVQ1. Modifikationen des Lernvorgangs bilden die Varianten  LVQ2, LVQ3 und OLVQ1. In meiner Arbeit verwende ich nur den LVQ1 und den OLVQ1, benenne diese beiden jedoch allgemein mit LVQ-Algorithmus.
 
Abb. 2.2 Vereinfachtes Schema eines LVQ- Netzes mit fester Zuordnung der Neuronen zur Ausgabeschicht. 
In dieser Skizze ist der Eingabevektor  , der mit all seinen Komponenten  mit der Gewichtsmatrix W verbunden ist, zu sehen. Die Ausgabedes  selektierten Neurons  ist 1, alle anderen  geben 0 aus. 
 


Learning Vector Quantization