Binary cross-entropy
Binary cross-entropy er en tabsfunktion, der måler forskellen mellem to binære sandsynlighedsfordelinger, typisk anvendt til binær klassifikation.
Kort fortalt
Kort fortalt: en matematisk formel der beregner, hvor forkert en models forudsigelser er i et binært klassifikationsproblem, og som styrer optimeringen.
- Kategori
- træning
- Niveau
- øvet
Betydninger
1- 1
Mål for tabsfunktion i binær klassifikation, defineret som den negative logaritme af sandsynligheden for den sande klasse.
- Træning med binary cross-entropy straffer modellen hårdere for forkerte forudsigelser med høj sikkerhed end for usikre forkerte forudsigelser.
- I praksis anvendes torch.nn.BCEWithLogitsLoss i PyTorch til numerisk stabil implementering af binary cross-entropy.
Hvornår bruges det
Binary cross-entropy anvendes som tabsfunktion i træning af neurale netværk til binær klassifikation, f.eks. spamdetektion eller medicinsk diagnose. Den kombinerer sigmoid-aktiveringen i outputlaget med krydsentropi for at straffe sikre forkerte forudsigelser hårdere.
Formel
BCE = -[y * log(p) + (1-y) * log(1-p)]Kodeeksempel
import numpy as np
def binary_cross_entropy(y_true, y_pred):
epsilon = 1e-15
y_pred = np.clip(y_pred, epsilon, 1 - epsilon)
return -np.mean(y_true * np.log(y_pred) + (1 - y_true) * np.log(1 - y_pred))
y_true = np.array([1, 0, 1, 0])
y_pred = np.array([0.9, 0.1, 0.8, 0.2])
print(binary_cross_entropy(y_true, y_pred))Manuel implementering af binary cross-entropy i NumPy med en lille epsilon for at undgå log(0).
Oprindelse
Begrebet stammer fra informationsteorien, hvor krydsentropi måler den gennemsnitlige mængde information der går tabt ved at bruge en estimeret fordeling i stedet for den sande fordeling. Den binære variant er specialtilfældet med to klasser.
Afledte ord
2Kilder
2- Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press.
- PyTorch documentation: BCEWithLogitsLoss