Loss-funktioner
Kunna välja loss för regression och klassificering, härleda cross-entropy ur sannolikhet, och förklara varför MSE är fel för klasser.
Förkunskaper
Intuition
En loss mäter hur fel modellen har — ett tal som träningen minimerar.
- Regression (förutsäg ett tal): MSE, medelkvadratfel. Stora fel straffas hårt (kvadraten).
- Klassificering (förutsäg en sannolikhet): cross-entropy, −log(sannolikheten modellen gav rätt klass). Ger modellen 0,9 till rätt klass: loss 0,1. Ger den 0,01: loss 4,6. Att vara säker och fel kostar enormt — precis som det ska.
Varför inte MSE på klasser? Med sigmoid/softmax blir gradienten nästan noll när modellen är säker och fel — den lär sig inte av sina värsta misstag. Cross-entropy ger stark gradient exakt där.
Kod
import numpy as np
def mse(y, yhat):
return np.mean((y - yhat) ** 2)
def cross_entropy(p_ratt): # p_ratt: modellens sannolikhet för rätt klass, per exempel
return -np.mean(np.log(np.clip(p_ratt, 1e-12, 1)))
print(mse(np.array([3.0, 5.0]), np.array([2.5, 6.0]))) # 0.625
print(cross_entropy(np.array([0.9, 0.9, 0.9]))) # 0.105
print(cross_entropy(np.array([0.9, 0.9, 0.01]))) # 1.61 — ett säkert fel dominerar
I PyTorch: nn.MSELoss(), nn.CrossEntropyLoss() (tar logits, gör softmax + log internt — mer numeriskt stabilt).
Härledning
Antag att modellen ger . Maximum likelihood väljer som maximerar , dvs. minimerar — det är cross-entropy.
För regression med antagandet , : — minimering ger MSE. Så båda är samma princip med olika brusantagande.
Gradient för sigmoid + cross-entropy: — linjär i felet. För sigmoid + MSE: — faktorn när eller : gradienten dör precis när modellen är säker och fel.
Behärskning innebär
- Väljer MSE för regression och cross-entropy för klassificering med motivering
- Härleder cross-entropy ur maximum likelihood
- Förklarar varför MSE på sannolikheter ger svaga gradienter
Logga in för att göra övningarna och bygga upp din behärskning.
Källor
- Dive into Deep Learning (CC BY-SA 4.0) — CC BY-SA 4.0
- Wikipedia — Cross-entropy (CC BY-SA 4.0) — CC BY-SA 4.0
Del av målen (22)
- Språkmodeller i praktiken
- Multimodala system
- Finjustera och driva egna modeller
- Bygg ett RAG-system som går att lita på
- Generativa modeller i djupet
- Bygg ett röstgränssnitt
- Ansvarsfull AI i praktiken
- Kör modeller billigare: kvantisering
- Evals i praktiken
- Bygg en agent som går att lita på
- Bygg ett minnessystem för en agent
- AI-säkerhet i praktiken
- Finjustera en modell med LoRA
- AI i produktion
- Bygg ett NLP-system end-to-end
- AI-tjänst i drift
- Bygg en AI-tjänst som håller i drift
- Djup reinforcement learning
- Frontier Lab — självständigt forskningsprojekt
- Reproducera ett paper
- Statistik för experiment
- Tolka en språkmodell