Sobes.tech
Middle — Senior

È possibile usare l'entropia incrociata per due classi e perché non è consigliato?

sobes.tech AI

Risposta dell'AI

L’entropia incrociata è una funzione di perdita ampiamente utilizzata per i compiti di classificazione, inclusa la classificazione binaria (a due classi). Teoricamente, l’entropia incrociata è adatta per due classi, poiché misura la differenza tra la distribuzione reale e quella prevista.

Tuttavia, nella classificazione binaria, si utilizza spesso una forma specializzata di entropia incrociata: l’entropia incrociata binaria, ottimizzata per due classi e che tiene conto delle caratteristiche delle probabilità e delle etichette.

Perché non si consiglia di usare l’entropia incrociata multiclasse normale per due classi:

  • Richiede che le etichette siano rappresentate come vettori one-hot, il che è ridondante per due classi.
  • Può portare a calcoli eccessivi e complicare il modello.
  • L’entropia incrociata binaria è più semplice ed efficiente, poiché lavora con un solo numero: la probabilità di appartenere alla classe positiva.

Esempio di entropia incrociata binaria in PyTorch:

import torch
import torch.nn as nn

criterion = nn.BCELoss()  # entropia incrociata binaria
outputs = torch.sigmoid(logits)  # uscite del modello
loss = criterion(outputs, targets)

Pertanto, per due classi, si consiglia di usare l’entropia incrociata binaria invece di quella generale, per migliorare l’efficienza e la correttezza dell’addestramento.