Contrastive learning is a machine learning method that trains models by comparing similar and dissimilar examples.L'apprentissage contrastif est une approche en apprentissage automatique qui permet de construire des représentations de données de qualité sans étiquetage (apprentissage auto-supervisé). Il s'appuie sur la notion de perte contrastive : le modèle attire les représentations (plongements) d'objets sémantiquement proches (paires positives) et repousse les représentations d'objets non liés (paires négatives). Par exemple, pour les images, les paires positives sont différentes vues (augmentations) d'une même photo, tandis que les négatives sont toutes les autres images du mini-lot. Ainsi, le réseau neuronal apprend à extraire des caractéristiques invariantes, en ignorant les variations non essentielles d'éclairage, de rotation, d'échelle. La méthode a servi de base à de nombreux systèmes de reconnaissance modernes, où elle surpasse souvent l'apprentissage supervisé avec peu d'étiquettes.
Les racines remontent à l'apprentissage métrique : les réseaux siamois (Bromley et al., 1993) pour la comparaison de signatures. En 2006, Hadsell et LeCun ont proposé la perte contrastive pour l'apprentissage de représentations invariantes. Le regain d'intérêt est lié aux progrès de l'apprentissage auto-supervisé pour les images : en 2018, le modèle InstDisc (Wu et al.) utilisait un memory bank ; les percées ont été MoCo (He et al., 2020) avec une file d'attente d'exemples négatifs et SimCLR (Chen et al., 2020) avec une grande taille de lot et une forte augmentation. Ces travaux ont montré que le pré-entraînement contrastif atteint une précision proche de l'apprentissage supervisé, et le dépasse parfois lors du réglage fin sur de petits échantillons. Par la suite, l'approche a été adaptée pour la vidéo, l'audio, les graphes et les données multimodales (CLIP, 2021).
L'algorithme comprend trois étapes : (1) l'augmentation stochastique des données crée deux représentations indépendantes d'une même entrée (par exemple, recadrage aléatoire, distorsion de couleur) ; (2) un encodeur (ResNet, ViT) les projette dans des vecteurs d'un espace latent ; (3) une tête de projection (MLP) les transforme dans un espace de dimension réduite où l'on calcule la perte contrastive InfoNCE : L = -log[ exp(sim(z_i, z_j)/τ) / ∑_{k=1}^{2N} 1_{k≠i} exp(sim(z_i, z_k)/τ) ], où sim est la similarité cosinus, τ un paramètre de température. L'optimisation réduit l'entropie croisée entre la distribution des paires positives et négatives. Pour éviter l'effondrement des représentations (tous les vecteurs convergeant vers un même point), on utilise des mécanismes : paires négatives issues d'une file d'attente (MoCo), arrêt du gradient et prédicteur (BYOL), clustering (SwAV). Au final, l'espace latent acquiert une structure sémantique invariante aux transformations appliquées.
Reconnaissance de visages sans étiquettes, recherche d'images similaires dans de grandes archives, amélioration des diagnostics à partir d'images médicales lorsque les données annotées sont rares.
Le système CLIP d'OpenAI, entraîné de manière contrastive sur des paires image-texte, est capable de peindre des tableaux à partir d'une description, bien qu'il n'ait jamais appris le style artistique directement — il a simplement saisi les corrélations.





















