Cross-entropy

Indice dei contenuti

    La cross-entropy è una funzione di perdita usata per valutare predizioni probabilistiche, soprattutto nei problemi di classificazione. Misura quanto una distribuzione predetta assegna probabilità agli eventi effettivamente osservati.

    È molto usata in regressione logistica, reti neurali, classificatori probabilistici e modelli di apprendimento supervisionato.

    Caso binario

    Nel caso binario, con etichette y_i\in\{0,1\} e probabilità predette \hat p_i=P(y_i=1), la cross-entropy media è

    \mathcal{L} = -\dfrac{1}{n} \sum_{i=1}^{n} \left[ y_i\log \hat p_i +(1-y_i)\log(1-\hat p_i) \right].

    Se l’etichetta vera è 1, conta il termine -\log \hat p_i. Se l’etichetta vera è 0, conta il termine -\log(1-\hat p_i).

    Interpretazione probabilistica

    La cross-entropy penalizza molto le predizioni sicure ma sbagliate. Se il modello assegna probabilità quasi nulla all’evento osservato, il logaritmo produce una perdita molto grande:

    -\log(\hat p)\to+\infty \qquad \text{per }\hat p\to0^+.

    Questo comportamento è desiderabile quando si vogliono probabilità calibrate, non solo decisioni corrette. Un classificatore che prevede la classe giusta con probabilità 0{,}51 e uno che la prevede con probabilità 0{,}99 non ricevono la stessa perdita.

    Caso multiclasse

    Per K classi, con vettore one-hot y_{ik} e probabilità predette \hat p_{ik}, la cross-entropy è

    \mathcal{L} = -\dfrac{1}{n} \sum_{i=1}^{n} \sum_{k=1}^{K} y_{ik}\log \hat p_{ik}.

    Poiché per ogni osservazione una sola componente y_{ik} vale 1, la perdita seleziona il logaritmo della probabilità assegnata alla classe corretta.

    Collegamento con massima verosimiglianza

    Minimizzare la cross-entropy equivale spesso a massimizzare la log-verosimiglianza del modello probabilistico. Nel caso binario, il modello sottostante è una distribuzione di Bernoulli con parametro predetto \hat p_i.

    Per questo la cross-entropy non è una scelta arbitraria: deriva naturalmente dalla probabilità del campione osservato sotto il modello.

    Differenza rispetto all’accuratezza

    L’accuratezza misura quante classi sono state indovinate; la cross-entropy misura quanto bene sono state assegnate le probabilità. Due modelli con la stessa accuratezza possono avere cross-entropy molto diversa se uno è calibrato e l’altro è troppo sicuro sugli errori.

    Questo la rende utile accanto a strumenti come matrice di confusione e metriche di valutazione ML.

    Stabilità numerica

    Numericamente le probabilità predette vanno tenute lontane da 0 e 1 per evitare logaritmi non definiti. Nei software si usano funzioni stabili che combinano sigmoid o softmax con la loss, evitando overflow e underflow.

    Per esempio, invece di calcolare prima una probabilità con sigmoid e poi il logaritmo, molte librerie usano direttamente formule in termini di logit.

    Errori comuni

    Un errore frequente è usare cross-entropy con etichette e probabilità non coerenti, per esempio probabilità multiclasse che non sommano a uno.

    Un secondo errore è confrontare valori di loss senza considerare la scala del problema: una cross-entropy multiclasse casuale cresce con il numero di classi.

    Infine, una cross-entropy bassa non garantisce da sola equità, robustezza o buona interpretabilità del modello. Valuta la qualità probabilistica rispetto ai dati e alla loss scelta, non tutti gli aspetti del sistema. Per esercizi collegati, vedi classificazione e metriche e la voce sull’apprendimento supervisionato.

    Ultimo aggiornamento: