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

2

Kilder

2