| taak | lagen | features | activatie | leersnelheid | max epochs | epochs getraind | params | train-acc | test-acc | drempel | tijd | ok? |
|---|
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.
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.
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.
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.