Achterwaartse Propagatie
Achterwaartse propagatie, of backpropagation, is het proces waarbij wordt bepaald hoe de verliesfunctie verandert ten opzichte van elke parameter in het neuraal netwerk. Het doel is om deze parameters zodanig aan te passen dat het totale verlies wordt verminderd.
Dit proces is gebaseerd op het gradient descent-algoritme, dat gebruikmaakt van de afgeleiden van het verlies ten opzichte van de pre-activatiewaarden van elke laag (de ruwe uitgangen vóór het toepassen van de activatiefunctie) en deze achterwaarts door het netwerk verspreidt.
Aangezien elke laag bijdraagt aan de uiteindelijke voorspelling, worden de gradiënten stap voor stap berekend:
- Voorwaartse propagatie uitvoeren om de uitgangen te verkrijgen;
- De afgeleide van het verlies ten opzichte van de pre-activatie van de uitgang berekenen;
- Deze afgeleide achterwaarts door de lagen verspreiden met behulp van de kettingregel;
- De gradiënten voor gewichten en biases berekenen en gebruiken om deze tijdens de training bij te werken.
Gradiënten geven de veranderingssnelheid van een functie ten opzichte van zijn invoer weer, wat betekent dat het de afgeleiden zijn. Ze geven aan hoeveel een kleine wijziging in gewichten, biases of activaties de verliesfunctie beïnvloedt, en sturen het leerproces van het model via gradient descent.
Notatie
Om de uitleg duidelijker te maken, gebruiken we de volgende notatie:
- Wl is de gewichtenmatrix van laag l;
- bl is de vector van biases van laag l;
- zl is de vector van pre-activaties van laag l;
- al is de vector van activaties van laag l;
Door a0 gelijk te stellen aan x (de invoer), kan voorwaartse propagatie in een perceptron met n lagen worden beschreven als de volgende reeks bewerkingen:
a0z1a1=x,=W1a0+b1,=f1(z1),...zlal...=Wlal−1+bl,=fl(zl),...znany^...=Wnan−1+bn,=fn(zn),=an.Om backpropagatie wiskundig te beschrijven, worden de volgende notaties geïntroduceerd:
- dal: afgeleide van het verlies ten opzichte van de activaties op laag l;
- dzl: afgeleide van het verlies ten opzichte van de pre-activaties op laag l (voor het toepassen van de activatiefunctie);
- dWl: afgeleide van het verlies ten opzichte van de gewichten op laag l;
- dbl: afgeleide van het verlies ten opzichte van de biases op laag l.
Gradienten berekenen voor de outputlaag
Bij de laatste laag n is de eerste stap het berekenen van de gradiënt van het verlies ten opzichte van de activaties van de outputlaag, aangeduid als dan.
Vervolgens wordt met behulp van de kettingregel de gradiënt van het verlies ten opzichte van de pre-activaties van de outputlaag berekend als:
dzn=dan⊙f′n(zn)Hierbij stelt f′n(zn) de afgeleide van de activatiefunctie op laag n voor, en het symbool ⊙ duidt op elementgewijze vermenigvuldiging.
Het symbool ⊙ duidt op elementgewijze vermenigvuldiging, wat betekent dat elk element van een vector wordt vermenigvuldigd met het overeenkomstige element van een andere vector. Daarentegen stelt het symbool ⋅ het inwendig product voor, gebruikt voor standaard matrix- of vectorvermenigvuldiging. De term f′n verwijst naar de afgeleide van de activatiefunctie op de outputlaag.
Deze waarde geeft aan hoe gevoelig de verliesfunctie is voor veranderingen in de pre-activatiewaarden van de outputlaag.
Na het berekenen van dzn, is de volgende stap het bepalen van de gradiënten voor de gewichten en biases:
dWndbn=dzn⋅(an−1)T,=dznDeze gradiënten geven aan in welke mate elk gewicht en elke bias in de outputlaag moet worden aangepast om het verlies te verminderen.
Hier is (an−1)T de getransponeerde activatievector van de vorige laag. Als de oorspronkelijke vector de vorm nneurons×1 heeft, dan heeft de getransponeerde de vorm 1×nneurons.
Om de backward propagatie voort te zetten, wordt de afgeleide van het verlies ten opzichte van de activaties van de vorige laag als volgt berekend:
dan−1=(Wn)T⋅dznDeze uitdrukking maakt het mogelijk om het foutsignaal terug te voeren door het netwerk, zodat eerdere lagen tijdens het trainen kunnen worden aangepast.
Gradiënten Propageren naar de Verborgen Lagen
Voor elke verborgen laag l is de procedure hetzelfde. Gegeven dal:
- Bepaal de afgeleide van het verlies ten opzichte van de pre-activaties;
- Bepaal de gradiënten voor de gewichten en biases;
- Bereken dal−1 om de afgeleide verder terug te voeren.
Dit proces wordt herhaald voor elke voorgaande laag, stap voor stap, totdat de inputlaag is bereikt.
Gewichten en biases bijwerken
Na het berekenen van de gradiënten voor alle lagen worden de gewichten en biases bijgewerkt met behulp van het gradient descent-algoritme:
Wlbl=Wl−α⋅dWl,=bl−α⋅dbl.Hierbij stelt α de leersnelheid voor, die bepaalt hoeveel de parameters worden aangepast tijdens elke trainingsstap.
Hierbij is α de leersnelheid, een hyperparameter die de grootte bepaalt van de aanpassing die wordt toegepast op de gewichten en biases bij elke update.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Can you explain how the chain rule is applied in backpropagation?
What is the difference between pre-activations and activations in a neural network?
Can you provide an example of calculating gradients for a simple neural network?
Awesome!
Completion rate improved to 4
Achterwaartse Propagatie
Veeg om het menu te tonen
Achterwaartse propagatie, of backpropagation, is het proces waarbij wordt bepaald hoe de verliesfunctie verandert ten opzichte van elke parameter in het neuraal netwerk. Het doel is om deze parameters zodanig aan te passen dat het totale verlies wordt verminderd.
Dit proces is gebaseerd op het gradient descent-algoritme, dat gebruikmaakt van de afgeleiden van het verlies ten opzichte van de pre-activatiewaarden van elke laag (de ruwe uitgangen vóór het toepassen van de activatiefunctie) en deze achterwaarts door het netwerk verspreidt.
Aangezien elke laag bijdraagt aan de uiteindelijke voorspelling, worden de gradiënten stap voor stap berekend:
- Voorwaartse propagatie uitvoeren om de uitgangen te verkrijgen;
- De afgeleide van het verlies ten opzichte van de pre-activatie van de uitgang berekenen;
- Deze afgeleide achterwaarts door de lagen verspreiden met behulp van de kettingregel;
- De gradiënten voor gewichten en biases berekenen en gebruiken om deze tijdens de training bij te werken.
Gradiënten geven de veranderingssnelheid van een functie ten opzichte van zijn invoer weer, wat betekent dat het de afgeleiden zijn. Ze geven aan hoeveel een kleine wijziging in gewichten, biases of activaties de verliesfunctie beïnvloedt, en sturen het leerproces van het model via gradient descent.
Notatie
Om de uitleg duidelijker te maken, gebruiken we de volgende notatie:
- Wl is de gewichtenmatrix van laag l;
- bl is de vector van biases van laag l;
- zl is de vector van pre-activaties van laag l;
- al is de vector van activaties van laag l;
Door a0 gelijk te stellen aan x (de invoer), kan voorwaartse propagatie in een perceptron met n lagen worden beschreven als de volgende reeks bewerkingen:
a0z1a1=x,=W1a0+b1,=f1(z1),...zlal...=Wlal−1+bl,=fl(zl),...znany^...=Wnan−1+bn,=fn(zn),=an.Om backpropagatie wiskundig te beschrijven, worden de volgende notaties geïntroduceerd:
- dal: afgeleide van het verlies ten opzichte van de activaties op laag l;
- dzl: afgeleide van het verlies ten opzichte van de pre-activaties op laag l (voor het toepassen van de activatiefunctie);
- dWl: afgeleide van het verlies ten opzichte van de gewichten op laag l;
- dbl: afgeleide van het verlies ten opzichte van de biases op laag l.
Gradienten berekenen voor de outputlaag
Bij de laatste laag n is de eerste stap het berekenen van de gradiënt van het verlies ten opzichte van de activaties van de outputlaag, aangeduid als dan.
Vervolgens wordt met behulp van de kettingregel de gradiënt van het verlies ten opzichte van de pre-activaties van de outputlaag berekend als:
dzn=dan⊙f′n(zn)Hierbij stelt f′n(zn) de afgeleide van de activatiefunctie op laag n voor, en het symbool ⊙ duidt op elementgewijze vermenigvuldiging.
Het symbool ⊙ duidt op elementgewijze vermenigvuldiging, wat betekent dat elk element van een vector wordt vermenigvuldigd met het overeenkomstige element van een andere vector. Daarentegen stelt het symbool ⋅ het inwendig product voor, gebruikt voor standaard matrix- of vectorvermenigvuldiging. De term f′n verwijst naar de afgeleide van de activatiefunctie op de outputlaag.
Deze waarde geeft aan hoe gevoelig de verliesfunctie is voor veranderingen in de pre-activatiewaarden van de outputlaag.
Na het berekenen van dzn, is de volgende stap het bepalen van de gradiënten voor de gewichten en biases:
dWndbn=dzn⋅(an−1)T,=dznDeze gradiënten geven aan in welke mate elk gewicht en elke bias in de outputlaag moet worden aangepast om het verlies te verminderen.
Hier is (an−1)T de getransponeerde activatievector van de vorige laag. Als de oorspronkelijke vector de vorm nneurons×1 heeft, dan heeft de getransponeerde de vorm 1×nneurons.
Om de backward propagatie voort te zetten, wordt de afgeleide van het verlies ten opzichte van de activaties van de vorige laag als volgt berekend:
dan−1=(Wn)T⋅dznDeze uitdrukking maakt het mogelijk om het foutsignaal terug te voeren door het netwerk, zodat eerdere lagen tijdens het trainen kunnen worden aangepast.
Gradiënten Propageren naar de Verborgen Lagen
Voor elke verborgen laag l is de procedure hetzelfde. Gegeven dal:
- Bepaal de afgeleide van het verlies ten opzichte van de pre-activaties;
- Bepaal de gradiënten voor de gewichten en biases;
- Bereken dal−1 om de afgeleide verder terug te voeren.
Dit proces wordt herhaald voor elke voorgaande laag, stap voor stap, totdat de inputlaag is bereikt.
Gewichten en biases bijwerken
Na het berekenen van de gradiënten voor alle lagen worden de gewichten en biases bijgewerkt met behulp van het gradient descent-algoritme:
Wlbl=Wl−α⋅dWl,=bl−α⋅dbl.Hierbij stelt α de leersnelheid voor, die bepaalt hoeveel de parameters worden aangepast tijdens elke trainingsstap.
Hierbij is α de leersnelheid, een hyperparameter die de grootte bepaalt van de aanpassing die wordt toegepast op de gewichten en biases bij elke update.
Bedankt voor je feedback!