La réduction de dimensionnalité pour la visualisation doit-elle être considérée comme un problème «fermé», résolu par t-SNE?


23

J'ai beaucoup lu sur l' algorithme -snet pour la réduction de dimensionnalité. Je suis très impressionné par les performances sur les ensembles de données "classiques", comme MNIST, où il réalise une séparation claire des chiffres ( voir l'article original ):

t-SNE MNIST

Je l'ai également utilisé pour visualiser les fonctionnalités apprises par un réseau de neurones que je forme et j'étais très satisfait des résultats.

Donc, si je comprends bien:

tO(nbûchen) avec la méthode d'approximation de Barnes-Hut. Alors, pourrait-on potentiellement dire que le problème de la "réduction de dimensionnalité", au moins dans le but de créer de bonnes visualisations 2D / 3D, est désormais un problème "fermé"?

Je suis conscient que c'est une déclaration assez audacieuse. Je suis intéressé à comprendre quels sont les "pièges" potentiels de cette méthode. Autrement dit, y a-t-il des cas dans lesquels nous savons que cela n'est pas utile? De plus, quels sont les problèmes "ouverts" dans ce domaine?

Réponses:


16

Définitivement pas.

Je suis d'accord que t-SNE est un algorithme incroyable qui fonctionne extrêmement bien et qui était une véritable percée à l'époque. Toutefois:

  • il présente de graves lacunes;
  • certaines des lacunes doivent être résolubles;
  • il existe déjà des algorithmes qui fonctionnent sensiblement mieux dans certains cas;
  • de nombreuses propriétés du t-SNE sont encore mal connues.

Quelqu'un lié à ce compte très populaire de certaines lacunes de t-SNE: https://distill.pub/2016/misread-tsne/ (+1), mais il ne parle que de jeux de données de jouets très simples et je trouve qu'il ne correspond pas très bien aux problèmes que l'on rencontre dans la pratique lorsque l'on travaille avec t-SNE et les algorithmes associés sur des données du monde réel. Par exemple:

  1. t-SNE échoue souvent à préserver la structure globale de l'ensemble de données;
  2. N
  3. N

Je vais brièvement discuter des trois ci-dessous.


  1. t-SNE échoue souvent à préserver la structure globale de l'ensemble de données.

    Considérez cet ensemble de données RNA-seq monocellulaire de l'institut Allen (cellules corticales de souris): http://celltypes.brain-map.org/rnaseq/mouse . Il a environ 23 000 cellules. Nous savons a priori que cet ensemble de données a beaucoup de structure hiérarchique significative, et cela est confirmé par le clustering hiérarchique. Il existe des neurones et des cellules non neuronales (glie, astrocytes, etc.). Parmi les neurones, il existe des neurones excitateurs et inhibiteurs - deux groupes très différents. Par exemple, les neurones inhibiteurs, il existe plusieurs groupes principaux: exprimant Pvalb, exprimant SSt, exprimant VIP. Dans l'un de ces groupes, il semble y avoir plusieurs autres grappes. Cela se reflète dans l'arborescence de clustering hiérarchique. Mais voici t-SNE, extrait du lien ci-dessus:

    entrez la description de l'image ici

    Les cellules non neurales sont en gris / marron / noir. Les neurones excitateurs sont en bleu / turquoise / vert. Les neurones inhibiteurs sont en orange / rouge / violet. On voudrait que ces grands groupes restent ensemble, mais cela ne se produit pas: une fois que t-SNE sépare un groupe en plusieurs clusters, ils peuvent finir par être positionnés arbitrairement. La structure hiérarchique de l'ensemble de données est perdue.

    Je pense que cela devrait être un problème résoluble, mais je ne suis au courant d'aucune bonne évolution de principe, malgré certains travaux récents dans ce sens (y compris le mien).

  2. N

    t-SNE fonctionne très bien sur les données du MNIST. Mais considérez ceci (extrait de cet article ):

    entrez la description de l'image ici

    Avec 1 mln de points de données, tous les clusters sont regroupés (la raison exacte de cela n'est pas très claire) et la seule façon connue de contrebalancer est d'utiliser des hacks sales comme indiqué ci-dessus. Je sais par expérience que cela se produit également avec d'autres ensembles de données de même taille.

    On peut sans doute voir cela avec le MNIST lui-même (N = 70k). Regarde:

    entrez la description de l'image ici

    Sur la droite est t-SNE. Sur la gauche se trouve UMAP , une nouvelle méthode passionnante en développement actif, qui est très similaire à un ancien grandVis . Les clusters UMAP / largeVis sont beaucoup plus éloignés. La raison exacte à cela est à mon humble avis peu claire; Je dirais qu'il y a encore beaucoup à comprendre ici, et peut-être beaucoup à améliorer.

  3. N

    NN

    entrez la description de l'image ici

    Donc, ce n'est peut-être plus exactement un problème ouvert, mais il l'était jusqu'à très récemment, et je suppose qu'il y a de la place pour de nouvelles améliorations dans l'exécution. Le travail peut donc certainement continuer dans cette direction.


7

Voici une excellente analyse de la façon dont la variation des paramètres lors de l'exécution de t-SNE affecte certains ensembles de données très simples: http://distill.pub/2016/misread-tsne/ . En général, t-SNE semble bien réussir à reconnaître les structures de grande dimension (y compris les relations plus complexes que les clusters), bien que cela soit soumis à un réglage des paramètres, en particulier des valeurs de perplexité.


7

J'aimerais toujours entendre d'autres commentaires, mais je posterai ma propre réponse pour l'instant, telle que je la vois. Alors que je cherchais une réponse plus "pratique", il y a deux "désavantages" théoriques au t-sne qui méritent d'être mentionnés; le premier est moins problématique, et le second doit certainement être considéré:

  1. La fonction de coût t-sne n'est pas convexe, nous ne sommes donc pas garantis d'atteindre un optimum global : d'autres techniques de réduction de dimensionnalité (Isomap, LLE) ont une fonction de coût convexe. Dans le cas de t-sne, ce n'est pas le cas, il existe donc certains paramètres d'optimisation qui doivent être réglés efficacement pour parvenir à une "bonne" solution. Cependant, bien qu'un écueil théorique potentiel, il convient de mentionner que dans la pratique, ce n'est guère un inconvénient, car il semble que même le "minimum local" de l'algorithme t-sne surpasse (crée de meilleures visualisations) puis le minimum global des autres méthodes .

  2. malédiction de la dimensionnalité intrinsèque : Une chose importante à garder à l'esprit lors de l'utilisation de t-sne est qu'il s'agit essentiellement d'un apprentissage multiplealgorithme. Essentiellement, cela signifie que le t-sne (et d'autres méthodes de ce type) sont conçus pour fonctionner dans des situations dans lesquelles la dimension élevée d'origine n'est artificiellement élevée: il y a une dimension intrinsèque inférieure dans les données. c'est-à-dire que les données "reposent" sur un collecteur de dimension inférieure. Un bel exemple à avoir en tête est les photos consécutives de la même personne: bien que je puisse représenter chaque image en nombre de pixels (haute dimension), la dimensionnalité intrinsèque des données est en fait limitée par la transformation physique des points (en ce cas, la rotation 3D de la tête). Dans de tels cas, t-sne fonctionne bien. Mais dans les cas où la dimensionnalité intrinsèque est élevée ou les points de données se trouvent sur une variété très variable, t-sne devrait mal fonctionner, car c'est l'hypothèse la plus fondamentale - la linéarité locale sur la variété - est violée.

Pour l'utilisateur pratique, je pense que cela implique deux suggestions utiles à garder à l'esprit:

  1. Avant de procéder à la réduction de la dimensionnalité des méthodes de visualisation, essayez toujours d'abord savoir s'il y a effectivement existe une dimension intrinsèque inférieure aux données que vous avez affaire.

  2. Si vous n'êtes pas sûr de 1 (et aussi généralement), il pourrait être utile, comme le suggère l'article d'origine, de "réaliser t-sne sur une représentation de données obtenue à partir d'un modèle qui représente efficacement la variété de données très variable dans un certain nombre de couches non linéaires, comme un auto-encodeur ". Ainsi, la combinaison de l'encodeur automatique + t-sne peut être une bonne solution dans de tels cas.


Salut @ galoosh33! Je me demande si vous avez déjà eu l'occasion de jeter un œil à ma réponse. C'était utile? Je ne sais pas si vous êtes toujours intéressé par ce 1,5 an après avoir posé cette question, donc j'apprécierais quelques commentaires ... Dans votre propre réponse acceptée, vous dites que vous aimeriez toujours entendre d'autres pensées, mais c'était aussi il y a du temps :)
amoeba dit Reinstate Monica

1
merci pour votre excellente réponse @amoeba! Je vais le revoir ce week-end.
galoosh33
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.