Nachbarschaftskarten · Verständlich erklärt

t-SNE verständlich erklärt

Eine Lieferfirma hält für jede Tour zwölf Zahlen fest und will daraus ein Bild auf einem Blatt Papier machen, auf dem ähnliche Touren nebeneinander liegen. Diese Seite zeigt, wie ein Verfahren das versucht und was man dem Bild glauben darf.

Zuletzt aktualisiert:

Teil 1 · Für Einsteiger

Ein Wort unbekannt? Das Begriffsverzeichnis erklärt es in wenigen Sätzen.

Ein Blatt Papier für zwölf Zahlen

Stellen Sie sich eine Lieferfirma vor. Zu jeder Tour hält sie zwölf Zahlen fest, zum Beispiel Strecke, Zahl der Stopps, Ladung und Verspätung. Solche Zahlen heißen Kennzahlen. Die Touren in diesem Text sind erfunden und am Rechner erzeugt.

Die Firma will wissen, welche Touren einander ähneln. Zwölf Spalten überblickt niemand. Also soll jede Tour ein Punkt auf einem Blatt Papier werden, und ähnliche Touren sollen nebeneinander liegen. Ein Blatt hat nur zwei Richtungen, links-rechts und oben-unten. Jeder Punkt braucht darum nur zwei Zahlen statt zwölf.

Dabei geht etwas verloren, denn zwölf Richtungen lassen sich nicht ohne Verlust auf zwei drücken. Das Verfahren, um das es hier geht, heißt t-SNE. Es rettet vor allem eines: wer wessen Nachbar ist.

Das Bild: eine Pinnwand mit Karten

Stellen Sie sich eine Pinnwand vor, an der für jede Tour eine Karte hängt. Ähnliche Touren sollen nah beieinander hängen. Das Verfahren braucht drei Schritte.

  • Nachbarn wählen. Aus den zwölf Zahlen wird für jede Tour berechnet, welche anderen Touren ihr am ähnlichsten sind. Man kann auch fragen: Wen würde diese Tour als Nachbarn wählen? Sehr ähnliche Touren bekommen dabei ein hohes Gewicht, unähnliche praktisch keines. Wie viele Nachbarn eine Tour ungefähr im Blick hat, legt man vorher fest. Diese Zahl heißt Perplexity. Wir sagen dafür kurz Nachbarzahl.
  • Karten aufhängen. Alle Karten beginnen dicht gedrängt in der Mitte der Pinnwand.
  • Zurechtrücken. Die Pinnwand soll die Nachbarschaften der Zahlen nachbilden. Hängen zwei Karten nah beieinander, obwohl die Zahlen sie nicht für Nachbarn halten, schiebt man sie auseinander. Hängen zwei Nachbarn der Zahlen weit auseinander, zieht man sie zusammen. Das wiederholt man viele Runden lang in kleinen Schritten. Wie groß ein Schritt ist, heißt Schrittweite.

In den ersten Runden zieht man die Nachbarn besonders stark zueinander. Dann sortieren sich zuerst die groben Gruppen, und erst danach die feinen Nachbarschaften.

Was die Karte gut kann

Die Beispieltouren hängen von zwei versteckten Treibern ab, etwa der Größe einer Tour und ihrem Zeitdruck. Ein Treiber ist eine Ursache, die mehrere Zahlen zugleich bewegt. Beim Erzeugen haben wir beide vorgegeben. So lässt sich prüfen, ob das Bild sie wiederfindet.

Der Zusammenhang ist gebogen. Die Touren liegen nicht auf einer geraden Ebene, sondern auf einer gewölbten Fläche, wie die Haut einer Orange. Zum Vergleich dient eine einfache, verbreitete Methode, die Hauptkomponentenanalyse (PCA). Sie legt gerade Achsen durch die Wolke und drückt sie flach, wie der Schatten eines Gegenstands an der Wand. Im Schatten können Teile übereinanderfallen, die auf der Fläche weit auseinander liegen.

t-SNE schaut nur auf nahe Nachbarn. Das hilft, weil auch eine gebogene Fläche auf kurzer Strecke fast eben ist. Ein Stadtplan stimmt für einen Stadtteil, obwohl die Erde rund ist. In der Messung am Beispiel fand t-SNE die beiden Treiber besser wieder als die PCA. Die Zahlen stehen im zweiten Teil.

Wenn der Platz knapp wird

Ein Problem bleibt: In zwölf Richtungen haben viele Touren Platz, die alle mittelweit voneinander entfernt sind, also weder Nachbarn noch ganz weit weg. Auf dem Blatt wird es dafür eng. Hielte man diese Abstände so streng wie in den Zahlen, klumpten die Karten in der Mitte. Darum erlaubt das Verfahren, dass solche Karten auf der Pinnwand weiter auseinanderhängen. Im Beispiel spielte das erst eine Rolle, wenn drei statt zwei Treiber dahinterstanden, etwa Größe, Zeitdruck und Verkehr.

Wo die Karte täuscht

Vier Fälle führen in die Irre.

  • Abstände. Das Verfahren kümmert sich um Nachbarn, nicht um die Weite zwischen Gruppen. Ein U-Bahn-Plan zeigt ebenso die Reihenfolge der Stationen und nicht die Entfernung. Am deutlichsten wird das bei Sonderfahrten, also einzelnen Touren mit extremem Zeitdruck, die wir zusätzlich eingestreut haben. Sie liegen weit von allen anderen entfernt, und für diese anderen Touren zählen sie bei der Wahl der Nachbarn praktisch nicht. Vermutlich drückt das Verfahren sie deshalb an den Rand der Wolke. Gemessen ist nur, dass die Abstände zwischen fernen Paaren verloren gehen. Schon wenn nur eine von hundert Touren eine Sonderfahrt war, fand das Bild die Treiber im Beispiel schlechter wieder als zuvor. Der PCA ging es dabei nicht schlechter.
  • Einstellungen. Ist die Nachbarzahl zu klein, zerfällt das Bild in Inseln. Dann verbindet vermutlich nichts mehr die Gruppen, die sich nur über entferntere Nachbarn berühren. Sind es zu wenige Runden, ist die Pinnwand noch nicht fertig sortiert. Ist die Schrittweite zu groß, schießen die Karten über das Ziel hinaus, wie beim zu heftigen Möbelrücken. Im Beispiel wurde das Bild bei jeder dieser drei Verstellungen schlechter.
  • Neue Touren. Die Rechnung sucht nur Plätze für die vorhandenen Karten. Das Verfahren selbst liefert keine Regel, wohin eine neue gehört. Eine grobe Näherung ist möglich, gehört aber nicht zum Verfahren. Genau geht es nur mit neuem Rechnen, und dabei verschieben sich auch die alten Karten. Im Beispiel verschoben sie sich je nach Datensatz unterschiedlich stark.
  • Rechenaufwand. Jede Runde vergleicht jede Tour mit jeder anderen. Mit mehr Touren wächst die Zahl der Vergleiche schneller als die Zahl der Touren.

Wie ernst ist das Beispiel zu nehmen?

Die Aussagen beschreiben erfundene Touren und getestete Einstellungen. Echte Daten können sich anders verhalten.

Häufige Missverständnisse

  • „Oben rechts heißt mehr Stopps, und große Gruppen sind vielfältiger.“ Nein. Dreht oder spiegelt man das Bild, ist es dasselbe Bild, die Richtung hat keinen Sinn. Auch die Größe einer Gruppe sagt wenig. Eine dichte und eine lockere Gruppe sehen ähnlich groß aus, weil jede Tour gleich viele Nachbarn im Blick hat.
  • „t-SNE ist der PCA überlegen.“ Nur bei gebogenem Zusammenhang, wie oben. Hängen die Zahlen gerade zusammen, muss nichts ausgebreitet werden. Im Beispiel ohne Biegung lagen beide nah beieinander, die PCA leicht vorn. Bei Sonderfahrten schnitt die PCA besser ab.
  • „Ein zweiter Lauf liefert dasselbe Bild.“ Nicht immer. Die Karten rücken schrittweise zurecht und bleiben je nach Start in verschiedenen Anordnungen hängen. Im Beispiel mit zwei Treibern und wenig Rauschen kamen aus vier zufälligen Starts dieselben Bilder, mit drei Treibern nicht.

Woran Sie das im Alltag erkennen

  • In Zeitung oder Studie erscheint ein buntes Punktbild ohne beschriftete Achsen, das Texte, Bilder oder Kunden in Haufen ordnet. So ein Bild kann mit diesem Verfahren entstanden sein. Lesen Sie nur, wer neben wem liegt.
  • Jemand zeigt das Bild als Beweis, dass es Gruppen gibt. Bei zu kleiner Nachbarzahl entstehen Inseln auch dort, wo keine Gruppen sind.

Was Sie mitnehmen

  • Fragen Sie bei jeder solchen Karte, ob sie Nachbarschaften zeigt oder Entfernungen, und lesen Sie nur das Erste daraus.
  • Fragen Sie, mit welchen Einstellungen gerechnet wurde und ob mehr als ein Lauf versucht wurde.
  • Prüfen Sie ein Verfahren erst an Daten, deren richtige Antwort Sie kennen, so wie hier an den vorgegebenen Treibern.

Selbst ausprobieren

Mit dem ersten Knopf unten öffnen Sie ein Programm zum Ausprobieren im Browser. Dort können Sie Nachbarzahl, Rundenzahl und Schrittweite verstellen. Zum Verstehen brauchen Sie es nicht. Der zweite Knopf führt zum zweiten Teil für Fachleute.

Hinweis: Alle Demos rechnen mit synthetischen oder frei verfügbaren Beispieldaten und laufen auf einem externen Anbieter (Datenschutz). Bitte geben Sie darin keine vertraulichen oder personenbezogenen Daten ein. Die Ergebnisse gelten für die jeweilige Demo-Instanz und lassen sich nicht ungeprüft auf reale Fälle übertragen; für darauf gestützte Entscheidungen übernehme ich keine Gewähr.

Teil 2 · Für Fachleute

Modell und Annahmen

Dieser Teil ist eigenständig lesbar. t-SNE (t-distributed Stochastic Neighbor Embedding, van der Maaten und Hinton) bettet \(n\) Punkte \(x_i \in \mathbb{R}^{12}\) so in die Ebene ein, dass Nachbarschaftswahrscheinlichkeiten erhalten bleiben. Die Demo rechnet die exakte Variante mit \(O(n^2)\) Zeit und Speicher je Iteration, ohne Näherungen und ohne scikit-learn, und vergleicht sie mit PCA, Isomap und LLE.

  • Daten: Zwölf Kennzahlen je Lieferroute in vier Gruppen zu je drei (Größe, Zeitdruck, Verkehr, Sonderfälle), erzeugt aus \(m\) versteckten Faktoren \(f \sim N(0, I_m)\). Die Kennzahlen laden auf den Faktor ihrer Gruppe (plus kleine Querladungen). Die Krümmung \(\kappa\) addiert \(\kappa\,B\,h(f)\): \(h(f)\) besteht aus Sinus, Kosinus, Quadraten und Produkten der Faktoren, die feste Matrix \(B\) bildet diese Terme auf die zwölf Kennzahlen ab. Rauschen und Sonderfahrten werden zuletzt ausgelost. Eine Sonderfahrt vergrößert den zweiten Faktor (den Zeitdruck-Faktor, bei \(m = 1\) den einzigen) um das Zehnfache, mit zufälligem Vorzeichen. t-SNE rechnet auf z-Werten, also standardisierten Kennzahlen (Mittelwert null, Streuung eins); mit \(f\) hat das nichts zu tun.
  • Schritt 1, Nachbarschaften im Original: Tour \(i\) wählt Tour \(j\) mit einer Gauß-Wahrscheinlichkeit \(p_{j|i}\). Die Breite \(\sigma_i\) wird je Tour per Binärsuche so bestimmt, dass die Perplexity (Voreinstellung 30) ihren Zielwert trifft. Danach wird symmetrisiert zu \(p_{ij}\).
  • Schritt 2, Zielraum: Bildpunkte \(y_i \in \mathbb{R}^2\) mit Student-t-Kern (ein Freiheitsgrad). Zum Vergleich gibt es den Gauß-Kern des symmetrischen SNE (der Vorläuferversion von t-SNE), in der Rechnung gegen Unterlauf verschoben.
  • Schritt 3, Optimierung: Gradientenabstieg auf \(\mathrm{KL}(P \Vert Q)\) mit Momentum 0,5, nach der Anfangsphase 0,8, adaptiven Gains (delta-bar-delta: der Schritt je Koordinate wächst, solange der Gradient sein Vorzeichen behält, und schrumpft bei Vorzeichenwechsel) und Early Exaggeration (\(P\) wird anfangs mit \(E = 12\) multipliziert, damit sich zuerst grobe Gruppen bilden, für \(\min(250, \text{Iterationen}/4)\) Iterationen). Voreinstellung: 750 Iterationen, Lernrate automatisch \(\max(n/E/4, 50)\) mit der eingestellten Early Exaggeration \(E\), also 50 für alle Tourenzahlen der Demo bei \(E = 12\), Start per PCA mit Standardabweichung 1e-4 oder zufällig. Divergiert die Optimierung, friert die Demo den letzten endlichen Stand ein und meldet das.
  • Vergleichsverfahren: PCA auf z-Werten, Isomap mit \(k = 10\) und LLE mit \(k = 14\) und Regularisierung 0,01, jeweils mit festen guten Einstellungen.
  • Auswertung: R² der wahren Faktoren, also Rekonstruktion von \(f\) aus den zwei Koordinaten per quadratischer Regression (an denselben Touren angepasst, also ohne Kreuzvalidierung; Mittel über die Faktoren, gewichtet mit ihrer Varianz; monotone Umparametrisierungen werden nicht bestraft). Abstandstreue: Pearson-Korrelation der Paarabstände im Bild mit den Paarabständen der wahren Faktoren, getrennt für die untere (nah) und die obere Hälfte (fern) der wahren Abstände. Trustworthiness nach Venna und Kaski mit \(k = 10\). KL-Divergenz. Procrustes-Abstand \(1 - (\sum s_i)^2\) mit den Singulärwerten \(s_i\) nach Zentrierung und Normierung beider Bilder: 0 heißt gleiches Bild bis auf Drehung, Spiegelung, Verschiebung und Maßstab, 1 ist die obere Schranke für unabhängige Bilder.

Die Formeln

Schritt 1: Die bedingte Wahrscheinlichkeit, dass Tour \(i\) die Tour \(j\) als Nachbarn wählt, ist

\[p_{j|i} = \frac{\exp(-\lVert x_i - x_j \rVert^2 / 2\sigma_i^2)}{\sum_{l \ne i} \exp(-\lVert x_i - x_l \rVert^2 / 2\sigma_i^2)}\]

Die Breite \(\sigma_i\) wird so gewählt, dass die Perplexity den Zielwert trifft. Dabei ist \(H(P_i) = -\sum_j p_{j|i} \log_2 p_{j|i}\) die Entropie in Bit:

\[\mathrm{Perp}(P_i) = 2^{H(P_i)}\]

Symmetrisiert ist \(p_{ij} = (p_{j|i} + p_{i|j}) / 2n\). Schritt 2: Im Zielraum gilt mit Student-t-Kern

\[q_{ij} = (1 + \lVert y_i - y_j \rVert^2)^{-1} \big/ \sum_{k \ne l} (1 + \lVert y_k - y_l \rVert^2)^{-1}\]

Der Gauß-Kern des symmetrischen SNE ist \(\exp(-\lVert y_i - y_j \rVert^2)\), ebenfalls über alle Paare normiert. Das ursprüngliche SNE (Hinton und Roweis) normiert dagegen zeilenweise. Schritt 3: Zielfunktion und Gradient (beim Gauß-Kern ohne den letzten Faktor) sind

\[\mathrm{KL}(P \Vert Q) = \sum_{i \ne j} p_{ij} \log \frac{p_{ij}}{q_{ij}}\]

\[\frac{\partial\, \mathrm{KL}}{\partial y_i} = 4 \sum_{j} (p_{ij} - q_{ij})\,(y_i - y_j)\,(1 + \lVert y_i - y_j \rVert^2)^{-1}\]

Die Trustworthiness bewertet das Bild über falsche Nachbarn. \(U_i\) sind die \(k\) nächsten Nachbarn von Tour \(i\) im Bild, die es im Original nicht sind, und \(r(i,j)\) ist der Rang von \(j\) unter den Nachbarn von \(i\) im Original:

\[T = 1 - \frac{2}{nk(2n - 3k - 1)} \sum_i \sum_{j \in U_i} (r(i,j) - k)\]

\(T = 1\) heißt, das Bild hat keine falschen Nachbarn.

Was die Formeln bedeuten

Rechnung dieser Seite, keine Messung der Demo. Vier Folgerungen aus den Formeln.

  • Anziehung und Abstoßung: Der Gradientenschritt ist \(y_i \leftarrow y_i - \eta\,\partial\mathrm{KL}/\partial y_i\) mit der Lernrate \(\eta\) (die Demo ergänzt Momentum und Gains). Für ein Paar mit \(p_{ij} > q_{ij}\) zeigt der Beitrag des Paars zum Schritt von \(y_i\) zu \(y_j\): Das Bild hält die beiden für zu weit entfernt, sie ziehen sich an. Für \(p_{ij} < q_{ij}\) stoßen sie sich ab. Im Minimum summieren sich die Beiträge je Punkt zu null.
  • Perplexity als Nachbarzahl: Liegt \(p_{j|i}\) gleichverteilt auf \(s\) Nachbarn, ist \(H(P_i) = \log_2 s\) und damit \(\mathrm{Perp}(P_i) = s\). Allgemein ist die Perplexity die Zahl gleich wahrscheinlicher Nachbarn, die dieselbe Entropie hätte. Bei Perplexity 30 verhält sich eine Zeile \(p_{j|i}\) wie eine Gleichverteilung auf 30 Nachbarn. Die symmetrisierte Matrix \(P\) ist nicht zeilenweise kalibriert.
  • Schwere Ränder: Der Student-t-Kern \(w(d) = (1 + d^2)^{-1}\) fällt wie \(d^{-2}\), der Gauß-Kern \(e^{-d^2}\) viel schneller. Bei \(d = 4\) ist \(w\) ein Siebzehntel des Höchstwerts, der Gauß-Kern liegt dort unter einem Millionstel, also mehr als fünf Zehnerpotenzen darunter. Im Bild dürfen mittelweite Abstände deshalb wachsen, ohne dass \(q_{ij}\) und damit die KL-Divergenz stark leiden.
  • Platzbedarf: In der Ebene lassen sich höchstens drei Punkte paarweise gleich weit voneinander anordnen, im \(\mathbb{R}^m\) höchstens \(m + 1\) (Ecken eines regelmäßigen Simplex). Haben die Daten mehr wesentliche Richtungen als das Bild, passen mittelweite Abstände nicht mehr hinein. Das ist eine Veranschaulichung des Crowding-Problems durch diese Seite (üblicher ist das Argument des Volumenwachstums mit dem Radius hoch \(m\)); die Demo misst nur, wie sich beide Kerne dabei schlagen.

Befunde: Vergleich und Sonderfahrten

Voreinstellung: 300 Touren, zwei versteckte Faktoren, Krümmung 1, Perplexity 30, 750 Iterationen, automatische Lernrate, PCA-Start, Generator-Seed 7. Alle vier Verfahren werden auf denselben Touren mit denselben Maßen bewertet. Die Trustworthiness von t-SNE beträgt dabei 0,99; für die Vergleichsverfahren liegt hier keine Zahl vor. Das R² gilt nur an den angepassten Touren. Einzelzahlen chaotischer Läufe können auf anderer Hardware oder Bibliotheksversion abweichen, die Richtung der Aussagen bleibt (lokale Nachrechnung dieser Seite, siehe Grenzen). Die Abstandstreue wird für nahe und ferne Paare getrennt berechnet, genannt ist nur die ferne Hälfte.

VerfahrenR² der wahren FaktorenAbstandstreue ferner Paare
t-SNE0,930,69
Isomap0,980,91
LLE0,960,74
PCA0,500,38

Sonderfahrten: Anteil der Touren mit zehnfach vergrößertem Zeitdruck-Faktor, sonst Voreinstellung. Das R² bei 0 % ist das der ersten Tabelle.

Anteil SonderfahrtenR² t-SNER² PCAR² IsomapR² LLE
1 %0,610,670,690,81
2 %0,450,650,650,25
5 %0,120,760,750,49
10 %0,160,750,780,41

t-SNE bricht schon bei 1 % ein. LLE ist bei 2 % und bei 10 % ebenfalls instabil. Bei 5 % liegt die Abstandstreue ferner Paare bei 0,14 für t-SNE und 0,95 für die PCA. Die Perplexity ändert daran nichts: Das R² beträgt bei Perplexity 5, 30 und 100 jeweils 0,12, 0,12 und 0,09. Auf geraden Daten (Krümmung 0) gibt es keinen Vorteil: R² 0,94 für t-SNE gegen 0,98 für die PCA. Dass das R² der PCA mit Sonderfahrten steigt, folgt vermutlich aus der Varianzgewichtung: Es wird von den Extremen dominiert und misst nicht, dass die PCA die Fläche besser entrollt (Folgerung dieser Seite). Fazit: Auf der gekrümmten Fläche liegt t-SNE vor der PCA, bleibt bei fernen Paaren aber hinter Isomap zurück, und schon wenige Sonderfahrten lassen sein R² einbrechen.

Befunde: Einstellungen

Perplexity-Fenster (R² und Abstandstreue in Abhängigkeit von der Perplexity): gekrümmte Daten, drei feste Seeds mit je 200 Touren, 500 Iterationen, automatische Lernrate, PCA-Start, Mittel über die Seeds.

PerplexityR² der wahren FaktorenAbstandstreue ferner Paare
30,580,00
50,750,26
100,920,65
200,860,61
300,900,59
500,930,73
800,880,65

Iterationen, Lernrate und Early Exaggeration (Voreinstellung, Generator-Seed 7, wenn nicht anders angegeben; die Zeilen zur Lernrate sind chaotisch und plattformabhängig, als Richtung zu lesen):

EinstellungBefund
Iterationen50: R² 0,64 und KL 0,49 statt 0,31; 100: R² 0,85; 500: R² 0,93.
Lernrate klein bis mittel2 bis 50 (in der Demo wählbar: 10 und 50): R² 0,93 bis 0,94; 200: 0,90 (lokal auch 0,88).
Lernrate 1000R² 0,26; über die Generator-Seeds 7 bis 10: 0,26, 0,59, 0,72 und 0,35. Chaotisch: bei einer lokalen Nachrechnung dieser Seite auf anderer Plattform lag der Wert für Seed 7 deutlich höher.
Lernrate 2000 statt automatisch 50KL 1,7 statt 0,31, Trustworthiness 0,85, R² 0,20. Über vier Datensätze: KL 1,2 bis 1,7, Trustworthiness 0,85 bis 0,91, R² 0,18 bis 0,51.
Early Exaggeration 1 statt 12R² 0,86; Abstandstreue ferner Paare 0,33 statt 0,69. Dabei steigt die automatische Lernrate von 50 auf 75; der Vergleich ändert also zwei Dinge zugleich.

Befunde: Kern, Start, neue Touren, Rechenzeit

Zielraum-Kern, Perplexity 30, sonst Voreinstellung, bei verschiedener Zahl \(m\) versteckter Faktoren:

\(m\)Student-t: R²Student-t: TrustworthinessStudent-t: KLGauß: R²Gauß: TrustworthinessGauß: KL
20,930,990,310,950,980,36
30,480,970,510,480,900,82
40,210,910,80divergiert in Iteration 960,53 (eingefrorener Stand)unbeschränkt

Bei \(m = 4\) divergiert der Gauß-Kern in der Anfangsphase mit Early Exaggeration. Die KL-Divergenz ist dann rechnerisch unbeschränkt. Mit Lernrate 10 statt 50 oder Early Exaggeration 4 statt 12 läuft er durch (KL 1,03). Fazit: Der Student-t-Kern lohnt sich erst, wenn die Fläche mehr als zwei Dimensionen hat. Start und neue Touren sind bei zwei Faktoren und wenig Rauschen unkritisch, sonst nicht. Die Rechenzeit wächst stark mit \(n\).

Start, neue Touren und Rechenzeit:

FrageBefund
Hängt das Bild vom Start ab? (vier zufällige Starts, Perplexity 30)\(m = 2\): alle vier Läufe liefern dasselbe Bild (Procrustes-Abstand 0,00 zum ersten Lauf). \(m = 3\): R² 0,36 bis 0,56, Procrustes-Abstand 0,46 bis 0,81. \(m = 2\) mit Rauschen 0,8: R² 0,73 bis 0,79, Procrustes-Abstand 0,21 bis 0,51.
Lassen sich neue Touren einbetten? (letzte 20 % zurückgehalten, 6 feste Seeds)Die Näherung, ein gewichteter Mittelwert der Koordinaten der 10 nächsten Trainings-Touren (kein Teil von t-SNE), erreicht R² 0,65 bis 0,95. Neu rechnen mit allen Touren verschiebt die schon eingebetteten um einen Procrustes-Abstand von 0,01 bis 0,47.

Rechenzeit: lokale Messung, 500 Iterationen, ein Lauf je Tourenzahl \(n\). t-SNE rechnet in jeder Iteration alle \(n^2\) Paare.

\(n\)t-SNEIsomapLLE
1000,09 s3 ms5 ms
4003,1 s0,19 s0,05 s
6007 s0,6 s0,12 s

Grenzen und was die Messung zeigt

Die Befunde sind Aussagen über künstlich erzeugte Touren mit bekannter Struktur. Was daraus folgt und was offen bleibt:

FrageAntwort
Gelten die Zahlen allgemein?Nein. Wenn nicht anders vermerkt, sind es Einzelwerte für einen Datensatz. Nur das Perplexity-Fenster mittelt über drei feste Seeds; Spannen über mehrere Datensätze oder Starts nennen die Zeilen zu Lernrate 1000 und 2000, zu Stabilität und zu neuen Touren. Die Demo prüft ihre Beispielszenarien nur gegen Bänder um diese Werte. Die Optimierung ist chaotisch: Lokal nachgerechnet (Rechnung dieser Seite, andere Plattform) wichen Einzelzahlen beim Perplexity-Fenster, bei Sonderfahrten von 2 bis 10 % und bei den Lernraten 200 und 1000 ab, die Richtung der Aussagen blieb. Lesen Sie solche Zahlen als Richtung.
Ist das R² ein verlässliches Maß für die Güte des Bildes?Nur eingeschränkt. Die quadratische Regression ist großzügig, und das R² einzelner Läufe schwankt stark; beim Gauß-Kern mit drei Faktoren ist es trotz schlechterer Trustworthiness und KL gleich. Als verlässlicher gelten laut Demo Trustworthiness und KL. Auch sie haben Grenzen: KL ist nur bei gleichem \(P\) vergleichbar, und die Trustworthiness bestraft falsche Nachbarn, nicht fehlende.
Was sagt der Einbruch bei Sonderfahrten aus?Das R² gewichtet die Faktoren mit ihrer Varianz. Mit Sonderfahrten dominiert der gestreckte Faktor, und t-SNE staucht gerade diese Extreme. Das Maß bestraft also, dass Abstände nicht erhalten bleiben. Die Demo zeigt die Trustworthiness live; lokal nachgerechnet (Rechnung dieser Seite, Generator-Seed 7) liegt sie bei 1 bis 10 % Sonderfahrten für t-SNE zwischen 0,98 und 0,99, für die PCA zwischen 0,82 und 0,88. Die Nachbarschaften bleiben dort also weitgehend erhalten, die Abstände nicht.
Gibt es bei großer Perplexity einen zweiten Einbruch?Nicht belegt. Bei zwei Faktoren ist nur der Einbruch unterhalb von etwa 10 verlässlich, danach ist die Kurve flach und zackig. Ein Einzellauf mit drei Faktoren hatte einen zweiten Einbruch gezeigt, über feste Seeds ließ er sich nicht reproduzieren (R² zwischen 0,38 und 0,53 für Perplexity 3 bis 80).
Zeigt die Demo, dass zu kleine Lernraten schaden?Nein, nur zu große. Bei 750 Iterationen gleichen die adaptiven Gains zu kleine Lernraten aus.
Stimmt die Umsetzung mit einer Referenz überein?Unter einer Bedingung. Bei 300 Touren und gleichem Zeitplan (1000 Iterationen, 250 Iterationen Early Exaggeration, PCA-Start) stimmen KL-Divergenz (0,3098) und Einbettung bis auf Drehung mit der exakten Methode von scikit-learn überein (Toleranzen im Test: KL-Abweichung unter zwei Hundertsteln, Procrustes-Abstand unter fünf Hundertsteln). Bei 120 Touren landen beide in verschiedenen lokalen Minima (KL 0,21 gegen 0,30). Die Optimierung ist chaotisch. Gradient (beide Kerne), Procrustes-Abstand und Trustworthiness sind zusätzlich gegen finite Differenzen bzw. scipy und scikit-learn geprüft.
Zeigt die Demo, was t-SNE bei echten Clustern leistet?Nein. Eine Datenmenge mit echten Clustern wurde nicht gebaut; die Daten sind eine gekrümmte Fläche. Aussagen über Clustertrennung sind nicht gedeckt. Die fehlende globale Struktur zeigt sich stattdessen an den Sonderfahrten.
Darf man Gruppengrößen und Abstände zwischen Gruppen lesen?Nein. Achsen und Abstände im Bild haben keine feste Bedeutung. Folgerung dieser Seite aus der Konstruktion, nicht gemessen: Weil jede Zeile \(p_{j|i}\) dieselbe Perplexity hat, erscheinen dichte Gruppen nicht kompakter als lockere.
Wie weit reicht der Rechenzeitbefund?Es ist eine lokale Messung mit einem Lauf je Tourenzahl; die gemessene Steigung hängt von Rechner und Speicher ab. Der exakte Algorithmus ist auf etwa 600 Touren ausgelegt (eine Setzung; Zeit und Speicher wachsen je Iteration mit \(n^2\)). Größere Datensätze brauchen Näherungen (Barnes-Hut, FFT), die nicht gebaut sind.
Gilt das für echte Daten?Das zeigt die Demo nicht. Getestet sind nur die Kennzahlen des Generators.

Erweiterungen und Verweise

Die Reihe der Demos zur Dimensionsreduktion setzt t-SNE nach PCA, Isomap und LLE und lässt UMAP, PaCMAP und einen Autoencoder folgen, jeweils mit eigener Demo. Ob sie die hier gezeigten Schwächen beheben, zeigt erst die jeweilige Demo. Die Übersicht steht auf der Seite zum Thema (Knopf unten).

Quellen

  • van der Maaten, L., Hinton, G. (2008): Visualizing data using t-SNE. Journal of Machine Learning Research 9, 2579–2605.
  • Hinton, G., Roweis, S. (2002): Stochastic neighbor embedding. Advances in Neural Information Processing Systems 15.
  • Venna, J., Kaski, S. (2001): Neighborhood preservation in nonlinear projection methods: An experimental study. ICANN 2001, Lecture Notes in Computer Science 2130, 485–491.
  • Wattenberg, M., Viégas, F., Johnson, I. (2016): How to use t-SNE effectively. Distill.
  • Quelltext, Beispiele und Tests der Demo: github.com/sebastian-hanisch/tsne-demo.

Die genannten Arbeiten wurden für diese Seite nicht nachgeschlagen; die Angaben stammen aus dem Gedächtnis des Autors und sind nicht gegen die Originale geprüft. Die Namen van der Maaten und Hinton sowie Venna und Kaski nennt die Demo selbst. Die Rechnungen im Abschnitt „Was die Formeln bedeuten“ sind Standardwissen bzw. Rechnung dieser Seite.