t-distributed stochastic neighbor embedding (t-SNE) è un algoritmo di riduzione della dimensionalità sviluppato da Geoffrey Hinton e Laurens van der Maaten, ampiamente utilizzato come strumento di apprendimento automatico in molti ambiti di ricerca. È una tecnica di riduzione della dimensionalità non lineare che si presta particolarmente all'embedding di dataset ad alta dimensionalità in uno spazio a due o tre dimensioni, nel quale possono essere visualizzati tramite un grafico di dispersione. L'algoritmo modella i punti in modo che oggetti vicini nello spazio originale risultino vicini nello spazio a dimensionalità ridotta, e oggetti lontani risultino lontani, cercando di preservare la struttura locale.

L'algoritmo si articola in due fasi principali. Nella prima fase viene costruita una distribuzione di probabilità che ad ogni coppia di punti nello spazio originale ad alta dimensionalità associa un valore di probabilità elevato se i due punti sono simili, basso se sono dissimili. Quindi viene definita una seconda distribuzione di probabilità analoga, nello spazio a dimensione ridotta. L'algoritmo quindi minimizza la divergenza di Kullback-Leibler delle due distribuzioni tramite discesa del gradiente, riorganizzando i punti nello spazio a dimensione ridotta.

Algoritmo

Dato un insieme di N {\displaystyle N} oggetti x 1 , , x N {\displaystyle \mathbf {x} _{1},\dots ,\mathbf {x} _{N}} in uno spazio ad alta dimensionalità, t-SNE costruisce una distribuzione di probabilità p i j {\displaystyle p_{ij}} , simmetrica nelle due variabili e proporzionale alla similarità tra i punti x i {\displaystyle \mathbf {x} _{i}} e x j {\displaystyle \mathbf {x} _{j}} , definita come:

p i j = p j i p i j 2 N {\displaystyle p_{ij}={\frac {p_{j\mid i} p_{i\mid j}}{2N}}}

dove

p j i = exp ( x i x j 2 / 2 σ i 2 ) k i exp ( x i x k 2 / 2 σ i 2 ) , {\displaystyle p_{j\mid i}={\frac {\exp(-\lVert \mathbf {x} _{i}-\mathbf {x} _{j}\rVert ^{2}/2\sigma _{i}^{2})}{\sum _{k\neq i}\exp(-\lVert \mathbf {x} _{i}-\mathbf {x} _{k}\rVert ^{2}/2\sigma _{i}^{2})}},}

L'ampiezza delle gaussiane σ i {\displaystyle \sigma _{i}} è scelta in maniera tale che la perplessità della distribuzione condizionale uguagli un valore di perplessità fornito come iperparametro dell'algoritmo. In questo modo, l'ampiezza si adatta alla densità dei punti, con valori di σ i {\displaystyle \sigma _{i}} minori in aree ad alta densità.

t-SNE cerca di costruire una mappa d {\displaystyle d} -dimensionale y 1 , , y N {\displaystyle \mathbf {y} _{1},\dots ,\mathbf {y} _{N}} (con y i R d {\displaystyle \mathbf {y} _{i}\in \mathbb {R} ^{d}} ) i cui punti riflettano il meglio possibile la similarità p i j {\displaystyle p_{ij}} nello spazio di partenza. Allo scopo, la similarità q i j {\displaystyle q_{ij}} tra due punti y i {\displaystyle \mathbf {y} _{i}} e y j {\displaystyle \mathbf {y} _{j}} nello spazio a dimensionalità ridotta viene definita come:

q i j = ( 1 y i y j 2 ) 1 k m ( 1 y k y m 2 ) 1 {\displaystyle q_{ij}={\frac {(1 \lVert \mathbf {y} _{i}-\mathbf {y} _{j}\rVert ^{2})^{-1}}{\sum _{k\neq m}(1 \lVert \mathbf {y} _{k}-\mathbf {y} _{m}\rVert ^{2})^{-1}}}}

La differenza principale è l'uso nello spazio a dimensionalità ridotta di una distribuzione t di Student con un grado di libertà al posto della gaussiana, le cui code pesanti consentono di modellare meglio la dissimilarità tra oggetti distanti. La posizione y i {\displaystyle \mathbf {y} _{i}} dei punti nello spazio a dimensione ridotta è quindi calcolata minimizzando tramite discesa del gradiente la divergenza di Kullback-Leibler della distribuzione Q {\displaystyle Q} rispetto a P {\displaystyle P} :

K L ( P | | Q ) = i j p i j log p i j q i j {\displaystyle KL(P||Q)=\sum _{i\neq j}p_{ij}\log {\frac {p_{ij}}{q_{ij}}}}

L'uso della divergenza di Kullback-Leibler come funzione obiettivo consente di avere penalità elevate se punti vicini nello spazio originale ( p i j {\displaystyle p_{ij}} elevato) vengono considerati lontani nello spazio a dimensionalità ridotta ( q i j {\displaystyle q_{ij}} piccolo), mentre il viceversa ha un'influenza minore, tendendo quindi a preservare la struttura locale della distribuzione dei punti. Il risultato è una mappa a bassa dimensionalità che riflette le similarità tra i punti nello spazio ad alta dimensionalità.

Note

Altri progetti

  • Wikimedia Commons contiene immagini o altri file sul t-distributed stochastic neighbor embedding

Collegamenti esterni

  • Laurens van der Maaten, t-Distributed Stochastic Neighbor Embedding, su lvdmaaten.github.io.
  • (EN) Implementazione di t-SNE in C realizzata da Laurens van der Maaten (approssimazione con il metodo di Barnes-Hut), su GitHub.
  • Google Tech Talk, Visualizing Data Using t-SNE, su YouTube.
  • (EN) Implementazione di t-SNE nel framework ELKI (approssimazione con il metodo di Barnes-Hut), su GitHub.

Tdistributed stochastic neighbor embedding visualization of the

tSNE TDistributed Stochastic Neighbor Embedding Explained

tdistributed stochastic neighbor embedding (tSNE) distribution of

tDistributed Stochastic Neighbor Embedding (tSNE) by Mehmet Akif

Visualization of standardized data by tdistributed stochastic neighbor