Van neuron tot taalmodel

Verdieping

Activatiefuncties: de knik in de lijn

In De basis kwam de activatiefunctie kort voorbij; in de netwerken gebruiken we ze volop. Hier kijken we in detail hoe ze precies werken — de bekende sigmoïde en ReLU voorop, met daarnaast een paar andere die je vaak tegenkomt. Met formules, hun vorm, hun afgeleide, en wanneer je welke kiest.

1 — waarom

Waarom je ze nodig hebt

Een neuron berekent eerst een gewogen som van zijn ingangen — een rechte, lineaire bewerking. Het probleem: als je louter lineaire lagen op elkaar stapelt, blijft het geheel lineair. Tien lagen achter elkaar kunnen dan niets meer dan één enkele laag: alleen rechte lijnen en vlakke scheidingen. Daarmee leer je nooit iets kroms.

De activatiefunctie zet daar een bocht in. Door na elke som een niet-lineaire functie toe te passen, kan het netwerk gebogen grenzen en samengestelde patronen vormen — en wordt diepte pas zinvol. In dit project zie je dat terug: de neuron-demo in De basis gebruikt een sigmoïde, de verborgen lagen van de netwerken gebruiken ReLU, en aan de uitgang staat softmax (daarover onderaan meer).

2 — sigmoïde

De sigmoïde: een zachte schakelaar

De sigmoïde drukt elk getal — hoe groot of klein ook — samen tot een waarde tussen 0 en 1. Heel negatief geeft bijna 0, heel positief bijna 1, en rond 0 loopt ze vloeiend door 0,5. Daardoor leest ze prettig als een “zachte schakelaar” of als een kans.

σ(x) = 1 / (1 + e−x)

1,0 0,5 0,0 −6 0 6 afgeleide

Bereik: 0 tot 1. Afgeleide: σ′(x) = σ(x)·(1−σ(x)), met een maximum van slechts 0,25 in het midden (de gestreepte bult).

Daarin schuilt meteen haar zwakte. Aan de uiteinden — bij sterk negatieve of positieve invoer — wordt de curve bijna vlak en gaat de afgeleide naar 0. Tijdens backpropagatie betekent een afgeleide van bijna 0 dat er nauwelijks nog een leersignaal doorkomt. In diepe netwerken sterft dat signaal laag na laag uit: het beruchte vanishing gradient-probleem. Daarom zie je sigmoïde vandaag vooral nog aan de uitgang, zelden in diepe verborgen lagen.

3 — tanh

De tanh: een sigmoïde rond nul

De hyperbolische tangens heeft dezelfde S-vorm als de sigmoïde, maar loopt van −1 tot 1 en is netjes rond 0 gecentreerd. Dat “nul-gecentreerd” zijn helpt het leren: de uitgangen zijn gemiddeld rond 0, wat de volgende laag makkelijker verwerkt dan de uitgangen van de sigmoïde, die altijd positief zijn.

tanh(x) = (ex − e−x) / (ex + e−x)

1,0 0,0 −1,0 −4 0 4 afgeleide

Bereik: −1 tot 1. Afgeleide: 1−tanh(x)², met een maximum van 1,0 in het midden — viermaal steiler dan sigmoïde, dus een sterker leersignaal.

Maar ook tanh verzadigt: aan de uiteinden wordt ze vlak en verdwijnt de afgeleide opnieuw. Het vanishing-gradient-probleem is dus verzacht, niet opgelost. Tanh was lang de standaard vóór ReLU, en duikt nog op in bepaalde netwerken (zoals sommige geheugencellen).

4 — ReLU

ReLU: simpel en snel

ReLU (Rectified Linear Unit) is verrassend eenvoudig: laat positieve waarden ongemoeid, en maak alles wat negatief is gewoon 0. Geen exponenten, geen verzadiging aan de bovenkant — net die eenvoud maakte diepe netwerken praktisch trainbaar. Dit is de activatie in de verborgen lagen van onze netwerken.

ReLU(x) = max(0, x)

4 2 0 −4 0 4

Bereik: 0 tot oneindig. Afgeleide: 0 voor negatieve x, en precies 1 voor positieve x — geen verzwakking, dus het leersignaal blijft sterk. (In de knik bij 0 is ze strikt genomen niet differentieerbaar; in de praktijk kies je daar gewoon 0.)

Pluspunten: razendsnel te berekenen, geen vanishing gradient voor positieve invoer, en ze maakt veel neuronen exact 0 — een spaarzame, efficiënte representatie. Het nadeel heet dying ReLU: belandt een neuron in het vlakke gebied (altijd negatieve som), dan is zijn afgeleide overal 0 en leert hij nooit meer iets. Hij is dan “dood”.

5 — leaky ReLU & familie

Leaky ReLU: de lek die neuronen redt

Leaky ReLU lost het sterven op met een kleine truc: in plaats van negatieve waarden hard op 0 te zetten, geeft ze ze een klein, flauw hellinkje (vaak 0,01, hier 0,1 om het zichtbaar te maken). Zo is de afgeleide nergens precies 0, en kan een neuron altijd terugkrabbelen.

Leaky ReLU(x) = max(αx, x), met kleine α

4 2 0 −4 0 4

Diezelfde gedachte kent een hele familie:

  • Leaky ReLU — vaste kleine helling (bv. 0,01) voor negatieve x.
  • Parametric ReLU (PReLU) — die helling is zelf een leerbare parameter.
  • ELU — buigt voor negatieve x zacht naar een kleine negatieve waarde, glad in plaats van geknikt.
  • GELU en Softplus — gladde, vloeiende verwanten van ReLU; GELU is populair in moderne taalmodellen.
6 — naast elkaar

Alle vier in één beeld

Onder elkaar gelegd zie je het verschil in karakter meteen: de twee S-curves (sigmoïde, tanh) die alles platdrukken, tegenover de twee rechte ReLU-varianten die onbegrensd doorstijgen.

3 2 1 0 −1 −3 −1 0 1 3
sigmoïde tanh ReLU leaky ReLU
De vier in het kort.
functiebereiksterke kantlet op
sigmoïde0 … 1leest als een kansverzadigt → vanishing gradient
tanh−1 … 1nul-gecentreerd, steilerverzadigt nog steeds
ReLU0 … ∞snel, geen verzadiging bovenneuronen kunnen “sterven”
leaky ReLU−∞ … ∞sterft nietextra parameter α te kiezen
7 — en softmax?

Softmax is iets anders

Softmax — die we aan de uitgang van beide netwerken gebruiken — lijkt op een activatiefunctie, maar speelt een andere rol. Waar sigmoïde en ReLU elk getal apart omvormen, kijkt softmax naar alle uitgangen samen en zet ze om in kansen die samen precies 1 vormen. Daarom hoort softmax thuis in de uitvoerlaag bij classificatie (“kies één van de mogelijke antwoorden”), niet als activatie tussen verborgen lagen. De volledige uitleg staat in hoofdstuk 2.

8 — zelf voelen

Speel met de curves

Kies een functie en sleep met de schuifbalk de waarde van x. Het punt verschuift over de curve, en de gestreepte raaklijn toont de helling — precies de afgeleide die backpropagatie gebruikt. Let op hoe vlak sigmoïde en tanh worden aan de uiteinden (helling bijna 0), en hoe ReLU links helemaal vlak ligt.

Verdieping bij De basis — hoe activatiefuncties de niet-lineariteit in een netwerk brengen.