Cos’è l’entropia incrociata?
L’entropia incrociata misura la distanza tra due distribuzioni di probabilità: quella reale e quella prevista dal modello. Più il valore è basso, più le predizioni si avvicinano alla realtà.
Perché importa nel training?
Durante l’addestramento, il modello regola i pesi per ridurre questo gap. Una perdita elevata indica che le probabilità assegnate al risultato corretto sono troppo basse.
Calcolo pratico
La formula è: -∑ y_true · log(y_pred). Qui y_true è la classe vera (0 o 1) e y_pred la probabilità predetta. Se la previsione è perfetta, il valore tende a zero.
Classi sbilanciate: un problema comune
Nella classificazione di classi rare, l’entropia incrociata può essere fuorviante perché i falsi negativi non pesano tanto. In questi casi si ricorre a weighted loss, che dà più peso alle categorie sottorappresentate.
Implementazione semplice con Python
- Importare
tensorflow.keras.losses.CategoricalCrossentropy(). - Passare il parametro
from_logits=Truese la rete restituisce logit. - Utilizzare come loss nella compilazione del modello.
Quando scegliere l’entropia incrociata?
È ideale per classificazioni binarie o multi‑classe. Se il problema è regressione, si preferisce la MSE. Per compiti di sequenza, come il NLP, la variante token‑wise cross entropy è più appropriata.