Krydsvalidering
Krydsvalidering er en statistisk metode, der bruges til at evaluere og sammenligne maskinlæringsmodeller ved gentagne gange at opdele data i trænings- og valide...
Kryds-entropi måler forskellen mellem forudsagte og sande sandsynlighedsfordelinger og bruges bredt som tabfunktion i maskinlæring for at optimere nøjagtigheden af klassifikationsmodeller.
Kryds-entropi er et centralt begreb inden for både informationsteori og maskinlæring og fungerer som en metrik til at måle forskellen mellem to sandsynlighedsfordelinger over det samme sæt af hændelser. I maskinlæring er denne måling særligt vigtig som en tabfunktion til at kvantificere uoverensstemmelser mellem en models forudsagte output og de sande etiketter i dataene. Denne kvantificering er afgørende under træning af modeller, især i klassifikationsopgaver, da det hjælper med at justere modelvægtninger for at minimere forudsigelsesfejl og dermed forbedre modellens præstation.
Begrebet kryds-entropi, betegnet som H(p, q), indebærer beregning af forskellen mellem to sandsynlighedsfordelinger: p (den sande fordeling) og q (model-estimeret fordeling). For diskrete fordelinger udtrykkes kryds-entropi matematisk som:
$$ H(p, q) = -\sum_{x} p(x) \log q(x) $$
Hvor:
Kryds-entropi beregner i bund og grund det gennemsnitlige antal bits, der kræves for at identificere en hændelse fra et sæt muligheder ved hjælp af et kodningsskema optimeret til den estimerede fordeling (q) frem for den sande fordeling (p).
Kryds-entropi er tæt forbundet med Kullback-Leibler (KL) divergens, som vurderer, hvor meget en sandsynlighedsfordeling afviger fra en anden forventet sandsynlighedsfordeling. Kryds-entropien H(p, q) kan udtrykkes ved entropien af den sande fordeling H(p) og KL-divergensen D_{KL}(p || q) som følger:
$$ H(p, q) = H(p) + D_{KL}(p \parallel q) $$
Denne sammenhæng understreger kryds-entropiens grundlæggende rolle i at kvantificere forudsigelsesfejl og forbinder statistisk teori med praktisk maskinlæring.
I maskinlæring, især i klassifikationsproblemer, fungerer kryds-entropi som en tabfunktion, der vurderer, hvor godt den forudsagte sandsynlighedsfordeling stemmer overens med den faktiske fordeling af etiketterne. Den er særligt effektiv i multi-klasses opgaver, hvor målet er at tildele den højeste sandsynlighed til den korrekte klasse og dermed guide optimeringsprocessen under modeltræning.
Denne funktion anvendes i binære klassifikationsopgaver med to mulige klasser (f.eks. sand/falsk, positiv/negativ). Binær kryds-entropi tabfunktionen beskrives som:
$$ L = -\frac{1}{N} \sum_{i=1}^N [y_i \log(p_i) + (1-y_i) \log(1-p_i)] $$
Hvor:
Anvendes i multi-klasses klassifikationsopgaver med mere end to klasser. Kategorisk kryds-entropi tab beregnes som:
$$ L = -\frac{1}{N} \sum_{i=1}^{N} \sum_{j=1}^{C} y_{ij} \log(p_{ij}) $$
Hvor:
Overvej et klassifikationsscenarie med tre klasser: katte, hunde og heste. Hvis den sande etiket for et billede er en hund, repræsenteret ved one-hot vektoren [0, 1, 0], og modellen forudsiger [0.4, 0.4, 0.2], beregnes kryds-entropi tabet som:
$$ L(y, \hat{y}) = – (0 \times \log(0.4) + 1 \times \log(0.4) + 0 \times \log(0.2)) = 0.92 $$
En lavere kryds-entropi indikerer en tættere overensstemmelse mellem modellens forudsagte sandsynligheder og de sande etiketter, hvilket afspejler bedre modelpræstation.
Kryds-entropi er integreret i træningen af AI-modeller, især inden for supervised learning-rammer. Det anvendes i vid udstrækning til:
import numpy as np
def cross_entropy(y_true, y_pred):
y_true = np.float_(y_true)
y_pred = np.float_(y_pred)
return -np.sum(y_true * np.log(y_pred + 1e-15))
# Eksempel på brug
y_true = np.array([0, 1, 0]) # Sand etiket (one-hot encoded)
y_pred = np.array([0.4, 0.4, 0.2]) # Forudsagte sandsynligheder
loss = cross_entropy(y_true, y_pred)
print(f"Kryds-entropi tab: {loss}")
I dette Python-eksempel beregner funktionen cross_entropy
tabet mellem sande etiketter og forudsagte sandsynligheder og understøtter dermed modelevaluering og optimering.
Kryds-entropi er en metrik, der måler forskellen mellem to sandsynlighedsfordelinger, og bruges ofte som tabfunktion til at vurdere, hvor godt en models forudsigelser stemmer overens med de sande etiketter.
I maskinlæring kvantificerer kryds-entropi fejlen mellem de forudsagte sandsynligheder og de faktiske etiketter og guider optimeringsprocessen for at forbedre modellens nøjagtighed, især i klassifikationsopgaver.
Binær kryds-entropi bruges til binær klassifikation (to klasser), mens kategorisk kryds-entropi håndterer multi-klasses klassifikation. Begge beregner tabet mellem sande og forudsagte sandsynligheder, tilpasset antallet af klasser.
Kryds-entropi er relateret til Kullback-Leibler (KL) divergens, da det kan udtrykkes som summen af entropien af den sande fordeling og KL-divergensen mellem de sande og forudsagte fordelinger.
Ja. Eksempel: import numpy as np def cross_entropy(y_true, y_pred): y_true = np.float_(y_true) y_pred = np.float_(y_pred) return -np.sum(y_true * np.log(y_pred + 1e-15))
Begynd at bygge dine egne AI-løsninger med FlowHunt’s intuitive platform. Optimer dine modeller og automatiser dine arbejdsgange effektivt.
Krydsvalidering er en statistisk metode, der bruges til at evaluere og sammenligne maskinlæringsmodeller ved gentagne gange at opdele data i trænings- og valide...
Logtab, eller logaritmisk/kryds-entropitab, er en nøglemetrik til at evaluere ydeevnen af maskinlæringsmodeller—særligt til binær klassifikation—ved at måle afv...
Areal under kurven (AUC) er en grundlæggende måling inden for maskinlæring, der anvendes til at evaluere ydeevnen af binære klassifikationsmodeller. Den kvantif...