Bekpropagacija je metoda koja se koristi u veštačkim neuronskim mrežama za izračunavanje doprinosa greške svakog neurona nakon obrade serije podataka. To je poseban slučaj starije i opštije tehnike koja se naziva automatsko diferenciranje. U kontekstu učenja, bekpropagacija se obično koristi od strane algoritma za optimizaciju gradijenta kako bi se prilagodila težina neurona izračunavanjem gradijenta funkcije gubitka. Ova tehnika se ponekad naziva i povratno širenje grešaka, jer se greška izračunava na izlazu i prenosi natrag kroz mrežne slojeve.

Algoritam za proširenje unazad je ponovo otkriven i ekvivalent je automatskom diferenciranju u obrnutom režimu akumulacije. Bekpropagacija zahteva poznati izlaz za svaku ulaznu vrednost pa se stoga smatra da je to metod učenja nadgledanjem (mada se takođe koristi u nekim nenadgledanim mrežama kao što su autoenkoderi). Bekpropagacija je takođe generalizacija delta pravila za višeslojne mreže, omogućene korišćenjem pravila lanca za iterativno izračunavanje nagiba za svaki sloj. Ona je usko povezana sa Gaus-Njutn algoritmom, i deo je kontinuiranog istraživanja u nervnoj bekpropagaciji. Bekpropagacija se može koristiti u bilo kom optimizatoru zasnovanom na gradijentu, kao što je L-BFGS ili skraćeni Njutn. Takođe se često koristi za obučavanje dubokih neuronskih mreža, pojma koji se koristi za opis neuronskih mreža sa više od jednog skrivenog sloja.[1]

Motivacija uredi

Cilj svakog algoritma učenja nadgledanja je pronalaženje funkcije koja najbolje mapira skup ulaza na njihov tačan izlaz. Primer bi bio klasifikacioni zadatak, gde je ulaz slika životinje, a tačan rezultat je ime životinje.

Motivacija za bekpropagaciju je obučavanje višeslojne neuronske mreže tako da može naučiti odgovarajuća predstavljanja kako bi omogućila da sazna neko proizvoljno mapiranje unosa za izlaz.

Gubitak funkcije uredi

Ponekad se naziva funkcija troška ili funkcija greške (ne sme se mešati sa Gausovom funkcijom greške), funkcija gubitka je funkcija koja mapira vrednosti jedne ili više promenljivih kao realan broj koji intuitivno predstavlja neki "trošak" povezan sa tim vrednostima. Funkcija gubitka računa razliku između izlaza mreže i očekivanog izlaza, nakon što se slučaj raširi kroz mrežu.

Pretpostavke uredi

Dve pretpostavke se moraju napraviti o obliku funkcije greške.[2] Prva je da se može napisati kao prosek   preko funkcija greške   za   individualnih primera obuke,  . Razlog za ovu pretpostavku je da algoritam bekpropagacije izračunava gradijent funkcije greške za jedan primer treninga, koji treba generalizovati sa ukupnom funkcijom greške. Druga pretpostavka je da se može napisati kao funkcija izlaza iz neuronske mreže.

Neka su   vektori u  .

Posmatrajmo funkciju greške   koja računa metriku između izlaza.

Standardan izbor je:

kvadrat Euklidske metrike između vektora   i vektora   :

 
Koeficijent   se koristi kako bi se skratio sa 2 nakon diferenciranja Funkcija greške na osnovu   primera se može zapisati kao prosečna vrednost:
 
i kao parcijalni izvod u odnosu na izlaz funkcije
 


Algoritam optimizacije ponavlja ciklus od dve faze, širenje i ažuriranje težine. Kada se ulazni vektor pojavi na mreži, on se prosleđuje napred kroz mrežu, sloj po sloj, sve dok ne dostigne izlazni sloj. Izlaz mreže se zatim upoređuje sa željenim izlazom, koristeći funkciju gubitka. Dobijena vrednost greške se izračunava za svaki od neurona u izlaznom sloju. Vrednosti greške se zatim prosleđuju iz izlaza nazad kroz mrežu, sve dok svaki neuron ne dobije pridruženu vrednost greške koja odražava njen doprinos izvornom izlazu. Bekpropagacija koristi ove vrednosti greške za izračunavanje gradijenta funkcije gubitka. U drugoj fazi, ovaj gradijent se napaja metodom optimizacije, koja zauzvrat to koristi za ažuriranje težine, u pokušaju da minimizira funkciju gubitka.

Neka je   neuronska mreža sa   konekcija,   ulaza i   izlaza.

  označavaju vektore u  ,   vektore u   i   vektore u  .

Oni se redom nazivaju ulazi, izlazi i težine.

Neuronska mreža odgovara funkciji   koja za dati vektor težina mapira ulaz i izlaz.

Optimizacija kao ulaze uzima sekvencu primera   i kao rezultat daje sekvencu težina   počevši od neke težine   koja se obično bira kao proizvoljna.

Ove težine se računaju na sledeći način: Prvo se računa   koristeći samo   za  . Izlaz algoritma je   koji nam daje novu funkciju  . Računica je ista u svakom koraku, ovde je opisan slučaj za  .

Računanje   iz   se završava primenjujući gradijent nagiba na funkciju   kako bi se našao lokalni minimum, počevši od  .

Intuicija uredi

Da bi se shvatilo matematičko izvođenje algoritma bekpropagacije, poželjno je da se prvo razviju neke intuicije o odnosu između stvarnog izlaza neurona i tačnog izlaza za određeni primer. Razmotrimo jednostavnu neuronsku mrežu sa dve ulazne jedinice, jednom izlaznom jedinicom i bez skrivenih jedinica. Svaki neuron koristi linearni izlaz, što je ponderisana suma njegovog unosa.

U početku, pre treninga, težine će biti podešene nasumično. Zatim neuron uči na primerima, koji se u ovom slučaju sastoje od skupa trojki   gde su   i   ulazi u mrežu i t je ispravan izlaz (izlaz koji mreža treba na kraju da proizvede za date ulaze). Inicijalna mreža, za date   i   će izračunati izlaz u koji se verovatno razlikuje od t (date slučajne težine) . Uobičajena metoda za merenje neslaganja između očekivanog izlaza t i stvarnog izlaza y je kvadratna mera greške:

 

gde je E neslaganje ili greška.

Kao primer, razmotrite mrežu u jednom slučaju:  , tako da ulaz   i ulaz   budu 1 i 1 i tačan izlaz, t bude 0. Sada, ako je stvarni izlaz y iscrtan na horizontalnoj osi zajedno sa greškom E na vertikalnoj osi, rezultat je parabola. Minimum parabole odgovara izlazu y koji minimizuje grešku E. Na jednom primeru, minimum takođe dotiče horizontalnu osu, što znači da će greška biti nula i da mreža može proizvesti izlaz y koji tačno odgovara očekivanom izlazu t. Samim tim, problem mapiranja ulaza na izlaze može se svesti na problem optimizacije pronalaska funkcije koja će dati minimalnu grešku.

Međutim, izlaz neurona zavisi od ponderisane sume svih inputa:   gde su težine na vezu od ulaznih jedinica do izlazne jedinice. Stoga, greška takođe zavisi od dolaznih težina neuronu, što je na kraju ono što treba promeniti u mreži kako bi se omogućilo učenje. Ako je svaka težina iscrtana na zasebnoj horizontalnoj osi i greška na vertikalnoj osi, rezultat je parabolička posuda. Za neuron sa k težina, isti grafik bi zahtevao eliptički paraboloid sa   dimenzijom.


Inercija uredi

Koristeći promenljivi inercijski izraz (Momentum)   , gradijent i poslednja promena se mogu ponderisati tako da podešavanje težine dodatno zavisi od prethodne promene. Ako je Momentum   jednak 0, promena zavisi isključivo od gradijenta, dok vrednost 1 zavisi samo od poslednje promene.

Slično kao lopta koja se spušta niz planinu, čija trenutna brzina se određuje ne samo trenutnim nagibom planine, već i sopstvenom inercijom, može se dodati inercija:

 
gde je
  promena u težini   u vezi između neurona   i neurona   u vremenu  
  stopa učenja
  greška signala neurona j
  izlaz neurona   što je i ulaz za trenutni neuron (neuron  )
  uticaj inercije   Ovo odgovara promeni težine u prethodnoj tački vremena

Inercija zavisi od trenutne promene težine   iz trenutnog gradijenta funkcije greške (nagib planine, prva suma), kao i od promene težine u prethodnoj tački vremena (inercija, druga suma).

Uz inerciju, izbegavaju se takođe i problemi zaglavljivanja (u strmim ravnicama i ravnim platoima). Budući da, na primer, gradijent funkcije greške postaje vrlo mali u ravnim platoima, inercija bi odmah dovela do "usporavanja" gradijenta. Ovo usporavanje je odloženo dodavanjem inercije tako da se ravni plato može preći što brže.

Načini učenja uredi

Dostupna su dva načina učenja: stohastični i serijski. U stohastičkom učenju, svaki ulaz stvara prilagođavanje težine. U serijskom učenju težine se prilagođavaju na osnovu serije ulaza, akumulirajući greške nad tom serijom. Stohastično učenje uvodi "buku" u proces gradacije, koristeći lokalni gradijent izračunat iz jedne tačke podatka; ovo smanjuje šanse da se mreža zaglavi u lokalnim minimumima. Međutim, serijsko učenje obično daje brže i stabilnije rezultate, pošto se svaka promena vrši u pravcu prosečne greške serije. Opšti izbor kompromisa je korišćenje "mini-serija", što znači male serije i sa uzorcima u svakoj seriji izabranim stohastički iz celog skupa podataka.


Ograničenja uredi

Ne postoji garancija da će bekpropagacija naći globalni minimum funkcije greške, već samo lokalni minimum. Za ovaj problem koji nastaje zbog nekonveksnosti funkcije greške u neuronskim mrežama, se dugo smatralo da predstavlja veliki nedostatak, ali je Jan LeCun pokazao da u mnogim praktičnim problemima ovo nije ozbiljan nedostatak.[3]

Istorija uredi

Prema različitim izvorima[4][5][6][7] , osnove neprekidne bekpropagacije su izveli u kontekstu teorije kontrole Henri Dž. Keli 1960. godine[8] i Artur E. Brajson 1961.[9] Koristili su principe dinamičkog programiranja. Godine 1962. Stjuart Drejfus[10] je objavio jednostavniji alat zasnovan samo na pravilu lanca. Brajson i Ho su to opisali kao višestepenu dinamičku sistemsku optimizaciju 1969.[11][12]

Linainma je 1970. objavio opštu metodu za automatsko diferenciranje (AD) diskretnih povezanih mreža ugnježdenih diferencijabilnih funkcija.[13] Ovo odgovara bekpropagaciji, koja je efikasna i za retke mreže.

Godine 1973. Drejfus je koristio bekpropagaciju kako bi prilagodio parametre kontrolora proporcionalno greški gradijenata[14]. Godine 1974. Verbos je pomenuo mogućnost primene ovog principa na veštačke neuronske mreže[15], a 1982. godine je Linainma primenio AD metod na neuralne mreže na način koji se danas koristi.[7][16]

Godine 1986. Rumelhart, Hinton i Vilijams su eksperimentalno pokazali da ova metoda može generisati korisna interna predstavljanja dolaznih podataka u skrivenim slojevima neuronskih mreža[17][18]. Godine 1993, Van je bio prvi koji je pobedio na takmičenju za priznavanje međunarodnih uzoraka kroz bekpropagaciju.[19]

Tokom 2000-ih godina za nju je opalo interesovanje, ali se vratilo u 2010-im, jer je korišćena od strane jeftinih, moćnih računarskih sistema zasnovanih na GPU-u.

Reference uredi

  1. ^ „Deep Networks: Overview - Ufldl”. ufldl.stanford.edu (na jeziku: engleski). Pristupljeno 04. 8. 2017. 
  2. ^ Nielsen, Michael A. (01. 1. 2015). „Neural Networks and Deep Learning”. 
  3. ^ LeCun, Yann; Bengio, Yoshua; Hinton, Geoffrey (2015). „Deep learning”. Nature. 521: 436—444. PMID 26017442. doi:10.1038/nature14539. 
  4. ^ Stuart Dreyfus (1990). Artificial Neural Networks, Back Propagation and the Kelley-Bryson Gradient Procedure. J. Guidance, Control and Dynamics, 1990.
  5. ^ Mizutani, Eiji; Dreyfus, Stuart; Nishio, Kenichi (July). „On derivation of MLP backpropagation from the Kelley-Bryson optimal-control gradient formula and its application.” (PDF). Proceedings of the IEEE International Joint Conference on Neural Networks.  Proverite vrednost paramet(a)ra za datum: |date=, |year= / |date= mismatch (pomoć)[mrtva veza]
  6. ^ Schmidhuber, Jürgen (2015). „Deep learning in neural networks: An overview”. Neural Networks. 61: 85—117. doi:10.1016/j.neunet.2014.09.003. 
  7. ^ a b Schmidhuber, Jürgen (2015). „Deep Learning”. Scholarpedia. 10 (11): 32832. doi:10.4249/scholarpedia.32832. 
  8. ^ Kelley, Henry J. (1960). „Gradient theory of optimal flight paths”. Ars Journal. 30 (10): 947—954. doi:10.2514/8.5282. 
  9. ^ Arthur E. Bryson (1961, April). A gradient method for optimizing multi-stage allocation processes. In Proceedings of the Harvard University Symposium on digital computers and their applications.
  10. ^ Dreyfus, Stuart. „The numerical solution of variational problems”. Journal of Mathematical Analysis and Applications. 5 (1): 30—45. doi:10.1016/0022-247x(62)90004-5. 
  11. ^ Russell, Stuart; Norvig, Peter. Artificial Intelligence A Modern Approach. str. 578. „The most popular method for learning in multilayer networks is called Back-propagation. 
  12. ^ Bryson, A. E.; Yu-Chi, Ho (01. 1. 1975). Applied Optimal Control: Optimization, Estimation and Control. CRC Press. ISBN 978-0-89116-228-5. 
  13. ^ Linnainmaa, Seppo (1976). „Taylor expansion of the accumulated rounding error”. BIT Numerical Mathematics. 16 (2): 146—160. doi:10.1007/bf01931367. 
  14. ^ Dreyfus, Stuart (1973). „The computational solution of optimal control problems with time lag”. IEEE Transactions on Automatic Control. 18 (4): 383—385. doi:10.1109/tac.1973.1100330. 
  15. ^ Werbos, Paul John (1975). Beyond Regression: New Tools for Prediction and Analysis in the Behavioral Sciences. Harvard University. 
  16. ^ Werbos 1982, str. 762–770
  17. ^ Rumelhart, David E.; Hinton, Geoffrey E.; Williams, Ronald J. (08. 10. 1986). „Learning representations by back-propagating errors”. Nature. 323 (6088): 533—536. doi:10.1038/323533a0. 
  18. ^ Alpaydin 2010.
  19. ^ Wan, Eric A. (1993). „Time series prediction by using a connectionist network with internal delay lines” (PDF). SANTA FE INSTITUTE STUDIES IN THE SCIENCES OF COMPLEXITY-PROCEEDINGS. str. 195—195. Arhivirano iz originala (PDF) 02. 02. 2018. g.  Nevalidan unos |dead-url=dead (pomoć)

Literatura uredi