t-SNE
forkortelse for t-distributed Stochastic Neighbor Embedding
t-SNE er en ikke-lineær dimensionalitetsreduktionsteknik, der bruges til at visualisere højdimensionelle data i et lavdimensionelt rum (typisk 2D eller 3D) ved at bevare lokale nabo-strukturer.
Kort fortalt
t-SNE er en metode, der gør det muligt at se mønstre i komplekse, højdimensionelle data ved at projicere dem ned i et todimensionalt eller tredimensionalt plot, hvor lignende punkter placeres tæt på hinanden.
- Kategori
- teknik
- Niveau
- øvet
- Udtale
- /tiː sniː/
Betydninger
1- 1
En ikke-lineær dimensionalitetsreduktionsalgoritme, der beregner en sandsynlighedsfordeling over par af højdimensionelle punkter og en tilsvarende fordeling i et lavdimensionelt plot, og derefter minimerer Kullback-Leibler-divergensen mellem de to fordelinger.
- Ved hjælp af t-SNE kan vi visualisere MNIST-håndskrevne cifre i 2D, hvor cifrene fra samme klasse danner tydelige klynger. — van der Maaten & Hinton, 2008
- t-SNE er ofte bedre end PCA til at bevare lokale strukturer i data, men er mere beregningstung.
Hvornår bruges det
t-SNE anvendes primært til eksplorativ dataanalyse og visualisering af højdimensionelle datasæt, fx til at inspicere clusters eller strukturer i billeddata, tekstdata eller biologiske data. Det er særligt populært inden for maskinlæring og deep learning til at visualisere embeddings eller repræsentationer fra f.eks. en neural networks sidste lag. Man skal dog være opmærksom på, at t-SNE er en stokastisk metode, og resultaterne kan variere mellem kørsler.
Formel
P(j|i) = exp(-||x_i - x_j||² / 2σ_i²) / Σ_{k≠i} exp(-||x_i - x_k||² / 2σ_i²); Q(j|i) = (1 + ||y_i - y_j||²)^(-1) / Σ_{k≠l} (1 + ||y_k - y_l||²)^(-1); KLD = Σ_i Σ_j P(j|i) log(P(j|i) / Q(j|i))Kodeeksempel
from sklearn.manifold import TSNE
import matplotlib.pyplot as plt
# X: high-dimensional data (n_samples, n_features)
tsne = TSNE(n_components=2, random_state=42)
X_embedded = tsne.fit_transform(X)
plt.scatter(X_embedded[:, 0], X_embedded[:, 1], c=labels)
plt.show()Kort eksempel på brug af t-SNE fra scikit-learn til at reducere højdimensionelle data til 2D og plotte dem med farver efter etiketter.
Oprindelse
Termen 't-SNE' er en forkortelse for 't-distributed Stochastic Neighbor Embedding'. 't-distributed' refererer til brug af Student's t-fordeling i det lavdimensionelle rum, hvilket afhjælper crowding-problemet. 'Stochastic Neighbor Embedding' beskriver den sandsynlighedsbaserede tilgang til at bevare nabo-relationer. Metoden blev introduceret af Laurens van der Maaten og Geoffrey Hinton i 2008.