Следует ли считать уменьшение размерности для визуализации «закрытой» проблемой, решаемой с помощью t-SNE?


23

Я много читал об алгоритме sne для уменьшения размерности. Я очень впечатлен производительностью на «классических» наборах данных, таких как MNIST, где достигается четкое разделение цифр ( см. Оригинальную статью ):t

T-SNE MNIST

Я также использовал его, чтобы визуализировать функции, которым научилась нейронная сеть, которую я тренирую, и я был очень доволен результатами.

Итак, насколько я понимаю

t sne имеет хорошие результаты для большинства наборов данных и имеет довольно эффективную реализацию - с методом приближения Барнса-Хата. Тогда, можем ли мы потенциально сказать, что проблема «уменьшения размерности», по крайней мере, с целью создания хороших 2D / 3D визуализаций, теперь является «закрытой» проблемой?O(nlogn)

Я знаю, что это довольно смелое утверждение. Мне интересно понять, каковы потенциальные «подводные камни» этого метода. То есть, есть ли случаи , в которых мы знаем , что это не полезно? Кроме того, каковы «открытые» проблемы в этой области?

Ответы:


16

Точно нет.

Я согласен, что t-SNE - это удивительный алгоритм, который работает очень хорошо, и это был настоящий прорыв в то время. Тем не мение:

  • у него есть серьезные недостатки;
  • некоторые недостатки должны быть решаемы;
  • уже есть алгоритмы, которые в некоторых случаях работают заметно лучше;
  • свойства многих t-SNE все еще плохо изучены.

Кто-то связал с этим очень популярным отчетом о некоторых недостатках t-SNE: https://distill.pub/2016/misread-tsne/ (+1), но он обсуждает только очень простые наборы игрушечных данных, и я считаю, что он не соответствует очень хорошо с проблемами, с которыми сталкиваются на практике при работе с t-SNE и связанных алгоритмов на реальных данных. Например:

  1. t-SNE часто не в состоянии сохранить глобальную структуру набора данных;
  2. t-SNE имеет тенденцию страдать от "переполненности", когда растет выше ~ 100k;N
  3. Barnes-Hut во время выполнения слишком медленно для большого .N

Я кратко расскажу обо всех трех ниже.


  1. t-SNE часто не в состоянии сохранить глобальную структуру набора данных.

    Рассмотрим этот одноклеточный набор данных RNA-seq из института Аллена (корковые клетки мыши): http://celltypes.brain-map.org/rnaseq/mouse . В нем ~ 23 тыс. Клеток. Мы априори знаем, что этот набор данных имеет много значимой иерархической структуры, и это подтверждается иерархической кластеризацией. Существуют нейроны и ненейронные клетки (глиа, астроциты и т. Д.). Среди нейронов есть возбуждающие и тормозные нейроны - две очень разные группы. Например, среди ингибирующих нейронов есть несколько основных групп: Pvalb-экспрессирующий, SSt-экспрессирующий, VIP-экспрессирующий. В любой из этих групп, кажется, есть еще несколько кластеров. Это отражено в иерархическом дереве кластеризации. Но вот t-SNE, взятый по ссылке выше:

    введите описание изображения здесь

    Нейронные клетки имеют серый / коричневый / черный цвет. Возбуждающие нейроны синего / бирюзового / зеленого цвета. Ингибирующие нейроны имеют оранжевый / красный / фиолетовый цвет. Можно было бы объединить эти основные группы, но этого не происходит: как только t-SNE разделяет группу на несколько кластеров, они могут оказаться произвольно расположенными. Иерархическая структура набора данных потеряна.

    Я думаю, что это должно быть решаемой проблемой, но я не знаю о каких-либо хороших принципиальных разработках, несмотря на некоторые недавние работы в этом направлении (включая мою собственную).

  2. t-SNE имеет тенденцию страдать от "переполненности", когда растет выше ~ 100kN

    t-SNE очень хорошо работает с данными MNIST. Но учтите это (взято из этой статьи ):

    введите описание изображения здесь

    При наличии 1 млн точек данных все кластеры объединяются (точная причина этого не очень ясна), и единственный известный способ уравновесить это с помощью грязных хаков, как показано выше. По своему опыту я знаю, что это происходит и с другими подобными большими наборами данных.

    Это можно увидеть с самим MNIST (N = 70k). Посмотри:

    введите описание изображения здесь

    Справа - т-SNE. Слева - UMAP , новый захватывающий метод в активной разработке, который очень похож на более старый большой Vis . UMAP / largeVis раздвигают кластеры намного дальше. Точная причина этого ИМХО неясна; Я бы сказал, что здесь еще многое нужно понять и, возможно, многое улучшить.

  3. Время выполнения Barnes-Hut слишком велико для большогоN

    Ванильный t-SNE непригоден для более ~ 10k. До недавнего времени стандартным решением был t-SNE Barnes-Hut, однако для близкого к ~ 1 млн, оно становится мучительно медленным. Это один из главных пунктов продажи UMAP, но на самом деле в недавней статье было предложено ускоренное FFT t- SNE (FIt-SNE), которое работает намного быстрее, чем t- SNE Barnes-Hut, и, по крайней мере, так же быстро, как UMAP. Я рекомендую всем использовать эту реализацию отныне.NN

    введите описание изображения здесь

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


7

Вот отличный анализ того, как изменение параметров при запуске t-SNE влияет на некоторые очень простые наборы данных: http://distill.pub/2016/misread-tsne/ . В целом, t-SNE, кажется, хорошо распознает многомерные структуры (включая отношения, более сложные, чем кластеры), хотя это зависит от настройки параметров, особенно значений недоумения.


7

Я все еще хотел бы услышать другие комментарии, но я покажу свой собственный ответ, поскольку я вижу это. В то время как я искал более «практичный» ответ, есть два теоретических «недостатка» для t-sne, которые стоит упомянуть; первый менее проблематичен, а второй обязательно следует учитывать:

  1. Функция стоимости t-sne не является выпуклой, поэтому мы не гарантируем достижение глобального оптимума : другие методы уменьшения размерности (Isomap, LLE) имеют функцию выпуклой стоимости. В t-sne это не так, следовательно, есть некоторые параметры оптимизации, которые необходимо эффективно настроить для достижения «хорошего» решения. Однако, несмотря на потенциальную теоретическую ошибку, стоит упомянуть, что на практике это вряд ли является недостатком, поскольку кажется, что даже «локальный минимум» алгоритма t-sne превосходит (создает лучшие визуализации), чем глобальный минимум других методов. ,

  2. Проклятие внутренней размерности : при использовании t-sne важно помнить, что это, по сути, многообразное обучение.алгоритм. По сути, это означает, что t-sne (и другие подобные методы) предназначены для работы в ситуациях, в которых исходное высокое измерение является только искусственно высоким: в данных имеется внутреннее более низкое измерение. т.е. данные «сидят» на низкоразмерном многообразии. Хороший пример, который нужно иметь в виду, - последовательные фотографии одного и того же человека: хотя я мог бы представлять каждое изображение в количестве пикселей (большой размер), внутренняя размерность данных фактически ограничена физическим преобразованием точек (в в этом случае 3D вращение головы). В таких случаях t-sne работает хорошо. Но в тех случаях, когда внутренняя размерность высока или точки данных располагаются на сильно меняющемся многообразии, ожидается, что t-sne будет работать плохо, поскольку его основное предположение - локальная линейность на многообразии - нарушается.

Для практического пользователя, я думаю, это подразумевает два полезных предложения:

  1. Перед выполнением снижения размерности для методов визуализации, всегда старается сначала выяснить , если есть на самом деле существует более низкое внутреннее измерение данных вы имеете дело с.

  2. Если вы не уверены относительно 1 (а также в целом), может быть полезно, как предлагает оригинальная статья, «выполнить t-sne для представления данных, полученного из модели, которая представляет сильно изменяющееся множество данных эффективно в ряде нелинейных слоев, таких как авто-кодировщик ". Таким образом, комбинация авто-кодировщика + t-sne может быть хорошим решением в таких случаях.


Привет @ galoosh33! Мне интересно, если у вас уже был шанс взглянуть на мой ответ. Было ли это полезно? Я понятия не имею, если вы все еще интересуетесь этими 1,5 годами после того, как задаете этот вопрос, поэтому я буду признателен за некоторую обратную связь ... В своем собственном принятом ответе вы говорите, что вы все равно хотели бы услышать дальнейшие мысли, но это также было некоторыми время назад :)
амеба говорит восстановить монику

1
спасибо за отличный ответ @amoeba! Я рассмотрю это в эти выходные.
galoosh33
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.