Cross-entropy för flerk lassklassificering
Varför den förväntar sig råa logits, inte softmax
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 heltalsetiketter i CrossEntropyLoss, som använder softmax internt och beräknar poängen för rätt klass. Argmax ger förutsägelsen. 🏆
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
- MSE och MAE för regression
- Binär cross-entropy med logits
- Cross-entropy för flerk lassklassificering
- Klassvikter för obalanserade data