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.
| Metod | Vad den gör | När |
|---|---|---|
| Weight decay (L2) | straffar stora vikter | nästan alltid, 0,01–0,1 |
| Dropout | nollställer slumpvis p av aktiveringarna under träning | fullt kopplade lager, p = 0,1–0,5 |
| Tidigt stopp | avbryt när valideringslossen vänder | alltid — gratis |
| Dataaugmentering | fler varianter av samma exempel | bild, ljud; ofta störst effekt |
| Label smoothing | målet blir 0,9 i stället för 1,0 | klassificering, 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
- arXiv — Dropout: A Simple Way to Prevent Neural Networks from Overfitting (JMLR) — arXiv (öppen åtkomst; licens per artikel)
- Dive into Deep Learning (CC BY-SA 4.0) — CC BY-SA 4.0