Hard Negative Mining
Scopri come il mining di negativi difficili riduce i falsi positivi nella computer vision identificando esempi negativi ambigui e migliorando l'addestramento dei modelli YOLO.
La selezione dei negativi difficili è una strategia per i dati di addestramento che identifica gli esempi negativi che un modello considera insolitamente convincenti e attribuisce loro maggiore attenzione durante l'apprendimento. Un esempio negativo non appartiene alla classe target, mentre un negativo difficile assomiglia così tanto a un positivo da produrre un punteggio elevato, una rilevazione errata o un embedding vicino. Concentrandosi su questi casi ambigui invece di mostrare ripetutamente al modello semplici esempi di sfondo, la selezione dei negativi difficili può rendere più netti i confini decisionali e ridurre i falsi positivi.
Come funziona la selezione dei negativi difficili#
Il processo inizia generalmente con un modello di base addestrato su dati di addestramento rappresentativi. Il modello valuta quindi un insieme più ampio di candidati, come immagini di produzione non annotate, scene contenenti solo elementi negativi o esempi presenti in ogni batch di addestramento. I candidati che ricevono punteggi positivi elevati pur essendo negativi vengono selezionati per la revisione e per l'addestramento futuro.
Ciò che viene considerato “difficile” dipende dall'attività:
- Nella rilevazione degli oggetti, una regione di sfondo è difficile quando il rilevatore la scambia per un oggetto target.
- Nella classificazione, è un esempio della classe errata a cui viene assegnata una confidenza elevata per la classe target.
- Nel retrieval o nell'apprendimento metrico, è un elemento irrilevante classificato vicino alla query nello spazio degli embedding. Le indicazioni di Google sul negative sampling per i modelli di raccomandazione descrivono i negativi difficili come elementi negativi con punteggi elevati che influenzano fortemente il gradiente.
- Nell'apprendimento con triplette, il negativo appare troppo vicino all'ancora rispetto al positivo corrispondente. La documentazione di PyTorch TripletMarginLoss spiega la struttura ancora-positivo-negativo utilizzata per apprendere la similarità relativa.
La selezione può avvenire offline, eseguendo periodicamente un modello su un dataset di grandi dimensioni, oppure online, selezionando i negativi difficili dal mini-batch corrente. Un layer Keras per la selezione dei negativi difficili fornisce un esempio di selezione per query basata sui logits dei candidati.
Perché i negativi difficili sono importanti#
La maggior parte degli esempi negativi è semplice: è improbabile che un cielo vuoto confonda un rilevatore di carrelli elevatori. Una volta che il modello classifica correttamente questi esempi, essi forniscono pochi segnali utili per l'apprendimento. I negativi difficili mettono in evidenza le caratteristiche visive o semantiche precise che il modello ha frainteso.
Sono particolarmente preziosi quando i falsi allarmi riducono la precisione. L'analisi precision-recall aiuta a determinare se il nuovo addestramento riduce effettivamente i falsi positivi senza causare una diminuzione inaccettabile del recall, come illustrato dalla guida di scikit-learn su precisione e recall.
La selezione dei negativi difficili differisce dalle tecniche correlate:
- Il negative sampling seleziona un sottoinsieme gestibile di tutti i negativi; la selezione dei negativi difficili dà priorità a quelli più ambigui.
- L'apprendimento attivo seleziona generalmente esempi incerti da far annotare a un operatore umano, inclusi possibili positivi. La selezione dei negativi difficili prende di mira specificamente i negativi confermati che mettono alla prova il modello.
- La focal loss modifica il modo in cui gli esempi vengono ponderati all'interno della funzione di perdita, mentre la selezione modifica quali esempi vengono scelti o enfatizzati.
- Il riequilibrio delle classi affronta le frequenze non uniformi delle classi. Le indicazioni di Google sui dataset sbilanciati tra le classi trattano il downsampling e la ponderazione, ma i negativi frequenti non sono necessariamente negativi difficili.
- L'aumento dei dati crea variazioni di campioni esistenti; non può introdurre in modo affidabile una modalità di errore sconosciuta in produzione.
Applicazioni nel mondo reale#
Rilevamento per la sicurezza in magazzino: supponiamo che un rilevatore di carrelli elevatori identifichi ripetutamente transpallet, riflessi delle scaffalature e piattaforme a forbice come carrelli elevatori. Questi falsi positivi possono generare avvisi non necessari e ridurre la fiducia degli operatori. Gli ingegneri possono raccogliere queste scene come immagini negative senza annotazioni di carrelli elevatori, aggiungerle al dataset e addestrare nuovamente il rilevatore affinché distingua il target da apparecchiature simili.
Ricerca visiva di prodotti: un cliente cerca una specifica scarpa da corsa nera, ma il sistema di retrieval assegna un punteggio troppo alto a scarpe visivamente simili appartenenti a linee di prodotti diverse. Questi prodotti non corrispondenti diventano negativi difficili. L'addestramento con questi esempi incoraggia il modello di embedding a preservare differenze sottili come la forma della suola, la posizione del logo e il materiale. L'esempio di rete siamese Keras mostra come le immagini ancora, positiva e negativa supportino l'apprendimento della similarità.
Flusso di lavoro pratico per la selezione#
Un flusso di lavoro affidabile è iterativo:
- Esegui le predizioni su dati rappresentativi di validazione e produzione.
- Esamina i falsi positivi ad alta confidenza e i pattern di confusione tra classi usando la modalità di validazione di Ultralytics e una matrice di confusione.
- Conferma che ogni candidato sia realmente negativo; le annotazioni errate possono insegnare al modello a sopprimere oggetti reali.
- Trova campioni correlati, rimuovi i duplicati e conserva sfondi, punti di vista e condizioni diversificati.
- Esegui nuovamente l'addestramento, quindi confronta le prestazioni sia sull'intero set di test sia su un sottoinsieme dedicato ai negativi difficili usando il flusso di lavoro per il testing dei modelli di computer vision.
La ricerca per similarità di Ultralytics Explorer può aiutare a individuare immagini simili a un falso positivo noto:
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())La similarità da sola non dimostra che un candidato sia un negativo difficile; un revisore deve verificarne l'etichetta di riferimento. I team possono usare Ultralytics Platform per organizzare le immagini candidate, annotarle o correggerle, addestrare modelli aggiornati e monitorare le implementazioni.
Evita di selezionare solo gli esempi assolutamente più difficili. Alcuni potrebbero essere etichettati erroneamente, ambigui o outlier estremi in grado di destabilizzare l'addestramento. Un mix equilibrato di negativi semplici, moderatamente difficili e difficili generalmente preserva un'ampia copertura e insegna al modello in quali punti il suo confine attuale non funziona.









