Hard Negative Mining
Scopri in che modo l'hard negative mining riduce i falsi positivi nella visione artificiale identificando esempi negativi fuorvianti e migliorando l'addestramento del modello YOLO.
L'hard negative mining è una strategia di dati di addestramento che identifica gli esempi negativi che un modello trova insolitamente convincenti e assegna loro maggiore attenzione durante l'apprendimento. Un esempio negativo non appartiene alla classe di destinazione, mentre un hard negative assomiglia a uno positivo abbastanza da produrre un punteggio elevato, un rilevamento errato o un embedding vicino. Concentrandosi su questi casi confusi anziché mostrare ripetutamente al modello semplici esempi di sfondo, l'hard negative mining può affinare i confini decisionali e ridurre i falsi positivi.
Come funziona l'Hard Negative Mining#
Il processo solitamente inizia con un modello di base addestrato su dati di addestramento rappresentativi. Il modello valuta quindi un pool di candidati più ampio, come immagini di produzione non etichettate, scene di soli negativi o esempi all'interno di ciascun batch di addestramento. I candidati che ricevono punteggi positivi elevati nonostante siano negativi vengono selezionati per la revisione e il futuro addestramento.
Ciò che qualifica come "hard" dipende dal compito:
- Nel object detection, una regione di sfondo è hard quando il rilevatore la scambia per un oggetto di destinazione.
- Nella classificazione, è un esempio di classe errata a cui è stata assegnata un'alta confidenza per la classe di destinazione.
- Nel recupero o nell'apprendimento metrico, è un elemento irrilevante posizionato vicino alla query nello spazio degli embedding. Le linee guida di Google sul campionamento negativo per i modelli di raccomandazione descrivono gli hard negative come elementi negativi ad alto punteggio che influenzano fortemente il gradiente.
- Nell'apprendimento a terne (triplet learning), il negativo appare troppo vicino a un'ancora rispetto al suo positivo corrispondente. La documentazione di PyTorch TripletMarginLoss spiega la struttura ancora-positivo-negativo utilizzata per apprendere la somiglianza relativa.
Il mining può avvenire offline, eseguendo periodicamente un modello su un ampio set di dati, o online, selezionando negativi difficili dal mini-batch corrente. Un layer di hard negative mining di Keras fornisce un esempio di selezione per query basata sui logit dei candidati.
Perché gli Hard Negatives sono importanti#
La maggior parte degli esempi negativi è semplice: un cielo vuoto difficilmente confonderà un rilevatore di carrelli elevatori. Una volta che il modello classifica correttamente tali esempi, questi contribuiscono con un segnale di apprendimento poco utile. Gli hard negatives espongono le precise caratteristiche visive o semantiche che il modello ha frainteso.
Sono particolarmente preziosi quando i falsi allarmi riducono la precision. L'analisi precisione-richiamo aiuta a determinare se il riaddestramento riduce effettivamente i falsi positivi senza causare un calo inaccettabile del richiamo, come illustrato dalla guida alla precisione-richiamo di scikit-learn.
L'hard negative mining differisce dalle tecniche correlate:
- Negative sampling seleziona un sottoinsieme gestibile di tutti i negativi; l'hard negative mining dà priorità a quelli più confusi.
- Active learning seleziona generalmente esempi incerti per l'etichettatura umana, inclusi possibili positivi. L'hard negative mining prende specificamente di mira i negativi confermati che mettono alla prova il modello.
- Focal loss modifica il modo in cui gli esempi vengono ponderati all'interno della funzione di perdita, mentre il mining cambia quali esempi vengono selezionati o enfatizzati.
- Il bilanciamento delle classi affronta le frequenze di classe diseguali. La guida di Google sui dataset con classi sbilanciate copre il downsampling e la ponderazione, ma i negativi frequenti non sono necessariamente negativi difficili.
- Data augmentation crea variazioni di campioni esistenti; non può introdurre in modo affidabile una modalità di guasto di produzione sconosciuta.
Applicazioni nel mondo reale#
Rilevamento della sicurezza in magazzino: Supponiamo che un rilevatore di carrelli elevatori identifichi ripetutamente transpallet, riflessi di scaffalature e piattaforme di sollevamento a pantografo come carrelli elevatori. Questi falsi positivi possono attivare avvisi non necessari e ridurre la fiducia dell'operatore. Gli ingegneri possono raccogliere tali scene come immagini negative senza annotazioni di carrelli elevatori, aggiungerle al set di dati e riaddestrare il rilevatore per distinguere il target da attrezzature simili.
Ricerca visiva di prodotti: Un cliente cerca una specifica scarpa da corsa nera, ma il sistema di recupero posiziona troppo in alto scarpe visivamente simili di linee di prodotti diverse. Quei prodotti non corrispondenti diventano hard negatives. L'addestramento contro di essi incoraggia il modello di embedding a preservare sottili differenze come la forma della suola, la posizione del logo e il materiale. L'esempio di rete Siamese di Keras dimostra come le immagini di ancoraggio, positive e negative supportano l'apprendimento della somiglianza.
Flusso di lavoro pratico di Mining#
Un flusso di lavoro affidabile è iterativo:
- Esegui previsioni su dati di validazione e di produzione rappresentativi.
- Esamina i falsi positivi ad alta confidenza e i pattern di confusione delle classi utilizzando la modalità di validazione di Ultralytics e una matrice di confusione.
- Conferma che ogni candidato sia veramente negativo; etichette errate possono insegnare al modello a sopprimere oggetti reali.
- Trova campioni correlati, rimuovi i duplicati e mantieni sfondi, punti di vista e condizioni diverse.
- Riaddestra, quindi confronta le prestazioni sia sul set di test completo che su una porzione dedicata di hard negative utilizzando il flusso di lavoro di test del modello di computer vision.
La ricerca per somiglianza di Ultralytics Explorer può aiutare a far emergere immagini che assomigliano 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 sola somiglianza non dimostra che un candidato sia un hard negative; un revisore deve verificarne l'etichetta ground-truth. I team possono utilizzare Ultralytics Platform per organizzare le immagini candidate, annotarle o correggerle, addestrare modelli aggiornati e monitorare le distribuzioni.
Evita di selezionare solo gli esempi in assoluto più difficili. Alcuni potrebbero essere etichettati in modo errato, ambigui o outlier estremi che destabilizzano l'addestramento. Una miscela equilibrata di negativi facili, moderatamente difficili e hard in genere preserva un'ampia copertura insegnando al contempo al modello dove fallisce il suo confine attuale.






