25 votos

¿Debería considerarse la reducción de la dimensionalidad para la visualización un problema "cerrado", resuelto mediante t-SNE?

He estado leyendo mucho sobre $t$ -sne algoritmo de reducción de la dimensionalidad. Estoy muy impresionado con el rendimiento en conjuntos de datos "clásicos", como MNIST, donde consigue una clara separación de los dígitos ( ver artículo original ):

t-SNE MNIST

También lo he utilizado para visualizar las características aprendidas por una red neuronal que estoy entrenando y he quedado muy satisfecho con los resultados.

Así que, como yo lo entiendo:

$t$ -sne tiene buenos resultados en la mayoría de los conjuntos de datos, y cuenta con una implementación bastante eficiente. $O(n \log n)$ con el método de aproximación Barnes-Hut. Entonces, ¿podríamos decir potencialmente que el problema de la "reducción de la dimensionalidad", al menos a efectos de crear buenas visualizaciones 2D/3D, es ahora un problema "cerrado"?

Soy consciente de que es una afirmación bastante atrevida. Me interesa saber cuáles son los posibles "escollos" de este método. Es decir, ¿hay algún caso en el que sepamos que es no ¿útil? Además, ¿cuáles son los problemas "abiertos" en este campo?

18voto

zowens Puntos 1417

Desde luego que no.

Estoy de acuerdo en que t-SNE es un algoritmo asombroso que funciona extremadamente bien y que supuso un verdadero avance en su momento. Sin embargo:

  • tiene graves deficiencias;
  • algunas de las deficiencias debe ser resoluble;
  • ya hay algoritmos que funcionan notablemente mejor en algunos casos;
  • Muchas de las propiedades de t-SNE siguen siendo poco conocidas.

Alguien ha enlazado a este relato muy popular sobre algunas deficiencias de t-SNE: https://distill.pub/2016/misread-tsne/ (+1), pero sólo analiza conjuntos de datos de juguete muy sencillos y me parece que no se corresponde muy bien con los problemas a los que uno se enfrenta en la práctica cuando trabaja con t-SNE y algoritmos relacionados con datos del mundo real. Por ejemplo:

  1. t-SNE no suele preservar la estructura global del conjunto de datos;
  2. t-SNE tiende a sufrir de "hacinamiento" cuando $N$ crece por encima de ~100k;
  3. El tiempo de ejecución de Barnes-Hut es demasiado lento para grandes $N$ .

A continuación me referiré brevemente a los tres.


  1. t-SNE no suele preservar la estructura global del conjunto de datos.

    Consideremos este conjunto de datos RNA-seq de una sola célula del instituto Allen (células corticales de ratón): http://celltypes.brain-map.org/rnaseq/mouse . Tiene ~23k células. Sabemos a priori que este conjunto de datos tiene mucha estructura jerárquica significativa, y esto lo confirma la agrupación jerárquica. Hay neuronas y células no neuronales (glía, astrocitos, etc.). Entre las neuronas, hay neuronas excitadoras e inhibidoras, dos grupos muy diferentes. Entre las neuronas inhibitorias, por ejemplo, hay varios grupos principales: Las que expresan Pvalb, las que expresan SSt, las que expresan VIP. En cualquiera de estos grupos, parece haber varios grupos más. Esto se refleja en el árbol de agrupación jerárquica. Pero aquí está el t-SNE, tomado del enlace anterior:

    enter image description here

    Las células no neurales aparecen en gris/marrón/negro. Las neuronas excitadoras son de color azul/teal/verde. Las neuronas inhibitorias son de color naranja/rojo/morado. Uno querría que estos grupos principales se mantuvieran juntos, pero esto no sucede: una vez que el t-SNE separa un grupo en varios conglomerados, pueden acabar colocándose arbitrariamente. La estructura jerárquica del conjunto de datos se pierde.

    Creo que esto debería ser un problema solucionable, pero no tengo conocimiento de ningún buen desarrollo basado en principios, a pesar de algunos trabajos recientes en esta dirección (incluido el mío propio).

  2. t-SNE tiende a sufrir de "hacinamiento" cuando $N$ crece por encima de ~100k

    t-SNE funciona muy bien con los datos MNIST. Pero consideremos lo siguiente (tomado de este documento ):

    enter image description here

    Con 1 mln de puntos de datos, todos los clusters se agrupan (la razón exacta de esto no está muy clara) y la única forma conocida de contrarrestarlo es con algunos hacks sucios como se muestra arriba. Sé por experiencia que esto ocurre también con otros conjuntos de datos de tamaño similar.

    Esto se puede comprobar con el propio MNIST (N=70.000). Eche un vistazo:

    enter image description here

    A la derecha, t-SNE. A la izquierda UMAP un nuevo y emocionante método en desarrollo activo, que es muy similar a un método más antiguo. largeVis . UMAP/largeVis separan mucho más los cúmulos. La razón exacta de esto no está clara en mi humilde opinión; yo diría que todavía hay mucho que entender aquí, y posiblemente mucho que mejorar.

  3. El tiempo de ejecución de Barnes-Hut es demasiado lento para grandes $N$

    Vanilla t-SNE es inutilizable para $N$ sobre ~10k. La solución estándar hasta hace poco era Barnes-Hut t-SNE, sin embargo para $N$ más cerca de ~1mln se vuelve dolorosamente lento. Este es uno de los grandes puntos de venta de UMAP, pero en realidad un documento reciente sugiere t-SNE acelerado por FFT (FIt-SNE) que funciona mucho más rápido que Barnes-Hut t-SNE y es al menos tan rápido como UMAP. Recomiendo a todo el mundo que utilice esta aplicación a partir de ahora.

    enter image description here

    Así que puede que esto ya no sea exactamente un problema abierto, pero solía serlo hasta hace muy poco, y supongo que hay margen para nuevas mejoras en tiempo de ejecución. Así que sin duda se puede seguir trabajando en esta dirección.

8voto

Adrya Puntos 573

Me encantaría escuchar otros comentarios, pero por ahora voy a publicar mi propia respuesta, tal y como yo la veo. Aunque buscaba una respuesta más "práctica", hay dos "desventajas" teóricas del t-sne que merece la pena mencionar; la primera es menos problemática, y la segunda debería tenerse en cuenta:

  1. La función de coste t-sne no es convexa, por lo que no está garantizado que alcancemos un global óptimo : Otras técnicas de reducción de la dimensionalidad (Isomap, LLE) tienen una función de costes convexa. En t-sne no es así, por lo que hay algunos parámetros de optimización que deben ajustarse eficazmente para alcanzar una "buena" solución. Sin embargo, aunque se trata de un posible escollo teórico, cabe señalar que en la práctica esto no supone ningún inconveniente, ya que parece que incluso el "mínimo local" del algoritmo t-sne supera (crea mejores visualizaciones) al mínimo global de los demás métodos.

  2. maldición de la dimensionalidad intrínseca : Una cosa importante a tener en cuenta cuando se utiliza t-sne es que es esencialmente un aprendizaje múltiple algoritmo. Esencialmente, esto significa que t-sne (y otros métodos similares) están diseñados para funcionar en situaciones en las que la alta dimensión original es sólo artificialmente alta: hay una dimensión intrínseca más baja en los datos, es decir, los datos "se asientan" en un colector de dimensión más baja. Un buen ejemplo a tener en cuenta son las fotos consecutivas de una misma persona: Aunque podría representar cada imagen en número de píxeles (alta dimensión), la dimensionalidad intrínseca de los datos está en realidad limitada por la transformación física de los puntos (en este caso, la rotación 3D de la cabeza). En estos casos, t-sne funciona bien. Pero en los casos en que la dimensionalidad intrínseca es alta, o los puntos de datos se sitúan en una variedad muy variable, se espera que t-sne funcione mal, ya que se viola su suposición más básica: la linealidad local en la variedad.

Para el usuario práctico, creo que esto implica dos sugerencias útiles a tener en cuenta:

  1. Antes de realizar la reducción de dimensionalidad para los métodos de visualización, siempre hay que intentar averiguar primero si realmente hay existe una dimensión intrínseca inferior a los datos con los que estás tratando.

  2. Si no está seguro de 1 (y también en general), podría ser útil, como sugiere el artículo original, "realizar t-sne sobre una representación de datos obtenida a partir de un modelo que represente eficientemente la múltiple de datos altamente variable en un número de capas no lineales, como un autocodificador". Así, la combinación de autocodificador + t-sne puede ser una buena solución en estos casos.

7voto

Johnny Puntos 11

Aquí hay un excelente análisis de cómo la variación de los parámetros al ejecutar t-SNE afecta a algunos conjuntos de datos muy simples: http://distill.pub/2016/misread-tsne/ . En general, t-SNE parece funcionar bien a la hora de reconocer estructuras de alta dimensión (incluidas relaciones más complejas que los conglomerados), aunque esto está sujeto al ajuste de parámetros, especialmente los valores de perplejidad.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X