스트리밍 데이터를 처리 할 때 기록의 모든 포인트를 단일 t-SNE 맵에 포함하지 않아도됩니다. 대안으로, 다음과 같은 간단한 단계를 수행하여 온라인 임베딩 을 수행 할 수 있습니다 .
각 관심 패턴이 윈도우 지속 시간에 적어도 두 번 나타날 정도로 충분히 긴 지속 시간 T의 시간 창을 선택하십시오.
T보다 훨씬 작은 시간 단계 dt를 사용하여 데이터가 스트리밍 될 때 창을 스크롤합니다. 창의 각 위치에 대해 시간 창에 데이터 포인트를 포함하는 t-SNE를 계산합니다.
이전의 결과로 각각의 임베드를 시드하십시오. t-SNE에서, 저 차원 공간에서 데이터 포인트의 초기 좌표를 선택해야합니다. 우리의 경우 T보다 훨씬 작은 dt를 선택하기 때문에 두 개의 연속 된 임베딩이 대부분의 데이터 포인트를 공유합니다. 모든 공유 데이터 포인트 에 대해 현재 임베딩의 초기 좌표와 이전 임베딩의 최종 좌표를 일치시킵니다 . 이 단계는 유사한 패턴이 연속적인 임베딩에서 일관되게 표현되도록합니다. ( python 의 sklearn 구현 에서 seed 매개 변수는 "init"입니다. 기본적으로 sklearn 구현은 점의 초기 위치를 임의로 설정합니다)
참고 1 : 관심있는 패턴이 주어진 시간 창에 적어도 한 번 나타나도록하여 데이터 세트를 통해 창을 슬라이드 할 때 표현의 메모리가 손실되지 않도록하는 것이 중요합니다. 실제로 t-SNE는 일반적으로 고유 한 솔루션으로 수렴되지 않고 로컬 최소값으로 만 수렴되므로 메모리가 손실되면 두 가지 삽입 방식으로 유사한 패턴이 매우 다른 방식으로 표현 될 수 있습니다.
참고 2 :이 방법은 시간이 지남에 따라 느리게 진화하는 패턴을 추적하려는 비 정적 시계열을 처리 할 때 특히 관련이 있습니다. 실제로, 각각의 임베딩은 여기에서 계산되는 작은 시간 창에 구체적으로 영향을 미쳐, 가장 좋은 방식으로 일시적으로 로컬 구조를 캡처합니다 (반드시 전체 비 정적 데이터 세트의 전체 임베딩).
참고 3 :이 방법에서는 다음 임베딩을 시드하기 위해 이전 임베딩의 결과가 필요하므로 연속 임베딩을 병렬화 할 수 없습니다. 그러나 시드 (즉, 점의 초기 좌표)는 대부분의 점 (성공한 임베딩 사이의 모든 공유 점)에 대해 잘 선택되므로 일반적으로 임베딩은 몇 번의 반복만으로 매우 빠르게 수렴됩니다.
비 정적 시계열에이 방법을 적용한 예는이 기사 ( ICLR 2016, 온라인 t-SNE를 사용하여 변화하는 세계에서 안정적인 표현 학습 : 송 버드의 개념 증명 )를 참조하십시오. 송 버드의 개발 과정에서 음절의 출현을 추적합니다.