Каковы различия между автоэнкодерами и t-SNE?

12

Насколько я знаю, как автоэнкодеры, так и t-SNE используются для нелинейного уменьшения размерности. Каковы различия между ними и почему я должен использовать одно против другого?

RockTheStar
источник

Ответы:

8

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

Яннис Ассаэль
источник
Таким образом, в этом смысле означает ли это, что автоэнкодеру лучше находить меньшее измерение, когда меньшее измерение больше, чем 3D? (Поскольку я предполагаю, что если нижнее измерение велико, t-SNE может работать не так хорошо?)
RockTheStar,
2
Существует много типов автоэнкодеров (разреженных, вариационных, многоуровневых, сверточных и т. Д.) В зависимости от вашей задачи. Они могут быть очень эффективными при обнаружении вложений меньшего размера на основе ошибки реконструкции. Поэтому, если ваша задача состоит в том, чтобы найти оптимальное пространство меньшего размера (даже 2D), я бы посоветовал вам выбрать подходящий для вашей задачи авто-кодер. Если вам придется делать визуализации, то, вероятно, t-SNE будет вашим выбором. как сохранение соседних расстояний, может привести к лучшей визуализации.
Яннис Ассаэль
2

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

Из «Изучения параметрического вложения путем сохранения локальной структуры» Лорен ван дер Маатен ( https://lvdmaaten.github.io/publications/papers/AISTATS_2009.pdf )

User128525
источник
Это не «бумага t-SNE». Стандартный t-SNE является непараметрическим.
амеба
1
Спасибо @amoeba за ваш комментарий к этому. Я редактировал пост.
Пользователь128525
1

Автоэнкодер и t-SNE могут использоваться вместе для лучшей визуализации в данных большого размера, как описано в [1]:

В частности, для 2D-визуализации t-SNE, вероятно, является наилучшим алгоритмом, но обычно для этого требуются относительно небольшие данные. Таким образом, хорошей стратегией для визуализации отношений сходства в многомерных данных является начало с использованием автоматического кодера для сжатия ваших данных в низкоразмерное пространство (например, 32-мерное), а затем использование t-SNE для сопоставления сжатых данных с двухмерной плоскостью. ,


[1] https://blog.keras.io/building-autoencoders-in-keras.html

MoH
источник
0

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

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

ArtificiallyIntelligence
источник