Active Learning
Entdecke, wie Active Learning das KI-Training optimiert. Lerne, wie du Ultralytics YOLO26 nutzt, um informative Daten zu identifizieren, Kennzeichnungskosten zu senken und die Genauigkeit zu steigern.
Active Learning ist ein strategischer Ansatz im machine learning (ML), bei dem der Algorithmus proaktiv die informativsten Datenpunkte für die Annotation auswählt, anstatt passiv einen bereits annotierten Datensatz zu akzeptieren. Beim traditionellen supervised learning benötigen Modelle oft riesige Mengen an annotierten Daten, deren Erstellung teuer und zeitaufwendig sein kann. Active Learning optimiert diesen Prozess, indem es "unsichere" oder "schwierige" Beispiele identifiziert – solche nahe der Entscheidungsgrenze oder dort, wo dem Modell das Vertrauen fehlt – und menschliche Annotatoren bittet, nur diese spezifischen Instanzen zu labeln. Diese iterative Schleife ermöglicht es Modellen, eine hohe accuracy mit deutlich weniger gelabelten Stichproben zu erreichen, was sie äußerst effizient für Projekte mit begrenztem Budget oder Zeitrahmen macht.
So funktioniert der Zyklus des Aktiven Lernens#
Der Kern von Active Learning ist ein Feedback-Loop, der oft als human-in-the-loop bezeichnet wird. Anstatt einmalig auf einem statischen Datensatz zu trainieren, entwickelt sich das Modell durch Zyklen von Abfragen und Aktualisierungen weiter.
-
Initialisierung: Der Prozess beginnt mit einem kleinen Satz gelabelter training data, die verwendet werden, um ein anfängliches Modell wie Ultralytics YOLO26 zu trainieren.
-
Abfrage-Auswahl (Query Selection): Das Modell bewertet einen großen Pool ungelabelter Daten. Mithilfe einer Abfragestrategie – am häufigsten Uncertainty Sampling – wählt es die Bilder oder Texte aus, bei denen seine Vorhersagen am wenigsten sicher sind.
-
Annotation: Diese hochprioritären Stichproben werden zur data labeling an einen menschlichen Experten geschickt, der in der active learning literature oft als "Oracle" bezeichnet wird.
-
Nachtraining: Die neu gelabelten Daten werden zum Trainingsset hinzugefügt und das Modell wird neu trainiert. Dieses aktualisierte Modell ist dann besser in der Lage, die nächste Charge schwieriger Beispiele auszuwählen.
Praxisanwendungen#
Aktives Lernen ist unverzichtbar in Branchen, in denen Daten zwar im Überfluss vorhanden sind, die Annotation jedoch Spezialwissen erfordert oder mit hohen Kosten verbunden ist.
- Medical Image Analysis: In Bereichen wie der Radiologie erfordert die Annotation fachärztlich geprüfte Experten, deren Zeit extrem wertvoll ist. Anstatt einen Arzt Tausende von eindeutigen Scans annotieren zu lassen, kann ein Active-Learning-System nach mehrdeutigen Fällen filtern – wie Tumoren im Frühstadium oder seltenen Anomalien –, sodass sich der Experte nur auf Bilder konzentrieren kann, die die Diagnosefähigkeit des Modells wirklich verbessern.
- Autonomous Vehicles: Selbstfahrende Autos generieren Petabytes an Videodaten. Jedes Frame zu labeln ist unmöglich. Active Learning hilft Ingenieuren dabei, edge cases zu identifizieren, wie Fußgänger in Kostümen oder Fahrten bei starkem Schnee, die Standardmodelle für object detection möglicherweise übersehen. Durch die Priorisierung dieser seltenen Szenarien erhöhen Unternehmen die Sicherheit, ohne Ressourcen für repetitive Autobahnaufnahmen zu verschwenden.
Python-Beispiel: Filtern unsicherer Vorhersagen#
Das folgende Beispiel demonstriert eine einfache "Uncertainty Sampling"-Logik mit Ultralytics YOLO26. Wir laden ein Modell, führen Inferenz auf Bildern aus und markieren diejenigen, deren confidence-Wert unter einem bestimmten Schwellenwert liegt, zur manuellen Überprüfung.
from ultralytics import YOLO
# Load the latest YOLO26 model
model = YOLO("yolo26n.pt")
# List of unlabeled image paths
unlabeled_images = ["https://ultralytics.com/images/bus.jpg", "https://ultralytics.com/images/zidane.jpg"]
# Run inference
results = model(unlabeled_images)
# Identify samples with low confidence for active learning
uncertain_threshold = 0.6
for result in results:
# Check if any detection confidence is below the threshold
if result.boxes.conf.numel() > 0 and result.boxes.conf.min() < uncertain_threshold:
print(f"Active Learning Query: {result.path} needs human labeling.")Unterscheidung verwandter Konzepte#
Es ist wichtig, aktives Lernen von ähnlichen Trainingsparadigmen zu unterscheiden:
- Semi-Supervised Learning: Während beide Methoden ungelabelte Daten nutzen, weist Semi-Supervised Learning Daten basierend auf den Vorhersagen des Modells mit hoher Konfidenz automatisch pseudo-labels zu. Im Gegensatz dazu fordert Active Learning ausdrücklich menschliches Feedback für Vorhersagen mit niedriger Konfidenz an.
- Transfer Learning: Dies beinhaltet die Verwendung eines vortrainierten Modells (wie eines, das auf ImageNet trainiert wurde) und dessen Anpassung an eine neue Aufgabe. Active Learning konzentriert sich darauf, welche Daten zu labeln sind, während sich Transfer Learning darauf konzentriert, gelernte Merkmale wiederzuverwenden.
- Reinforcement Learning: Hier lernt ein Agent durch Interaktion mit einer Umgebung und den Empfang von Belohnungen. Active Learning unterscheidet sich davon, da es statische ground truth-Labels von einem Orakel anfordert, anstatt eine Abfolge von Aktionen für eine Belohnung zu optimieren.
Integration mit MLOps#
Die effektive Implementierung von Active Learning erfordert eine robuste Machine Learning Operations (MLOps)-Pipeline. Du benötigst Infrastruktur zur Verwaltung der Datenversionierung, zum Auslösen von Neutrainingsjobs und zur Bereitstellung der Annotationsschnittstelle für Menschen. Tools, die sich in das Ultralytics ecosystem integrieren, ermöglichen es Benutzern, nahtlos zwischen Inferenz, Datenkuration und Training zu wechseln. Beispielsweise können Entwickler mithilfe von custom training scripts neue Batches von Active-Learning-Daten schnell in ihre YOLO-Modelle integrieren.
Für weiterführende Lektüre zu Stichprobenstrategien greifen Forscher oft auf umfassende Übersichten in der active learning literature zurück. Darüber hinaus ist das Verständnis von model evaluation metrics entscheidend, um zu überprüfen, ob der Active-Learning-Loop die Leistung tatsächlich verbessert.






