Kryssvalidering
Kryssvalidering er en statistisk metode som brukes til å evaluere og sammenligne maskinlæringsmodeller ved å dele data inn i trenings- og valideringssett flere ...
Kryssentropi måler avviket mellom predikerte og sanne sannsynlighetsfordelinger, og brukes mye som en tapsfunksjon i maskinlæring for å optimalisere nøyaktigheten til klassifiseringsmodeller.
Kryssentropi er et sentralt begrep innen både informasjonsteori og maskinlæring, hvor det fungerer som et mål for å måle avviket mellom to sannsynlighetsfordelinger over det samme settet av hendelser. I maskinlæring er dette målet spesielt viktig som en tapsfunksjon for å kvantifisere forskjeller mellom en modells predikerte utdata og de sanne etikettene i dataene. Denne kvantifiseringen er essensiell under modelltrening, spesielt for klassifiseringsoppgaver, da det hjelper med å justere modellvektene for å minimere prediksjonsfeil og dermed forbedre modellens ytelse.
Begrepet kryssentropi, betegnet som H(p, q), innebærer å beregne avviket mellom to sannsynlighetsfordelinger: p (den sanne fordelingen) og q (modellen sin estimerte fordeling). For diskrete fordelinger uttrykkes kryssentropi matematisk som:
$$ H(p, q) = -\sum_{x} p(x) \log q(x) $$
Hvor:
Kryssentropi beregner i hovedsak det gjennomsnittlige antallet biter som kreves for å identifisere en hendelse fra et sett av muligheter ved hjelp av en kodingsordning optimalisert for den estimerte fordelingen (q), heller enn for den sanne fordelingen (p).
Kryssentropi er nært knyttet til Kullback-Leibler (KL) divergens, som vurderer hvor mye en sannsynlighetsfordeling avviker fra en annen forventet sannsynlighetsfordeling. Kryssentropien H(p, q) kan uttrykkes ved entropien til den sanne fordelingen H(p) og KL-divergensen D_{KL}(p || q) slik:
$$ H(p, q) = H(p) + D_{KL}(p \parallel q) $$
Denne sammenhengen understreker den grunnleggende rollen til kryssentropi i kvantifisering av prediksjonsfeil, og bygger bro mellom statistisk teori og praktiske maskinlæringsapplikasjoner.
I maskinlæring, spesielt i klassifiseringsproblemer, fungerer kryssentropi som en tapsfunksjon som vurderer hvor godt den predikerte sannsynlighetsfordelingen samsvarer med den faktiske fordelingen av etikettene. Den er svært effektiv i oppgaver med flere klasser, hvor målet er å tildele høyest sannsynlighet til riktig klasse, og styrer dermed optimaliseringsprosessen under modelltrening.
Denne funksjonen brukes i binære klassifiseringsoppgaver som involverer to mulige klasser (f.eks. sant/usant, positiv/negativ). Den binære kryssentropi-tapsfunksjonen beskrives slik:
$$ L = -\frac{1}{N} \sum_{i=1}^N [y_i \log(p_i) + (1-y_i) \log(1-p_i)] $$
Hvor:
Brukes i klassifiseringsoppgaver med flere klasser. Den kategoriske kryssentropi-tapsfunksjonen beregnes slik:
$$ L = -\frac{1}{N} \sum_{i=1}^{N} \sum_{j=1}^{C} y_{ij} \log(p_{ij}) $$
Hvor:
Tenk deg et klassifiseringsscenario med tre klasser: katter, hunder og hester. Hvis den sanne etiketten for et bilde er en hund, representert ved én-hot-vektoren [0, 1, 0], og modellen predikerer [0.4, 0.4, 0.2], beregnes kryssentropi-tapet slik:
$$ L(y, \hat{y}) = – (0 \times \log(0.4) + 1 \times \log(0.4) + 0 \times \log(0.2)) = 0.92 $$
En lavere kryssentropi indikerer at modellens predikerte sannsynligheter stemmer bedre overens med de sanne etikettene, noe som reflekterer bedre modellprestasjon.
Kryssentropi er avgjørende i trening av AI-modeller, spesielt innenfor rammeverk for overvåket læring. Det brukes mye i:
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å bruk
y_true = np.array([0, 1, 0]) # Sann etikett (én-hot kodet)
y_pred = np.array([0.4, 0.4, 0.2]) # Predikerte sannsynligheter
loss = cross_entropy(y_true, y_pred)
print(f"Kryssentropi-tap: {loss}")
I dette Python-eksemplet beregner funksjonen cross_entropy
tapet mellom sanne etiketter og predikerte sannsynligheter, noe som legger til rette for evaluering og optimalisering av modellen.
Kryssentropi er et mål som måler avviket mellom to sannsynlighetsfordelinger, og brukes vanligvis som en tapsfunksjon for å vurdere hvor godt en modells prediksjoner samsvarer med de sanne etikettene.
I maskinlæring kvantifiserer kryssentropi feilen mellom de predikerte sannsynlighetene og de faktiske etikettene, og styrer optimaliseringsprosessen for å forbedre modellens nøyaktighet, spesielt i klassifiseringsoppgaver.
Binær kryssentropi brukes for binær klassifisering (to klasser), mens kategorisk kryssentropi håndterer klassifisering med flere klasser. Begge beregner tapet mellom sanne og predikerte sannsynligheter, tilpasset antall klasser.
Kryssentropi er relatert til Kullback-Leibler (KL) divergens, ettersom den kan uttrykkes som summen av entropien til den sanne fordelingen og KL-divergensen mellom den sanne og predikerte fordelingen.
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))
Begynn å bygge dine egne AI-løsninger med FlowHunt sin intuitive plattform. Optimaliser modellene dine og automatiser arbeidsflytene dine effektivt.
Kryssvalidering er en statistisk metode som brukes til å evaluere og sammenligne maskinlæringsmodeller ved å dele data inn i trenings- og valideringssett flere ...
Loggtap, eller logaritmisk/kryss-entropi-tap, er en nøkkelmetrik for å evaluere ytelsen til maskinlæringsmodeller—spesielt for binær klassifisering—ved å måle a...
Generaliseringsfeil måler hvor godt en maskinlæringsmodell predikerer ukjente data, og balanserer skjevhet og varians for å sikre robuste og pålitelige AI-appli...