Active Learning
Beim Active Learning kann ein Modell auswählen, welche ungelabelten Beispiele Menschen als Nächstes labeln sollen. So wird eine Zielgenauigkeit mit weniger Labels erreicht. Abfragestrategien und Code.
Aktives Lernen ist ein Ansatz des maschinellen Lernens, bei dem das Modell auswählt, welche unlabeled Beispiele eine Person als Nächstes annotieren soll. Statt eine zufällige Stichprobe der Daten zu annotieren, trainiert ein Team ein Modell mit einer kleinen annotierten Menge, lässt es eine große Menge nicht annotierter Beispiele bewerten, schickt die aussagekräftigsten Beispiele an die Annotierenden, trainiert das Modell mit der erweiterten Menge erneut und wiederholt den Vorgang. Die Person, die Labels vergibt, heißt Orakel. Ziel ist es, mit möglichst wenigen Labels eine bestimmte Genauigkeit zu erreichen. Das ist besonders wichtig, wenn für die Annotation Fachwissen erforderlich ist, etwa bei Radiologinnen und Radiologen, die Aufnahmen auswerten, oder wenn die Datenmenge viel zu groß für eine vollständige Annotation ist, wie bei den täglich von einer Flotte autonomer Fahrzeuge aufgezeichneten Videos.
So funktioniert der Zyklus des aktiven Lernens#
Computer-Vision-Projekte nutzen üblicherweise poolbasiertes aktives Lernen, bei dem eine feste Sammlung nicht annotierter Bilder auf ihre Bewertung wartet. Jede Runde umfasst vier Schritte:
- Trainieren: Trainiere ein Modell, etwa ein Modell zur Objekterkennung, mit den bis dahin gesammelten annotierten Beispielen.
- Bewerten: Lass das Modell die nicht annotierte Datenmenge verarbeiten und weise jedem Beispiel einen Informationswert zu.
- Abfragen: Sende den Stapel mit den höchsten Werten zur Datenannotation an die Annotierenden.
- Aktualisieren: Füge die neuen Labels zu den Trainingsdaten hinzu und trainiere das Modell erneut.
Der Zyklus endet, wenn das Annotationsbudget aufgebraucht ist oder sich die Genauigkeit auf einem festen Validierungsdatensatz nicht mehr verbessert. Ein Vergleich jeder Runde mit einem Modell, das mit derselben Anzahl zufällig ausgewählter Labels trainiert wurde, zeigt, ob die Auswahl einen Vorteil bringt.
Abfragestrategien#
Die Abfragestrategie legt fest, was als informativ gilt:
- Unsicherheitsstichprobe: Wählt die Beispiele aus, bei denen das Modell am unsichersten ist. Gemessen wird dies anhand der niedrigsten Konfidenz der wahrscheinlichsten Klasse, des kleinsten Abstands zwischen den beiden wahrscheinlichsten Klassen oder der höchsten Entropie der vorhergesagten Klassenverteilung.
- Abfrage per Komitee: Trainiert mehrere Modelle und wählt die Beispiele aus, bei denen sie sich am stärksten uneinig sind. Monte-Carlo-Dropout liefert ein günstiges Komitee aus einem einzelnen Netzwerk.
- Stichprobe nach Vielfalt: Wählt Beispiele aus, die den Einbettungsraum abdecken, damit ein Stapel nicht mit nahezu identischen Beispielen wie aufeinanderfolgenden Videobildern gefüllt wird. Der Core-Set-Ansatz fasst die Stapelauswahl auf diese Weise, nachdem sich gezeigt hatte, dass viele Heuristiken zur Unsicherheit bei CNNs in Stapeln nicht wirksam waren.
- Kombinierte Strategien: Verbinden beide Signale. BADGE wählt Beispiele aus, die in einem Gradienten-Einbettungsraum sowohl unsicher als auch vielfältig sind, ohne manuell abgestimmte Gewichtungen.
Detektoren erzeugen viele Begrenzungsrahmen pro Bild. Daher müssen ihre Bewertungen zu einem Wert je Bild zusammengefasst werden, zum Beispiel durch Mittelung der Konfidenz aller Erkennungen. Das folgende Skript ordnet eine kleine Datenmenge nach der mittleren Erkennungskonfidenz eines vortrainierten YOLO26-Modells und fragt zuerst das Bild mit der niedrigsten Konfidenz ab:
from ultralytics import YOLO
# Model trained on the current labeled set
model = YOLO("yolo26n.pt")
# Unlabeled pool, usually thousands of images
pool = ["https://ultralytics.com/images/bus.jpg", "https://ultralytics.com/images/zidane.jpg"]
results = model(pool, conf=0.1)
# Least-confidence sampling: score each image by its mean detection confidence
scores = {}
for image, result in zip(pool, results):
if len(result.boxes):
scores[image] = result.boxes.conf.mean().item()
# Query the lowest-scoring images first, within a labeling budget of one image
query = sorted(scores, key=scores.get)[:1]
print(f"Label next: {query}")Der niedrige Schwellenwert conf=0.1 lässt schwache Erkennungen in die Bewertung einfließen, da das Modell bei diesen Begrenzungsrahmen unsicher ist. Der Annotationseditor der Ultralytics Platform schließt den restlichen Zyklus ab: Im Smart-Modus lädt er deine eigenen feinabgestimmten YOLO-Modelle, sodass jedes erneut trainierte Modell den nächsten abgefragten Stapel für die Korrektur durch die Annotierenden vorannotiert.
Praktische Fallstricke#
- Kaltstart: Unsicherheitswerte eines Modells, das mit nur wenigen Dutzend Beispielen trainiert wurde, sind unzuverlässig. Daher wird in den ersten Runden oft zufällig oder nach Vielfalt ausgewählt.
- Redundante Stapel: Werden unabhängig voneinander die k unsichersten Bilder ausgewählt, entstehen häufig Gruppen nahezu identischer Bilder. Dagegen helfen Strategien, die Vielfalt berücksichtigen oder mehrere Verfahren kombinieren.
- Stichprobenverzerrung: Die annotierte Menge weicht von der tatsächlichen Datenverteilung ab, weil schwierige Fälle überrepräsentiert sind. Validierungs- und Testdatensätze werden daher zufällig aus der gesamten Datenmenge gezogen, damit ihre Ergebnisse unverzerrt bleiben.
- Ausreißer: Beschädigte, unscharfe oder nicht zum Anwendungsbereich gehörende Bilder wirken auf jedes Modell unsicher und können das Annotationsbudget verschwenden, wenn sie nicht herausgefiltert werden.
Aktives Lernen und verwandte Begriffe#
- Halbüberwachtes Lernen: Nutzt ebenfalls nicht annotierte Daten, doch das Modell weist seinen eigenen sicheren Vorhersagen Pseudo-Labels zu, statt eine Person zu unsicheren Vorhersagen zu befragen. Beide Verfahren werden oft kombiniert.
- Curriculum-Lernen: Ordnet bereits annotierte Beispiele während des Trainings von einfach bis schwierig. Aktives Lernen entscheidet, welche Beispiele überhaupt annotiert werden.
- Mining schwieriger negativer Beispiele: Wählt die annotierten negativen Beispiele aus, bei denen das Modell am meisten Fehler macht, und trainiert häufiger mit ihnen. Dabei werden vorhandene Labels genutzt und keine neuen hinzugefügt.
- Datenkreislauf: Ein Produktionszyklus, in dem eingesetzte Modelle neue Daten aufdecken, die das nächste Modell verbessern. Aktives Lernen ist ein üblicher Auswahlschritt innerhalb dieses Zyklus.










