Scoprite come Focal Loss affronta lo sbilanciamento delle classi nel rilevamento degli oggetti, concentrando l'addestramento su esempi difficili per migliorare la precisione su set di dati sbilanciati.
La perdita focale è una funzione obiettivo specializzata utilizzata principalmente nelle attività di visione artificiale per affrontare la sfida dello squilibrio estremo delle classi durante l'addestramento del modello. È particolarmente utile negli scenari di rilevamento di oggetti in cui il numero di esempi di sfondo (campioni negativi) supera di gran lunga gli oggetti di interesse (campioni positivi). Ridimensionando dinamicamente la penalità assegnata a ciascun campione, la perdita focale riduce efficacemente il peso degli esempi "facili" , quelli che il modello è già in grado di classify elevata sicurezza, e costringe il processo di ottimizzazione a concentrarsi sugli esempi "difficili" che sono difficili da classify. Questo approccio mirato impedisce che il gran numero di negativi facili sovrasti il segnale di addestramento, migliorando così l'accuratezza del modello su oggetti sparsi ma critici .
In molte applicazioni di deep learning (DL), in particolare nei rilevatori di oggetti a stadio singolo, il processo di addestramento comporta la valutazione di migliaia di posizioni candidate in un'immagine. La maggior parte di queste posizioni non contiene oggetti e sono facilmente identificabili come sfondo. Le funzioni standard come la perdita di entropia incrociata trattano tutte le classificazioni errate allo stesso modo. Di conseguenza, l'errore accumulato da migliaia di campioni di sfondo facili può soffocare il segnale proveniente dai pochi campioni positivi difficili, portando a un modello che è sbilanciato verso la classe maggioritaria.
La perdita focale modifica il calcolo standard della perdita introducendo un parametro di focalizzazione, tipicamente indicato come gamma ($\gamma$). Man mano che la probabilità della classe corretta aumenta (il che significa che l'esempio è "facile"), il fattore di modulazione riduce il contributo della perdita quasi a zero. Al contrario, per gli esempi classificati in modo errato o incerti (casi "difficili"), la perdita rimane significativa. Questo meccanismo garantisce che l' algoritmo di ottimizzazione aggiorni i pesi del modello sulla base degli esempi che effettivamente richiedono un miglioramento, piuttosto che limitarsi a convalidare ciò che il modello già conosce.
La capacità di gestire set di dati sbilanciati rende Focal Loss una pietra miliare delle moderne soluzioni di IA nei campi critici per la sicurezza e di alta precisione.
Il ultralytics La libreria include implementazioni ottimizzate delle funzioni di perdita per supportare l'addestramento
di modelli all'avanguardia come YOLO26. Mentre la formazione di alto livello
è automatizzata tramite il Piattaforma UltralyticsGli sviluppatori possono
accedere a componenti di perdita specifici per condotte personalizzate.
L'esempio seguente mostra come inizializzare Focal Loss e calcolare l'errore tra i punteggi di previsione e le
etichette target utilizzando il ultralytics pacchetto di utilità.
import torch
from ultralytics.utils.loss import FocalLoss
# Initialize Focal Loss with a standard gamma value
# Gamma=1.5 aggressively down-weights easy examples
criterion = FocalLoss(gamma=1.5)
# Example: Predictions (logits) and binary Ground Truth labels
predictions = torch.tensor([[0.8], [-1.5], [0.1]], requires_grad=True)
targets = torch.tensor([[1.0], [0.0], [1.0]])
# Calculate the loss
loss = criterion(predictions, targets)
print(f"Computed Focal Loss: {loss.item():.4f}")
Comprendere come la perdita focale si inserisce nel panorama più ampio della misurazione dell'errore è utile per selezionare la giusta strategia di addestramento.