Self-Organizing Map

Ein gesätes Kohonen-Gitter lernt vier Cluster; Quantisierungsfehler vergleichen und einzelne Updates untersuchen.

Über dieses Tool

Ein 12×12-Kohonen-Gitter lernt zweidimensionale Daten ohne Klassenlabels. Die Punkte sind gleichmäßig in vier kleinen Quadraten um (0,3/0,7;0,3/0,7) verteilt, nicht gaußverteilt. Der Startwert bestimmt Daten, zufällige Gewichte in [0,1)² und Beispielreihenfolge.

Jedes Update zieht einen Datenpunkt mit Zurücklegen. Der nächstgelegene Gewichtsvektor gewinnt (euklidischer Abstand; Gleichstand nach Zeile/Spalte). Jede Gittereinheit bewegt sich um η exp(−d²/(2σ²)) zum Punkt; d ist der Abstand im Gitter, nicht im Datenraum.

Für Update t von 0 bis T−1 gilt η=η₀(1−t/T), σ=max(0,4;3(1−t/T)). Angezeigt werden die zuletzt angewendeten Werte; die letzte Lernrate ist deshalb nicht genau null. Ein Schritt verarbeitet ein Beispiel; die Animation zwölf Updates pro sichtbarem Frame. Pause/Fortsetzen bewahrt Gewichte, Eingabeänderung oder Reset verwirft den Lauf.

Der Quantisierungsfehler ist der mittlere euklidische Abstand jedes Datenpunkts zum nächsten Gewichtsvektor. Anfangs- und aktueller Fehler verwenden alle erzeugten Punkte. Das ist keine Trefferquote oder topologische Fehlergröße und muss nicht bei jedem Update sinken. CSV exportiert alle 144 Gewichtsvektoren und Laufparameter.

Linien verbinden benachbarte Gittereinheiten. Kreuzungen können bleiben; Zufallsinitialisierung und kurzer Lernplan garantieren keine geordnete Karte. Die Achsen sind dimensionslose Datenkoordinaten. Dies ist ein begrenztes Lernbeispiel, kein allgemeiner Clusteringdienst.

PDP Handbook: SOM