Hoppa till innehållet
AI-grafen
E· Universitetdeep-learning· ca 60 min· grundläggande — ändras sällan· verifierad 2026-09-20

Regularisering: dropout, weight decay, early stopping

Kunna tillämpa regularisering och mäta effekten på valideringsloss.

Förkunskaper

Intuition

Regularisering = allt som gör modellen mindre benägen att memorera.

MetodVad den görNär
Weight decay (L2)straffar stora vikternästan alltid, 0,01–0,1
Dropoutnollställer slumpvis p av aktiveringarna under träningfullt kopplade lager, p = 0,1–0,5
Tidigt stoppavbryt när valideringslossen vänderalltid — gratis
Dataaugmenteringfler varianter av samma exempelbild, ljud; ofta störst effekt
Label smoothingmålet blir 0,9 i stället för 1,0klassificering, minskar översäkerhet

Regel: mer data slår all regularisering. Kan du inte få mer data, augmentera. Kan du inte augmentera, regularisera.

Kod

import torch, torch.nn as nn

modell = nn.Sequential(
    nn.Linear(784, 256), nn.ReLU(), nn.Dropout(0.3),
    nn.Linear(256, 128), nn.ReLU(), nn.Dropout(0.3),
    nn.Linear(128, 10),
)
opt = torch.optim.AdamW(modell.parameters(), lr=1e-3, weight_decay=0.01)
kriterium = nn.CrossEntropyLoss(label_smoothing=0.05)

bast, tolamod, vantat = float("inf"), 5, 0
for epok in range(100):
    modell.train()                     # dropout PÅ
    for xb, yb in train_loader:
        loss = kriterium(modell(xb), yb); loss.backward(); opt.step(); opt.zero_grad()
    modell.eval()                      # dropout AV — annars mäter du brus
    with torch.no_grad():
        val = sum(kriterium(modell(xb), yb).item() for xb, yb in val_loader) / len(val_loader)
    if val < bast - 1e-4:
        bast, vantat = val, 0; torch.save(modell.state_dict(), "bast.pt")
    else:
        vantat += 1
        if vantat >= tolamod:
            print(f"tidigt stopp vid epok {epok}, bästa val {bast:.4f}"); break
modell.load_state_dict(torch.load("bast.pt"))

Vanligaste felet: glömma model.eval() vid utvärdering. Då är dropout aktiv och valideringslossen ser slumpmässigt sämre ut — och tidigt stopp utlöses på fel grunder.

Behärskning innebär

  • Tillämpar dropout, weight decay och tidigt stopp
  • Mäter effekten på valideringsloss
  • Vet vilken metod som passar vilket problem

Logga in för att göra övningarna och bygga upp din behärskning.

Källor

Alla källor och licenser