Глоссарий

t-распределенное стохастическое встраивание соседей (t-SNE)

Изучи t-SNE, мощную технику для визуализации высокоразмерных данных. Узнай о ее использовании, преимуществах и применении в AI и ML.

Обучай модели YOLO просто
с помощью Ultralytics HUB.

Узнай больше

t-distributed Stochastic Neighbor Embedding (t-SNE) - это мощная техника снижения размерности, предназначенная в первую очередь для визуализации высокоразмерных наборов данных в низкоразмерном пространстве, обычно двух- или трехмерном. Разработанная Лоренсом ван дер Маатеном и Джеффри Хинтоном, t-SNE превосходно раскрывает лежащую в основе данных локальную структуру, такую как кластеры и многообразия. Благодаря этому сложные наборы данных, созданные или обработанные моделями искусственного интеллекта (AI) и машинного обучения (ML), легче интерпретировать с помощью визуального осмотра. Он широко используется в различных областях, включая компьютерное зрение (CV) и обработку естественного языка (NLP).

Как работает t-SNE

Основная идея t-SNE заключается в том, чтобы отобразить высокоразмерные точки данных в низкоразмерное пространство (например, двумерный график) таким образом, чтобы сохранить сходство между точками. Он моделирует сходство между парами высокоразмерных точек как условные вероятности, а затем пытается найти низкоразмерное вложение, в котором условные вероятности между отображенными точками будут одинаковыми. Этот процесс направлен на сохранение локальной структуры - точки, которые находятся близко друг к другу в высокоразмерном пространстве, должны оставаться близко друг к другу на низкоразмерной карте.

В отличие от линейных методов, таких как анализ главных компонент (PCA), t-SNE является нелинейным и вероятностным. Это позволяет ему улавливать сложные нелинейные взаимосвязи, например кривые многообразия, которые PCA может пропустить. Алгоритм вычисляет сходство, используя гауссово распределение в высокоразмерном пространстве и t-распределение Стьюдента (с одной степенью свободы) в низкоразмерном пространстве. Использование t-распределения помогает отделить несхожие точки дальше друг от друга на низкоразмерной карте, смягчая "проблему тесноты", когда точки стремятся сбиться вместе. Оптимальное вложение находится путем минимизации расхождения (в частности, расхождения Куллбэка-Лейблера) между двумя вероятностными распределениями с помощью таких методов оптимизации, как градиентный спуск. За более глубоким техническим пониманием обращайся к оригинальной статье о t-SNE.

t-SNE против PCA

Хотя и t-SNE, и PCA являются распространенными методами уменьшения размерности, они существенно различаются:

  • Линейность: PCA - линейная техника, а t-SNE - нелинейная. PCA находит главные компоненты, которые максимизируют дисперсию, по сути, вращая данные. t-SNE моделирует попарное сходство.
  • Фокус: PCA нацелен на сохранение глобальной структуры и максимальной дисперсии в данных. t-SNE ставит во главу угла сохранение локальной структуры (окрестностей точек).
  • Пример использования: PCA часто используется для сжатия данных, подавления шума и в качестве этапа предварительной обработки данных перед применением других алгоритмов ML. t-SNE в основном используется для визуализации и изучения данных благодаря своей способности выявлять кластеры.
  • Интерпретируемость: Оси на графике PCA представляют собой главные компоненты и имеют четкую математическую интерпретацию, связанную с дисперсией. Оси и расстояния между кластерами на графике t-SNE не имеют такой прямой глобальной интерпретации; основное внимание уделяется относительной группировке точек.

Приложения в искусственном интеллекте и ML

t-SNE служит бесценным инструментом визуализации для понимания сложных, высокоразмерных данных, часто встречающихся в конвейерах ИИ и МЛ, например, для изучения вкраплений, выученных моделями глубокого обучения.

  • Визуализация характеристик изображений: В компьютерном зрении t-SNE может визуализировать высокоразмерные карты признаков или вкраплений, создаваемые конволюционными нейронными сетями (CNN), как, например, в Ultralytics YOLO модели, используемые для обнаружения объектов или классификации изображений. Применяя t-SNE к признакам, извлеченным из таких наборов данных, как ImageNet или COCO, исследователи могут увидеть, научилась ли модель группировать похожие изображения или классы объектов вместе в пространстве признаков, обеспечивая понимание модели. Это помогает анализировать производительность модели, выходя за рамки стандартных показателей точности (см. "Показатели производительностиYOLO ").
  • Исследование вкраплений слов: В NLP t-SNE используется для визуализации вкраплений слов (например, из Word2Vec, GloVe или BERT) в 2D. Это позволяет увидеть семантические связи; например, такие слова, как "король", "королева", "принц" и "принцесса", могут образовывать отдельные кластеры или демонстрировать значимые относительные позиции, демонстрируя качество языкового моделирования. Такие инструменты, как TensorFlow Projector, часто используют t-SNE для визуализации вкраплений.
  • Понимание обучающих данных: До или во время обучения модели t-SNE может помочь визуализировать структуру самих обучающих данных, потенциально выявляя отдельные кластеры, выбросы или проблемы с маркировкой в наборах данных, управляемых такими платформами, как Ultralytics HUB.

Соображения

Хотя t-SNE и является мощным средством визуализации, у него есть некоторые соображения:

  • Вычислительные затраты: из-за парных вычислений он может быть вычислительно дорогим и медленным для очень больших наборов данных. Здесь могут помочь такие техники, как аппроксимация t-SNE или применение PCA сначала.
  • Гиперпараметры: Результаты могут быть чувствительны к таким гиперпараметрам, как "perplexity" (связан с количеством рассматриваемых ближайших соседей) и количество итераций для градиентного спуска.
  • Глобальная структура: t-SNE фокусируется на локальной структуре; относительные расстояния между кластерами на итоговом графике могут не совсем точно отражать разделение в исходном высокомерном пространстве. Размеры кластеров также могут вводить в заблуждение. Реализации доступны в библиотеках вроде Scikit-learn и фреймворках вроде PyTorch.
Читать полностью