Hoppa till innehållet
AI-grafen
D· AI-utvecklareLaboration· ca 50 min· wasm

Labb: gradient descent från grunden

Implementera gradient descent för en enkel loss och för linjär regression, och se effekten av inlärningstakten.

Lär ut: gradient-descent · Kräver: derivata-och-optimeringenkel-prediktiv-modell

Teori

w ← w − η·L'(w). För L(w) = (w−3)² är L'(w) = 2(w−3). För linjär regression med MSE är gradienten m.a.p. k: (2/n)Σ(kxᵢ+m−yᵢ)xᵢ och m.a.p. m: (2/n)Σ(kxᵢ+m−yᵢ).

Deluppgifter

  1. steg — `gd_1d(w0, eta, steg)` returnerar w efter `steg` uppdateringar på L(w) = (w−3)².
  2. gradient för linjen — `grad_linje(k, m, xs, ys)` returnerar (dL/dk, dL/dm) för MSE.
  3. träna linjen — `trana_linje(xs, ys, eta, steg)` returnerar (k, m) efter gradient descent från (0, 0).

Evals: glass-mse (mse <= 1)

Logga in för att köra laborationen.

Förväntade resultat

gd_1d(0, 0.25, 3) ≈ 2.625; gd_1d(0, 0.5, 1) = 3.0; tränad linje på glassdatan ger MSE < 1 (facit k=3, m=−25 ger 0).

Vanliga fel

  • Tecknet: w − η·grad, inte plus.
  • Glömmer faktorn 2/n i MSE-gradienten (fungerar ändå med annan η, men testet kräver exakt gradient).
  • För stor η på glassdatan (x ≈ 20) exploderar — normalisera eller använd liten η (≈0,002).