Binært kryssentropitap med logits
Det stabile tapet for problemer med to klasser
Binært kryssentropitap med logits er en gratis leksjon i Deep Learning Academy på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Deep Learning Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Deep Learning Academy inneholder totalt 4 leksjoner.
To klasser, én avgjørelse
Når modellen svarer på et ja- eller nei-spørsmål, for eksempel om noe er søppelpost eller ikke, bruker du binary cross-entropy, tapet som er laget for problemer med to klasser. ✅
Fra poengsum til sannsynlighet
En modell gir først ut en rå poengsum kalt en logit. Sigmoid-funksjonen komprimerer denne logiten til en sannsynlighet mellom 0 og 1.
import torch
prob = torch.sigmoid(logit)Hva cross-entropy belønner
Cross-entropy gir et lite tap når den predikerte sannsynligheten ligger nær den sanne etiketten, og et stort tap når modellen tar feil med høy sikkerhet.
Det gjør vondt å være sikker og ta feil
Hvis modellen predikerer 0.99 når den sanne etiketten er 0, får den et enormt tap. Cross-entropy straffer sikre feil langt mer enn usikre feil.
Det naive tapvalget
Du kan bruke sigmoid selv og deretter bruke nn.BCELoss på sannsynlighetene. Det fungerer, men det finnes en tryggere måte for faktisk trening.
import torch.nn as nn
loss_fn = nn.BCELoss()
loss = loss_fn(prob, target)Gi inn logiter, ikke sannsynligheter
Det anbefalte tapet er BCEWithLogitsLoss. Det tar imot rå logiter direkte og bruker sigmoid internt for deg.
import torch.nn as nn
loss_fn = nn.BCEWithLogitsLoss()
loss = loss_fn(logit, target)Hvorfor trinnene kombineres
Ved å slå sammen sigmoid og tapet brukes log-sum-exp-trikset. Det unngår overflow og gir stabile gradienter selv ved ekstreme logiter.
Hopp over den ekstra sigmoid-funksjonen
Fordi BCEWithLogitsLoss bruker sigmoid selv, bør modellens siste lag gi ut rå logiter uten en sigmoid koblet til.
Målene er 0 eller 1
Send inn flyttallsmål på 0.0 eller 1.0 med samme form som logitene. En form som ikke stemmer, er den klassiske BCE-feilen du bør passe på.
target = torch.tensor([1.0, 0.0, 1.0])Sigmoid bare ved inferens
Under treningen håndterer tapet komprimeringen. Hvis du vil lese av en sannsynlighet for en prediksjon, bruker du sigmoid på logiten ved inferenstidspunktet.
Juster balansen med pos_weight
Hvis positive eksempler er sjeldne, skalerer argumentet pos_weight opp bidraget deres, slik at modellen slutter å ignorere minoritetsklassen.
Rask sjekk
Du utfører binær klassifisering og ønsker numerisk stabilitet. Hva bør du gi til tapet?
Oppsummering: stabile ja eller nei
For problemer med to klasser gir du rå logiter til BCEWithLogitsLoss, som komprimerer og beregner tapet i ett stabilt trinn. Vent med sigmoid til du skal lese av sannsynligheter senere. 👍
Lær deg Python med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 30
- Leksjoner
- 120
Ofte stilte spørsmål
Er leksjonen «Binært kryssentropitap med logits» gratis?
Ja – hele teksten i «Binært kryssentropitap med logits» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Deep Learning Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Deep Learning Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Binært kryssentropitap med logits»?
Det stabile tapet for problemer med to klasser Du øver på Deep Learning Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Deep Learning Academy?
Ingen tidligere erfaring er nødvendig. Deep Learning Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.
Hvor lang tid tar leksjonen «Binært kryssentropitap med logits»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Deep Learning Academy-leksjonen?
Ja. Alle Deep Learning Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- MSE og MAE for regresjon
- Binært kryssentropitap med logits
- Kryssentropi for flerklasseproblemer
- Klassevekter for ubalanserte data