Taaksepäin Suuntautuva Eteneminen
Takaisinlevitys eli backpropagation on prosessi, jossa määritetään, miten häviöfunktio muuttuu suhteessa jokaiseen neuroverkon parametriin. Tavoitteena on säätää näitä parametreja siten, että kokonaishäviö pienenee.
Tämä prosessi perustuu gradienttien laskentaan eli gradienttimenetelmään, jossa käytetään häviön derivaattoja suhteessa jokaisen kerroksen pre-aktivaatioarvoihin (raaka-arvot ennen aktivointifunktion soveltamista) ja propagoi ne taaksepäin verkossa.
Koska jokainen kerros vaikuttaa lopulliseen ennusteeseen, gradientit lasketaan vaiheittain:
- Suoritetaan eteenpäinlevitys tulosten saamiseksi;
- Lasketaan häviön derivaatta suhteessa ulostulon pre-aktivaatioon;
- Propagoidaan tämä derivaatta taaksepäin kerrosten läpi käyttäen ketjusääntöä;
- Lasketaan ja käytetään gradientteja painojen ja biasien päivittämiseen koulutuksen aikana.
Gradientit kuvaavat funktion muutosnopeutta suhteessa sen syötteisiin, eli ne ovat sen derivaattoja. Ne osoittavat, kuinka paljon pieni muutos painoissa, biaseissa tai aktivaatioissa vaikuttaa häviöfunktioon, ohjaten mallin oppimisprosessia gradienttimenetelmän avulla.
Notaatio
Selkeyden vuoksi käytetään seuraavaa notaatiota:
- Wl on kerroksen l painomatriisi;
- bl on kerroksen l bias-vektori;
- zl on kerroksen l pre-aktivaatioiden vektori;
- al on kerroksen l aktivaatioiden vektori;
Kun asetetaan 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 ensimmäinen vaihe on laskea tappion gradientti suhteessa ulostulokerroksen aktivaatioihin, merkittynä dan.
Tämän jälkeen, käyttäen ketjusääntöä, tappion gradientti suhteessa ulostulokerroksen pre-aktivaatioihin lasketaan seuraavasti:
dzn=dan⊙f′n(zn)Tässä f′n(zn) tarkoittaa aktivointifunktion derivaattaa kerroksessa n, ja symboli ⊙ tarkoittaa alkiokohtaista kertolaskua.
Symboli ⊙ tarkoittaa alkiokohtaista kertolaskua, eli jokainen vektorin alkio kerrotaan vastaavan toisen vektorin alkion kanssa. Sen sijaan symboli ⋅ edustaa pistetuloa, jota käytetään tavanomaisessa matriisi- tai vektorikertolaskussa. Termi f′n viittaa aktivointifunktion derivaattaan ulostulokerroksessa.
Tämä arvo ilmaisee, kuinka herkkä häviöfunktio on ulostulokerroksen esiaktivointiarvojen muutoksille.
Kun dzn on laskettu, seuraava vaihe on laskea gradientit painoille ja siirtotermeille:
dWndbn=dzn⋅(an−1)T,=dznNämä gradientit kuvaavat, kuinka paljon kutakin painoa ja siirtotermiä ulostulokerroksessa tulisi säätää häviön pienentämiseksi.
Tässä (an−1)T on edellisen kerroksen transponoitu aktivointivektori. Jos alkuperäisen vektorin muoto on nneurons×1, sen transpoosiolla on muoto 1×nneurons.
Takaisinlevityksen jatkamiseksi lasketaan derivaatta häviöstä suhteessa edellisen kerroksen aktivointeihin seuraavasti:
dan−1=(Wn)T⋅dznTämä lauseke mahdollistaa virhesignaalin siirtämisen taaksepäin verkossa, mahdollistaen aiempien kerrosten säätämisen koulutuksen aikana.
Gradienttien levittäminen piilokerroksiin
Jokaiselle piilokerrokselle l menettely on sama. Kun dal on annettu:
- Laske derivaatta häviöstä suhteessa esiaktivointeihin;
- Laske gradientit painoille ja siirtotermeille;
- Laske dal−1 derivaatan levittämiseksi taaksepäin.
Tätä prosessia toistetaan jokaiselle edeltävälle kerrokselle vaihe vaiheelta, 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ähenemä-algoritmia:
Wlbl=Wl−α⋅dWl,=bl−α⋅dbl.Tässä α tarkoittaa oppimisnopeutta, joka määrittää kuinka paljon parametreja säädetään jokaisella koulutusaskeleella.
Tässä α on oppimisnopeus, hyperparametri, joka määrittää painoihin ja biaseihin kunkin päivitysvaiheen aikana tehtävän säädön suuruuden.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
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
Taaksepäin Suuntautuva Eteneminen
Pyyhkäise näyttääksesi valikon
Takaisinlevitys eli backpropagation on prosessi, jossa määritetään, miten häviöfunktio muuttuu suhteessa jokaiseen neuroverkon parametriin. Tavoitteena on säätää näitä parametreja siten, että kokonaishäviö pienenee.
Tämä prosessi perustuu gradienttien laskentaan eli gradienttimenetelmään, jossa käytetään häviön derivaattoja suhteessa jokaisen kerroksen pre-aktivaatioarvoihin (raaka-arvot ennen aktivointifunktion soveltamista) ja propagoi ne taaksepäin verkossa.
Koska jokainen kerros vaikuttaa lopulliseen ennusteeseen, gradientit lasketaan vaiheittain:
- Suoritetaan eteenpäinlevitys tulosten saamiseksi;
- Lasketaan häviön derivaatta suhteessa ulostulon pre-aktivaatioon;
- Propagoidaan tämä derivaatta taaksepäin kerrosten läpi käyttäen ketjusääntöä;
- Lasketaan ja käytetään gradientteja painojen ja biasien päivittämiseen koulutuksen aikana.
Gradientit kuvaavat funktion muutosnopeutta suhteessa sen syötteisiin, eli ne ovat sen derivaattoja. Ne osoittavat, kuinka paljon pieni muutos painoissa, biaseissa tai aktivaatioissa vaikuttaa häviöfunktioon, ohjaten mallin oppimisprosessia gradienttimenetelmän avulla.
Notaatio
Selkeyden vuoksi käytetään seuraavaa notaatiota:
- Wl on kerroksen l painomatriisi;
- bl on kerroksen l bias-vektori;
- zl on kerroksen l pre-aktivaatioiden vektori;
- al on kerroksen l aktivaatioiden vektori;
Kun asetetaan 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 ensimmäinen vaihe on laskea tappion gradientti suhteessa ulostulokerroksen aktivaatioihin, merkittynä dan.
Tämän jälkeen, käyttäen ketjusääntöä, tappion gradientti suhteessa ulostulokerroksen pre-aktivaatioihin lasketaan seuraavasti:
dzn=dan⊙f′n(zn)Tässä f′n(zn) tarkoittaa aktivointifunktion derivaattaa kerroksessa n, ja symboli ⊙ tarkoittaa alkiokohtaista kertolaskua.
Symboli ⊙ tarkoittaa alkiokohtaista kertolaskua, eli jokainen vektorin alkio kerrotaan vastaavan toisen vektorin alkion kanssa. Sen sijaan symboli ⋅ edustaa pistetuloa, jota käytetään tavanomaisessa matriisi- tai vektorikertolaskussa. Termi f′n viittaa aktivointifunktion derivaattaan ulostulokerroksessa.
Tämä arvo ilmaisee, kuinka herkkä häviöfunktio on ulostulokerroksen esiaktivointiarvojen muutoksille.
Kun dzn on laskettu, seuraava vaihe on laskea gradientit painoille ja siirtotermeille:
dWndbn=dzn⋅(an−1)T,=dznNämä gradientit kuvaavat, kuinka paljon kutakin painoa ja siirtotermiä ulostulokerroksessa tulisi säätää häviön pienentämiseksi.
Tässä (an−1)T on edellisen kerroksen transponoitu aktivointivektori. Jos alkuperäisen vektorin muoto on nneurons×1, sen transpoosiolla on muoto 1×nneurons.
Takaisinlevityksen jatkamiseksi lasketaan derivaatta häviöstä suhteessa edellisen kerroksen aktivointeihin seuraavasti:
dan−1=(Wn)T⋅dznTämä lauseke mahdollistaa virhesignaalin siirtämisen taaksepäin verkossa, mahdollistaen aiempien kerrosten säätämisen koulutuksen aikana.
Gradienttien levittäminen piilokerroksiin
Jokaiselle piilokerrokselle l menettely on sama. Kun dal on annettu:
- Laske derivaatta häviöstä suhteessa esiaktivointeihin;
- Laske gradientit painoille ja siirtotermeille;
- Laske dal−1 derivaatan levittämiseksi taaksepäin.
Tätä prosessia toistetaan jokaiselle edeltävälle kerrokselle vaihe vaiheelta, 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ähenemä-algoritmia:
Wlbl=Wl−α⋅dWl,=bl−α⋅dbl.Tässä α tarkoittaa oppimisnopeutta, joka määrittää kuinka paljon parametreja säädetään jokaisella koulutusaskeleella.
Tässä α on oppimisnopeus, hyperparametri, joka määrittää painoihin ja biaseihin kunkin päivitysvaiheen aikana tehtävän säädön suuruuden.
Kiitos palautteestasi!