Bakåtriktad Spridning
Bakåtriktad propagiering, eller backpropagation, är processen att bestämma hur förlustfunktionen förändras med avseende på varje parameter i det neurala nätverket. Målet är att justera dessa parametrar på ett sätt som minskar den totala förlusten.
Denna process bygger på gradientnedstigning-algoritmen, som använder derivator av förlusten med avseende på varje lags pre-aktiveringsvärden (de råa utdata innan aktiveringsfunktionen tillämpas) och propagerar dem bakåt genom nätverket.
Eftersom varje lager bidrar till den slutliga prediktionen beräknas gradienterna steg för steg:
- Utför framåtriktad propagiering för att erhålla utdata;
- Beräkna derivatan av förlusten med avseende på utdata pre-aktivering;
- Propagera denna derivata bakåt genom lagren med hjälp av kedjeregeln;
- Beräkna och använd gradienterna för vikter och biaser för att uppdatera dem under träningen.
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 (indata), 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å vikterna 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 är det första steget att beräkna gradienten av förlusten med avseende på aktiveringar i utgångslagret, betecknat som dan.
Därefter, med hjälp av kedjeregeln, beräknas gradienten av förlusten med avseende på pre-aktiveringar i utgångslagret som:
dzn=dan⊙f′n(zn)Här representerar f′n(zn) derivatan av aktiveringsfunktionen i lager n, och symbolen ⊙ betecknar elementvis multiplikation.
Symbolen ⊙ betecknar elementvis multiplikation, vilket innebär att varje element i en vektor multipliceras med motsvarande element i en annan vektor. Däremot representerar symbolen ⋅ skalärprodukt, som används för vanlig matris- eller vektormultiplikation. Termen f′n avser derivatan av aktiveringsfunktionen i utgångslagret.
Detta värde indikerar hur känslig förlustfunktionen är för förändringar i pre-aktiveringsvärdena i utgångslagret.
Efter att ha beräknat dzn är nästa steg att räkna ut gradienterna för vikterna och biaserna:
dWndbn=dzn⋅(an−1)T,=dznDessa gradienter beskriver hur mycket varje vikt och bias i utgångslagret bör justeras för att minska förlusten.
Här är (an−1)T den transponerade aktiveringsvektorn från föregående lager. Om den ursprungliga vektorn har formen nneurons×1, har dess transponat formen 1×nneurons.
För att fortsätta bakåtspridningen beräknas derivatan av förlusten med avseende på aktiveringarna i föregående lager som:
dan−1=(Wn)T⋅dznDetta uttryck möjliggör att felssignalen kan föras bakåt genom nätverket, vilket möjliggör justering av tidigare lager under träningen.
Propagering 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-aktiveringar;
- Beräkna gradienterna för vikterna och biaserna;
- Beräkna dal−1 för att föra derivatan bakåt.
Denna process upprepas för varje föregående lager, steg för steg, tills inmatningslagret nås.
Uppdatering av vikter och bias
Efter att ha beräknat gradienterna för alla lager uppdateras vikterna och bias med hjälp av gradientnedstigning:
Wlbl=Wl−α⋅dWl,=bl−α⋅dbl.Här representerar α inlärningshastigheten, som styr hur mycket parametrarna justeras vid varje träningssteg.
Här är α inlärningshastigheten, en hyperparameter som avgör storleken på justeringen som tillämpas på vikter och bias vid varje uppdateringssteg.
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 Spridning
Svep för att visa menyn
Bakåtriktad propagiering, eller backpropagation, är processen att bestämma hur förlustfunktionen förändras med avseende på varje parameter i det neurala nätverket. Målet är att justera dessa parametrar på ett sätt som minskar den totala förlusten.
Denna process bygger på gradientnedstigning-algoritmen, som använder derivator av förlusten med avseende på varje lags pre-aktiveringsvärden (de råa utdata innan aktiveringsfunktionen tillämpas) och propagerar dem bakåt genom nätverket.
Eftersom varje lager bidrar till den slutliga prediktionen beräknas gradienterna steg för steg:
- Utför framåtriktad propagiering för att erhålla utdata;
- Beräkna derivatan av förlusten med avseende på utdata pre-aktivering;
- Propagera denna derivata bakåt genom lagren med hjälp av kedjeregeln;
- Beräkna och använd gradienterna för vikter och biaser för att uppdatera dem under träningen.
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 (indata), 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å vikterna 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 är det första steget att beräkna gradienten av förlusten med avseende på aktiveringar i utgångslagret, betecknat som dan.
Därefter, med hjälp av kedjeregeln, beräknas gradienten av förlusten med avseende på pre-aktiveringar i utgångslagret som:
dzn=dan⊙f′n(zn)Här representerar f′n(zn) derivatan av aktiveringsfunktionen i lager n, och symbolen ⊙ betecknar elementvis multiplikation.
Symbolen ⊙ betecknar elementvis multiplikation, vilket innebär att varje element i en vektor multipliceras med motsvarande element i en annan vektor. Däremot representerar symbolen ⋅ skalärprodukt, som används för vanlig matris- eller vektormultiplikation. Termen f′n avser derivatan av aktiveringsfunktionen i utgångslagret.
Detta värde indikerar hur känslig förlustfunktionen är för förändringar i pre-aktiveringsvärdena i utgångslagret.
Efter att ha beräknat dzn är nästa steg att räkna ut gradienterna för vikterna och biaserna:
dWndbn=dzn⋅(an−1)T,=dznDessa gradienter beskriver hur mycket varje vikt och bias i utgångslagret bör justeras för att minska förlusten.
Här är (an−1)T den transponerade aktiveringsvektorn från föregående lager. Om den ursprungliga vektorn har formen nneurons×1, har dess transponat formen 1×nneurons.
För att fortsätta bakåtspridningen beräknas derivatan av förlusten med avseende på aktiveringarna i föregående lager som:
dan−1=(Wn)T⋅dznDetta uttryck möjliggör att felssignalen kan föras bakåt genom nätverket, vilket möjliggör justering av tidigare lager under träningen.
Propagering 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-aktiveringar;
- Beräkna gradienterna för vikterna och biaserna;
- Beräkna dal−1 för att föra derivatan bakåt.
Denna process upprepas för varje föregående lager, steg för steg, tills inmatningslagret nås.
Uppdatering av vikter och bias
Efter att ha beräknat gradienterna för alla lager uppdateras vikterna och bias med hjälp av gradientnedstigning:
Wlbl=Wl−α⋅dWl,=bl−α⋅dbl.Här representerar α inlärningshastigheten, som styr hur mycket parametrarna justeras vid varje träningssteg.
Här är α inlärningshastigheten, en hyperparameter som avgör storleken på justeringen som tillämpas på vikter och bias vid varje uppdateringssteg.
Tack för dina kommentarer!