Categorical cross-entropy
Categorical cross-entropy er en tabsfunktion, der måler forskellen mellem den sande sandsynlighedsfordeling over klasser og den forudsagte fordeling.
Kort fortalt
Det er et mål for, hvor godt en model gætter, når den skal placere noget i én af flere mulige kategorier.
- Kategori
- metrik
- Niveau
- øvet
- Udtale
- /ˌkætəˈɡɔːrɪkəl krɒs ˈɛntrəpi/
Betydninger
1- 1
En tabsfunktion til multi-klasse klassifikation, der beregner den negative log-likelihood for den sande klasse givet modellens forudsagte sandsynligheder.
- I træningen af et billedklassifikationsnetværk minimeres categorical cross-entropy for at forbedre modellens evne til at skelne mellem 1000 forskellige objekter.
Hvornår bruges det
Categorical cross-entropy bruges typisk som tabsfunktion i neurale netværk til multi-klasse klassifikation, især når outputlaget anvender softmax-aktivering. Den sammenligner modellens forudsigelser (sandsynligheder) med de faktiske klasser i en one-hot encoding.
Formel
H(y, ŷ) = -∑_{i=1}^{C} y_i · log(ŷ_i)Kodeeksempel
import torch
import torch.nn.functional as F
# y_true: one-hot encoding, y_pred: softmax outputs
y_true = torch.tensor([[1., 0., 0.], [0., 1., 0.]])
y_pred = torch.tensor([[0.7, 0.2, 0.1], [0.1, 0.8, 0.1]])
loss = F.categorical_cross_entropy(y_pred.log(), y_true)
print(loss) # tensor(0.2841)Eksempel i PyTorch på beregning af categorical cross-entropy med one-hot encodede sande labels.
Oprindelse
Termen stammer fra krydsentropi i informationsteori, hvor det måler den gennemsnitlige mængde information, der kræves for at repræsentere en begivenhed fra en fordeling under en anden fordeling. Tilføjelsen 'categorical' angiver, at det anvendes på kategoriske (diskrete) udfald.
Kilder
2- Deep Learning (Goodfellow, Bengio, Courville)
- Cross Entropy (Wikipedia)