D· AI-utvecklareProjekt· ca 150 min· container
Projekt 2: Bygg ett neuronnät från grunden
Ett komplett neuronnät i NumPy — softmax-utdata, cross-entropy, backprop, minibatchar, träning på 8×8-siffror — med ≥ 90 % accuracy på hållen data och en träningskurva som artefakt.
Lär ut: capstone-d-egen-klassificerare · Kräver: backpropagationneuronnatgradient-descent
Teori
Klassificering: logits → softmax → cross-entropy. Gradienten m.a.p. logits är bekvämt (p − y_onehot)/n. Minibatchar ger billigare, brusigare steg. Kurvan (loss per epok) är ditt viktigaste diagnosverktyg.
Deluppgifter
- softmax + cross-entropy — `softmax(Z)` radvis stabil; `cross_entropy(P, y)` medel −log p_y.
- forward/backward — `forward(p, X)` → (z1, a1, logits); `backward(p, X, y, cache)` → gradienter (gradientkontroll i testerna).
- minibatch-träning — `train(X, y, hidden, lr, epochs, batch, seed)` → (params, loss_history).
- utvärdera + kurva — `accuracy(p, X, y)`; `plot_curve(hist, path)` sparar en PNG till out/ (artefakt).
Evals: digits-accuracy (accuracy >= 0.9)
Logga in för att köra laborationen.
Förväntade resultat
Gradientkontroll < 1e-5; accuracy ≥ 0,90 på hållen data efter ~30 epoker; en sjunkande träningskurva i out/curve.png.
Vanliga fel
- Softmax utan max-subtraktion → overflow.
- Cross-entropy med log(0) → −inf; klipp p till ≥ 1e-12.
- Blandar inte datan mellan epoker.