Bakoverpropagasjon
Bakoverpropagasjon, eller backpropagation, er prosessen med å bestemme hvordan tapfunksjonen endres med hensyn til hver parameter i nevrale nettverk. Målet er å justere disse parameterne på en måte som reduserer det totale tapet.
Denne prosessen baserer seg på gradient descent-algoritmen, som bruker derivater av tapet med hensyn til hvert lags pre-aktiveringsverdier (de rå utgangene før aktiveringsfunksjonen anvendes) og sprer dem bakover gjennom nettverket.
Siden hvert lag bidrar til den endelige prediksjonen, beregnes gradientene steg for steg:
- Utfør fremoverpropagasjon for å få utgangene;
- Beregn derivaten av tapet med hensyn til utgangens pre-aktivering;
- Propager denne derivaten bakover gjennom lagene ved hjelp av kjerneregelen;
- Beregn og bruk gradientene for vekter og bias for å oppdatere dem under trening.
Gradienter representerer endringsraten til en funksjon med hensyn til dens input, altså dens derivater. De indikerer hvor mye en liten endring i vekter, bias eller aktiveringer påvirker tapfunksjonen, og styrer modellens læringsprosess gjennom gradient descent.
Notasjon
For å gjøre forklaringen tydeligere, bruker vi følgende notasjon:
- Wl er vektmatrisen til lag l;
- bl er bias-vektoren til lag l;
- zl er pre-aktiveringsvektoren til lag l;
- al er aktiveringsvektoren til lag l;
Ved å sette a0 til x (inputene), kan fremoverpropagasjon i en perseptron med n lag beskrives som følgende sekvens av operasjoner:
a0z1a1=x,=W1a0+b1,=f1(z1),...zlal...=Wlal−1+bl,=fl(zl),...znany^...=Wnan−1+bn,=fn(zn),=an.For å beskrive tilbakepropagasjon matematisk, introduseres følgende notasjoner:
- dal: derivert av tapet med hensyn til aktiveringene i lag l;
- dzl: derivert av tapet med hensyn til pre-aktiveringene i lag l (før aktiveringsfunksjonen anvendes);
- dWl: derivert av tapet med hensyn til vektene i lag l;
- dbl: derivert av tapet med hensyn til biasene i lag l.
Beregning av gradienter for utgangslaget
I det siste laget n er det første steget å beregne gradienten av tapet med hensyn til aktiveringene i utgangslaget, betegnet som dan.
Deretter, ved bruk av kjerneregelen, beregnes gradienten av tapet med hensyn til pre-aktiveringene i utgangslaget som:
dzn=dan⊙f′n(zn)Her representerer f′n(zn) den deriverte av aktiveringsfunksjonen i lag n, og symbolet ⊙ angir elementvis multiplikasjon.
Symbolet ⊙ angir elementvis multiplikasjon, som betyr at hvert element i én vektor multipliseres med det tilsvarende elementet i en annen vektor. Til sammenligning representerer symbolet ⋅ skalarproduktet, brukt for vanlig matrise- eller vektormultiplikasjon. Begrepet f′n refererer til den deriverte av aktiveringsfunksjonen i utgangslaget.
Denne verdien indikerer hvor sensitiv tapfunksjonen er for endringer i preaktiveringsverdiene til utgangslaget.
Etter å ha beregnet dzn, er neste steg å kalkulere gradientene for vektene og biasene:
dWndbn=dzn⋅(an−1)T,=dznDisse gradientene beskriver hvor mye hver vekt og bias i utgangslaget bør justeres for å redusere tapet.
Her er (an−1)T den transponerte aktiveringsvektoren fra forrige lag. Hvis den opprinnelige vektoren har formen nneurons×1, har dens transponerte form 1×nneurons.
For å fortsette bakoverpropageringen, beregnes den deriverte av tapet med hensyn til aktiveringene i forrige lag som:
dan−1=(Wn)T⋅dznDette uttrykket gjør det mulig å sende feilsignalet bakover gjennom nettverket, slik at tidligere lag kan justeres under trening.
Propagering av gradienter til de skjulte lagene
For hvert skjult lag l er prosedyren den samme. Gitt dal:
- Beregn den deriverte av tapet med hensyn til preaktiveringene;
- Beregn gradientene for vektene og biasene;
- Beregn dal−1 for å propagere den deriverte bakover.
Denne prosessen gjentas for hvert foregående lag, trinn for trinn, til input-laget er nådd.
Oppdatering av vekter og bias
Etter at gradientene for alle lag er beregnet, oppdateres vektene og bias ved hjelp av gradient descent-algoritmen:
Wlbl=Wl−α⋅dWl,=bl−α⋅dbl.Her representerer α læringsraten, som styrer hvor mye parameterne justeres i hvert treningssteg.
Her er α læringsraten, en hyperparameter som bestemmer størrelsen på justeringen som brukes på vektene og bias i hvert oppdateringssteg.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
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
Bakoverpropagasjon
Sveip for å vise menyen
Bakoverpropagasjon, eller backpropagation, er prosessen med å bestemme hvordan tapfunksjonen endres med hensyn til hver parameter i nevrale nettverk. Målet er å justere disse parameterne på en måte som reduserer det totale tapet.
Denne prosessen baserer seg på gradient descent-algoritmen, som bruker derivater av tapet med hensyn til hvert lags pre-aktiveringsverdier (de rå utgangene før aktiveringsfunksjonen anvendes) og sprer dem bakover gjennom nettverket.
Siden hvert lag bidrar til den endelige prediksjonen, beregnes gradientene steg for steg:
- Utfør fremoverpropagasjon for å få utgangene;
- Beregn derivaten av tapet med hensyn til utgangens pre-aktivering;
- Propager denne derivaten bakover gjennom lagene ved hjelp av kjerneregelen;
- Beregn og bruk gradientene for vekter og bias for å oppdatere dem under trening.
Gradienter representerer endringsraten til en funksjon med hensyn til dens input, altså dens derivater. De indikerer hvor mye en liten endring i vekter, bias eller aktiveringer påvirker tapfunksjonen, og styrer modellens læringsprosess gjennom gradient descent.
Notasjon
For å gjøre forklaringen tydeligere, bruker vi følgende notasjon:
- Wl er vektmatrisen til lag l;
- bl er bias-vektoren til lag l;
- zl er pre-aktiveringsvektoren til lag l;
- al er aktiveringsvektoren til lag l;
Ved å sette a0 til x (inputene), kan fremoverpropagasjon i en perseptron med n lag beskrives som følgende sekvens av operasjoner:
a0z1a1=x,=W1a0+b1,=f1(z1),...zlal...=Wlal−1+bl,=fl(zl),...znany^...=Wnan−1+bn,=fn(zn),=an.For å beskrive tilbakepropagasjon matematisk, introduseres følgende notasjoner:
- dal: derivert av tapet med hensyn til aktiveringene i lag l;
- dzl: derivert av tapet med hensyn til pre-aktiveringene i lag l (før aktiveringsfunksjonen anvendes);
- dWl: derivert av tapet med hensyn til vektene i lag l;
- dbl: derivert av tapet med hensyn til biasene i lag l.
Beregning av gradienter for utgangslaget
I det siste laget n er det første steget å beregne gradienten av tapet med hensyn til aktiveringene i utgangslaget, betegnet som dan.
Deretter, ved bruk av kjerneregelen, beregnes gradienten av tapet med hensyn til pre-aktiveringene i utgangslaget som:
dzn=dan⊙f′n(zn)Her representerer f′n(zn) den deriverte av aktiveringsfunksjonen i lag n, og symbolet ⊙ angir elementvis multiplikasjon.
Symbolet ⊙ angir elementvis multiplikasjon, som betyr at hvert element i én vektor multipliseres med det tilsvarende elementet i en annen vektor. Til sammenligning representerer symbolet ⋅ skalarproduktet, brukt for vanlig matrise- eller vektormultiplikasjon. Begrepet f′n refererer til den deriverte av aktiveringsfunksjonen i utgangslaget.
Denne verdien indikerer hvor sensitiv tapfunksjonen er for endringer i preaktiveringsverdiene til utgangslaget.
Etter å ha beregnet dzn, er neste steg å kalkulere gradientene for vektene og biasene:
dWndbn=dzn⋅(an−1)T,=dznDisse gradientene beskriver hvor mye hver vekt og bias i utgangslaget bør justeres for å redusere tapet.
Her er (an−1)T den transponerte aktiveringsvektoren fra forrige lag. Hvis den opprinnelige vektoren har formen nneurons×1, har dens transponerte form 1×nneurons.
For å fortsette bakoverpropageringen, beregnes den deriverte av tapet med hensyn til aktiveringene i forrige lag som:
dan−1=(Wn)T⋅dznDette uttrykket gjør det mulig å sende feilsignalet bakover gjennom nettverket, slik at tidligere lag kan justeres under trening.
Propagering av gradienter til de skjulte lagene
For hvert skjult lag l er prosedyren den samme. Gitt dal:
- Beregn den deriverte av tapet med hensyn til preaktiveringene;
- Beregn gradientene for vektene og biasene;
- Beregn dal−1 for å propagere den deriverte bakover.
Denne prosessen gjentas for hvert foregående lag, trinn for trinn, til input-laget er nådd.
Oppdatering av vekter og bias
Etter at gradientene for alle lag er beregnet, oppdateres vektene og bias ved hjelp av gradient descent-algoritmen:
Wlbl=Wl−α⋅dWl,=bl−α⋅dbl.Her representerer α læringsraten, som styrer hvor mye parameterne justeres i hvert treningssteg.
Her er α læringsraten, en hyperparameter som bestemmer størrelsen på justeringen som brukes på vektene og bias i hvert oppdateringssteg.
Takk for tilbakemeldingene dine!