Cos’è la cross‑entropy?
Nel cuore del machine learning c’è una metrica che traduce l’incertezza in numeri: la cross‑entropy. Essa confronta due distribuzioni di probabilità, quella reale e quella prevista dal modello. Se i valori sono vicini, l’errore è basso; se scontrano, la perdita cresce.
Perché è così potente?
La sua forza risiede nella sensibilità alle differenze di probabilità. Un piccolo scostamento su un campione importante influisce più pesantemente rispetto a errori minori su dati meno rilevanti. Questo comportamento aiuta il modello a focalizzarsi sui casi critici.
Esempio pratico
- Supponiamo di classificare immagini in due categorie: gatto e cane.
- Il modello assegna al 70% delle immagini la probabilità 0,8 per “gatto” e 0,2 per “cane”.
- La cross‑entropy calcola una perdita che guida i pesi del network verso valori più coerenti con le etichette reali.
Implementazione rapida in Python
Con TensorFlow o PyTorch la funzione è pronta all’uso:
loss = tf.keras.losses.CategoricalCrossentropy()(y_true, y_pred)Il risultato è un valore scalare che il back‑propagation riduce passo dopo passo.
Quando evitarla
Mentre la cross‑entropy è ideale per classificazione con etichette one‑hot, in problemi di regressione o quando le classi sono fortemente sbilanciate può essere meno adatta. In quei casi si preferiscono funzioni come Huber loss o focal loss.