Hard Negative Mining
Erfahre, wie Hard-Negative-Mining falsch-positive Erkennungen in der Bildverarbeitung reduziert, indem verwirrende negative Beispiele identifiziert und YOLO-Modelle besser trainiert werden.
Mining schwieriger Negativbeispiele ist eine Strategie für Trainingsdaten, bei der negative Beispiele identifiziert werden, die ein Modell ungewöhnlich überzeugend findet, und während des Lernens stärker berücksichtigt werden. Ein negatives Beispiel gehört nicht zur Zielklasse, während ein schwieriges Negativbeispiel einem positiven Beispiel so ähnlich ist, dass es einen hohen Score, eine falsche Erkennung oder ein nahegelegenes Embedding erzeugt. Indem diese verwirrenden Fälle gezielt berücksichtigt werden, anstatt dem Modell wiederholt einfache Hintergrundbeispiele zu zeigen, kann Mining schwieriger Negativbeispiele Entscheidungsgrenzen schärfen und Fehlalarme reduzieren.
So funktioniert das Mining schwieriger Negativbeispiele#
Der Prozess beginnt in der Regel mit einem Basismodell, das mit repräsentativen Trainingsdaten trainiert wurde. Anschließend bewertet das Modell einen größeren Kandidatenpool, beispielsweise unbeschriftete Produktionsbilder, Szenen, die ausschließlich negative Beispiele enthalten, oder Beispiele innerhalb jedes Trainings-Batches. Kandidaten, die trotz ihres negativen Charakters hohe positive Scores erhalten, werden zur Überprüfung und für das weitere Training ausgewählt.
Was als „schwierig“ gilt, hängt von der Aufgabe ab:
- Bei der Objekterkennung ist eine Hintergrundregion schwierig, wenn der Detektor sie mit einem Zielobjekt verwechselt.
- Bei der Klassifikation handelt es sich um ein Beispiel der falschen Klasse, dem mit hoher Konfidenz die Zielklasse zugewiesen wird.
- Beim Retrieval oder metrischen Lernen handelt es sich um ein irrelevantes Element, das im Embedding-Raum nahe an der Suchanfrage eingestuft wird. Googles Anleitung zum negativen Sampling für Empfehlungssysteme beschreibt schwierige Negativbeispiele als negative Elemente mit hohen Scores, die den Gradienten stark beeinflussen.
- Beim Lernen mit Triplets liegt das negative Beispiel im Vergleich zum zugehörigen positiven Beispiel zu nahe am Anker. Die Dokumentation zu PyTorch TripletMarginLoss erläutert die Struktur aus Anker, positivem und negativem Beispiel, die zum Lernen relativer Ähnlichkeit verwendet wird.
Das Mining kann offline erfolgen, indem regelmäßig ein Modell auf einen großen Datensatz angewendet wird, oder online, indem schwierige Negativbeispiele aus dem aktuellen Mini-Batch ausgewählt werden. Eine Keras-Schicht für das Mining schwieriger Negativbeispiele zeigt beispielhaft eine Auswahl pro Suchanfrage auf Grundlage der Logits der Kandidaten.
Warum schwierige Negativbeispiele wichtig sind#
Die meisten negativen Beispiele sind einfach: Ein leerer Himmel wird einen Detektor für Gabelstapler wahrscheinlich nicht verwirren. Sobald das Modell solche Beispiele korrekt klassifiziert, liefern sie nur noch wenig nützliches Lernsignal. Schwierige Negativbeispiele machen genau die visuellen oder semantischen Merkmale sichtbar, die das Modell falsch verstanden hat.
Sie sind besonders wertvoll, wenn Fehlalarme die Präzision verringern. Die Analyse von Präzision und Recall hilft festzustellen, ob ein erneutes Training die Zahl der Fehlalarme tatsächlich reduziert, ohne den Recall unvertretbar zu verschlechtern, wie der Leitfaden von scikit-learn zu Präzision und Recall veranschaulicht.
Mining schwieriger Negativbeispiele unterscheidet sich von verwandten Verfahren:
- Negatives Sampling wählt eine handhabbare Teilmenge aller negativen Beispiele aus; beim Mining schwieriger Negativbeispiele werden die verwirrendsten Beispiele priorisiert.
- Aktives Lernen wählt im Allgemeinen unsichere Beispiele zur Beschriftung durch Menschen aus, darunter auch mögliche positive Beispiele. Mining schwieriger Negativbeispiele zielt dagegen gezielt auf bestätigte negative Beispiele ab, die das Modell vor Herausforderungen stellen.
- Focal Loss verändert die Gewichtung der Beispiele innerhalb der Verlustfunktion, während das Mining verändert, welche Beispiele ausgewählt oder stärker berücksichtigt werden.
- Klassenneugewichtung behandelt ungleiche Klassenhäufigkeiten. Googles Anleitung zu unausgeglichenen Datensätzen behandelt Unterabtastung und Gewichtung, aber häufige negative Beispiele sind nicht zwangsläufig schwierige negative Beispiele.
- Datenerweiterung erzeugt Variationen vorhandener Stichproben; ein unbekannter Fehlerfall aus der Produktion lässt sich damit nicht zuverlässig abbilden.
Anwendungen in der Praxis#
Sicherheitserkennung im Lager: Angenommen, ein Gabelstaplerdetektor erkennt wiederholt Hubwagen, Regallagerspiegelungen und Scherenhebebühnen als Gabelstapler. Diese Fehlalarme können unnötige Warnungen auslösen und das Vertrauen der Bediener verringern. Ingenieure können solche Szenen als negative Bilder ohne Annotationen für Gabelstapler sammeln, sie dem Datensatz hinzufügen und den Detektor erneut trainieren, damit er das Zielobjekt von ähnlichen Geräten unterscheiden kann.
Visuelle Produktsuche: Ein Kunde sucht nach einem bestimmten schwarzen Laufschuh, aber das Retrieval-System stuft optisch ähnliche Schuhe aus anderen Produktlinien zu hoch ein. Diese nicht passenden Produkte werden zu schwierigen Negativbeispielen. Das Training mit ihnen regt das Embedding-Modell dazu an, subtile Unterschiede wie Sohlenform, Position des Logos und Material zu bewahren. Das Keras-Beispiel für ein siamesisches Netzwerk zeigt, wie Ankerbilder sowie positive und negative Bilder das Lernen von Ähnlichkeiten unterstützen.
Praktischer Ablauf für das Mining#
Ein zuverlässiger Ablauf ist iterativ:
- Führe Vorhersagen auf repräsentativen Validierungs- und Produktionsdaten aus.
- Überprüfe mithilfe des Ultralytics-Validierungsmodus und einer Konfusionsmatrix Fehlalarme mit hoher Konfidenz sowie Muster bei Klassenverwechslungen.
- Bestätige, dass jeder Kandidat tatsächlich negativ ist; falsche Labels können dem Modell beibringen, echte Objekte zu unterdrücken.
- Finde verwandte Stichproben, entferne Duplikate und behalte vielfältige Hintergründe, Perspektiven und Bedingungen bei.
- Trainiere das Modell erneut und vergleiche anschließend die Leistung sowohl auf dem vollständigen Testdatensatz als auch auf einer speziellen Teilmenge mit schwierigen Negativbeispielen mithilfe des Testablaufs für Computer-Vision-Modelle.
Die Ähnlichkeitssuche von Ultralytics Explorer kann dabei helfen, Bilder zu finden, die einem bekannten Fehlalarm ähneln:
from ultralytics import Explorer
# Build an embedding index for the example dataset
explorer = Explorer(data="coco128.yaml", model="yolo26n.pt")
explorer.create_embeddings_table()
# Retrieve visually similar candidates for human review
candidates = explorer.get_similar(
img="https://ultralytics.com/images/bus.jpg",
limit=12,
)
print(candidates.head())Ähnlichkeit allein beweist nicht, dass ein Kandidat ein schwieriges Negativbeispiel ist; ein Prüfer muss sein Ground-Truth-Label verifizieren. Teams können die Ultralytics Platform verwenden, um Kandidatenbilder zu organisieren, sie zu annotieren oder zu korrigieren, aktualisierte Modelle zu trainieren und Bereitstellungen zu überwachen.
Vermeide es, nur die absolut schwierigsten Beispiele auszuwählen. Einige davon können falsch beschriftet, mehrdeutig oder extreme Ausreißer sein, die das Training destabilisieren. Eine ausgewogene Mischung aus einfachen, mäßig schwierigen und schwierigen Negativbeispielen gewährleistet in der Regel eine breite Abdeckung und zeigt dem Modell zugleich, an welchen Stellen seine aktuelle Entscheidungsgrenze versagt.









