3

t-SNE 알고리즘의 병렬 버전이있는 Python 라이브러리가 있습니까? 멀티 코어/패러렐 t-SNE 알고리즘이 있습니까?t-SNE의 병렬 버전

나는 t-SNE를 사용하여 나의 어휘에서 모든 word2vecs의 차원 (300d -> 2d)을 줄이려고하고있다.

문제 : 어휘의 크기는 약 130000이며 t-SNE를 진행하는 데 너무 오래 걸립니다.

답변

2

예 t-SNE의 barnes-hutt 구현의 병렬 버전이 있습니다. https://github.com/DmitryUlyanov/Multicore-TSNE

+0

이 구현 방법은 대량의 tsne을 parallize하려는 사용자에게 실망 스러울 수 있습니다. tsne 알고리즘은 몇 단계가 있습니다. 첫 번째 단계 중 하나는 가장 가까운 이웃을 계산하는 것입니다. 일반적으로 그리 오래 걸리므로 병렬화 할 수 있습니다. 여기서 가리키는 구현은 가장 가까운 이웃 계산을 병렬 처리합니다. 후자의 단계는 그라디언트 디센트입니다. 대부분의 계산이 이루어지는 곳입니다. 이것은 쉽게 병렬화되지 않으며이 답변에서 지적한 구현에서 연속적으로 실행됩니다. – conradlee

+0

필자는 의견에 동의하지 않습니다. 위의 링크 된 Python 구현과 R 구현 (https://github.com/jkrijthe/Rtsne/issues/16#issuecomment-313717443)에서 제공하는 벤치 마크는 알고리즘을 실행하는 데 걸리는 시간. 속도 향상이 tSNE의 특정 단계에서만 명백한 경우에도 속도를 넘지 않도록 할 것입니다. – JulianS

+0

상당히 빠른 Multicore-TSNE 구현을 확인할 수 있습니다. 불행히도이 라이브러리는 3 (perplexity, n_iter, angle) 매개 변수만을 지원하고 경고없이 다른 것을 무시합니다. – Timomo