Aller au contenu principal

Chargement du lab visuel…

#t-sne-umapApprentissage non supervisé

Cartographier la haute dimension : t-SNE et UMAP déplient des données à 10 dimensions en une carte 2D lisible — perplexité, voisins, et pièges de lecture.

Ce que tu vas manipuler

  1. Bienvenue dans #t-sne-umap. À l'écran, 100 points qui vivent en 10 dimensions : quatre groupes de 25, colorés par leur vraie étiquette — une couleur que l'algorithme ne verra jamais. À gauche, la PCA les aplatit en 2D : elle garde la direction de plus grande variance, ici un axe de bruit commun, et superpose les groupes. À droite, la carte t-SNE à l'itération 0 : c'est encore la PCA, mais t-SNE va la déplier en ne regardant que les voisinages de chaque point.
  2. Lance les 50 premières itérations : /iterer 50. C'est la phase d'exagération précoce : les affinités entre voisins sont multipliées par 4, la carte se contracte et les groupes se forment d'un coup.
  3. Affinage : /iterer 100. L'exagération s'arrête, la carte se détend et les quatre nuages s'écartent nettement. Souviens-toi : les couleurs n'ont jamais été montrées à l'algorithme, il n'a vu que des distances en 10D.
  4. La perplexité est le nombre effectif de voisins que chaque point prend en compte. Rends-la minuscule : /perplexite 5. Les positions repartent de zéro (itération 0).
  5. Relance /iterer 100 pour voir l'effet de la perplexité 5 : des grumeaux, des groupes étirés. Puis passe à l'excès inverse : /perplexite 50 — la moitié des points comptent comme voisins.
  6. Relance /iterer 100 si tu veux voir la carte à perplexité 50 : tout s'étale, l'espace entre les groupes n'a plus de sens. Change maintenant de méthode : /methode umap. UMAP part de la même idée, mais construit un graphe des k plus proches voisins puis l'optimise par forces : attraction le long des arêtes, répulsion ailleurs.
  7. Relance /iterer 100 pour laisser UMAP s'installer. Ensuite, cache la référence pour agrandir la carte : /comparer.
  8. Changeons la forme des données : /dataset chaine. Cette fois les 100 points suivent une courbe en 10D, colorée en quatre tronçons du début à la fin : la vraie structure est une ligne.
  9. À toi de jouer : /dataset melange (trois groupes de 40, 20 et 10 points plus une chaîne — regarde comme t-SNE leur donne des tailles comparables), /methode tsne puis /iterer 100, /voisins 5 pour un UMAP très local, /lr 500 pour voir la descente s'emballer, /graine 42 pour un autre tirage, /reinit pour repartir. Pour aller plus loin : #pca pour la version linéaire de cette histoire, et #embeddings-3d pour ce que ces cartes servent à regarder.

Commandes du canal

  • /iterer <n=10..100>Fait n itérations de la méthode courante (au plus 600 au total).
  • /perplexite <5..50>Fixe la perplexité de t-SNE (nombre effectif de voisins) et réinitialise les positions.
  • /voisins <5..30>Fixe le nombre k de voisins du graphe UMAP et réinitialise les positions.
  • /methode <tsne|umap>Choisit t-SNE ou UMAP et réinitialise les positions.
  • /lr <10..500>Fixe le taux d'apprentissage (sans réinitialiser).
  • /comparerAffiche ou masque la carte PCA de référence.
  • /dataset <clusters|chaine|melange>Change le jeu de données (100 points en 10D) et réinitialise les positions.
  • /graine <1..99>Retire le jeu de données avec une autre graine et réinitialise les positions.
  • /reinitRevient au jeu clusters, t-SNE, perplexité 30, PCA affichée.

Glossaire

t-SNE
Réduction de dimension non linéaire qui place chaque point en 2D de sorte que ses voisinages ressemblent à ceux de l'espace d'origine : affinités gaussiennes en haute dimension, noyau de Student en 2D, et descente de gradient sur la divergence de Kullback-Leibler entre les deux.
UMAP
Réduction de dimension non linéaire qui construit un graphe des k plus proches voisins pondéré (graphe flou), puis optimise une carte 2D par forces : attraction le long des arêtes, répulsion d'échantillons négatifs. Plus rapide que t-SNE et un peu plus fidèle à la structure globale.
perplexité
Réglage de t-SNE : le nombre effectif de voisins que chaque point prend en compte (2 puissance l'entropie de ses affinités). La largeur σᵢ de la gaussienne de chaque point est ajustée pour l'atteindre. Valeurs usuelles : 5 à 50.
réduction de dimension non linéaire
Représenter des données de grande dimension dans un espace à 2 ou 3 dimensions (un plongement) sans se limiter à une projection : la carte peut plier, étirer ou déchirer l'espace pour préserver ce qui compte, souvent les voisinages locaux.
divergence de Kullback-Leibler
Mesure d'écart entre deux distributions de probabilité, ici les affinités P (haute dimension) et Q (carte 2D). t-SNE la minimise ; elle pénalise surtout les voisins proches en 10D placés loin en 2D, et peu l'inverse.
exagération précoce
Astuce de t-SNE : multiplier les affinités P (ici par 4) pendant les premières itérations. La carte se contracte, les groupes se forment vite et bien séparés, puis l'exagération s'arrête et la carte se détend.
distribution de Student à queue lourde
Noyau utilisé par t-SNE dans la carte 2D : 1 / (1 + d²). Sa queue plus lourde qu'une gaussienne laisse les points non voisins s'éloigner beaucoup sans coût, ce qui évite l'entassement au centre et écarte les groupes.
graphe des k plus proches voisins
Graphe qui relie chaque point à ses k voisins les plus proches dans l'espace d'origine. UMAP le pondère (poids exp(−(d − ρᵢ)/σᵢ)), le symétrise en graphe flou, puis ne travaille plus qu'avec lui : la carte n'a qu'à respecter ces liens.
préservation des voisinages
Mesure de fidélité d'une carte : part des k plus proches voisins de chaque point en haute dimension que l'on retrouve parmi ses k plus proches voisins en 2D, en moyenne. 100 % = tous les voisinages sont respectés.
artefacts de lecture
Ce qu'une carte t-SNE ou UMAP ne mesure pas : la distance entre deux groupes, la taille ou la densité d'un groupe, et parfois la présence même de groupes (une perplexité trop petite fragmente un nuage continu). Seule la composition des voisinages est fiable.

Autres canaux du thème Apprentissage non supervisé

  • #k-meansRegrouper sans étiquettes : des centroïdes qui se déplacent, l'inertie qui baisse, le choix de k — et les formes où k-means échoue.
  • #pcaAnalyse en composantes principales : trouver les axes où les données varient le plus, projeter, compresser — et mesurer ce qu'on perd.
  • #clustering-hierarchiqueFusionner les points deux à deux jusqu'à n'en faire qu'un : le dendrogramme, les critères de lien, et la hauteur de coupe qui décide du nombre de clusters.
  • #dbscanRegrouper par densité : epsilon, MinPts, points cœur, bordure et bruit — l'algorithme qui trouve des formes quelconques et ignore les intrus.
  • #detection-anomaliesRepérer ce qui ne ressemble à rien : score z / Mahalanobis, Isolation Forest, LOF — trois façons de dire « ce point est bizarre ».
  • #t-sne-umapCartographier la haute dimension : t-SNE et UMAP déplient des données à 10 dimensions en une carte 2D lisible — perplexité, voisins, et pièges de lecture.