Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Licenza YOLO
Torna al glossario di Ultralytics

Focal Loss

La focal loss ridimensiona la cross-entropy, dando un peso minimo agli esempi facili e lasciando che siano quelli rari e difficili a guidare l'addestramento. Panoramica della formula, di gamma, RetinaNet e delle varianti.

La focal loss è una funzione di perdita di entropia incrociata modificata che riduce il peso degli esempi che il modello classifica già correttamente, così l'addestramento si concentra su quelli difficili e classificati in modo errato. Lin e colleghi l'hanno introdotta nel 2017 nell'articolo Focal Loss for Dense Object Detection, insieme al rilevatore RetinaNet, per gestire lo squilibrio estremo tra sfondo e oggetti nel rilevamento di oggetti. Oggi è ampiamente utilizzata nei problemi di classificazione in cui una classe è molto più numerosa delle altre.

Il problema dello squilibrio#

I rilevatori di oggetti a uno stadio classificano ogni posizione candidata in un'immagine; RetinaNet ne valuta circa 100.000 per immagine. Quasi tutte queste posizioni sono sfondo, che il modello impara a scartare nelle prime fasi dell'addestramento. Con la entropia incrociata standard, ogni esempio negativo facile aggiunge comunque una piccola perdita e il loro numero enorme fa sì che dominino la perdita totale e i relativi gradienti, sommergendo le poche posizioni che contengono oggetti. I rilevatori di oggetti a due stadi evitano questo problema filtrando i candidati con uno stadio di proposta delle regioni e campionando un rapporto fisso di primi piani e sfondi; i precedenti rilevatori a uno stadio si affidavano invece all'hard negative mining. La focal loss corregge lo squilibrio direttamente nella funzione di perdita, così è possibile addestrare il modello su ogni candidato senza campionamento.

Come funziona la focal loss#

Indica con p_t la probabilità che il modello assegna alla classe corretta. L'entropia incrociata è CE = -log(p_t) e la focal loss la moltiplica per un fattore di modulazione:

FL = -α_t (1 - p_t)^γ log(p_t)

  • Parametro di focalizzazione γ (gamma): controlla la rapidità con cui diminuisce la perdita degli esempi facili. Con γ = 0, la focal loss equivale all'entropia incrociata. Man mano che p_t si avvicina a 1, (1 - p_t)^γ si avvicina a 0, mentre un esempio classificato in modo errato con un p_t basso mantiene quasi tutta la propria perdita di entropia incrociata. Con il valore migliore indicato nell'articolo, γ = 2, un esempio classificato con p_t = 0.9 riceve una perdita 100 volte inferiore rispetto all'entropia incrociata.
  • Peso di bilanciamento α_t (alpha): un peso fisso per la classe positiva e il suo complemento per quella negativa. RetinaNet usa α = 0.25 con γ = 2, e l'articolo normalizza inoltre la perdita totale di ogni immagine in base al numero di anchor assegnati agli oggetti.

La funzione sigmoid_focal_loss in torchvision implementa la formula. Impostando alpha=-1 si disattiva il peso di bilanciamento, isolando l'effetto di γ su un esempio positivo facile, moderato e difficile:

import torch
import torch.nn.functional as F
from torchvision.ops import sigmoid_focal_loss

# Logits for three positive examples: easy, moderate, and hard
logits = torch.tensor([4.0, 1.0, -2.0])
targets = torch.ones(3)

# alpha=-1 turns off class weighting so only the gamma focusing term differs
bce = F.binary_cross_entropy_with_logits(logits, targets, reduction="none")
focal = sigmoid_focal_loss(logits, targets, alpha=-1, gamma=2.0, reduction="none")

for p, b, f in zip(logits.sigmoid(), bce, focal):
    print(f"p={p:.2f}  cross-entropy={b:.6f}  focal={f:.6f}  ratio={b / f:,.1f}x")

La focal loss riduce la perdita dell'esempio facile (p = 0.98) di un fattore pari a circa 3.091, quella dell'esempio moderato (p = 0.73) di 13,8 e quella dell'esempio difficile (p = 0.12) di appena 1,3, così l'esempio difficile fornisce quasi tutto il segnale di addestramento.

Dove viene utilizzata la focal loss#

Oltre a RetinaNet, la focal loss e le sue varianti addestrano il ramo di classificazione di molti rilevatori densi e basati su Transformer, compresi i modelli della famiglia DETR come Deformable DETR. Nell'analisi di immagini mediche, le lesioni spesso occupano una frazione minima dei pixel, perciò i modelli di segmentazione delle immagini combinano comunemente la focal loss con la Dice loss per evitare di ignorare piccoli reperti e aumentare il richiamo. In Ultralytics, il trainer RT-DETR valuta le classi con la Varifocal Loss e il modulo ultralytics.utils.loss fornisce una classe FocalLoss con valori predefiniti gamma=1.5 e alpha=0.25.

  • Pesi di classe: l'entropia incrociata pesata assegna a ogni esempio di una classe rara lo stesso incremento fisso, basato sulla frequenza della classe. La focal loss assegna un peso a ogni esempio in base alla sua difficoltà attuale, quindi i pesi cambiano man mano che il modello apprende.
  • Hard negative mining: mantiene solo gli esempi negativi con la perdita più alta e scarta gli altri. La focal loss mantiene tutti gli esempi e riduce gradualmente il peso di quelli facili.
  • Varifocal Loss: variante asimmetrica di VarifocalNet che riduce il peso solo degli esempi negativi e addestra quelli positivi verso un punteggio consapevole di IoU, così anche la confidenza della classe riflette la qualità della localizzazione.
  • Distribution Focal Loss (DFL): funzione di perdita per la regressione dei riquadri di Generalized Focal Loss, che tratta ogni bordo del riquadro come una distribuzione di probabilità discreta. Condivide solo il nome con la focal loss e si applica alla regressione dei riquadri.

Esplora le soluzioni

La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini aeree e riprese da drone in informazioni utili in tempo reale per agricoltura, acquacoltura, conservazione e analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Applica la visione artificiale nel settore aerospaziale con Ultralytics YOLO per l'ispezione degli aeromobili, il rilevamento di FOD sulle piste, le operazioni di terra aeroportuali e il rilevamento di difetti nei materiali compositi.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning