Zero-Shot Learning
L'apprendimento zero-shot riconosce classi senza esempi etichettati, abbinando gli input a descrizioni testuali. Panoramica di CLIP, rilevamento a vocabolario aperto e limiti.
L'apprendimento zero-shot (ZSL) è la capacità di un modello di riconoscere classi per le quali non ha mai visto esempi di addestramento etichettati. Invece degli esempi, il modello riceve una descrizione di ogni nuova classe, per esempio un elenco di attributi o, nei sistemi moderni, il nome della classe sotto forma di testo, e confronta gli input con tali descrizioni in uno spazio di embedding condiviso. L'apprendimento supervisionato standard può predire solo le classi presenti nelle etichette di addestramento; per aggiungere una categoria occorre quindi raccogliere e etichettare nuovi dati e riaddestrare il modello. Un modello zero-shot aggiunge una categoria semplicemente aggiungendone il nome. CLIP di OpenAI, addestrato su 400 milioni di coppie immagine-didascalia, ha raggiunto l'accuratezza di ImageNet del ResNet-50 supervisionato originale senza usare nessuna delle 1,28 milioni di immagini di addestramento di ImageNet etichettate.
Come funziona l'apprendimento zero-shot#
L'apprendimento zero-shot trasferisce conoscenze attraverso uno spazio semantico che collega le classi viste e quelle non viste. I primi metodi descrivevano ogni classe con attributi definiti da persone, come "a strisce", "ha gli zoccoli" e "vive nelle praterie", e addestravano i modelli a predire tali attributi; così era possibile riconoscere un animale mai visto durante l'addestramento come la classe i cui attributi corrispondevano. I modelli visione-linguaggio hanno sostituito gli attributi costruiti manualmente con il linguaggio naturale. CLIP addestra un encoder di immagini e un encoder di testo con apprendimento contrastivo, in modo che immagini e didascalie corrispondenti ottengano embedding simili. Per classificare, il modello calcola l'embedding di un prompt per ogni classe candidata, come "una foto di una zebra", calcola quello dell'immagine e seleziona la classe con la similarità coseno più alta:
Poiché il classificatore viene creato dal testo al momento dell'inferenza, l'elenco delle classi può cambiare a ogni richiesta. Lo stesso schema si applica ai modelli linguistici di grandi dimensioni (LLM): il prompting zero-shot consiste nel fornire al modello solo un'istruzione, senza esempi svolti, come definito nell'articolo GPT-3.
Rilevamento di oggetti zero-shot#
I rilevatori a vocabolario aperto estendono l'apprendimento zero-shot dalle immagini intere ai singoli oggetti. Assegnano un punteggio a ogni regione candidata confrontandola con gli embedding testuali delle classi richieste, così possono trovare oggetti al di fuori di qualsiasi insieme fisso di etichette, come un prodotto specifico in un archivio video. YOLO-World applica questo approccio ai modelli YOLO in tempo reale. YOLOE-26 di Ultralytics, una versione a vocabolario aperto di YOLO26, codifica ogni nome di classe passato a set_classes() con un encoder di testo MobileCLIP2 e restituisce riquadri e maschere di segmentazione delle istanze per quelle classi senza riaddestramento:
from ultralytics import YOLOE
# Checkpoint YOLOE-26 che accetta prompt testuali
model = YOLOE("yoloe-26s-seg.pt")
# Specifica le classi al momento dell'inferenza, qui usando parole che non sono etichette COCO
model.set_classes(["city bus", "sneakers", "glasses"])
# Rileva e segmenta le classi indicate
results = model.predict("https://ultralytics.com/images/bus.jpg")
result = results[0]
result.save(filename="zero_shot_result.jpg")La prima chiamata a set_classes() scarica l'encoder testuale. Nel rilevamento degli oggetti, "zero-shot" significa che il modello non ha ricevuto riquadri etichettati per una classe, anche se il nome della classe potrebbe essere comparso nei dati immagine-testo usati per preaddestrare i suoi encoder. Ultralytics Platform annota automaticamente i dataset di rilevamento con rilevatori zero-shot e modelli visione-linguaggio, e la classifica VLM confronta la precisione con cui ciascuno individua gli oggetti nelle immagini del mondo reale.
Applicazioni#
- Ricerca visiva e moderazione: Le librerie multimediali e le piattaforme di contenuti trovano immagini corrispondenti a una query testuale o segnalano nuove categorie di contenuti senza addestrare un classificatore per ogni query.
- Robotica: Un robot a cui viene chiesto di prendere "la tazza blu" può individuare una categoria di oggetti che non è mai stato addestrato a rilevare.
- Fauna selvatica e biodiversità: BioCLIP, addestrato su oltre 10 milioni di immagini che coprono l'albero della vita, classifica le specie zero-shot in base ai loro nomi e ha vinto il premio per il miglior articolo studentesco a CVPR 2024.
- Diagnostica per immagini: I modelli addestrati su radiografie abbinate ai relativi referti radiologici possono segnalare reperti mai annotati come etichette di addestramento esplicite.
Sfide#
L'accuratezza zero-shot è in genere inferiore a quella di un modello addestrato su esempi etichettati delle stesse classi, soprattutto per categorie specialistiche o molto dettagliate i cui nomi sono rari nei testi sul web. Nell'apprendimento zero-shot generalizzato, in cui le immagini di test possono appartenere sia a classi viste sia a classi non viste, i modelli tendono a favorire le classi su cui sono stati addestrati; gli studi sui benchmark hanno rilevato che in questo contesto l'accuratezza sulle classi non viste cala nettamente. Anche i risultati dipendono dalla formulazione, perciò l'ingegneria dei prompt rientra nella classificazione zero-shot: l'accuratezza di CLIP su ImageNet è aumentata dell'1,3% sostituendo il semplice nome della classe con il prompt "una foto di {label}."
Apprendimento zero-shot e termini correlati#
- Apprendimento few-shot: Apprende nuove classi da pochi esempi etichettati per classe, in genere da 1 a 10. Nell'apprendimento zero-shot non ci sono esempi, ma solo una descrizione.
- Apprendimento one-shot: Caso di apprendimento few-shot con esattamente un esempio etichettato per classe, spesso confrontato tramite similarità degli embedding.
- Transfer learning: Riutilizza un modello preaddestrato per un nuovo compito, di solito perfezionandolo su dati etichettati. L'apprendimento zero-shot trasferisce conoscenze attraverso lo spazio condiviso testo-immagine senza ulteriore addestramento.
- Prompting visivo: Specifica l'obiettivo con un'immagine o un riquadro di esempio invece che con parole, utile per oggetti difficili da nominare, come una parte specifica o un logo.










