t-distributed Stochastic Neighbor Embedding (t-SNE)
Découvre comment t-SNE visualise les données de grande dimension. Apprends à révéler les regroupements dans les caractéristiques de vision par ordinateur pour Ultralytics YOLO26 et à optimiser les modèles de machine learning.
Le plongement stochastique de voisins distribués selon une loi t (t-SNE) est une méthode statistique de visualisation des données de grande dimension, qui attribue à chaque point de données une position sur une carte à deux ou trois dimensions. Cette technique, une forme de réduction de dimensionnalité non linéaire, est largement utilisée en apprentissage automatique pour explorer des jeux de données contenant des centaines ou des milliers de caractéristiques. Contrairement aux méthodes linéaires qui se concentrent sur la préservation des structures globales, t-SNE excelle à maintenir les instances similaires proches les unes des autres, révélant ainsi des groupes et des variétés locales qui pourraient autrement rester cachés. Cela en fait un outil précieux, aussi bien pour la recherche génomique que pour la compréhension de la logique interne des réseaux neuronaux profonds.
Fonctionnement de t-SNE#
L’idée centrale de t-SNE consiste à convertir les similarités entre les points de données en probabilités conjointes. Dans l’espace de grande dimension d’origine, l’algorithme mesure la similarité entre les points à l’aide d’une distribution gaussienne. Lorsque deux points sont proches, la probabilité qu’ils soient « voisins » est élevée. L’algorithme tente ensuite de projeter ces points dans un espace de dimension inférieure (généralement en 2D ou en 3D) tout en conservant ces probabilités.
Pour y parvenir, il définit une distribution de probabilités similaire dans la carte de dimension inférieure à l’aide d’une loi de Student. Cette distribution particulière possède des queues plus épaisses qu’une distribution gaussienne normale, ce qui aide à résoudre le « problème de congestion », un phénomène où les points de l’espace de grande dimension tendent à se superposer lorsqu’ils sont projetés dans un espace de dimension inférieure. En éloignant davantage les points dissemblables dans la visualisation, t-SNE crée des groupes distincts et lisibles qui révèlent la structure sous-jacente des données d’entraînement. L’algorithme apprend efficacement la meilleure représentation cartographique par apprentissage non supervisé, en minimisant la divergence entre les distributions de probabilités de grande et de faible dimension.
Applications concrètes dans l'IA#
t-SNE est un outil standard d’analyse exploratoire des données (EDA) et de diagnostic des modèles. Il permet aux ingénieurs de « voir » ce qu’un modèle apprend.
- Vérification des caractéristiques de vision par ordinateur : Dans les workflows de détection d’objets utilisant des modèles comme YOLO26, les développeurs doivent souvent vérifier si le réseau peut distinguer des classes visuellement similaires. En extrayant les cartes de caractéristiques des dernières couches du réseau et en les projetant avec t-SNE, les ingénieurs peuvent visualiser si les images de « chats » se regroupent séparément de celles de « chiens ». Si les groupes se mélangent, cela suggère que les capacités d’extraction de caractéristiques du modèle doivent être améliorées.
- Traitement automatique du langage naturel (NLP) : t-SNE est largement utilisé pour visualiser les plongements de mots. Lorsque des vecteurs de mots de grande dimension (souvent de plus de 300 dimensions) sont projetés en 2D, les mots ayant des significations sémantiques similaires se regroupent naturellement. Par exemple, un graphique t-SNE peut montrer un groupe contenant « roi », « reine », « prince » et « monarque », démontrant que le modèle de traitement automatique du langage naturel (NLP) saisit le concept de royauté.
- Génomique et bio-informatique : Les chercheurs utilisent t-SNE pour visualiser les données de séquençage de l’ARN monocaténaire. En réduisant des milliers de valeurs d’expression génique à un graphique en 2D, les scientifiques peuvent identifier des types cellulaires distincts et retracer des trajectoires de développement, ce qui contribue à la découverte de nouvelles connaissances biologiques et de marqueurs de maladies.
Comparaison avec l’ACP#
Il est important de distinguer t-SNE de l’analyse en composantes principales (PCA), une autre technique courante de réduction de dimensionnalité.
- PCA est une technique linéaire qui se concentre sur la préservation de la variance globale des données. Elle est déterministe et efficace sur le plan computationnel, ce qui la rend excellente pour la compression initiale des données ou la réduction du bruit.
- t-SNE est une technique non linéaire axée sur la préservation des voisinages locaux. Elle est probabiliste (stochastique) et plus coûteuse sur le plan computationnel, mais produit de bien meilleures visualisations pour les variétés complexes et non linéaires.
Une bonne pratique courante en prétraitement des données consiste à utiliser d’abord PCA pour réduire les données à une taille gérable (par exemple, 50 dimensions), puis à appliquer t-SNE pour la visualisation finale. Cette approche hybride réduit la charge de calcul et filtre le bruit susceptible de dégrader le résultat de t-SNE.
Exemple Python : visualisation des caractéristiques#
L’exemple suivant montre comment utiliser scikit-learn pour appliquer t-SNE à un jeu de données synthétiques. Ce workflow reproduit la manière dont on pourrait visualiser les caractéristiques extraites d’un modèle d’apprentissage profond.
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
from sklearn.manifold import TSNE
# Generate synthetic high-dimensional data (100 samples, 50 features, 3 centers)
X, y = make_blobs(n_samples=100, n_features=50, centers=3, random_state=42)
# Apply t-SNE to reduce dimensions from 50 to 2
# 'perplexity' balances local vs global aspects of the data
tsne = TSNE(n_components=2, perplexity=30, random_state=42)
X_embedded = tsne.fit_transform(X)
# Plot the result to visualize the 3 distinct clusters
plt.scatter(X_embedded[:, 0], X_embedded[:, 1], c=y)
plt.title("t-SNE Projection of High-Dimensional Data")
plt.show()Points clés à prendre en compte#
Bien que puissant, t-SNE nécessite un réglage minutieux des hyperparamètres. Le paramètre de « perplexité » est essentiel ; il estime en substance le nombre de voisins proches de chaque point. Une valeur trop faible ou trop élevée peut produire des visualisations trompeuses. En outre, t-SNE ne préserve pas correctement les distances globales : la distance entre deux groupes distincts sur le graphique ne reflète donc pas nécessairement leur distance physique dans l’espace d’origine. Malgré ces nuances, cette technique reste fondamentale pour valider les architectures de vision par ordinateur (CV) et comprendre les jeux de données complexes. Les utilisateurs qui gèrent des jeux de données à grande échelle s’appuient souvent sur la plateforme Ultralytics pour organiser leurs données avant d’effectuer ce type d’analyse approfondie.









