Quando si ha a che fare con lo streaming di dati, potrebbe non essere necessario / necessario incorporare tutti i punti nella cronologia in una singola mappa t-SNE. In alternativa, puoi eseguire un incorporamento online seguendo questi semplici passaggi:
scegli una finestra temporale di durata T, abbastanza lunga da far apparire ogni schema di interesse almeno un paio di volte nella durata della finestra.
scorrere la finestra mentre i dati scorrono, con un intervallo di tempo dt molto più piccolo di T. Per ogni posizione della finestra, calcolare un incorporamento t-SNE dei punti dati nella finestra temporale.
semina ogni incorporamento con il risultato del precedente. In t-SNE, è necessario scegliere le coordinate iniziali dei punti dati nello spazio a bassa dimensione. Nel nostro caso, poiché scegliamo dt molto più piccolo di T, due incorporamenti successivi condividono la maggior parte dei loro punti dati. Per tutti i punti dati condivisi, abbina le loro coordinate iniziali nell'incorporamento attuale alle coordinate finali nell'incorporamento precedente . Questo passaggio garantirà che modelli simili abbiano una rappresentazione coerente tra gli incastri successivi. (nell'implementazione di sklearn in Python, il parametro seed è "init". Per impostazione predefinita, l'implementazione di sklearn imposta la posizione iniziale dei punti in modo casuale)
Nota 1: è importante che i modelli di interesse appaiano almeno una volta in una determinata finestra temporale, in modo che la memoria della rappresentazione non vada persa mentre la finestra scorre attraverso il set di dati. In effetti, t-SNE in genere non converge in una soluzione unica ma solo in un minimo locale, quindi se si perde la memoria, un modello simile potrebbe essere rappresentato in modi molto diversi in due istanze di un incorporamento.
Nota 2: questo metodo è particolarmente rilevante quando si ha a che fare con serie temporali non stazionarie, in cui si desidera tenere traccia di schemi che si evolvono lentamente nel tempo. In effetti, ogni incorporamento è qui adattato in modo specifico alla piccola finestra temporale su cui è calcolato, assicurando che catturi la struttura temporale nel modo migliore (al contrario di un completo incorporamento dell'intero set di dati non stazionari).
Nota 3: in questo metodo non è possibile parallelizzare gli incorporamenti successivi, poiché per seminare il successivo è necessario il risultato dell'incorporamento precedente. Tuttavia, poiché il seme (ovvero le coordinate iniziali dei punti) è ben scelto per la maggior parte dei punti (tutti i punti condivisi tra gli incastri successivi), un inclusione in genere converge molto velocemente, solo in poche iterazioni.
Per un esempio di applicazione di questo metodo a serie temporali non stazionarie, vedere questo articolo ( ICLR 2016, Apprendimento delle rappresentazioni stabili in un mondo che cambia con t-SNE online: prova del concetto nell'uccello canoro ), dove è stato applicato con successo per tracciare l'emergere di sillabe attraverso lo sviluppo dell'uccello canoro.