Cos’è la cross entropy?

La cross entropy nasce dalla teoria dell’informazione. In pratica, confronta due distribuzioni di probabilità: quella reale (etichetta) e quella prevista dal modello.

Quando il valore è basso, le predizioni si avvicinano alla realtà; al contrario, un punteggio alto indica grandi discrepanze.

Perché è così importante?

Le reti neurali imparano minimizzando una funzione di perdita. La cross entropy è spesso la scelta predefinita per compiti di classificazione perché penalizza in modo più sensibile gli errori su classi poco rappresentate.

Inoltre, la sua derivata è lineare rispetto alle probabilità predette, il che rende l’ottimizzazione più stabile e veloce.

Esempio pratico

Immagina un modello che deve riconoscere tra “gatto” e “cane”. Se assegna al gatto una probabilità del 90 % quando la foto è davvero di cane, la cross entropy calcolerà un valore elevato, spingendo il modello a correggere l’errore.

Come si implementa?

  • In PyTorch: torch.nn.CrossEntropyLoss()
  • In TensorFlow/Keras: tf.keras.losses.CategoricalCrossentropy()

Entrambi gli ambienti offrono opzioni per gestire classi sbilanciate, come la ponderazione delle etichette.

Quando scegliere un’alternativa

Se il tuo dataset è estremamente grande e le classi molto equilibrate, potresti optare per la hinge loss o l’error rate. Ma nella maggior parte dei casi pratici, la cross entropy rimane la scelta più sicura.

Conclusione rapida

La cross entropy non è solo una formula matematica: è il cuore pulsante dell’apprendimento supervisionato. Comprendere come funziona ti permette di costruire modelli più accurati e affidabili.