Hoppa till innehållet
AI-grafen
D· AI-utvecklaredeep-learning· ca 45 min· grundläggande — ändras sällan· verifierad 2026-09-20

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 pθ(y∣x)p_\theta(y\mid x). Maximum likelihood väljer θ\theta som maximerar ∏ipθ(yi∣xi)\prod_i p_\theta(y_i\mid x_i), dvs. minimerar −∑ilog⁡pθ(yi∣xi)-\sum_i \log p_\theta(y_i\mid x_i) — det är cross-entropy.

För regression med antagandet y=fθ(x)+εy = f_\theta(x) + \varepsilon, ε∼N(0,σ2)\varepsilon\sim\mathcal N(0,\sigma^2): −log⁡p=(y−fθ(x))22σ2+konst-\log p = \frac{(y - f_\theta(x))^2}{2\sigma^2} + \text{konst} — minimering ger MSE. Så båda är samma princip med olika brusantagande.

Gradient för sigmoid + cross-entropy: ∂L/∂z=p^−y\partial L/\partial z = \hat p - y — linjär i felet. För sigmoid + MSE: (p^−y) p^(1−p^)(\hat p - y)\,\hat p(1-\hat p) — faktorn p^(1−p^)→0\hat p(1-\hat p)\to 0 när p^→0\hat p\to 0 eller 11: 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

Alla källor och licenser