Le problème avec le t-SNE est qu’il ne conserve ni les distances ni la densité. Il ne conserve que dans une certaine mesure les voisins les plus proches. La différence est subtile, mais affecte tout algorithme basé sur la densité ou la distance.
Pour voir cet effet, générez simplement une distribution gaussienne multivariée. Si vous visualisez cela, vous obtiendrez une balle dense et beaucoup moins dense vers l'extérieur, avec des valeurs aberrantes pouvant être très éloignées.
Maintenant, lancez t-SNE sur ces données. Vous obtiendrez généralement un cercle de densité plutôt uniforme. Si vous utilisez une perplexité faible, il peut même y avoir quelques motifs étranges. Mais vous ne pouvez plus vraiment distinguer les autres.
Maintenant rendons les choses plus compliquées. Utilisons 250 points dans une distribution normale à (-2,0) et 750 points dans une distribution normale à (+2,0).
Ceci est supposé être un ensemble de données facile, par exemple avec EM:
Si nous utilisons t-SNE avec une perplexité par défaut de 40, nous obtenons un motif de forme étrange:
Pas mal, mais pas aussi facile à regrouper, n'est-ce pas? Vous aurez du mal à trouver un algorithme de clustering qui fonctionne ici exactement comme vous le souhaitez. Et même si vous demandiez aux humains de regrouper ces données, ils trouveraient très probablement plus de 2 groupes ici.
Si nous exécutons t-SNE avec une perplexité trop petite telle que 20, nous aurons plus de modèles qui n'existent pas:
Cela regroupera par exemple avec DBSCAN, mais cela produira quatre grappes. Alors, méfiez-vous, t-SNE peut produire de "faux" modèles!
La perplexité optimale semble se situer autour de 80 pour cet ensemble de données; mais je ne pense pas que ce paramètre devrait fonctionner pour tous les autres ensembles de données.
Ceci est visuellement agréable, mais pas meilleur pour l'analyse . Un annotateur humain pourrait probablement sélectionner une coupe et obtenir un résultat décent; k-means cependant échouera même dans ce scénario très très facile ! Vous pouvez déjà voir que les informations de densité sont perdues , toutes les données semblent vivre dans une zone de densité presque identique. Si au contraire nous augmentions davantage la perplexité, l'uniformité augmenterait et la séparation diminuerait à nouveau.
Dans les conclusions, utilisez t-SNE pour la visualisation (et essayez différents paramètres pour obtenir quelque chose de visuellement agréable!), Mais évitez plutôt de faire du clustering après coup , en particulier n'utilisez pas d'algorithmes basés sur la distance ou la densité, car ces informations étaient intentionnellement (!) perdu. Les approches basées sur les graphes de voisinage peuvent convenir, mais dans ce cas, vous n'avez pas besoin de lancer d'abord t-SNE, vous devez simplement utiliser les voisins immédiatement (car t-SNE essaie de garder ce nn-graph en grande partie intact).
Plus d'exemples
Ces exemples ont été préparés pour la présentation du papier (mais ne peuvent pas être trouvés dans le papier pour le moment, comme j'ai fait cette expérience plus tard)
Erich Schubert et Michael Gertz.
Inclusion intrinsèque de voisins t-stochastiques pour la visualisation et la détection de valeurs aberrantes: un remède contre la malédiction de la dimensionnalité?
In: Actes de la 10e Conférence internationale sur la recherche de similarité et les applications (SISAP), Munich, Allemagne. 2017
Premièrement, nous avons ces données d'entrée:
Comme vous pouvez le deviner, ceci est dérivé d'une image "colore-moi" pour les enfants.
Si nous passons cela par SNE ( PAS t-SNE , mais le prédécesseur):
Wow, notre poisson est devenu tout à fait un monstre marin! Comme la taille du noyau est choisie localement, nous perdons une grande partie des informations de densité.
Mais vous serez vraiment surpris par la sortie de t-SNE:
En fait, j'ai essayé deux implémentations (ELKI et implémentations Sklearn) et les deux ont produit un tel résultat. Certains fragments déconnectés, mais qui ont chacun une apparence quelque peu cohérente avec les données d'origine.
Deux points importants pour expliquer cela:
SGD s'appuie sur une procédure de raffinement itérative et risque de rester bloqué dans les optima locaux. En particulier, il est difficile pour l’algorithme de "retourner" une partie des données qu’il a reflétée, car cela nécessiterait de déplacer des points à travers d’autres qui sont supposés être séparés. Donc, si certaines parties du poisson sont reflétées et que d'autres ne le sont pas, il sera peut-être impossible de résoudre ce problème.
t-SNE utilise la distribution t dans l'espace projeté. Contrairement à la distribution gaussienne utilisée par le SNE classique, cela signifie que la plupart des points se repousseront , car ils ont une affinité 0 dans le domaine en entrée (le gaussien obtient rapidement zéro), mais une affinité> 0 dans le domaine en sortie. Parfois (comme dans MNIST), cela rend la visualisation plus agréable. En particulier, cela peut aider à "séparer" un ensemble de données un peu plus que dans le domaine d'entrée. Cette répulsion supplémentaire amène souvent les points à utiliser la zone plus uniformément, ce qui peut également être souhaitable. Mais ici, dans cet exemple, les effets répulsifs provoquent la séparation de fragments de poisson.
Nous pouvons aider (sur cet ensemble de données de jouets ) le premier numéro en utilisant les coordonnées d'origine comme placement initial, plutôt que des coordonnées aléatoires (comme utilisé habituellement avec t-SNE). Cette fois, l'image est sklearn au lieu de ELKI, car la version de sklearn avait déjà un paramètre pour transmettre les coordonnées initiales:
Comme vous pouvez le constater, même avec un placement initial "parfait", le t-SNE "casse" le poisson dans un certain nombre de lieux initialement connectés, car la répulsion de Student-t dans le domaine de sortie est supérieure à l'affinité gaussienne de l'entrée. espace.
Comme vous pouvez le constater, le t-SNE (et le SNE aussi!) Est une technique de visualisation intéressante , mais elle doit être manipulée avec précaution. Je préférerais ne pas appliquer k-means sur le résultat! parce que le résultat sera fortement déformé et que ni les distances ni la densité ne sont bien préservées. Au lieu de cela, utilisez-le plutôt pour la visualisation.