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.