Overfitting och generalisering
Kunna känna igen överanpassning i kurvor och siffror, förklara bias/varians, och välja motåtgärder.
Förkunskaper
Intuition
En modell som får 99 % på träningsdata och 60 % på ny data har memorerat i stället för att lära sig mönstret. Det är överanpassning (overfitting).
Motsatsen, underanpassning: modellen är för enkel för mönstret — dålig på både träning och test.
Bias/varians: enkel modell → hög bias (systematiskt fel), låg varians (stabil). Komplex modell → låg bias, hög varians (svaret svänger med vilka exempel den råkade se). Man vill ha lagom.
Det enda som räknas är prestanda på data modellen inte sett.
Kod
import numpy as np
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
from sklearn.pipeline import make_pipeline
from sklearn.model_selection import train_test_split
rng = np.random.default_rng(0)
X = np.sort(rng.uniform(-3, 3, 40))[:, None]
y = np.sin(X[:, 0]) + rng.normal(0, 0.3, 40)
Xtr, Xva, ytr, yva = train_test_split(X, y, test_size=0.5, random_state=0)
for grad in (1, 3, 15):
m = make_pipeline(PolynomialFeatures(grad), LinearRegression()).fit(Xtr, ytr)
print(grad, round(m.score(Xtr, ytr), 2), round(m.score(Xva, yva), 2))
# 1 0.45 0.40 ← underanpassad
# 3 0.85 0.80 ← lagom
# 15 0.99 -2.1 ← överanpassad: perfekt på träning, katastrof på validering
Formellt
Förväntat testfel för en punkt kan skrivas , där är oreducerbart brus. Modellkapacitet minskar bias men ökar varians. Regularisering (t.ex. L2: ) byter lite bias mot mycket mindre varians. Tidigt stopp i iterativ träning är en implicit regularisering.
Behärskning innebär
- Känner igen överanpassning i tränings-/valideringskurvor
- Förklarar bias/varians-avvägningen
- Väljer motåtgärd: mer data, regularisering, enklare modell, tidigt stopp
Logga in för att göra övningarna och bygga upp din behärskning.
Källor
- scikit-learn User Guide (BSD-3) — BSD-3-Clause
- Dive into Deep Learning (CC BY-SA 4.0) — CC BY-SA 4.0
Leder till
Del av målen (24)
- Klassisk maskininlärning i praktiken
- Träna neuronnät på riktigt
- Se och höra med AI
- Data: samla, städa, dokumentera
- Bildklassificering med faltningsnät
- Klassisk ML på riktigt
- Frontier Lab — självständigt forskningsprojekt
- AI i produktion
- Finjustera en modell med LoRA
- Bygg ett NLP-system end-to-end
- Generativa modeller i djupet
- Bygg ett RAG-system som går att lita på
- Bygg en agent som går att lita på
- Finjustera och driva egna modeller
- AI-säkerhet i praktiken
- Evals i praktiken
- Bygg ett minnessystem för en agent
- Ansvarsfull AI i praktiken
- Bygg en AI-tjänst som håller i drift
- AI-tjänst i drift
- Reproducera ett paper
- Djup reinforcement learning
- Statistik för experiment
- Tolka en språkmodell