Projekt 6: Reproducera ett paper — Dropout (Srivastava m.fl. 2014)
Formulera paperets påstående som hypotes, reproducera det i liten skala (dropout minskar gapet mellan tränings- och testfel), köra ablation över p ∈ {0, 0.2, 0.5} och tre frön, rapportera medel ± std och skriva en reproducerbar rapport som artefakt.
Lär ut: capstone-g-forskningsprojekt · Kräver: reproducerbarhetablation-studierregularisering
Teori
Srivastava m.fl. (2014) visar att dropout minskar överanpassning genom att slumpmässigt stänga av neuroner under träning. Hypotes: med dropout p=0,5 är test−tränings-gapet mindre än utan, och testfelet lägre, på ett litet MLP tränat på lite data. Reproduktion kräver: fasta frön, samma data, samma budget, flera körningar.
Deluppgifter
- modell med dropout — `make_model(p)` → MLP 64→256→256→10 med nn.Dropout(p) efter varje ReLU.
- ett experiment — `run_once(p, seed, n_train, epochs)` → {train_acc, test_acc, gap} på digits med litet träningsset (n_train=300) för att framkalla överanpassning.
- ablation — `ablation(ps, seeds)` → per p: medel och std av gap och test_acc.
- rapport — `write_report(results, path)` skriver out/report.md med tabell, hypotes, metod, frön, slutsats.
Evals: dropout-minskar-gap (gap_reduction >= 0.15)
Logga in för att köra laborationen.
Förväntade resultat
Gapet (train−test) med p=0,5 är minst 15 % mindre än med p=0 (medel över 3 frön, 300 epoker). I den här lilla skalan är effekten tydlig men mindre än i papret — det är en del av reproduktionens resultat och ska stå i rapporten. out/report.md redovisar medel ± std och frön.
Vanliga fel
- Glömmer model.eval() vid utvärdering → dropout aktiv under test.
- Samma frö för alla körningar → std = 0 och ingen osäkerhet.
- Mäter test_acc på träningsdata.