Kryssentropi for flerklasseproblemer
Hvorfor det forventer rå logits, ikke softmax
Kryssentropi for flerklasseproblemer er en gratis leksjon i Deep Learning Academy på CoddyKit. Dette er leksjon 3 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.
Mer enn to valg
Når modellen må velge én etikett blant mange, for eksempel et siffer fra 0 til 9, bruker du cross-entropy, standardtapet for multiklasseklassifisering. 🔢
Én logit per klasse
For C klasser gir nettverket ditt ut en vektor med C rå poengsummer kalt logiter, én for hver mulig klasse, for hvert eksempel i batchen.
Softmax gjør poengsummer til sannsynligheter
Softmax eksponentierer hver logit og normaliserer dem slik at summen blir 1. Dermed blir rå poengsummer gjort om til en tydelig sannsynlighetsfordeling.
import torch
probs = torch.softmax(logits, dim=1)Tapet for mange klasser
PyTorch samler softmax og tapet i nn.CrossEntropyLoss. Det beregner hvor stor sannsynlighet modellen ga den riktige klassen.
import torch.nn as nn
loss_fn = nn.CrossEntropyLoss()Send rå logiter direkte
Dette er hovedregelen: Gi CrossEntropyLoss rå logiter, aldri et softmax-resultat. Den bruker log-softmax internt for deg.
loss = loss_fn(logits, labels)Hvorfor ikke softmax først
Hvis du bruker softmax selv før dette tapet, komprimeres verdiene to ganger. Denne doble behandlingen forvrenger gradientene og ødelegger treningen uten at det nødvendigvis er synlig.
Etiketter er klasseindekser
Målene dine er vanlige heltallsindekser, for eksempel 3 for klasse tre, ikke one-hot-vektorer. PyTorch håndterer oppslaget for deg.
labels = torch.tensor([3, 0, 7])Pass på formen til utdataene
Logiter har formen batch ganger klasser, mens etiketter bare har formen batch. En form som ikke stemmer, er den vanligste cross-entropy-feilen her.
Det er bygget av to deler
Under panseret er CrossEntropyLoss lik log-softmax etterfulgt av negativ log-sannsynlighet. Ved å slå dem sammen forblir beregningene numerisk stabile.
Prediker med argmax
For å finne det endelige svaret tar du argmax over logitene. Den største poengsummen er den predikerte klassen, og du trenger ikke softmax.
preds = logits.argmax(dim=1)Gjør etiketter jevnere for bedre generalisering
Ved å angi label_smoothing flyttes målene litt bort fra en hard 1-er. Det motvirker overkonfidens og forbedrer ofte nøyaktigheten på testdata.
loss_fn = nn.CrossEntropyLoss(label_smoothing=0.1)Rask sjekk
Du bruker nn.CrossEntropyLoss for 10 klasser. Hva bør modellens siste utdata være?
Oppsummering: én vinner per eksempel
For multiklasseproblemer gir du rå logiter og heltallsetiketter til CrossEntropyLoss, som bruker softmax internt og beregner tapet for riktig klasse. Argmax gir prediksjonen. 🏆
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 «Kryssentropi for flerklasseproblemer» gratis?
Ja – hele teksten i «Kryssentropi for flerklasseproblemer» 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 «Kryssentropi for flerklasseproblemer»?
Hvorfor det forventer rå logits, ikke softmax 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 3 av 4.
Hvor lang tid tar leksjonen «Kryssentropi for flerklasseproblemer»?
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