Al tratar con la transmisión de datos, es posible que no desee / necesite incrustar todos los puntos en el historial en un solo mapa t-SNE. Como alternativa, puede realizar una incrustación en línea siguiendo estos simples pasos:
elija una ventana de tiempo de duración T, el tiempo suficiente para que cada patrón de interés aparezca al menos un par de veces en la duración de la ventana.
Desplace la ventana a medida que los datos fluyen, con un paso de tiempo dt mucho más pequeño que T. Para cada posición de la ventana, calcule una incrustación t-SNE de los puntos de datos en la ventana de tiempo.
sembrar cada incrustación con el resultado del anterior. En t-SNE, uno necesita elegir las coordenadas iniciales de los puntos de datos en el espacio de baja dimensión. En nuestro caso, debido a que elegimos dt mucho más pequeño que T, dos incrustaciones sucesivas comparten la mayoría de sus puntos de datos. Para todos los puntos de datos compartidos, haga coincidir sus coordenadas iniciales en la incrustación actual con sus coordenadas finales en la incrustación anterior . Este paso asegurará que patrones similares tengan una representación consistente en incrustaciones sucesivas. (en la implementación de sklearn en python, el parámetro semilla es "init". Por defecto, la implementación de sklearn establece la posición inicial de los puntos al azar)
Nota 1: es importante que los patrones de interés aparezcan al menos una vez en una ventana de tiempo determinada, para que la memoria de la representación no se pierda a medida que la ventana se desliza por el conjunto de datos. De hecho, t-SNE generalmente no converge a una solución única sino solo a un mínimo local, por lo que si se pierde la memoria, un patrón similar podría representarse de maneras muy diferentes en dos instancias de una incrustación.
Nota 2: Este método es particularmente relevante cuando se trata de series de tiempo no estacionarias, donde uno desea rastrear patrones que evolucionan lentamente a través del tiempo. De hecho, cada incrustación se ajusta específicamente a la pequeña ventana de tiempo en la que se calcula, asegurando que captura la estructura local temporalmente de la mejor manera (al contrario de una incrustación completa de todo el conjunto de datos no estacionario).
Nota 3: en este método, las incrustaciones sucesivas no se pueden paralelizar, porque se necesita el resultado de la incrustación anterior para sembrar la siguiente. Sin embargo, debido a que la semilla (es decir, las coordenadas iniciales de los puntos) está bien elegida para la mayoría de los puntos (todos los puntos compartidos entre incrustaciones sucesivas), una incrustación generalmente converge muy rápido, solo en unas pocas iteraciones.
Para ver un ejemplo de aplicación de este método a series temporales no estacionarias, consulte este artículo ( ICLR 2016, Aprendizaje de representaciones estables en un mundo cambiante con t-SNE en línea: prueba de concepto en el pájaro cantante ), donde se aplicó con éxito para rastrear la aparición de sílabas a través del desarrollo en el pájaro cantor.