Bakåtriktad Propagiering
Bakåtriktad propagiering (backprop) är processen där man beräknar hur förlustfunktionen förändras med avseende på varje parameter i nätverket. Målet är att uppdatera parametrarna i den riktning som minskar förlusten.
För att uppnå detta används algoritmen gradientnedstigning och man beräknar derivatorna av förlusten med avseende på varje lags pre-aktiveringsvärden (råa utgångsvärden innan aktiveringsfunktionen appliceras) och propagerar dessa bakåt.
Varje lager bidrar till den slutliga prediktionen, så gradienterna måste beräknas på ett strukturerat sätt:
- Utför framåtriktad propagiering;
- Beräkna derivatan av förlusten med avseende på utgångens pre-aktivering;
- Propagera denna derivata bakåt genom lagren med hjälp av kedjeregeln;
- Beräkna gradienter för vikter och biaser för att uppdatera dem.
Gradienter representerar ändringshastigheten för en funktion med avseende på dess indata, vilket innebär att de är dess derivator. De visar hur mycket en liten förändring i vikter, biaser eller aktiveringar påverkar förlustfunktionen, och vägleder modellens inlärningsprocess genom gradientnedstigning.
Notation
För att göra förklaringen tydligare används följande notation:
- Wl är viktmatrisen för lager l;
- bl är vektorn av biaser för lager l;
- zl är vektorn av pre-aktiveringar för lager l;
- al är vektorn av aktiveringar för lager l;
Genom att sätta a0 till x (indatan), kan framåtriktad propagiering i en perceptron med n lager beskrivas som följande sekvens av operationer:
a0z1a1=x,=W1a0+b1,=f1(z1),...zlal...=Wlal−1+bl,=fl(zl),...znany^...=Wnan−1+bn,=fn(zn),=an.För att beskriva backpropagation matematiskt introduceras följande notationer:
- dal: derivatan av förlusten med avseende på aktiveringar i lager l;
- dzl: derivatan av förlusten med avseende på pre-aktiveringar i lager l (innan aktiveringsfunktionen appliceras);
- dWl: derivatan av förlusten med avseende på vikter i lager l;
- dbl: derivatan av förlusten med avseende på bias i lager l.
Beräkning av gradienter för utgångslagret
I det sista lagret n beräknas först gradienten av förlusten med avseende på aktiveringarna i utgångslagret, dan. Därefter, med hjälp av kedjeregeln, beräknas gradienten av förlusten med avseende på utgångslagrets pre-aktiveringar:
dzn=dan⊙f′n(zn)Symbolen ⊙ representerar elementvis multiplikation. Eftersom vi arbetar med vektorer och matriser representerar den vanliga multiplikationssymbolen ⋅ istället skalärprodukt. f′n är derivatan av aktiveringsfunktionen i utgångslagret.
Denna kvantitet representerar hur känslig förlustfunktionen är för förändringar i utgångslagrets pre-aktivering.
När vi har dzn beräknar vi gradienterna för vikterna och biaserna:
dWndbn=dzn⋅(an−1)T=dzndär (an−1)T är den transponerade vektorn av aktiveringen från föregående lager. Givet att den ursprungliga vektorn är en nneurons×1 vektor, är den transponerade vektorn 1×nneurons.
För att föra detta bakåt beräknar vi derivatan av förlusten med avseende på aktiveringen i föregående lager:
dan−1=(Wn)T⋅dznPropagering av gradienter till de dolda lagren
För varje dolt lager l är proceduren densamma. Givet dal:
- Beräkna derivatan av förlusten med avseende på pre-aktiveringarna;
- Beräkna gradienterna för vikterna och biaserna;
- Beräkna dal−1 för att föra derivatan bakåt.
Detta steg upprepas tills vi når inmatningslagret.
Uppdatering av vikter och bias
När vi har beräknat gradienterna för alla lager uppdaterar vi vikterna och bias med hjälp av gradientnedstigning:
Wlbl=Wl−α⋅dWl=bl−α⋅dbldär α är inlärningshastigheten, som styr hur mycket vi justerar parametrarna.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Awesome!
Completion rate improved to 4
Bakåtriktad Propagiering
Svep för att visa menyn
Bakåtriktad propagiering (backprop) är processen där man beräknar hur förlustfunktionen förändras med avseende på varje parameter i nätverket. Målet är att uppdatera parametrarna i den riktning som minskar förlusten.
För att uppnå detta används algoritmen gradientnedstigning och man beräknar derivatorna av förlusten med avseende på varje lags pre-aktiveringsvärden (råa utgångsvärden innan aktiveringsfunktionen appliceras) och propagerar dessa bakåt.
Varje lager bidrar till den slutliga prediktionen, så gradienterna måste beräknas på ett strukturerat sätt:
- Utför framåtriktad propagiering;
- Beräkna derivatan av förlusten med avseende på utgångens pre-aktivering;
- Propagera denna derivata bakåt genom lagren med hjälp av kedjeregeln;
- Beräkna gradienter för vikter och biaser för att uppdatera dem.
Gradienter representerar ändringshastigheten för en funktion med avseende på dess indata, vilket innebär att de är dess derivator. De visar hur mycket en liten förändring i vikter, biaser eller aktiveringar påverkar förlustfunktionen, och vägleder modellens inlärningsprocess genom gradientnedstigning.
Notation
För att göra förklaringen tydligare används följande notation:
- Wl är viktmatrisen för lager l;
- bl är vektorn av biaser för lager l;
- zl är vektorn av pre-aktiveringar för lager l;
- al är vektorn av aktiveringar för lager l;
Genom att sätta a0 till x (indatan), kan framåtriktad propagiering i en perceptron med n lager beskrivas som följande sekvens av operationer:
a0z1a1=x,=W1a0+b1,=f1(z1),...zlal...=Wlal−1+bl,=fl(zl),...znany^...=Wnan−1+bn,=fn(zn),=an.För att beskriva backpropagation matematiskt introduceras följande notationer:
- dal: derivatan av förlusten med avseende på aktiveringar i lager l;
- dzl: derivatan av förlusten med avseende på pre-aktiveringar i lager l (innan aktiveringsfunktionen appliceras);
- dWl: derivatan av förlusten med avseende på vikter i lager l;
- dbl: derivatan av förlusten med avseende på bias i lager l.
Beräkning av gradienter för utgångslagret
I det sista lagret n beräknas först gradienten av förlusten med avseende på aktiveringarna i utgångslagret, dan. Därefter, med hjälp av kedjeregeln, beräknas gradienten av förlusten med avseende på utgångslagrets pre-aktiveringar:
dzn=dan⊙f′n(zn)Symbolen ⊙ representerar elementvis multiplikation. Eftersom vi arbetar med vektorer och matriser representerar den vanliga multiplikationssymbolen ⋅ istället skalärprodukt. f′n är derivatan av aktiveringsfunktionen i utgångslagret.
Denna kvantitet representerar hur känslig förlustfunktionen är för förändringar i utgångslagrets pre-aktivering.
När vi har dzn beräknar vi gradienterna för vikterna och biaserna:
dWndbn=dzn⋅(an−1)T=dzndär (an−1)T är den transponerade vektorn av aktiveringen från föregående lager. Givet att den ursprungliga vektorn är en nneurons×1 vektor, är den transponerade vektorn 1×nneurons.
För att föra detta bakåt beräknar vi derivatan av förlusten med avseende på aktiveringen i föregående lager:
dan−1=(Wn)T⋅dznPropagering av gradienter till de dolda lagren
För varje dolt lager l är proceduren densamma. Givet dal:
- Beräkna derivatan av förlusten med avseende på pre-aktiveringarna;
- Beräkna gradienterna för vikterna och biaserna;
- Beräkna dal−1 för att föra derivatan bakåt.
Detta steg upprepas tills vi når inmatningslagret.
Uppdatering av vikter och bias
När vi har beräknat gradienterna för alla lager uppdaterar vi vikterna och bias med hjälp av gradientnedstigning:
Wlbl=Wl−α⋅dWl=bl−α⋅dbldär α är inlärningshastigheten, som styr hur mycket vi justerar parametrarna.
Tack för dina kommentarer!