NN Layer Test — lokaal model lab

Bouw een volledig lokaal neuraal netwerk, kies een taak, en meet wanneer het genoeg presteert — en waarom het soms niet genoeg is.

Architectuur — verborgen lagen

Richtwaarde: 1-2 lagen van 8-16 nodes volstaat voor tekstclassificatie. Meer lagen/nodes leren complexere patronen, maar trainen trager en overfitten sneller op kleine datasets. Max. 5 lagen.
Invoer- en uitvoerlaag liggen vast door de taak. Jij bestuurt de verborgen lagen ertussen.

Instellingen

Richtwaarde: ReLU — traint het snelst en werkt bijna altijd goed als standaard. Wil je per verborgen laag een andere activatiefunctie? Dat kan hierboven bij "Architectuur".
Richtwaarde: begin met woordtelling. Zit je op de grens van "goed genoeg"? Probeer tf-idf — vaak een gratis nauwkeurigheidswinst zonder groter model.
Richtwaarde: 0.10-0.30. Hoger traint sneller maar kan instabiel worden (loss die op- en neer springt); lager is stabieler maar trager.
Richtwaarde: 85% voor een demo-taak. Voor iets dat echt betrouwbaar moet zijn wil je vaak 95%+.
Bepaalt hoe lang "▶ train" vanzelf doorgaat voordat het automatisch stopt. Richtwaarde: 400-800. Je kunt ook altijd zelf op "■ stop" klikken zodra de leercurve vlak wordt.

Training

Trainen loopt volledig in je browser, op je eigen apparaat — geen server, geen datacenter. De tijd die dit kost is de rekenkracht die dit model nodig heeft.

Wat er door het model heen gaat

positief gewicht negatief gewicht actieve node

Verlies & nauwkeurigheid tijdens training

— verlies (loss) — nauwkeurigheid train — nauwkeurigheid test

Waar het misgaat (testset)

Train het model om resultaten te zien.

Test een eigen zin

Live meting

epoch0
verlies (loss)
nauwkeurigheid train
nauwkeurigheid test
parameters
berekeningen / voorspelling
trainingstijd

Vergelijking & opslaan

taaklagenfeaturesactivatieleersnelheidmax epochsepochs getraindparamstrain-acctest-accdrempeltijdok?
nog geen map gekozen — kies de map "resultaten" in je projectmap (of gebruik de downloadknop)
Klik + vergelijking om de huidige run toe te voegen. Sla verschillende configuraties op om te zien of een kleiner model met betere invoer een groter model met ruwe input kan verslaan.

Wat dit wel en niet laat zien

Dit is een klein, volledig doorzichtig classificatienetwerk — geen taalmodel zoals ChatGPT of Claude. Een echt taalmodel heeft miljarden parameters, genereert tekst token voor token, en is te groot om in een browser te trainen of laag voor laag te tekenen. Wat hier wél tastbaar wordt, zijn de principes die ook voor grote lokale modellen gelden: meer lagen en nodes geven meer leervermogen maar kosten meer rekentijd en geheugen; te weinig capaciteit geeft een model dat blijft onderpresteren ongeacht hoe lang je traint; en de kwaliteit van de invoer (features, resolutie) kan vaak meer opleveren dan een groter model. Bij taak C en D zie je dit letterlijk: een 10×10-versie van een handgeschreven cijfer traint sneller maar verwart bijvoorbeeld eerder een 4 met een 9 dan een 28×28-versie — precies de afweging tussen rekenkracht en prestatie waar dit lab om draait.

Inzichten uit onderzoek — en waar je ze hier kunt zien

Verzadigde activaties remmen het leren

Glorot & Bengio (2010) lieten zien dat sigmoid/tanh-lagen in diepere netwerken snel "verzadigd" raken (uitvoer tegen 0 of 1/-1 aan) — daar is de afgeleide bijna nul, dus er stroomt nauwelijks nog leersignaal terug. Dat is precies waarom ReLU tegenwoordig de standaardkeuze is. Zet bij taak C of D een paar verborgen lagen op sigmoid (via de nieuwe per-laag keuze hierboven bij "Architectuur") en kijk naar de verzadigingsmeter boven de leercurve: bij sigmoid loopt die vaak snel op, bij ReLU meestal niet.

ReLU kan ook "doodgaan"

Nair & Hinton (2010) introduceerden de ReLU-activatie omdat die dit verzadigingsprobleem grotendeels oplost — maar ReLU-nodes kunnen op hun beurt permanent op 0 blijven hangen ("dying ReLU"), vooral bij een te hoge leersnelheid. De verzadigingsmeter telt dit voor ReLU-lagen als "% inactief (0)": loop je met een hoge leersnelheid en zie je dat percentage oplopen, dan is dat precies dit effect.

Waarom de gewichten zó geïnitialiseerd worden

De willekeurige startgewichten in dit lab zijn geschaald met √(2/aantal-invoerwaarden) — de initialisatie uit He e.a. (2015), specifiek ontworpen om het signaal door ReLU-lagen heen op peil te houden. Zonder een verstandige schaling raken netwerken met meer lagen sneller in de problemen (te grote of te kleine activaties), wat mede verklaart waarom "gewoon meer lagen toevoegen" niet altijd beter traint.

Eén brede laag kan in theorie al genoeg zijn

De universele-approximatiestelling (Cybenko 1989; Hornik 1991) zegt dat één verborgen laag met genoeg nodes vrijwel elke functie kan benaderen. In de praktijk leert een netwerk met meerdere smallere lagen zo'n functie vaak sneller en met minder nodes dan één extreem brede laag — dat is de afweging die je voelt als je met "verborgen laag toevoegen" versus "nodes per laag" speelt.