t-SNE-CUDA — это оптимизированная имплементация алгоритма t-SNE на GPU. t-SNE используется для визуализации многомерных данных в 2D. t-SNE-CUDA работает в 50-700 раз быстрее предыдущих реализаций. При этом оптимизация не влияет на качество кластеров. t-SNE-CUDA масштабирует алгоритм t-SNE для таких датасетов компьютерного зрения, как ImageNet. Доступ к модели открыт по ссылке. Все текущие доступные реализации t-SNE вычисляются на CPU. Самая быстрая имплементация требует 10 минут, чтобы визуализировать эмбеддинги для датасета CIFAR-10, в котором 50 тыс. изображений.
Оптимизированная реализация основана на параллелизации стандартной формулировки алгоритма и методах решения n-body задачи. В t-SNE-CUDA используется метод Barnes-Hut и техники для приближения ближайших соседей.
Современные датасеты являются сложными для анализа из-за высокой размерности данных и количества объектов в выборке. Существующие методы визуализации, которые применяют понижение размерности до 2-х или 3-х, часто неэффективны для таких датасетов. t-SNE-CUDA — это реализация алгоритма t-distributed Symmetric Neighbour Embedding (t-SNE) для визуализации датасетов и моделей. С помощью алгоритма можно визуализировать активации нейросети на полном датасете ImageNet. Ранее это требовало значительных вычислительных ресурсов. Визуализации активаций нейросети помогают делать выводы об использовании L2 метрики в пространстве эмбеддингов.
Что внутри t-SNE-CUDA
Чтобы сократить вычислительную сложность t-SNE исследователи использовали библиотеку FAISS. В FAISS реализованы алгоритма поиска близких векторов в пространстве векторов. Все алгоритмы в FAISS оптимизированы для вычислений на GPU и масштабированы для крупных датасетов.
Сравнение подходов для кластеризации
Исследователи сравнили t-SNE-CUDA с существующими реализациями t-SNE. Ниже видно, что t-SNE-CUDA значительно быстрее конкуриующих реализаций. При этом качество разделения на кластеры незначительное. t-SNE-CUDA работает за 7 секунд для датасета MNIST (60000 изображений x 768 измерений).