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=True se 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.