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.