Bakoverpropagasjon
Bakoverpropagasjon (backprop) er prosessen der man beregner hvordan tapfunksjonen endres med hensyn til hver parameter i nettverket. Målet er å oppdatere parameterne i retning som reduserer tapet.
For å oppnå dette bruker vi gradient descent-algoritmen og beregner derivater av tapet med hensyn til hvert lags pre-aktiveringsverdier (rå utgangsverdier før aktiveringsfunksjonen anvendes) og sprer dem bakover.
Hvert lag bidrar til den endelige prediksjonen, så gradientene må beregnes på en strukturert måte:
- Utfør fremoverpropagasjon;
- Beregn derivatet av tapet med hensyn til utgangens pre-aktivering;
- Propager dette derivatet bakover gjennom lagene ved hjelp av kjerneregelen;
- Beregn gradienter for vekter og bias for å oppdatere dem.
Gradienter representerer endringsraten til en funksjon med hensyn til dens input, altså dens derivater. De viser 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 tilbakepropagering matematisk, introduserer vi 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 beregner vi først gradienten av tapet med hensyn til aktiveringene i utgangslaget, dan. Deretter, ved å bruke kjerneregelen, beregner vi gradienten av tapet med hensyn til utgangslagets pre-aktiveringer:
dzn=dan⊙f′n(zn)Symbolet ⊙ representerer elementvis multiplikasjon. Siden vi arbeider med vektorer og matriser, representerer det vanlige multiplikasjonssymbolet ⋅ skalarproduktet i stedet. f′n er derivert av aktiveringsfunksjonen i utgangslaget.
Denne størrelsen angir hvor følsom tapfunksjonen er for endringer i utgangslagets pre-aktivering.
Når vi har dzn, beregner vi gradientene for vektene og biasene:
dWndbn=dzn⋅(an−1)T=dznhvor (an−1)T er den transponerte vektoren av aktivering fra forrige lag. Gitt at den opprinnelige vektoren er en nneurons×1 vektor, er den transponerte vektoren 1×nneurons.
For å propagere dette bakover, beregner vi den deriverte av tapet med hensyn til aktiveringene i forrige lag:
dan−1=(Wn)T⋅dznPropagere gradienter til de skjulte lagene
For hvert skjult lag l er prosedyren den samme. Gitt dal:
- Beregn den deriverte av tapet med hensyn til pre-aktiveringene;
- Beregn gradientene for vektene og biasene;
- Beregn dal−1 for å propagere den deriverte bakover.
Dette trinnet gjentas til vi når inndatalaget.
Oppdatering av vekter og bias
Når vi har beregnet gradientene for alle lag, oppdaterer vi vektene og bias ved hjelp av gradient descent:
Wlbl=Wl−α⋅dWl=bl−α⋅dblder α er læringsraten, som styrer hvor mye vi justerer parameterne.
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
Awesome!
Completion rate improved to 4
Bakoverpropagasjon
Sveip for å vise menyen
Bakoverpropagasjon (backprop) er prosessen der man beregner hvordan tapfunksjonen endres med hensyn til hver parameter i nettverket. Målet er å oppdatere parameterne i retning som reduserer tapet.
For å oppnå dette bruker vi gradient descent-algoritmen og beregner derivater av tapet med hensyn til hvert lags pre-aktiveringsverdier (rå utgangsverdier før aktiveringsfunksjonen anvendes) og sprer dem bakover.
Hvert lag bidrar til den endelige prediksjonen, så gradientene må beregnes på en strukturert måte:
- Utfør fremoverpropagasjon;
- Beregn derivatet av tapet med hensyn til utgangens pre-aktivering;
- Propager dette derivatet bakover gjennom lagene ved hjelp av kjerneregelen;
- Beregn gradienter for vekter og bias for å oppdatere dem.
Gradienter representerer endringsraten til en funksjon med hensyn til dens input, altså dens derivater. De viser 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 tilbakepropagering matematisk, introduserer vi 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 beregner vi først gradienten av tapet med hensyn til aktiveringene i utgangslaget, dan. Deretter, ved å bruke kjerneregelen, beregner vi gradienten av tapet med hensyn til utgangslagets pre-aktiveringer:
dzn=dan⊙f′n(zn)Symbolet ⊙ representerer elementvis multiplikasjon. Siden vi arbeider med vektorer og matriser, representerer det vanlige multiplikasjonssymbolet ⋅ skalarproduktet i stedet. f′n er derivert av aktiveringsfunksjonen i utgangslaget.
Denne størrelsen angir hvor følsom tapfunksjonen er for endringer i utgangslagets pre-aktivering.
Når vi har dzn, beregner vi gradientene for vektene og biasene:
dWndbn=dzn⋅(an−1)T=dznhvor (an−1)T er den transponerte vektoren av aktivering fra forrige lag. Gitt at den opprinnelige vektoren er en nneurons×1 vektor, er den transponerte vektoren 1×nneurons.
For å propagere dette bakover, beregner vi den deriverte av tapet med hensyn til aktiveringene i forrige lag:
dan−1=(Wn)T⋅dznPropagere gradienter til de skjulte lagene
For hvert skjult lag l er prosedyren den samme. Gitt dal:
- Beregn den deriverte av tapet med hensyn til pre-aktiveringene;
- Beregn gradientene for vektene og biasene;
- Beregn dal−1 for å propagere den deriverte bakover.
Dette trinnet gjentas til vi når inndatalaget.
Oppdatering av vekter og bias
Når vi har beregnet gradientene for alle lag, oppdaterer vi vektene og bias ved hjelp av gradient descent:
Wlbl=Wl−α⋅dWl=bl−α⋅dblder α er læringsraten, som styrer hvor mye vi justerer parameterne.
Takk for tilbakemeldingene dine!