Zero-Shot Learning
L’apprentissage zéro-shot reconnaît des classes sans exemples étiquetés en associant les entrées à des descriptions textuelles. Présentation de CLIP, de la détection à vocabulaire ouvert et des limites.
L'apprentissage zéro-shot (ZSL) est la capacité d'un modèle à reconnaître des classes pour lesquelles il n'a vu aucun exemple d'entraînement annoté. Au lieu d'exemples, le modèle reçoit une description de chaque nouvelle classe, comme une liste d'attributs ou, dans les systèmes modernes, le nom de la classe sous forme de texte ; il compare ensuite les entrées à ces descriptions dans un espace d'embeddings partagé. L'apprentissage supervisé classique ne peut prédire que les classes présentes dans ses étiquettes d'entraînement : ajouter une catégorie implique donc de collecter et d'annoter de nouvelles données, puis de réentraîner le modèle. Un modèle zéro-shot ajoute une catégorie en ajoutant son nom. CLIP d'OpenAI, entraîné sur 400 millions de paires image-légende, a atteint la précision ImageNet du ResNet-50 supervisé d'origine sans utiliser aucune des 1,28 million d'images d'entraînement annotées d'ImageNet.
Fonctionnement de l’apprentissage sans exemple#
L'apprentissage zéro-shot transfère les connaissances par un espace sémantique reliant les classes vues et non vues. Les premières méthodes décrivaient chaque classe par des attributs définis par des humains, comme « rayé », « a des sabots » et « vit dans les prairies », puis entraînaient les modèles à prédire ces attributs. Un animal jamais vu pendant l'entraînement pouvait ainsi être reconnu comme la classe correspondant aux attributs prédits. Les modèles vision-langage ont remplacé les attributs conçus manuellement par le langage naturel. CLIP entraîne un encodeur d'images et un encodeur de texte par apprentissage contrastif, afin que les images et les légendes correspondantes obtiennent des embeddings similaires. Pour classer une image, le modèle génère un embedding pour une invite correspondant à chaque classe candidate, par exemple « une photo de zèbre », génère l'embedding de l'image et choisit la classe ayant la plus grande similarité cosinus :
Comme le classificateur est construit à partir du texte au moment de l'inférence, la liste des classes peut changer à chaque requête. Le même principe s'applique aux grands modèles de langage (LLM), où le prompting zéro-shot consiste à donner au modèle uniquement une instruction, sans exemples illustratifs, comme le définit l'article sur GPT-3.
Détection d'objets zéro-shot#
Les détecteurs à vocabulaire ouvert étendent l'apprentissage zéro-shot des images entières aux objets individuels. Ils évaluent chaque région candidate par rapport aux embeddings textuels des classes demandées, ce qui leur permet de trouver des objets hors de tout ensemble d'étiquettes fixe, comme un produit particulier dans des archives vidéo. YOLO-World applique cette approche aux modèles YOLO en temps réel. YOLOE-26 d'Ultralytics, une version à vocabulaire ouvert de YOLO26, encode chaque nom de classe transmis à set_classes() avec un encodeur de texte MobileCLIP2 et renvoie les boîtes et les masques de segmentation d'instances pour ces classes sans réentraînement :
from ultralytics import YOLOE
# # Point de contrôle YOLOE-26 qui accepte les invites textuelles
model = YOLOE("yoloe-26s-seg.pt")
# # Indique les classes au moment de l'inférence, ici avec des termes qui ne sont pas des étiquettes COCO
model.set_classes(["city bus", "sneakers", "glasses"])
# # Détecte et segmente les classes indiquées
results = model.predict("https://ultralytics.com/images/bus.jpg")
result = results[0]
result.save(filename="zero_shot_result.jpg")Le premier appel à set_classes() télécharge l’encodeur de texte. En détection d’objets, « zero-shot » signifie que le modèle n’a reçu aucune boîte étiquetée pour une classe, même si le nom de la classe a pu apparaître dans les données image-texte utilisées pour préentraîner ses encodeurs. Ultralytics Platform annote automatiquement les jeux de données de détection avec des détecteurs zero-shot et des modèles de langage et de vision. Le classement VLM compare la précision avec laquelle chacun d’eux repère les objets dans des images du monde réel.
Applications#
- Recherche visuelle et modération : Les bibliothèques multimédias et les plateformes de contenu trouvent des images correspondant à une requête textuelle ou signalent de nouvelles catégories de contenu, sans entraîner de classificateur pour chaque requête.
- Robotique : Un robot auquel on demande d'aller chercher « la tasse bleue » peut localiser une catégorie d'objets qu'il n'a jamais été entraîné à détecter.
- Faune et biodiversité : BioCLIP, entraîné sur plus de 10 millions d'images couvrant l'arbre du vivant, classe les espèces en zéro-shot à partir de leur nom et a remporté le prix du meilleur article étudiant à CVPR 2024.
- Imagerie médicale : Les modèles entraînés sur des radiographies associées à leurs comptes rendus radiologiques écrits peuvent signaler des observations qui n'ont jamais été annotées explicitement comme étiquettes d'entraînement.
Défis#
La précision zéro-shot est généralement inférieure à celle d'un modèle entraîné sur des exemples annotés des mêmes classes, surtout pour les catégories spécialisées ou à granularité fine dont les noms sont rares dans les textes du Web. Dans l'apprentissage zéro-shot généralisé, où les images de test peuvent appartenir à des classes vues ou non vues, les modèles favorisent les classes sur lesquelles ils ont été entraînés ; des études de benchmark ont montré que la précision sur les classes non vues chute fortement dans ce contexte. Les résultats dépendent aussi de la formulation, ce qui fait de l'ingénierie des prompts un élément du classement zéro-shot : la précision de CLIP sur ImageNet a augmenté de 1,3 % lorsque le nom de classe brut a été remplacé par l'invite « une photo de {label}. »
Apprentissage zéro-shot et termes associés#
- Apprentissage few-shot : Apprend de nouvelles classes à partir d'une poignée d'exemples annotés par classe, généralement de 1 à 10. L'apprentissage zéro-shot correspond au cas où il n'y a aucun exemple, mais une description.
- Apprentissage one-shot : Cas du few-shot comportant exactement un exemple annoté par classe, souvent mis en correspondance par similarité d'embeddings.
- Apprentissage par transfert : Réutilise un modèle préentraîné pour une nouvelle tâche, généralement en l'affinant sur des données annotées. L'apprentissage zéro-shot transfère les connaissances par l'espace texte-image partagé, sans entraînement supplémentaire.
- Prompting visuel : Définit la cible avec une image ou une boîte d'exemple au lieu de mots, ce qui est utile pour les objets difficiles à nommer, comme une pièce ou un logo précis.










