Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant
Glossaire

Apprentissage contrastif

Découvrez l'apprentissage contrastif dans le domaine du machine learning. Apprenez comment il utilise des données auto-supervisées pour créer des fonctionnalités d'IA robustes pour Ultralytics 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 dissemblables. Contrairement à l'apprentissage supervisé traditionnel, qui repose fortement sur des ensembles de données étiquetés manuellement, l'apprentissage contrastif est souvent utilisé dans des contextes d'apprentissage auto-supervisé. L' idée centrale est simple mais puissante : le modèle apprend à rapprocher les représentations d'éléments connexes (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 grandes quantités de données non étiquetées, ce qui est crucial pour faire évoluer 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 l'une à l'autre que chacune d'elles ne l'est à une photo d'un chien. Cela s'obtient généralement grâce à l' augmentation des données. Une image d'entrée, souvent appelée « ancre », est transformée en deux versions différentes à l'aide de techniques telles que 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 intégrations tout en maximisant la distance par rapport à d'autres images aléatoires (échantillons négatifs) du lot.

Cette approche aide le réseau neuronal à se concentrer sur les caractéristiques sémantiques de haut niveau plutôt que sur les détails de bas niveau au niveau des pixels. 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 profite considérablement aux tâches en aval telles que la détection et la classification d'objets.

Applications concrètes

L'apprentissage par contraste est devenu une pierre angulaire pour de nombreuses applications d'IA de pointe, en particulier lorsque les données étiquetées sont rares ou coûteuses à obtenir.

  1. Classification d'images sans apprentissage préalable : les modèles tels que CLIP (Contrastive Language-Image Pre-training) utilisent l'apprentissage contrastif pour aligner les images et le texte dans un espace de caractéristiques commun. 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 un apprentissage sans apprentissage préalable, où le modèle peut classify dans des catégories qu'il n'a jamais vues pendant l'entraînement, simplement en associant l'image à une invite textuelle.
  2. Pré-entraînement robuste pour l'imagerie médicale : dans le domaine de la santé, l'obtention de scans médicaux étiquetés par des experts est coûteuse et prend beaucoup de temps. 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 une base solide qui peut être affinée à l'aide d'un petit nombre d' exemples étiquetés afin de detect telles que la pneumonie ou les tumeurs avec une grande précision. Cette technique exploite l' apprentissage par transfert pour améliorer les outils de diagnostic de l'IA dans le domaine de la santé.

Distinguer les concepts apparentés

Il est utile de différencier l'apprentissage par contraste des techniques similaires afin de comprendre son rôle unique dans le paysage de l'apprentissage automatique (ML).

  • vs. Autoencodeurs : Bien que les deux soient des 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, ne cherche pas à recréer l'image, mais se concentre uniquement sur l'apprentissage de représentations discriminantes qui séparent différents concepts.
  • vs. Réseaux antagonistes génératifs (GAN) : Les GAN impliquent un générateur qui crée de fausses données et un discriminateur qui tente de detect . L'apprentissage contrastif se concentre sur l'apprentissage de la représentation 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 un ancrage, un échantillon positif et un échantillon négatif. Les méthodes contrastives modernes, telles que SimCLR ou MoCo, généralisent cela en comparant un ancrage à plusieurs échantillons négatifs simultanément au sein d'un lot, souvent à l'aide d'une fonction de perte spécifique telle que InfoNCE.

Exemple pratique avec les encastrements

Bien que l'entraînement d'un modèle contrastif à partir de zéro nécessite beaucoup de ressources, vous pouvez 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 (intégration) d'une image à l'aide de la fonction ultralytics paquet. Cet encastrement représente le contenu sémantique appris via des techniques similaires 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 à la construction de systèmes modernes de vision par ordinateur (CV), permettant une recherche d'images efficace et des analyses avancées. Pour gérer les ensembles de données et former des modèles personnalisés qui tirent parti de ces architectures avancées, la Ultralytics fournit un environnement rationalisé pour le déploiement et la surveillance.

Rejoindre la communauté Ultralytics

Rejoignez le futur de l'IA. Connectez-vous, collaborez et évoluez avec des innovateurs mondiaux.

Rejoindre maintenant