Deep Learning Academy · Lektion

Cross-entropy för flerk lassklassificering

Varför den förväntar sig råa logits, inte softmax

Lektion 3 av 413 steg

Cross-entropy för flerk lassklassificering är en gratis lektion i Deep Learning Academy på CoddyKit. Detta är lektion 3 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Deep Learning Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Deep Learning Academy innehåller totalt 4 lektioner.

Fler än två val

När modellen måste välja en etikett bland många, som en siffra från 0 till 9, använder du cross-entropy, den vanliga förlustfunktionen för multiklassklassificering. 🔢

En logit per klass

För C klasser ger nätverket ut en vektor med C råa poäng, så kallade logits, en för varje möjlig klass, för varje exempel i batchen.

Softmax omvandlar poäng till odds

Softmax exponentierar varje logit och normaliserar dem så att summan blir 1, vilket omvandlar råa poäng till en tydlig sannolikhetsfördelning.

import torch
probs = torch.softmax(logits, dim=1)

Förlusten för många klasser

PyTorch kombinerar softmax och förlusten i nn.CrossEntropyLoss. Den beräknar hur stor sannolikhet modellen tilldelade den korrekta klassen.

import torch.nn as nn
loss_fn = nn.CrossEntropyLoss()

Skicka råa logits direkt

Detta är huvudregeln: mata CrossEntropyLoss med råa logits, aldrig med resultatet från softmax. Den använder log-softmax internt åt dig.

loss = loss_fn(logits, labels)

Varför inte softmax först

Om du själv använder softmax och sedan denna förlust pressas värdena ihop två gånger. Den dubbla behandlingen förvränger gradienterna och förstör i tysthet träningen.

Etiketter är klassindex

Dina mål är vanliga heltalsindex, som 3 för klass tre, inte one-hot-vektorer. PyTorch utför uppslagningen åt dig.

labels = torch.tensor([3, 0, 7])

Var uppmärksam på utdatas form

Logits har formen batch gånger klasser, medan etiketter bara har formen batch. En form som inte stämmer är det vanligaste cross-entropy-felet här.

Den byggs av två delar

Under huven motsvarar CrossEntropyLoss log-softmax följt av negativ log-likelihood. Genom att kombinera dem förblir matematiken numeriskt stabil.

Förutsäg med argmax

För att få det slutliga svaret tar du argmax över logits. Den största poängen är den förutsagda klassen; softmax behövs inte.

preds = logits.argmax(dim=1)

Jämna ut etiketter för bättre generalisering

Om du ställer in label_smoothing flyttas målen en aning bort från en hård etta. Det motverkar överdriven säkerhet och förbättrar ofta noggrannheten på testdata.

loss_fn = nn.CrossEntropyLoss(label_smoothing=0.1)

Snabb kontroll

Du använder nn.CrossEntropyLoss för 10 klasser. Vad ska modellens slutliga utdata vara?

Sammanfattning: en vinnare per exempel

Vid multiklassproblem matar du in råa logits och heltals­etiketter i CrossEntropyLoss, som använder softmax internt och beräknar poängen för rätt klass. Argmax ger förutsägelsen. 🏆

Gratis att börja

Lär dig Python med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
30
Lektioner
120

Vanliga frågor

Är lektionen ”Cross-entropy för flerk lassklassificering” gratis?

Ja – hela texten till ”Cross-entropy för flerk lassklassificering” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Deep Learning Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Deep Learning Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Cross-entropy för flerk lassklassificering”?

Varför den förväntar sig råa logits, inte softmax Ni övar på Deep Learning Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Deep Learning Academy?

Du behöver inga förkunskaper. Utbildningen i Deep Learning Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”Cross-entropy för flerk lassklassificering”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Deep Learning Academy-lektionen?

Ja. Varje Deep Learning Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. MSE och MAE för regression
  2. Binär cross-entropy med logits
  3. Cross-entropy för flerk lassklassificering
  4. Klassvikter för obalanserade data
← Tillbaka till Deep Learning Academy