Ultralytics YOLO27: Trag dich in die Warteliste ein.
YOLO lizenzieren
Zurück zum Ultralytics-Glossar

Contrastive Learning

Beim kontrastiven Lernen werden Embeddings so trainiert, dass passende Paare näher zusammenrücken und andere Beispiele weiter auseinanderliegen. Hier geht es um InfoNCE, SimCLR, MoCo, CLIP und Code.

Beim kontrastiven Lernen wird ein Modell darauf trainiert, Einbettungen zu erzeugen, bei denen passende Probenpaare, sogenannte positive Beispiele, nah beieinanderliegen und nicht passende Paare, sogenannte negative Beispiele, weit auseinander. Die Paare können aus den Daten selbst stammen, etwa als zwei erweiterte Ausschnitte desselben Fotos, oder aus natürlich gepaarten Daten wie einem Bild und seiner Bildunterschrift. Kontrastives Lernen benötigt daher keine Klassenlabels. Es ist neben maskierter Rekonstruktion und Selbst-Destillation eine der wichtigsten Gruppen von Methoden des selbstüberwachten Lernens für Bilder. Auf diese Weise trainierte Encoder erzeugen Merkmale, die sich auf Erkennung, Klassifizierung und Abruf übertragen lassen. Dieselbe Zielfunktion trainiert Bild-Sprach-Modelle wie CLIP, mit denen sich Bilder anschließend allein anhand von Text durch Zero-Shot-Lernen klassifizieren lassen.

So funktioniert kontrastives Lernen#

Eine kontrastive Methode besteht aus drei Teilen: einem Verfahren zum Erzeugen positiver Paare, einem Encoder, der jedes Beispiel auf eine normalisierte Einbettung abbildet, und einer Verlustfunktion, die Ähnlichkeiten vergleicht. Bei SimCLR erzeugten Ting Chen und Kolleginnen und Kollegen bei Google zwei Ansichten jedes Bildes durch zufälliges Zuschneiden, Farbverzerrung und Unschärfe. Beide Ansichten wurden mit einem gemeinsamen ResNet und anschließend einem kleinen Projektionskopf codiert. Die übrigen Bilder im Batch dienten als negative Beispiele:

Die Datenerweiterung legt fest, was das Modell zu ignorieren lernt. Da zwei Ausschnitte eines Bildes auf nahe Punkte abgebildet werden müssen, lernt der Encoder, dass Verschiebungen von Position, Maßstab und Farbe nichts daran ändern, was das Bild zeigt. Gleichzeitig behält er die Merkmale bei, die ein Bild von allen anderen unterscheiden. Mit einem viermal breiteren ResNet-50 als üblich erreichte ein auf den eingefrorenen Merkmalen von SimCLR trainierter linearer Klassifikator bei ImageNet eine Top-1-Genauigkeit von 76.5 % und erzielte damit dasselbe Ergebnis wie ein überwachtes ResNet-50.

Verlustfunktionen für kontrastives Lernen#

  • Paarweise kontrastive Verlustfunktion: Die 2006 von Raia Hadsell, Sumit Chopra und Yann LeCun entwickelte Verlustfunktion zieht jedes positive Paar zusammen und drückt jedes negative Paar auseinander, bis zwischen den beiden mindestens ein Abstand von m liegt.
  • Triplet-Verlust: Vergleicht einen Anker mit einem positiven und einem negativen Beispiel und verlangt, dass das positive Beispiel um einen Mindestabstand näher liegt. Google trainierte 2015 mit dieser Methode die Gesichtseinbettungen von FaceNet.
  • InfoNCE: Vergleicht ein positives Beispiel gleichzeitig mit vielen negativen Beispielen. Bei Ähnlichkeiten s, die durch eine Temperatur τ geteilt werden, lautet die Verlustfunktion für einen Anker −log[exp(s₊/τ) / Σⱼ exp(sⱼ/τ)]. Dabei handelt es sich um eine Softmax-Kreuzentropie, bei der das positive Beispiel unter allen Kandidaten die richtige Klasse ist. Aaron van den Oord und Kolleginnen und Kollegen prägten den Namen 2018 im Rahmen von kontrastiver prädiktiver Kodierung. Die NT-Xent-Verlustfunktion von SimCLR und die Verlustfunktion von CLIP sind Varianten davon.
  • Sigmoid-Verlustfunktion: SigLIP bewertet jedes Paar mithilfe einer Sigmoid-Funktion als unabhängige Ja-oder-Nein-Übereinstimmung. Daher muss die Verlustfunktion nicht über den Batch hinweg normalisiert werden.

In PyTorch lässt sich InfoNCE auf die Kreuzentropie über eine Ähnlichkeitsmatrix reduzieren, deren Diagonale die positiven Beispiele enthält:

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}")

Das Skript gibt Augmented views: loss 0.016 und Unrelated images: loss 2.505 aus. Wenn das positive Beispiel jeder Zeile eindeutig der ähnlichste Schlüssel ist, nähert sich der Verlust null. Bei nicht zusammengehörigen Schlüsseln steigt er über ln 8 ≈ 2.08, den Verlust einer gleichverteilten Schätzung unter acht Kandidaten. Denn durch die Division durch eine Temperatur von 0.1 werden zufällige Ähnlichkeiten zu selbstsicheren Fehlzuordnungen. Eine niedrigere Temperatur schärft die Softmax-Funktion und konzentriert den Verlust auf die schwierigsten negativen Beispiele. MoCo verwendet τ = 0.07, und CLIP initialisiert seine lernbare Temperatur mit demselben Wert.

Negative Beispiele, Batch-Größe und Varianten#

InfoNCE profitiert von mehr negativen Beispielen, weshalb ihre Anzahl einen wesentlichen Kostenfaktor darstellt. SimCLR verwendete dafür sehr große Batches. MoCo von Kaiming He und Kolleginnen und Kollegen bei Facebook AI Research speicherte eine Warteschlange mit 65,536 Einbettungen aus kürzlich verarbeiteten Batches als negative Beispiele. Sie wurden mit einer langsam aktualisierten Momentum-Kopie des Encoders codiert, wodurch die Anzahl negativer Beispiele von der Batch-Größe unabhängig war. Zufällig gewählte negative Beispiele können in Wirklichkeit positiv sein, etwa ein weiteres Foto derselben Hunderasse; sehr einfache negative Beispiele vermitteln dagegen wenig. Deshalb sucht Hard-Negative-Mining gezielt nach schwer unterscheidbaren Beispielen. Überwachtes kontrastives Lernen (SupCon) nutzt Labels, um jedes Beispiel derselben Klasse als positives Beispiel zu behandeln. Nicht-kontrastive Methoden wie BYOL, SimSiam und DINO verzichten vollständig auf negative Beispiele und verhindern mit asymmetrischen Netzen, gestoppten Gradienten oder Zentrierung, dass alle Eingaben auf dieselbe Einbettung abgebildet werden.

  • Metrisches Lernen: Die umfassendere Aufgabe, eine Distanzfunktion zu erlernen, aus der kontrastive Verlustfunktionen und Triplet-Verlustfunktionen hervorgehen. „Kontrastives Lernen“ bezeichnet heute meist die selbstüberwachte Variante mit vielen negativen Beispielen, die durch SimCLR und MoCo bekannt wurde.
  • Autoencoder: Lernen durch Rekonstruktion der Eingabe; ihre Merkmale müssen deshalb Details auf Pixelebene erhalten. Kontrastive Merkmale behalten nur das, was ein Beispiel von den anderen unterscheidet.
  • JEPA: Sagt die Einbettungen verborgener Bildbereiche anhand sichtbarer Bereiche voraus und lernt im Einbettungsraum ohne negative Paare.
  • Überwachtes Lernen: Trainiert auf eine feste Menge von Menschen zugewiesener Klassen hin, während für kontrastives Vortraining lediglich eine Regel benötigt wird, die festlegt, welche Beispiele zusammengehören.

Anwendungen#

  • Bild-Sprach-Modelle: CLIP trainierte einen Bild- und einen Textencoder mit 400 Millionen Bild-Bildunterschrift-Paaren und Batches der Größe 32,768, sodass Textprompts Bilder klassifizieren und suchen können. Die Ultralytics-Modelle YOLOE-26 codieren Klassennamen mit dem Textencoder MobileCLIP2 von Apple, der mit einem kontrastiven Lernziel im CLIP-Stil trainiert wurde. Ein kontrastiver Kopf bewertet jeden Kandidatenbereich anhand dieser Texteinbettungen, sodass set_classes(["forklift", "pallet"]) dieselben Gewichte in einen Detektor für neue Kategorien verwandelt.
  • Semantische Suche: Kontrastiv trainierte Einbettungen von Bildern und Texten werden in einer Vektordatenbank gespeichert und anhand ihrer Ähnlichkeit durchsucht.
  • Vortraining mit wenigen Labels: In Bereichen wie der medizinischen Bildanalyse, in denen nur wenige Expertenlabels verfügbar sind, liefert kontrastives Vortraining mit nicht annotierten Scans ein Backbone, das sich durch Feinabstimmung mit einer kleinen Menge annotierter Daten anpassen lässt.
  • Gesichtserkennung und Wiedererkennung: Kontrastive und Triplet-Verlustfunktionen trainieren Einbettungen, in denen Fotos derselben Person oder desselben Objekts nahe beieinander liegen. Die 128-dimensionalen Einbettungen von FaceNet erreichten beim Benchmark Labeled Faces in the Wild eine Genauigkeit von 99.63 %.

Lösungen entdecken

Computer Vision im Sport

Computer Vision im Sport

Entdecke, wie Ultralytics YOLO die Sportbildanalyse voranbringt – mit Spieler- und Ballverfolgung, Leistungsanalysen, Erkenntnissen für das Coaching und der Rehabilitation von Athleten.
Mehr erfahren
Computer Vision für Luftbilder

Computer Vision für Luftbilder

Verwandle Drohnen- und Luftbilder mit Ultralytics YOLO in Echtzeit-Erkenntnisse für Landwirtschaft, Aquakultur, Naturschutz und Geodatenanalyse.
Mehr erfahren
Computer Vision in der Luft- und Raumfahrt

Computer Vision in der Luft- und Raumfahrt

Setze Computer Vision in der Luft- und Raumfahrt mit Ultralytics YOLO ein – für Flugzeuginspektionen, die Erkennung von Fremdkörpern auf Start- und Landebahnen, den Bodenbetrieb am Flughafen und die Erkennung von Verbundwerkstofffehlern.
Mehr erfahren
Computer Vision im Sicherheitsbereich

Computer Vision im Sicherheitsbereich

Schütze jeden Standort mit Ultralytics YOLO-Modellen. Vision-KI ermöglicht die Überwachung von Grundstücksgrenzen, die Erkennung von Bedrohungen, die Kennzeichenerkennung und die Sicherheit am Arbeitsplatz.
Mehr erfahren
Computer Vision in der Robotik

Computer Vision in der Robotik

Mach Maschinen mit Ultralytics YOLO-Modellen leistungsfähiger. Vision-KI in der Robotik ermöglicht autonome Navigation, Wahrnehmung, Objektverfolgung und Steuerung in Echtzeit.
Mehr erfahren
Bildverarbeitung in der Logistik

Bildverarbeitung in der Logistik

Optimiere die Logistik mit Ultralytics YOLO-Modellen. Vision AI ermöglicht die Paketprüfung, Sortierung und Fahrzeugverfolgung sowie die Sicherheitsüberwachung von Lagerhäusern in Echtzeit.
Mehr erfahren
Bildverarbeitung im Einzelhandel

Bildverarbeitung im Einzelhandel

Gestalte den Einzelhandel mit Ultralytics YOLO-Modellen neu. Vision AI ermöglicht Bestandsverfolgung, Regalüberwachung und Warteschlangenmanagement und liefert bessere Einblicke in das Kundenverhalten.
Mehr erfahren
Bildverarbeitung im Gesundheitswesen

Bildverarbeitung im Gesundheitswesen

Entwickle Lösungen für das Gesundheitswesen mit Ultralytics YOLO-Modellen. Vision AI ermöglicht im Gesundheitswesen schnellere medizinische Bildgebung, bessere Diagnostik und die Überwachung von Patienten.
Mehr erfahren
Computer Vision in der Fertigung

Computer Vision in der Fertigung

Optimiere die Fertigung mit Ultralytics-YOLO-Modellen. Vision AI ermöglicht Qualitätskontrolle, Fehlererkennung, die Überprüfung der Einhaltung von Vorgaben zu persönlicher Schutzausrüstung und die Automatisierung von Montagelinien.
Mehr erfahren
Computer Vision in der Automobilbranche

Computer Vision in der Automobilbranche

Setze Computer Vision in der Automobilbranche mit Ultralytics-YOLO-Modellen ein. Vision AI verbessert die Verkehrssicherheit, Fahrerassistenz und Fahrzeugautomatisierung – für intelligentere Straßen.
Mehr erfahren
Computer Vision in der Landwirtschaft

Computer Vision in der Landwirtschaft

Setze mit Ultralytics YOLO-Modellen KI für Bildverarbeitung in der intelligenten Landwirtschaft ein. Ermögliche die Überwachung von Nutzpflanzen, die Verfolgung von Nutztieren und Präzisionslandwirtschaft für höhere und nachhaltigere Erträge.
Mehr erfahren

Lass uns gemeinsam die Zukunft der KI gestalten!

Starte deine Reise in die Zukunft des maschinellen Lernens