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 enseigne aux modèles à comprendre les données en comparant des échantillons similaires et dissimilaires. Contrairement à l'apprentissage supervisé traditionnel, qui repose fortement sur des jeux de données étiquetés manuellement, l'apprentissage contrastif est souvent utilisé dans des contextes d'apprentissage auto-supervisé. L'idée fondamentale est simple mais puissante : le modèle apprend à rapprocher les représentations d'éléments liés (paires positives) dans un espace vectoriel, tout en éloignant les éléments non lié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 le passage à l'échelle des systèmes d'intelligence artificielle (IA).
Link to this sectionLe 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 l'une à l'autre que n'importe laquelle d'entre elles ne l'est à une photo de chien. Cela est généralement réalisé grâce à l'augmentation de données. Une image d'entrée, souvent appelée « ancre », est transformée en deux versions différentes à l'aide de techniques comme le recadrage, le retournement ou la variation de couleur. Ces deux versions forment une paire positive. Le modèle est ensuite entraîné à minimiser la distance entre leurs embeddings 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 orientée vers la gauche ou 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 profite grandement aux tâches en aval comme la détection d'objets et la classification.
Link to this sectionApplications 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 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 classer 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 domaine de la santé, obtenir des scans médicaux étiquetés par des experts est coûteux et long. Les chercheurs utilisent l'apprentissage contrastif pour pré-entraîner des modèles sur de grandes bases de données de radiographies ou d'IRM non étiquetées. Ce pré-entraînement non supervisé crée un backbone puissant qui peut être affiné 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 tire parti de l'apprentissage par transfert pour améliorer les outils de diagnostic dans l'IA en santé.
Link to this sectionDistinguer 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. Autoencodeurs : Bien qu'il s'agisse dans les deux cas de méthodes non supervisées, les autoencodeurs visent à reconstruire les données d'entrée pixel par pixel, en les compressant dans une couche goulot 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 les différents concepts.
- vs. Réseaux antagonistes génératifs (GANs) : Les GANs 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 comme la recherche, la récupération et la classification.
- vs. Triplet Loss : La perte triplet (Triplet Loss) 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 avec de nombreux échantillons négatifs simultanément au sein d'un lot, utilisant souvent une fonction de perte spécifique comme InfoNCE.
Link to this sectionExemple 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 (embedding) pour une image en utilisant le package ultralytics. Cet embedding 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 tes jeux de données et entraîner des modèles personnalisés qui bénéficient de ces architectures avancées, la Ultralytics Platform fournit un environnement simplifié pour le déploiement et la surveillance.






