Deep Learning Academy · leksjon

Kryssentropi for flerkla​​​​sseproblemer

Hvorfor det forventer rå logits, ikke softmax

Leksjon 3 av 413 trinn

Kryssentropi for flerkla​​​​sseproblemer 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. 🏆

Gratis å komme i gang

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 flerkla​​​​sseproblemer» gratis?

Ja – hele teksten i «Kryssentropi for flerkla​​​​sseproblemer» 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 flerkla​​​​sseproblemer»?

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 flerkla​​​​sseproblemer»?

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

  1. MSE og MAE for regresjon
  2. Binært kryssentropitap med logits
  3. Kryssentropi for flerkla​​​​sseproblemer
  4. Klassevekter for ubalanserte data
← Tilbake til Deep Learning Academy