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

Cross-Entropy Loss

La perdita di entropia incrociata confronta le probabilità di classe previste con le etichette di riferimento, guidando i modelli di classificazione e segmentazione durante l'addestramento.

La perdita di entropia incrociata misura quanto le probabilità di classe previste da un modello corrispondono alle etichette di riferimento. Assegna una penalità ridotta quando la classe corretta riceve una probabilità elevata e una penalità elevata quando tale probabilità è bassa. In qualità di funzione di perdita per l'apprendimento supervisionato, fornisce un obiettivo da minimizzare durante l'addestramento.

La Teoria matematica della comunicazione di Claude Shannon, del 1948, ne ha stabilito le basi entropiche. D. F. Kerridge ha introdotto la misura di entropia incrociata come "inaccuratezza" nel suo articolo del 1961 Inaccuratezza e inferenza. Nella classificazione, log loss è un sinonimo; anche la regressione logistica e i classificatori neurali la utilizzano.

Come funziona la perdita di entropia incrociata#

Per un singolo esempio con una classe corretta, l'entropia incrociata non pesata è loss = -ln(p_correct). Una probabilità di 0.9 per la classe corretta produce una perdita di circa 0.105; una probabilità di 0.1 produce circa 2.303. I logaritmi naturali esprimono il risultato in unità chiamate nat. Durante l'addestramento, di solito si calcola la media di queste penalità su un batch.

Più in generale, l'entropia incrociata moltiplica la probabilità di ogni classe di riferimento per il logaritmo negativo della probabilità prevista e somma i risultati su tutte le classi. Un'etichetta one-hot assegna 1 alla classe corretta e 0 a tutte le altre, lasciando solo il termine relativo alla classe corretta. Per etichette one-hot non pesate, minimizzare l'entropia incrociata equivale a massimizzare la verosimiglianza delle etichette osservate. La retropropagazione calcola i gradienti e la discesa del gradiente aggiorna i parametri del modello.

Entropia incrociata binaria, categoriale e sparsa#

La forma appropriata dipende dalle etichette:

  • Entropia incrociata binaria con sigmoide: per un'etichetta 0 o 1 y e la probabilità prevista p della classe 1, la perdita è -[y * ln(p) + (1 - y) * ln(1 - p)]. La classificazione multilabel la applica in modo indipendente alle etichette che possono coesistere.
  • Entropia incrociata categoriale con softmax: assegna un punteggio a classi mutuamente esclusive le cui probabilità sommano a 1. Softmax converte i punteggi grezzi del modello, chiamati logit, in tale distribuzione.
  • Entropia incrociata categoriale sparsa: utilizza un indice di classe intero invece di un vettore one-hot. Calcola la stessa perdita; "sparsa" descrive la codifica dell'etichetta.

Le etichette probabilistiche distribuiscono la probabilità tra le classi. Si usano nell'ammorbidimento delle etichette e nella distillazione della conoscenza, in cui un modello studente apprende dalla distribuzione di probabilità di un modello insegnante.

Calcolo dell'entropia incrociata in PyTorch#

PyTorch accetta logit grezzi in CrossEntropyLoss. Per le etichette rappresentate da indici di classe, il calcolo equivale ad applicare log-softmax seguito dalla log-verosimiglianza negativa. Applicare softmax in precedenza fa sì che la funzione interpreti le probabilità come logit, modificando la perdita e i gradienti. Le etichette intere usano torch.long; le etichette probabilistiche usano valori in virgola mobile e hanno la stessa forma dei logit.

import torch
from torch import nn

# Both predictions select class 0; the second is more confident.
logits = torch.tensor([[2.0, 0.0, 0.0], [4.0, 0.0, 0.0]])
targets = torch.tensor([0, 0], dtype=torch.long)
loss_fn = nn.CrossEntropyLoss(reduction="none")

losses = loss_fn(logits, targets)
print(f"Lower confidence loss: {losses[0].item():.4f}")
print(f"Higher confidence loss: {losses[1].item():.4f}")

Le perdite diminuiscono da 0.2395 a 0.0360 mentre entrambe le predizioni rimangono corrette. L'accuratezza registra le decisioni sulle classi; l'entropia incrociata tiene conto anche delle probabilità assegnate. Per i logit binari o multilabel, BCEWithLogitsLoss combina la sigmoide e l'entropia incrociata binaria.

Applicazioni nella computer vision#

La classificazione di immagini a etichetta singola utilizza l'entropia incrociata per apprendere una classe per immagine. L'addestramento di classificazione YOLO26 di Ultralytics usa la media dell'entropia incrociata sui logit di classe per aggiornare il classificatore verso la categoria etichettata.

Nella segmentazione di immagini in ambito sanitario, l'originale U-Net è stata addestrata su immagini di microscopia biomedica con softmax pixel per pixel ed entropia incrociata pesata. La sua mappa dei pesi aumentava le penalità ai confini tra cellule a contatto, contribuendo a separare le cellule adiacenti. Questo applica la classificazione a ogni pixel nella segmentazione semantica.

Interpretazione dei valori della perdita#

L'entropia incrociata discreta con distribuzioni di riferimento valide e pesi non negativi è non negativa. Per un'etichetta hard non pesata, raggiunge zero quando la classe corretta riceve probabilità 1 e cresce senza limite man mano che tale probabilità si avvicina a zero. Valori negativi indicano un errore di input o di implementazione, ad esempio voci o pesi negativi nelle etichette.

L'entropia misura l'incertezza all'interno di una distribuzione; l'entropia incrociata confronta le etichette con le predizioni. L'entropia incrociata equivale all'entropia delle etichette più la divergenza di Kullback–Leibler, la penalità aggiuntiva dovuta alla discrepanza. Le etichette probabilistiche hanno quindi un minimo positivo quando la loro entropia è positiva.

La ponderazione delle classi aumenta il contributo delle classi selezionate. La focal loss riduce il contributo degli esempi facili per affrontare lo squilibrio tra primo piano e sfondo nella rilevazione di oggetti. Per una predizione uniforme, la log loss non pesata equivale a ln(number_of_classes): circa 0.693 per due classi e 2.303 per dieci.

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