Как стать автором
Обновить

Комментарии 12

Для решения проблем воспроизводимости t-SNE и UMAP нужно использовать параметрические версии этих алгоритмов. Вот пример (https://pubs.rsc.org/en/content/articlelanding/2019/ra/c8ra10182e) как это можно использовать, например, в химии. Основная идея, вы вместо прямой оптимизации координат точек в пространстве низкой размерности, как это происходит в t-SNE, обучайте нейросеть (обычный стек dense слоев) лоссом от t-SNE. Эта нейросеть на вход принимает ваше пространство высокой размерности, а выход размерности 2 или 3, то есть координаты в пространстве низкой размерности.

Теперь, если к вам пришли новые данные, вы скармливаете их нейросети, и получаете детерминированные проекции для новых данных. Так, можно например строить карты химического пространства.

Прикольно, не знала о таком способе

В аналитической химии иногда используются подобные хемометрические подходы: в спектроскопии, например.

Это чем-то похоже на карты Кохонена или я ошибаюсь?

Возможно, стоило бы отметить какая максимальная размерность может быть получена на выходе. PCA и UMAP ее не ограничивают, а t-SNE (по крайней мере в scikit) ограничен лишь 3-мя... Для наборов данных с высокой истинной размерностью, это может быть критичным. Например, если использовать алгоритмы снижения размерности для последующего применения ML, а не просто визуализации.

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

big_TSNE = TSNE(

        n_components=10,

        method="exact"

    )

Удивительно, это же те самые Barnes и Hut, которые занимались моделированием поведения галактик. Как, оказывается, недалеко от астрономии до ML.

Было интересно как вообще можно интерпретировать результаты работы снижения размерности в визуализации данных? Например, с цифрами все относительно понятно, цифр 10, получили 10 кластеров. Допустим у меня два набора данных изображений (микроскопии). Что можно понять из визуализации этих двух наборов данных? Как их можно сравнить по полученным в итоге картинкам?

Сильно зависит. Какого рода данные и чем отличаются два набора?

Спасибо за отличную статью, было очень интересно.

Вопрос про число кластеров (чем-то похож на вопрос выше). Число кластеров ведь задаётся каким-то параметром, а не определяется алгоритмом напрямую?

Кластеризация не имеет отношения к снижению размерности, и в примерах с цифрами данные хорошо кластеризованы изначально по своей природе. Вы можете искать кластеры в ваших данных, к примеру, с помощью алгоритма k-средних, для этого не нужно снижать их размерность.

В оригинальной статье про t-SNE было указано практическое ограничение около 10 тысяч точек.

Как обстоят дела с этим делом сейчас? Какой порядок современные алгоритмы и железо могут переварить? Десятки миллионов точек потянет? Имею в виду мощности, доступные энтузиасту, то есть примерно одна RTX 4090.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации