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. 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