Scopri come Focal Loss risolve lo squilibrio delle classi nel deep learning. Impara a implementarlo con Ultralytics per concentrarti sugli esempi difficili e migliorare l'accuratezza del modello.
La perdita focale è una funzione obiettivo specializzata utilizzata principalmente nel deep learning per affrontare la sfida di un grave squilibrio di classe. In molte attività di visione artificiale, come il rilevamento di oggetti, il numero di esempi di sfondo (campioni negativi ) supera significativamente gli oggetti di interesse (campioni positivi). I metodi standard, come la diffusa Cross-Entropy Loss, trattano tutti gli errori allo stesso modo, il che spesso causa il sovraccarico del modello a causa dell'enorme volume di daticlassify . Focal Loss modifica il calcolo standard della perdita per ridurre il peso di questi esempi facili, costringendo l' algoritmo di ottimizzazione a concentrare la sua capacità di apprendimento su esempi "difficili", ovvero gliclassify rari eclassify che sono cruciali per le prestazioni del modello .
L'innovazione principale di Focal Loss risiede nella sua capacità di scalare dinamicamente la penalità assegnata a ciascun campione in base alla confidenza del modello. In un tipico scenario di apprendimento supervisionato, un rilevatore potrebbe valutare migliaia di posizioni candidate in un'immagine. Poiché la maggior parte di queste posizioni non contiene oggetti, una funzione di perdita standard accumula molti piccoli segnali di errore da questi negativi facili, che possono soffocare il segnale prezioso proveniente dalle poche istanze positive.
Focal Loss introduce un fattore di modulazione che riduce il contributo della perdita all'aumentare della fiducia nella classe corretta . Ciò significa che se un modello è già sicuro al 99% che una patch di sfondo sia effettivamente sfondo, la perdita per quella patch viene ridotta quasi a zero. Di conseguenza, i pesi del modello vengono aggiornati principalmente sulla base dei campioni classificati erroneamente o di quelli in cui il modello è incerto. Questo approccio mirato è essenziale per l'addestramento di rilevatori di oggetti ad alte prestazioni in un'unica fase come YOLO26, consentendo loro di raggiungere un'elevata precisione senza richiedere fasi di campionamento complesse.
La gestione di dati di addestramento sbilanciati è fondamentale per implementare sistemi di IA robusti in ambienti in cui la sicurezza e la precisione sono fondamentali.
Il ultralytics La libreria include implementazioni ottimizzate di funzioni di perdita avanzate per supportare
modelli all'avanguardia. Mentre il Piattaforma Ultralytics configura automaticamente
questi iperparametri per un addestramento ottimale, gli sviluppatori possono anche accedere direttamente a questi componenti per ricerche personalizzate
.
L'esempio seguente mostra come inizializzare Focal Loss utilizzando il ultralytics pacchetto di utilità e
calcola l'errore per una serie di previsioni.
import torch
from ultralytics.utils.loss import FocalLoss
# Initialize Focal Loss.
# The 'gamma' parameter controls the focusing strength (higher = more focus on hard examples).
criterion = FocalLoss(gamma=1.5)
# Example: Model predictions (logits) and binary Ground Truth labels
# requires_grad=True simulates model outputs that need backpropagation
predictions = torch.tensor([[0.8], [-1.5], [0.1]], requires_grad=True)
targets = torch.tensor([[1.0], [0.0], [1.0]])
# Calculate the loss value
loss = criterion(predictions, targets)
print(f"Computed Focal Loss: {loss.item():.4f}")
Comprendere dove si colloca la perdita focale nel panorama più ampio della misurazione degli errori aiuta a selezionare la strategia giusta per specifiche attività di visione artificiale.