Ao lidar com dados de streaming, talvez você não queira / precise incorporar todos os pontos do histórico em um único mapa t-SNE. Como alternativa, você pode executar uma incorporação online seguindo estas etapas simples:
escolha uma janela de tempo com duração T, tempo suficiente para que cada padrão de interesse apareça pelo menos duas vezes na duração da janela.
role a janela enquanto os dados entram, com um intervalo de tempo dt muito menor que T. Para cada posição da janela, calcule uma incorporação t-SNE dos pontos de dados na janela de tempo.
semeie cada incorporação com o resultado da anterior. No t-SNE, é necessário escolher as coordenadas iniciais dos pontos de dados no espaço de baixa dimensão. No nosso caso, como escolhemos dt muito menor que T, duas incorporações sucessivas compartilham a maioria de seus pontos de dados. Para todos os pontos de dados compartilhados, combine suas coordenadas iniciais na incorporação atual com as coordenadas finais na incorporação anterior . Esta etapa garantirá que padrões semelhantes tenham uma representação consistente em sucessivas incorporações. (na implementação do sklearn em python, o parâmetro seed é "init". Por padrão, a implementação do sklearn define a posição inicial dos pontos aleatoriamente)
Nota 1: É importante que os padrões de interesse apareçam pelo menos uma vez em uma determinada janela de tempo, para que a memória da representação não se perca à medida que a janela desliza pelo conjunto de dados. De fato, o t-SNE normalmente não converge para uma solução única, mas apenas para um mínimo local; portanto, se a memória for perdida, um padrão semelhante poderá ser representado de maneiras muito diferentes em duas instâncias de uma incorporação.
Nota 2: Esse método é particularmente relevante ao lidar com séries temporais não estacionárias, nas quais se deseja rastrear padrões que evoluem lentamente ao longo do tempo. De fato, cada incorporação é aqui especificamente ajustada à pequena janela de tempo em que é calculada, garantindo que captura a estrutura local local da melhor maneira possível (ao contrário de uma incorporação completa de todo o conjunto de dados não estacionário).
Nota 3: Nesse método, as incorporações sucessivas não podem ser paralelizadas, porque é necessário o resultado da incorporação anterior para propagar a próxima. No entanto, como a semente (ou seja, as coordenadas iniciais dos pontos) é bem escolhida para a maioria dos pontos (todos os pontos compartilhados entre incorporações sucessivas), uma incorporação normalmente converge muito rapidamente, em apenas algumas iterações.
Para um exemplo de aplicação deste método a séries temporais não estacionárias, consulte este artigo ( ICLR 2016, Aprendendo representações estáveis em um mundo em mudança com o t-SNE on-line: prova de conceito no pássaro canoro ), onde foi aplicado com sucesso rastrear o surgimento de sílabas no desenvolvimento do pássaro canoro.