Direct naar inhoud
Alle termenNeurale netwerken & deep learning

Wat is Exploding Gradient?

Als je een neuraal netwerk traint, kunnen de leersignalen soms gigantisch groot worden en het hele leerproces ontsporen — zoals een sneeuwbal die lawine wordt.

Wat is Exploding Gradient

Wat is een exploding gradient?

Stel je voor dat je een neuraal netwerk aan het trainen bent. Daarbij krijgt het model na elke voorspelling feedback: "Dit ging goed" of "Dit moet je aanpassen". Die feedback vertaalt zich in kleine correcties die door alle lagen van het netwerk teruggestuurd worden — dat heet backpropagation.

Nu kan het gebeuren dat die correcties met elke laag groter worden. Niet een beetje groter, maar exponentieel groter. Alsof je een sneeuwbal een berg af rolt en die steeds sneller groeit tot hij een lawine wordt. Uiteindelijk worden de getallen zo groot dat het model compleet de weg kwijtraakt en niet meer kan leren. Dat noemen we een exploding gradient.

Het tegenovergestelde — een vanishing gradient — is dat de signalen juist steeds kleiner worden tot er helemaal niks meer aankomt. Beide problemen maken vooral diepe netwerken (met veel lagen) lastig te trainen.

Hoe ontstaat het?

Bij backpropagation worden correcties vermenigvuldigd met gewichten (de instellingen van het netwerk) om naar de vorige laag te gaan. Als die gewichten groot zijn, of als je veel lagen hebt, kan dat vermenigvuldigen zorgen dat een klein signaal van 0,1 ineens 10, dan 100, dan 10.000 wordt.

In de vroege dagen van deep learning waren diepe netwerken hierdoor bijna ontrainbaar. Je zag dat de foutmarge tijdens training ineens naar oneindig schoot, of dat het model alleen maar rare, extreme voorspellingen deed.

Een voorbeeld uit de praktijk

Stel je traint een neuraal netwerk om zinnen te vertalen. Na een paar training-rondes zie je dat de voorspellingen ineens compleet onzinnig worden — het model voorspelt woorden met een "zekerheid" van 10 miljoen procent, of de foutmarge springt van 0,5 naar 999.999. Dat is een teken van exploding gradients: de leersignalen zijn te groot geworden en het netwerk is de controle kwijtgeraakt.

Hoe los je het op?

Er zijn een paar standaard trucs:

  • Gradient clipping: je zet een maximum op hoe groot een correctie mag zijn. Als hij groter dreigt te worden, knip je hem af. Simpel maar effectief.

  • Betere initialisatie: je start het netwerk met gewichten die niet te groot en niet te klein zijn (bijvoorbeeld Xavier- of He-initialisatie).

  • Andere architecturen: sommige netwerkstructuren, zoals ResNets met skip connections, laten signalen rechtstreeks doorstromen en voorkomen zo extreme vermenigvuldiging.

  • Lagere learning rate: als je kleinere stapjes neemt tijdens het leren, blijven de signalen ook kleiner.

Waar kom je het tegen?

Exploding gradients zie je vooral bij:

  • Recurrent Neural Networks (RNNs): omdat ze informatie door de tijd heen doorgeven, stapelen correcties zich op

  • Zeer diepe netwerken: hoe meer lagen, hoe groter de kans op explosie

  • Training-dashboards: in tools zoals TensorBoard of Weights & Biases zie je de loss (fout) ineens naar oneindig schieten

  • Research-papers: vaak staat in de "training details" sectie dat gradient clipping gebruikt is — dat is een hint dat exploding gradients een risico was

Als je zelf een neuraal netwerk traint en je ziet vreemde sprongen in de foutmarge, of het model lijkt compleet vast te lopen na een paar rondes, check dan of je te maken hebt met exploding gradients. Gradient clipping toevoegen kost een paar regels code en lost het vaak direct op.

FAQ

Veelgestelde vragen over Exploding Gradient

De drie meest gestelde vragen over dit onderwerp, kort beantwoord.

Wat is Exploding Gradient?

Als je een neuraal netwerk traint, kunnen de leersignalen soms gigantisch groot worden en het hele leerproces ontsporen — zoals een sneeuwbal die lawine wordt.

Waarom is Exploding Gradient belangrijk?

Stel je voor dat je een neuraal netwerk aan het trainen bent. Daarbij krijgt het model na elke voorspelling feedback: "Dit ging goed" of "Dit moet je aanpassen". Die feedback vertaalt zich in kleine correcties die door alle lagen van het netwerk teruggestuurd worden — dat heet backpropagation.

Hoe wordt Exploding Gradient toegepast?

Nu kan het gebeuren dat die correcties met elke laag groter worden. Niet een beetje groter, maar exponentieel groter. Alsof je een sneeuwbal een berg af rolt en die steeds sneller groeit tot hij een lawine wordt. Uiteindelijk worden de getallen zo groot dat het model compleet de weg kwijtraakt en niet meer kan leren. Dat noemen we een exploding gradient.

Deel: