Esplora l'apprendimento contrastivo nel machine learning. Scopri come utilizza dati auto-supervisionati per creare solide funzionalità di intelligenza artificiale per Ultralytics e la visione artificiale.
L'apprendimento contrastivo è un paradigma di apprendimento automatico che insegna ai modelli a comprendere i dati confrontando campioni simili e dissimili. A differenza dell'apprendimento supervisionato tradizionale , che si basa fortemente su set di dati etichettati manualmente, l'apprendimento contrastivo è spesso utilizzato in contesti di apprendimento auto-supervisionato. L' idea di base è semplice ma potente: il modello impara ad avvicinare le rappresentazioni di elementi correlati (coppie positive) in uno spazio vettoriale mentre allontana gli elementi non correlati (coppie negative). Questo processo consente agli algoritmi di costruire caratteristiche robuste e generalizzabili da grandi quantità di dati non etichettati, il che è fondamentale per scalare i sistemi di intelligenza artificiale (AI).
Il concetto di apprendimento per confronto è alla base dell'apprendimento contrastivo. Anziché memorizzare che una determinata immagine è un "gatto", il modello apprende che due diverse foto di un gatto sono più simili tra loro rispetto a qualsiasi foto di un cane. Ciò si ottiene in genere attraverso l' aumento dei dati. Un'immagine di input, spesso chiamata "ancora", viene trasformata in due versioni diverse utilizzando tecniche come il ritaglio, il ribaltamento o il jittering del colore . Queste due versioni formano una coppia positiva. Il modello viene quindi addestrato per ridurre al minimo la distanza tra i loro embedding, massimizzando al contempo la distanza da altre immagini casuali (campioni negativi) nel batch.
Questo approccio aiuta la rete neurale a concentrarsi sulle caratteristiche semantiche di alto livello piuttosto che sui dettagli pixel di basso livello. Ad esempio, che un'auto sia rossa o blu, o rivolta a sinistra o a destra, il concetto sottostante di "auto" rimane lo stesso. Ignorando queste variazioni superficiali , il modello sviluppa una comprensione più profonda del mondo visivo, il che avvantaggia significativamente le attività a valle come il rilevamento e la classificazione degli oggetti.
L'apprendimento contrastivo è diventato una pietra miliare per molte applicazioni di IA all'avanguardia, in particolare dove i dati etichettati sono scarsi o costosi da ottenere.
È utile differenziare l'apprendimento contrastivo da tecniche simili per comprenderne il ruolo unico nel panorama dell'apprendimento automatico (ML).
Sebbene l'addestramento di un modello contrastivo da zero richieda molte risorse, è possibile utilizzare facilmente modelli pre-addestrati per
estrarre le caratteristiche. L'esempio seguente mostra come caricare un modello ed estrarre il vettore delle caratteristiche (incorporamento)
per un'immagine utilizzando il ultralytics pacchetto. Questo incorporamento rappresenta il contenuto semantico appreso tramite
tecniche simili al pre-addestramento contrastivo.
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}")
Questa capacità di estrarre caratteristiche ricche e significative rende l'apprendimento contrastivo essenziale per la creazione di moderni sistemi di visione artificiale (CV), consentendo una ricercaefficiente delle immagini e analisi avanzate. Per la gestione dei set di dati e l'addestramento di modelli personalizzati che traggono vantaggio da queste architetture avanzate, la Ultralytics offre un ambiente semplificato per l'implementazione e il monitoraggio.