UMAP¶
UMAP (Uniform Manifold Approximation and Projection) — это алгоритм машинного обучения, предназначенный для снижения размерности данных и их визуализации. Относится к классу методов нелинейного вложения многообразий (manifold learning). Позволяет преобразовывать многомерные наборы данных (например, с тысячами признаков) в двумерное или трёхмерное пространство, сохраняя при этом как глобальную топологическую структуру, так и локальные взаимосвязи между точками. Разработан в 2018 году Лайлом Мак-Иннесом (Leland McInnes) и Джоном Хили (John Healy). Широко применяется в биоинформатике, анализе текстов, компьютерном зрении и исследовании нейросетей.
¶История
Алгоритм UMAP был впервые представлен в 2018 году в препринте статьи «UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction» (опубликована в 2020 году в Journal of Open Source Software). Авторы — Лайл Мак-Иннес и Джон Хили, работавшие в то время в компании Tutte Institute for Mathematics and Computing (Канада). Разработка была мотивирована стремлением создать метод, который сочетал бы преимущества двух популярных алгоритмов: t-SNE (высокое качество визуализации локальной структуры) и Isomap/Laplacian Eigenmaps (сохранение глобальной геометрии). В отличие от t-SNE, UMAP изначально проектировался на основе строгой математической теории — римановой геометрии и теории симплициальных комплексов, что позволило сделать алгоритм более быстрым и масштабируемым.
¶Математические основы
UMAP основан на трёх ключевых идеях:
- Построение взвешенного графа ближайших соседей. Для каждой точки данных вычисляются k ближайших соседей (гиперпараметр n_neighbors). Расстояния до соседей нормализуются, и строится граф, где рёбрам присваиваются веса, отражающие вероятность того, что две точки связаны.
- Топологическое представление. Граф интерпретируется как аппроксимация риманова многообразия, на котором лежат данные. Используется понятие симплициального комплекса — топологического пространства, составленного из точек, отрезков, треугольников и их многомерных аналогов. UMAP строит взвешенный симплициальный комплекс, который представляет топологию исходных данных.
- Оптимизация низкоразмерного вложения. Строится аналогичный симплициальный комплекс в низкоразмерном пространстве (обычно 2D или 3D). Затем с помощью стохастического градиентного спуска минимизируется кросс-энтропия между двумя комплексами — то есть подбираются координаты точек в низкоразмерном пространстве так, чтобы их топологическая структура максимально соответствовала исходной.
¶Основные параметры
UMAP имеет несколько ключевых гиперпараметров, которые позволяют настраивать поведение алгоритма:
- n_neighbors (по умолчанию 15) — количество ближайших соседей, учитываемых при построении графа. Малые значения (2–10) делают алгоритм чувствительным к локальной структуре, большие (50–200) — к глобальной.
- min_dist (по умолчанию 0.1) — минимальное расстояние между точками в низкоразмерном пространстве. Низкие значения (0.0–0.1) приводят к плотному расположению кластеров, высокие (0.5–1.0) — к более равномерному распределению.
- n_components (по умолчанию 2) — размерность выходного пространства (обычно 2 или 3).
- metric (по умолчанию 'euclidean') — метрика расстояния, используемая для вычисления близости точек (например, 'euclidean', 'manhattan', 'cosine', 'correlation').
¶Сравнение с t-SNE
UMAP часто сравнивают с t-SNE (t-distributed Stochastic Neighbor Embedding), который до 2018 года был стандартом для визуализации многомерных данных. Основные отличия:
| Характеристика | UMAP | t-SNE |
|---|---|---|
| Скорость | Значительно быстрее (особенно на больших наборах данных) | Медленнее, особенно при >10 000 точек |
| Сохранение глобальной структуры | Хорошее (кластеры расположены относительно друг друга) | Плохое (расстояния между кластерами неинформативны) |
| Сохранение локальной структуры | Отличное | Отличное |
| Воспроизводимость | Детерминирован при фиксированном seed | Стохастичен, результаты могут варьироваться |
| Масштабируемость | Хорошая (до 1 млн точек и более) | Ограниченная (обычно до 100 000 точек) |
| Математическая обоснованность | Основан на топологии и римановой геометрии | Основан на вероятностной модели |
¶Применение
¶Биоинформатика и геномика
UMAP активно используется для визуализации данных одноклеточного RNA-секвенирования (scRNA-seq). Позволяет различать типы клеток и выявлять редкие популяции, которые не видны при использовании PCA. Например, в проекте Human Cell Atlas UMAP применяется для кластеризации сотен тысяч клеток.
¶Обработка естественного языка
Применяется для визуализации векторных представлений слов (word embeddings) и документов (doc2vec, BERT). Позволяет увидеть семантические кластеры — например, группы слов, связанных по смыслу, или тематические группы документов.
¶Компьютерное зрение
Используется для визуализации признаков, извлечённых из изображений с помощью свёрточных нейросетей. Помогает анализировать, как нейросеть «видит» данные — например, разделение изображений по классам или по стилям.
¶Анализ нейросетей
Исследователи применяют UMAP для изучения внутренних представлений (latent space) глубоких нейросетей. Позволяет отслеживать, как меняется организация признаков в процессе обучения.
¶Разведочный анализ данных
В общем случае UMAP используется как инструмент для поиска аномалий, кластеров и неочевидных закономерностей в многомерных данных — от финансовых транзакций до данных сенсоров.
¶Реализации
Наиболее популярная реализация — библиотека umap-learn для Python (авторы — Мак-Иннес и Хили). Доступна через pip (pip install umap-learn). Также существуют реализации для R (пакет umap), Julia, JavaScript (для браузерной визуализации) и встроенные модули в библиотеках scikit-learn (экспериментальный) и TensorFlow.
¶Критика
Несмотря на популярность, UMAP имеет ряд ограничений:
- Чувствительность к гиперпараметрам. Неправильный выбор n_neighbors и min_dist может привести к артефактам — например, к ложным кластерам или разрыву реальных групп.
- Отсутствие вероятностной интерпретации. В отличие от t-SNE, UMAP не даёт вероятностных оценок принадлежности к кластерам.
- Сложность интерпретации. Как и любой метод нелинейного снижения размерности, UMAP не гарантирует, что расстояния в низкоразмерном пространстве соответствуют реальным расстояниям в исходном пространстве.
- Нестабильность на малых выборках. При количестве точек менее 100–200 результаты могут быть ненадёжными.
¶Интересные факты
- Название «Uniform Manifold Approximation and Projection» отражает математическую основу: алгоритм предполагает, что данные равномерно распределены на некотором многообразии (uniform manifold), и строит его аппроксимацию.
- UMAP может использоваться не только для визуализации, но и для предобработки данных перед обучением классификаторов — снижение размерности часто улучшает качество и скорость обучения.
- В 2020 году авторы выпустили расширение UMAP для инкрементального обучения (parametric UMAP), позволяющее обрабатывать данные потоком.
¶Источники
- McInnes, L., Healy, J., & Melville, J. (2018). UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction. arXiv:1802.03426.
- McInnes, L., Healy, J., & Saul, N. (2020). UMAP: Uniform Manifold Approximation and Projection. Journal of Open Source Software, 5(46), 861.
- Документация библиотеки umap-learn (https://umap-learn.readthedocs.io/).
- Becht, E., et al. (2019). Dimensionality reduction for visualizing single-cell data using UMAP. Nature Biotechnology, 37(1), 38–44.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →


