Contrastive Learning
Explore l'apprentissage contrastif en apprentissage automatique. Apprends comment il utilise des données auto-supervisées pour construire des fonctionnalités d'IA robustes pour Ultralytics YOLO26 et la vision par ordinateur.
L'apprentissage contrastif est un paradigme d'apprentissage automatique qui apprend aux modèles à comprendre les données en comparant des échantillons similaires et différents. Contrairement à l'apprentissage supervisé traditionnel, qui repose lourdement sur des ensembles de données étiquetés manuellement, l'apprentissage contrastif est souvent utilisé dans des contextes d'apprentissage autosupervisé. L'idée centrale est simple mais puissante : le modèle apprend à rapprocher les représentations d'éléments apparentés (paires positives) dans un espace vectoriel tout en éloignant les éléments non apparentés (paires négatives). Ce processus permet aux algorithmes de construire des caractéristiques robustes et généralisables à partir de vastes quantités de données non étiquetées, ce qui est crucial pour passer à l'échelle les systèmes d'intelligence artificielle (IA).
Le mécanisme de l'apprentissage contrastif#
Au cœur de l'apprentissage contrastif se trouve le concept d'apprentissage par comparaison. Au lieu de mémoriser qu'une image spécifique est un « chat », le modèle apprend que deux photos différentes d'un chat sont plus similaires entre elles que chacune ne l'est de la photo d'un chien. Cela est généralement réalisé grâce à l'augmentation des données. Une image d'entrée, souvent appelée l'« ancre », est transformée en deux versions différentes à l'aide de techniques telles que le recadrage, le retournement ou la variation des couleurs. Ces deux versions forment une paire positive. Le modèle est ensuite entraîné à minimiser la distance entre leurs plongements tout en maximisant la distance par rapport à d'autres images aléatoires (échantillons négatifs) dans le lot.
Cette approche aide le réseau de neurones à se concentrer sur des caractéristiques sémantiques de haut niveau plutôt que sur des détails de pixels de bas niveau. Par exemple, qu'une voiture soit rouge ou bleue, ou qu'elle soit orientée vers la gauche ou vers la droite, le concept sous-jacent de « voiture » reste le même. En ignorant ces variations superficielles, le modèle développe une compréhension plus profonde du monde visuel, ce qui bénéficie grandement aux tâches en aval telles que la détection d'objets et la classification.
Applications concrètes#
L'apprentissage contrastif est devenu une pierre angulaire pour de nombreuses applications d'IA de pointe, en particulier là où les données étiquetées sont rares ou coûteuses à obtenir.
-
Classification d'images sans entraînement (Zero-Shot) : Des modèles comme CLIP (Contrastive Language-Image Pre-training) utilisent l'apprentissage contrastif pour aligner les images et le texte dans un espace de caractéristiques partagé. En s'entraînant sur des millions de paires image-texte, le modèle apprend à associer des concepts visuels à des descriptions en langage naturel. Cela permet l'apprentissage zero-shot, où le modèle peut classifier des images dans des catégories qu'il n'a jamais vues pendant l'entraînement, simplement en faisant correspondre l'image à une invite textuelle.
-
Pré-entraînement robuste pour l'imagerie médicale : Dans le secteur de la santé, l'obtention de scans médicaux étiquetés par des experts est coûteuse et chronophage. Les chercheurs utilisent l'apprentissage contrastif pour pré-entraîner des modèles sur de grandes bases de données de radiographies ou de scanners IRM non étiquetés. Ce pré-entraînement non supervisé crée une colonne vertébrale puissante qui peut être affinée avec un petit nombre d'exemples étiquetés pour détecter des maladies comme la pneumonie ou des tumeurs avec une grande précision. Cette technique exploite l'apprentissage par transfert pour améliorer les outils de diagnostic dans l'IA dans la santé.
Distinguer les concepts apparentés#
Il est utile de différencier l'apprentissage contrastif de techniques similaires pour comprendre son rôle unique dans le paysage de l'apprentissage automatique (ML).
- vs. Auto-encodeurs : Bien que les deux soient des méthodes non supervisées, les auto-encodeurs visent à reconstruire les données d'entrée pixel par pixel, en les compressant dans une couche de goulet d'étranglement. L'apprentissage contrastif, en revanche, n'essaie pas de recréer l'image mais se concentre uniquement sur l'apprentissage de représentations discriminatives qui séparent différents concepts.
- vs. Réseaux antagonistes génératifs (GAN) : Les GAN impliquent un générateur créant de fausses données et un discriminateur essayant de les détecter. L'apprentissage contrastif se concentre sur l'apprentissage de représentations plutôt que sur la génération de données, ce qui le rend plus adapté à des tâches telles que la recherche, la récupération et la classification.
- vs. Perte triplet : La perte triplet traditionnelle nécessite explicitement une ancre, un échantillon positif et un échantillon négatif. Les méthodes contrastives modernes, telles que SimCLR ou MoCo, généralisent cela en comparant une ancre à de nombreux échantillons négatifs simultanément au sein d'un même lot, en utilisant souvent une fonction de perte spécifique comme InfoNCE.
Exemple pratique avec les embeddings#
Bien que l'entraînement d'un modèle contrastif à partir de zéro soit gourmand en ressources, tu peux facilement utiliser des modèles pré-entraînés pour extraire des caractéristiques. L'exemple suivant montre comment charger un modèle et extraire le vecteur de caractéristiques (plongement) d'une image en utilisant le paquet ultralytics. Ce plongement représente le contenu sémantique appris via des techniques analogues au pré-entraînement contrastif.
from ultralytics import YOLO
# Load a pre-trained YOLO26 classification model
model = YOLO("yolo26n-cls.pt")
# Run inference on an image to get the results
# The 'embed' argument can be used in advanced workflows to extract feature layers
results = model("https://ultralytics.com/images/bus.jpg")
# Access the top predicted class probability
# This prediction is based on the learned feature representations
print(f"Top class: {results[0].names[results[0].probs.top1]}")
print(f"Confidence: {results[0].probs.top1conf:.4f}")Cette capacité à extraire des caractéristiques riches et significatives rend l'apprentissage contrastif essentiel pour construire des systèmes de vision par ordinateur (CV) modernes, permettant une recherche d'images efficace et des analyses avancées. Pour gérer des ensembles de données et entraîner des modèles personnalisés qui bénéficient de ces architectures avancées, la Ultralytics Platform offre un environnement simplifié pour le déploiement et la surveillance.






