Ultralytics YOLO27 : Rejoins la liste d'attente.
Licence YOLO
Retour au glossaire Ultralytics

Contrastive Learning

L’apprentissage contrastif entraîne les embeddings en rapprochant les paires correspondantes et en éloignant les autres échantillons. Découvre InfoNCE, SimCLR, MoCo, CLIP et le code.

L’apprentissage contrastif entraîne un modèle à produire des plongements où les paires d’échantillons correspondants, appelées positives, sont proches les unes des autres, tandis que les échantillons non correspondants, appelés négatifs, sont éloignés. Les paires peuvent provenir des données elles-mêmes, comme deux recadrages augmentés de la même photo, ou de données naturellement associées, comme une image et sa légende ; l’apprentissage contrastif ne nécessite donc pas d’étiquettes de classe. C’est l’une des principales familles de méthodes d’apprentissage auto-supervisé pour les images, avec la reconstruction masquée et l’auto-distillation. Les encodeurs ainsi entraînés produisent des caractéristiques transférables à la détection, à la classification et à la récupération ; le même objectif entraîne des modèles vision-langage comme CLIP, qui peuvent ensuite classer des images à partir du seul texte grâce à l’apprentissage zéro-shot.

Fonctionnement de l'apprentissage contrastif#

Une méthode contrastive comporte trois éléments : un moyen de créer des paires positives, un encodeur qui convertit chaque échantillon en un plongement normalisé et une fonction de perte qui compare les similarités. Dans SimCLR, Ting Chen et ses collègues de Google ont créé deux vues de chaque image par recadrage aléatoire, distorsion des couleurs et flou, puis les ont encodées avec un même ResNet suivi d'une petite tête de projection. Les autres images du lot étaient considérées comme négatives :

L'augmentation des données détermine ce que le modèle apprend à ignorer. Puisque deux recadrages d'une même image doivent être projetés vers des points proches, l'encodeur apprend que les variations de position, d'échelle et de couleur ne changent pas ce que l'image représente ; il conserve les caractéristiques qui distinguent une image de toutes les autres. Avec un ResNet-50 quatre fois plus large que la version standard, un classificateur linéaire entraîné sur les caractéristiques gelées de SimCLR a atteint une exactitude top-1 de 76,5 % sur ImageNet, égalant un ResNet-50 supervisé.

Fonctions de perte contrastives#

  • Perte contrastive par paire : la perte de 2006 de Raia Hadsell, Sumit Chopra et Yann LeCun rapproche chaque paire positive et éloigne chaque paire négative jusqu'à ce que leur distance soit d'au moins une marge m.
  • Perte par triplets : compare une ancre à un exemple positif et un exemple négatif, et exige que le positif soit plus proche d'une marge donnée. En 2015, FaceNet, développé par Google, a entraîné des plongements de visages avec cette méthode.
  • InfoNCE : compare simultanément un exemple positif à de nombreux exemples négatifs. Avec des similarités s divisées par une température τ, la perte pour une ancre est −log[exp(s₊/τ) / Σⱼ exp(sⱼ/τ)], une entropie croisée softmax où le positif est la classe correcte parmi tous les candidats. Aaron van den Oord et ses collègues ont introduit ce nom en 2018 dans le cadre du codage prédictif contrastif. La perte NT-Xent de SimCLR et celle de CLIP en sont des variantes.
  • Perte sigmoïde : SigLIP évalue chaque paire comme une correspondance indépendante par oui ou par non au moyen d'une sigmoïde ; la perte n'a donc pas besoin d'être normalisée sur l'ensemble du lot.

Dans PyTorch, InfoNCE se réduit à une entropie croisée appliquée à une matrice de similarité dont la diagonale contient les exemples positifs :

import torch
import torch.nn.functional as F

torch.manual_seed(0)
# Stand-in embeddings for 8 images, a second view of each (row i of both is a positive pair),
# and 8 unrelated images
view1 = F.normalize(torch.randn(8, 128), dim=1)
view2 = F.normalize(view1 + 0.1 * torch.randn(8, 128), dim=1)
unrelated = F.normalize(torch.randn(8, 128), dim=1)

# InfoNCE: cosine similarities divided by a temperature, then cross-entropy where
# each row's positive (the diagonal) is the correct class among all 8 candidates
temperature = 0.1
targets = torch.arange(8)
for name, keys in [("Augmented views", view2), ("Unrelated images", unrelated)]:
    logits = view1 @ keys.T / temperature
    print(f"{name}: loss {F.cross_entropy(logits, targets):.3f}")

Le script affiche Augmented views: loss 0.016 et Unrelated images: loss 2.505. Lorsque le positif de chaque ligne est clairement la clé la plus similaire, la perte tend vers zéro. Avec des clés sans rapport, elle dépasse ln 8 ≈ 2.08, soit la perte d'une prédiction uniforme parmi huit candidats, car une division par une température de 0.1 transforme des similarités dues au hasard en prédictions erronées très confiantes. Une température plus basse rend le softmax plus sélectif et concentre la perte sur les négatifs les plus difficiles. MoCo utilise τ = 0.07 et CLIP initialise sa température apprise à la même valeur.

Négatifs, taille de lot et variantes#

InfoNCE s'améliore avec un plus grand nombre de négatifs, ce qui en fait un coût essentiel. SimCLR les tirait de lots très volumineux. MoCo, développé par Kaiming He et ses collègues de Facebook AI Research, conservait une file de 65 536 plongements issus de lots récents comme exemples négatifs et les encodait avec une copie de l'encodeur mise à jour lentement par momentum, ce qui dissocie le nombre de négatifs de la taille du lot. Les négatifs aléatoires peuvent être de faux négatifs, comme une autre photo d'un chien de la même race, tandis que les négatifs trop faciles apportent peu d'information ; c'est pourquoi l'extraction de négatifs difficiles recherche les échantillons faciles à confondre. L'apprentissage contrastif supervisé (SupCon) utilise les étiquettes pour considérer tous les échantillons d'une même classe comme positifs. Des méthodes non contrastives comme BYOL, SimSiam et DINO éliminent complètement les négatifs et évitent de projeter toutes les entrées vers un même plongement au moyen de réseaux asymétriques, de gradients interrompus ou du centrage.

  • Apprentissage métrique : tâche plus générale consistant à apprendre une fonction de distance, dont dérivent les pertes contrastive et par triplets. Aujourd'hui, l'« apprentissage contrastif » désigne généralement la forme auto-supervisée à nombreux négatifs popularisée par SimCLR et MoCo.
  • Autoencodeurs : apprennent en reconstruisant l'entrée ; leurs caractéristiques doivent donc préserver les détails au niveau des pixels. Les caractéristiques contrastives ne conservent que ce qui distingue un échantillon des autres.
  • JEPA : prédit les plongements des régions masquées d'une image à partir des régions visibles. Il apprend dans l'espace des plongements sans paires négatives.
  • Apprentissage supervisé : entraîne un modèle à prédire un ensemble fixe de classes attribuées par des humains, tandis que le préentraînement contrastif nécessite uniquement une règle déterminant quels échantillons correspondent.

Applications#

  • Modèles vision-langage : CLIP a entraîné un encodeur d'images et un encodeur de texte sur 400 millions de paires image-légende, avec des lots de 32 768 éléments, afin que des requêtes textuelles puissent classer et rechercher des images. Les modèles YOLOE-26 d'Ultralytics encodent les noms de classes avec l'encodeur de texte MobileCLIP2 d'Apple, entraîné au moyen d'un objectif contrastif de type CLIP. Ils évaluent chaque région candidate par rapport à ces plongements textuels dans une tête contrastive : set_classes(["forklift", "pallet"]) transforme ainsi les mêmes poids en détecteur de nouvelles catégories.
  • Recherche sémantique : les plongements d'images et de textes entraînés de manière contrastive sont stockés dans une base de données vectorielle et recherchés par similarité.
  • Préentraînement avec peu d'étiquettes : dans des domaines comme l'analyse d'images médicales, où les étiquettes produites par des experts sont rares, le préentraînement contrastif sur des examens non étiquetés fournit un backbone que l'ajustement fin adapte à l'aide d'un petit ensemble étiqueté.
  • Reconnaissance faciale et réidentification : les pertes contrastive et par triplets entraînent des plongements où les photos d'une même personne ou d'un même objet sont proches les unes des autres. Les plongements de 128 dimensions de FaceNet ont atteint une exactitude de 99,63 % sur le benchmark Labeled Faces in the Wild.

Découvre les solutions

La vision par ordinateur dans le sport

La vision par ordinateur dans le sport

Découvre comment Ultralytics YOLO propulse la vision par ordinateur dans le sport grâce au suivi des joueurs et du ballon, aux analyses de performance, aux conseils d’entraînement et à la rééducation des athlètes.
En savoir plus
Vision par ordinateur pour les images aériennes

Vision par ordinateur pour les images aériennes

Transforme les images de drones et les images aériennes en informations exploitables en temps réel pour l’agriculture, l’aquaculture, la conservation et l’analyse géospatiale avec Ultralytics YOLO.
En savoir plus
Vision par ordinateur dans l’aérospatiale

Vision par ordinateur dans l’aérospatiale

Applique la vision par ordinateur dans l’aérospatiale avec Ultralytics YOLO pour l’inspection des aéronefs, la détection des corps étrangers sur les pistes, les opérations au sol des aéroports et la détection des défauts des matériaux composites.
En savoir plus
La vision par ordinateur dans la sécurité

La vision par ordinateur dans la sécurité

Protège chaque site avec les modèles Ultralytics YOLO. L’IA visuelle permet la surveillance des périmètres, la détection des menaces, la reconnaissance des plaques d’immatriculation et la sécurité au travail.
En savoir plus
La vision par ordinateur en robotique

La vision par ordinateur en robotique

Donne plus de capacités à tes machines grâce aux modèles Ultralytics YOLO. Dans la robotique, l’IA visuelle permet la navigation autonome, la perception, le suivi des objets et le contrôle en temps réel.
En savoir plus
La vision par ordinateur dans la logistique

La vision par ordinateur dans la logistique

Optimise la logistique avec les modèles Ultralytics YOLO. La vision par IA permet d’inspecter les colis, de les trier, de suivre les véhicules et de surveiller la sécurité des entrepôts en temps réel.
En savoir plus
La vision par ordinateur dans le commerce de détail

La vision par ordinateur dans le commerce de détail

Réinvente le commerce de détail avec les modèles Ultralytics YOLO. La vision par IA permet de suivre les stocks, de surveiller les rayons, de gérer les files d’attente et de mieux comprendre les clients.
En savoir plus
La vision par ordinateur dans le secteur de la santé

La vision par ordinateur dans le secteur de la santé

Crée des solutions de santé avec les modèles Ultralytics YOLO. La vision par IA dans le secteur de la santé accélère l’imagerie médicale, améliore les diagnostics et facilite la surveillance des patients.
En savoir plus
La vision par ordinateur dans l’industrie manufacturière

La vision par ordinateur dans l’industrie manufacturière

Optimise la fabrication avec les modèles Ultralytics YOLO. La vision par IA améliore le contrôle qualité, la détection des défauts, le respect des règles concernant les EPI et l’automatisation des chaînes de montage.
En savoir plus
La vision par ordinateur dans l’automobile

La vision par ordinateur dans l’automobile

Mets la vision par ordinateur au service de l’automobile avec les modèles Ultralytics YOLO. La vision par IA renforce la sécurité routière, l’aide à la conduite et l’automatisation des véhicules pour des routes plus intelligentes.
En savoir plus
Vision par ordinateur dans l’agriculture

Vision par ordinateur dans l’agriculture

Fais entrer l’IA de vision dans l’agriculture intelligente avec les modèles Ultralytics YOLO. Optimise le suivi des cultures et du bétail ainsi que l’agriculture de précision pour obtenir des rendements plus élevés et plus intelligents.
En savoir plus

Construisons ensemble l’avenir de l’IA !

Commence ton parcours vers l’avenir de l’apprentissage automatique