Taaksepäin Suuntautuva Eteneminen
Takaisinlevitys (backprop) on prosessi, jossa lasketaan, miten häviöfunktio muuttuu verkon jokaisen parametrin suhteen. Tavoitteena on päivittää parametreja suuntaan, joka vähentää häviötä.
Tämän saavuttamiseksi käytetään gradienttien laskeutumista (gradient descent) ja lasketaan häviön derivaatat jokaisen kerroksen pre-aktivaatioarvojen (raaka-arvot ennen aktivointifunktion soveltamista) suhteen ja levitetään ne taaksepäin.
Jokainen kerros vaikuttaa lopulliseen ennusteeseen, joten gradientit on laskettava rakenteellisesti:
- Suorita eteenpäinlevitys;
- Laske häviön derivaatta ulostulon pre-aktivaatioon nähden;
- Levitä tämä derivaatta taaksepäin kerrosten läpi käyttäen ketjusääntöä;
- Laske gradientit painoille ja siirtotermeille niiden päivittämiseksi.
Gradientit kuvaavat funktion muutosnopeutta syötteidensä suhteen, eli ne ovat sen derivaattoja. Ne osoittavat, kuinka paljon pieni muutos painoissa, siirtotermeissä tai aktivaatioissa vaikuttaa häviöfunktioon, ohjaten mallin oppimisprosessia gradienttien laskeutumisen avulla.
Notaatio
Selkeyden vuoksi käytetään seuraavaa notaatiota:
- Wl on kerroksen l painomatriisi;
- bl on kerroksen l siirtotermivektori;
- zl on kerroksen l pre-aktivaatioiden vektori;
- al on kerroksen l aktivaatioiden vektori;
Asettamalla a0 arvoksi x (syötteet), eteenpäinlevitys perceptronissa, jossa on n kerrosta, voidaan kuvata seuraavalla operaatioketjulla:
a0z1a1=x,=W1a0+b1,=f1(z1),...zlal...=Wlal−1+bl,=fl(zl),...znany^...=Wnan−1+bn,=fn(zn),=an.Takapropagoinnin matemaattista kuvausta varten otetaan käyttöön seuraavat merkinnät:
- dal: tappion derivaatta suhteessa aktivaatioihin kerroksessa l;
- dzl: tappion derivaatta suhteessa pre-aktivaatioihin kerroksessa l (ennen aktivointifunktion soveltamista);
- dWl: tappion derivaatta suhteessa painoihin kerroksessa l;
- dbl: tappion derivaatta suhteessa bias-termeihin kerroksessa l.
Gradienttien laskeminen ulostulokerrokselle
Viimeisessä kerroksessa n lasketaan ensin tappion gradientti ulostulokerroksen aktivaatioiden suhteen, dan. Seuraavaksi, käyttäen ketjusääntöä, lasketaan tappion gradientti ulostulokerroksen pre-aktivaatioiden suhteen:
dzn=dan⊙f′n(zn)⊙-symboli tarkoittaa alkiokohtaista kertolaskua. Koska työskentelemme vektoreiden ja matriisien kanssa, tavallinen kertolaskusymboli ⋅ tarkoittaa sen sijaan pistetuloa. f′n on ulostulokerroksen aktivointifunktion derivaatta.
Tämä suure ilmaisee, kuinka herkkä häviöfunktio on muutoksille ulostulokerroksen esiaktivaatiossa.
Kun dzn on laskettu, lasketaan painojen ja biasien gradientit:
dWndbn=dzn⋅(an−1)T=dznmissä (an−1)T on edellisen kerroksen aktivaatioiden transponoitu vektori. Koska alkuperäinen vektori on nneurons×1 -vektori, transponoitu vektori on 1×nneurons.
Takaisinpäin etenemistä varten lasketaan derivaatta häviöstä suhteessa edellisen kerroksen aktivaatioihin:
dan−1=(Wn)T⋅dznGradienttien eteneminen piilokerroksiin
Jokaiselle piilokerrokselle l menettely on sama. Kun dal on annettu:
- Laske häviön derivaatta esiaktivaatioiden suhteen;
- Laske painojen ja biasien gradientit;
- Laske dal−1 derivaatan etenemiseksi taaksepäin.
Tätä vaihetta toistetaan, kunnes saavutetaan syötekerros.
Painojen ja biasien päivittäminen
Kun gradientit on laskettu kaikille kerroksille, painot ja biasit päivitetään käyttämällä gradienttivähennystä:
Wlbl=Wl−α⋅dWl=bl−α⋅dblMissä α on oppimisnopeus, joka määrittää, kuinka paljon parametreja säädetään.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Awesome!
Completion rate improved to 4
Taaksepäin Suuntautuva Eteneminen
Pyyhkäise näyttääksesi valikon
Takaisinlevitys (backprop) on prosessi, jossa lasketaan, miten häviöfunktio muuttuu verkon jokaisen parametrin suhteen. Tavoitteena on päivittää parametreja suuntaan, joka vähentää häviötä.
Tämän saavuttamiseksi käytetään gradienttien laskeutumista (gradient descent) ja lasketaan häviön derivaatat jokaisen kerroksen pre-aktivaatioarvojen (raaka-arvot ennen aktivointifunktion soveltamista) suhteen ja levitetään ne taaksepäin.
Jokainen kerros vaikuttaa lopulliseen ennusteeseen, joten gradientit on laskettava rakenteellisesti:
- Suorita eteenpäinlevitys;
- Laske häviön derivaatta ulostulon pre-aktivaatioon nähden;
- Levitä tämä derivaatta taaksepäin kerrosten läpi käyttäen ketjusääntöä;
- Laske gradientit painoille ja siirtotermeille niiden päivittämiseksi.
Gradientit kuvaavat funktion muutosnopeutta syötteidensä suhteen, eli ne ovat sen derivaattoja. Ne osoittavat, kuinka paljon pieni muutos painoissa, siirtotermeissä tai aktivaatioissa vaikuttaa häviöfunktioon, ohjaten mallin oppimisprosessia gradienttien laskeutumisen avulla.
Notaatio
Selkeyden vuoksi käytetään seuraavaa notaatiota:
- Wl on kerroksen l painomatriisi;
- bl on kerroksen l siirtotermivektori;
- zl on kerroksen l pre-aktivaatioiden vektori;
- al on kerroksen l aktivaatioiden vektori;
Asettamalla a0 arvoksi x (syötteet), eteenpäinlevitys perceptronissa, jossa on n kerrosta, voidaan kuvata seuraavalla operaatioketjulla:
a0z1a1=x,=W1a0+b1,=f1(z1),...zlal...=Wlal−1+bl,=fl(zl),...znany^...=Wnan−1+bn,=fn(zn),=an.Takapropagoinnin matemaattista kuvausta varten otetaan käyttöön seuraavat merkinnät:
- dal: tappion derivaatta suhteessa aktivaatioihin kerroksessa l;
- dzl: tappion derivaatta suhteessa pre-aktivaatioihin kerroksessa l (ennen aktivointifunktion soveltamista);
- dWl: tappion derivaatta suhteessa painoihin kerroksessa l;
- dbl: tappion derivaatta suhteessa bias-termeihin kerroksessa l.
Gradienttien laskeminen ulostulokerrokselle
Viimeisessä kerroksessa n lasketaan ensin tappion gradientti ulostulokerroksen aktivaatioiden suhteen, dan. Seuraavaksi, käyttäen ketjusääntöä, lasketaan tappion gradientti ulostulokerroksen pre-aktivaatioiden suhteen:
dzn=dan⊙f′n(zn)⊙-symboli tarkoittaa alkiokohtaista kertolaskua. Koska työskentelemme vektoreiden ja matriisien kanssa, tavallinen kertolaskusymboli ⋅ tarkoittaa sen sijaan pistetuloa. f′n on ulostulokerroksen aktivointifunktion derivaatta.
Tämä suure ilmaisee, kuinka herkkä häviöfunktio on muutoksille ulostulokerroksen esiaktivaatiossa.
Kun dzn on laskettu, lasketaan painojen ja biasien gradientit:
dWndbn=dzn⋅(an−1)T=dznmissä (an−1)T on edellisen kerroksen aktivaatioiden transponoitu vektori. Koska alkuperäinen vektori on nneurons×1 -vektori, transponoitu vektori on 1×nneurons.
Takaisinpäin etenemistä varten lasketaan derivaatta häviöstä suhteessa edellisen kerroksen aktivaatioihin:
dan−1=(Wn)T⋅dznGradienttien eteneminen piilokerroksiin
Jokaiselle piilokerrokselle l menettely on sama. Kun dal on annettu:
- Laske häviön derivaatta esiaktivaatioiden suhteen;
- Laske painojen ja biasien gradientit;
- Laske dal−1 derivaatan etenemiseksi taaksepäin.
Tätä vaihetta toistetaan, kunnes saavutetaan syötekerros.
Painojen ja biasien päivittäminen
Kun gradientit on laskettu kaikille kerroksille, painot ja biasit päivitetään käyttämällä gradienttivähennystä:
Wlbl=Wl−α⋅dWl=bl−α⋅dblMissä α on oppimisnopeus, joka määrittää, kuinka paljon parametreja säädetään.
Kiitos palautteestasi!