Few-Shot Learning
Few-Shot-Lernen (FSL) erkennt neue Klassen anhand weniger gelabelter Beispiele mithilfe von metrischem Lernen, Meta-Lernen, Fine-Tuning oder Prompting.
Few-Shot-Lernen (FSL) bezeichnet das Lernen einer neuen Aufgabe, meist das Erkennen neuer Klassen, anhand von nur wenigen gelabelten Beispielen pro Klasse, in der Regel zwischen 1 und 10. Standardisiertes überwachtes Lernen benötigt Hunderte oder Tausende gelabelte Bilder pro Klasse. Für seltene Defekte, seltene Krankheiten oder ein erst gestern eingeführtes Produkt sind solche Bilder teuer oder gar nicht zu beschaffen. Few-Shot-Verfahren schließen die Lücke mithilfe von Vorwissen: Ein mit umfangreichen, verwandten Daten vortrainiertes Modell erzeugt bereits Merkmale, die neue Klassen gut voneinander trennen. Daher reichen wenige Beispiele aus, um diese Klassen zu definieren. Dasselbe Prinzip kommt bei Sprachmodellen zum Einsatz: Einige ausgearbeitete Beispiele im Prompt lenken das Modell auf eine neue Aufgabe, ohne dass es trainiert werden muss.
N-Way-K-Shot-Aufgaben#
Few-Shot-Aufgaben werden als N-Way-K-Shot beschrieben: N neue Klassen mit jeweils K gelabelten Beispielen. Diese gelabelten Beispiele bilden die Support-Menge. Das Modell wird daran gemessen, wie gut es eine separate Abfragemenge mit Beispielen aus denselben N Klassen kennzeichnet. Bei einer 5-Way-1-Shot-Aufgabe erhält das Modell also je ein Beispiel aus fünf Klassen, die es noch nie gesehen hat, und soll neue Bilder diesen Klassen zuordnen. One-Shot-Lernen ist der Fall K = 1. Bei Zero-Shot-Lernen gilt K = 0; die Klassen werden dann statt durch Beispiele durch Text oder Attribute beschrieben. Forschungsbenchmarks bewerten Modelle anhand von Klassen, die beim Training nicht verwendet wurden. Dazu zählen Omniglot mit 1,623 handgeschriebenen Zeichen aus 50 Alphabeten und miniImageNet mit 100 ImageNet-Klassen zu je 600 Bildern.
Ansätze für Few-Shot-Lernen#
Verfahren des metrischen Lernens trainieren ein Netz so, dass es Bilder auf Einbettungen abbildet, in denen Beispiele derselben Klasse nahe beieinanderliegen. Eine Abfrage erhält dann die Klasse der ähnlichsten Beispiele aus der Support-Menge. Prototypische Netze mitteln die Einbettungen der Support-Beispiele jeder Klasse zu einem Prototyp und ordnen die Abfrage dem nächstgelegenen Prototyp zu. Bei einer neuen Klasse ist dafür kein erneutes Training nötig.
Andere Ansätze passen die Gewichte oder die Eingabe des Modells an:
- Meta-Lernen: Trainiert das Modell mit Tausenden kleiner simulierter Aufgaben aus Basisklassen, damit es lernt, sich anzupassen. Modellagnostisches Meta-Lernen (MAML) lernt eine Initialisierung, von der aus wenige Gradientenschritte mit der Support-Menge einer neuen Aufgabe zu guten Gewichten führen.
- Transferlernen und Feinabstimmung: Trainiere ein Backbone zunächst mit einem großen Datensatz vor. Trainiere anschließend nur einen neuen Klassifikationskopf oder das gesamte Netzwerk mit einer niedrigen Lernrate auf dem Support-Set. Diese einfache Baseline ist auf gängigen Benchmarks für wenige Beispiele konkurrenzfähig mit speziellen Meta-Learning-Methoden. Auch lineares Probing großer vortrainierter Modelle bleibt eine starke Baseline für wenige Beispiele.
- Basismodelle mit Prompts steuern: Große Sprachmodelle bewältigen neue Aufgaben anhand weniger Beispiele im Prompt, ohne ihre Gewichte anzupassen. Diese Fähigkeit demonstrierte GPT-3 bei mehr als zwei Dutzend Sprachbenchmarks. Bildverarbeitungsmodelle nutzen auf dieselbe Weise visuelle Prompts, etwa Beispiel-Boxen.
Few-Shot-Objektdetektion mit visuellen Prompts#
Bei der Detektion kommt zur Few-Shot-Aufgabe die Lokalisierung hinzu: Das Modell muss alle Instanzen einer Klasse finden, mit der es nicht trainiert wurde. YOLO26 ist auch die Grundlage von YOLOE-26, einer Variante mit offenem Vokabular. Deren Encoder für visuelle Prompts wandelt Beispiel-Boxen in eine Klasseneinbettung um und erkennt sowie segmentiert anschließend passende Objekte in neuen Bildern – ohne Training. Boxen mit derselben Klassen-ID werden zu einem Prompt zusammengeführt, sodass zwei Beispiele einer Klasse als 2-Shot-Support-Menge dienen. In diesem Beispiel bilden zwei Personen in einem Bild die Support-Menge; gesucht werden sie in einem anderen Bild:
import numpy as np
from ultralytics import YOLOE
from ultralytics.models.yolo.yoloe import YOLOEVPSegPredictor
# YOLOE-26-Checkpoint, der visuelle Prompts unterstützt
model = YOLOE("yoloe-26s-seg.pt")
# Support-Menge: zwei Beispiel-Boxen einer Klasse (Menschen) im Referenzbild
boxes = np.array([[221.52, 405.8, 344.98, 857.54], [669.47, 392.19, 809.72, 877.04]])
support = {"bboxes": boxes, "cls": np.array([0, 0])}
# Abfrage: Objekte wie die Beispiele in einem anderen Bild finden, ohne Training
results = model.predict(
"https://ultralytics.com/images/zidane.jpg",
refer_image="https://ultralytics.com/images/bus.jpg",
visual_prompts=support,
predictor=YOLOEVPSegPredictor,
)
result = results[0]
result.save(filename="few_shot_result.jpg")Visuelle Prompts gruppieren Beispiele, ohne sie zu benennen. Daher sind passende Objekte in den Ergebnissen mit object0, object1 und so weiter gekennzeichnet – jeweils ein Name pro Klassen-ID.
Anwendungen in der Praxis#
- Qualitätsprüfung in der Fertigung: Ein neuer Fehlertyp, etwa ein Riss in einem erst kürzlich eingeführten Bauteil, tritt möglicherweise nur wenige Male auf, bevor Prüfer ihn erkennen lassen wollen. Few-Shot-Detektion oder Anomalieerkennung kann ihn ohne einen großen neuen Datensatz ergänzen.
- Medizinische Bildgebung: Für seltene Erkrankungen gibt es nur wenige annotierte Scans. Daher passen Modelle für die Analyse medizinischer Bilder vortrainierte Merkmale anhand einer kleinen Zahl von Fällen an, die Fachleute gekennzeichnet haben.
- Einzelhandel und Robotik: Geschäfte nehmen ständig neue Produkte ins Sortiment auf, und Roboter begegnen fortlaufend neuen Objekten. Ein paar Referenzfotos reichen einem System, um die Objekte im Regal oder Greifer zu erkennen.
Few-Shot-Lernen im Vergleich zu verwandten Konzepten#
- Transferlernen: Die allgemeine Praxis, Wissen aus einer Aufgabe für eine andere wiederzuverwenden. Few-Shot-Lernen ist der Extremfall mit sehr wenigen Daten, und Transferlernen ist dabei das am häufigsten eingesetzte Werkzeug.
- Meta-Lernen: Eine Trainingsstrategie, bei der gelernt wird, wie man lernt, und eine von mehreren Möglichkeiten, Few-Shot-Aufgaben zu lösen. Few-Shot-Lernen bezeichnet die Aufgabenstellung selbst.
- Few-Shot-Prompting: Passt ein eingefrorenes Modell zur Inferenzzeit anhand von Beispielen in der Eingabe an. Bei der Few-Shot-Feinabstimmung werden dagegen die Modellgewichte anhand derselben wenigen Beispiele verändert.










