Povratno širenje u neuronskoj mreži: ML algoritam i primjer

⚡ Pametni sažetak

Backpropagation je osnovni algoritam treniranja neuronske mreže, koji fino podešava svaku težinu iz pogreške izmjerene u prethodnoj epohi tako da model bolje generalizira na nevidljive podatke, jedan sloj po jedan.

  • 🔘 Osnovna ideja: Lančano pravilo daje gradijent gubitka za svaku težinu, jedan sloj istovremeno.
  • ☑️ Petlja treninga: Prolazak naprijed, mjerenje pogreške, propagiranje unatrag, ažuriranje težina, ponavljanje.
  • Dvije varijante: Statičko povratno širenje preslikava fiksni ulaz na fiksni izlaz; rekurentno povratno širenje se prvo smiri, a zatim širi.
  • 🧪 Zašto je to važno: Gradijentni spust ostaje praktičan samo za duboke mreže jer se gradijenti ponovno koriste sloj po sloj.
  • 🛠️ Poznate granice: Performanse ovise o kvaliteti ulaza, a šumni uzorci iskrivljuju naučene težine.
  • Gradijentno zdravlje: Množenje mnogih malih derivacija uzrokuje nestajanje gradijenta; ReLU i normalizacija smanjuju taj učinak.

Povratno širenje u neuronskoj mreži: algoritam strojnog učenja

Što je umjetna neuronska mreža?

Umjetna neuronska mreža je skupina povezanih I/O jedinica gdje svaka veza nosi težinu. Pomaže vam u izgradnji prediktivnih modela iz velikih baza podataka, a dizajn posuđuje svoj vokabular iz ljudskog živčanog sustava. Mreže ove vrste podržavaju razumijevanje slika, strojno učenje, računalni govor i mnoge druge zadatke prepoznavanja uzoraka.

Backpropagation je algoritam koji odlučuje koje bi te težine trebale biti, pa je te dvije ideje najbolje čitati zajedno.

Što je povratno širenje?

Backpropagation je bit treniranja neuronske mreže. To je metoda finog podešavanja težina neuronske mreže na temelju stope pogrešaka dobivene u prethodnoj epohi (tj. iteraciji). Pravilno podešavanje težina omogućuje smanjenje stope pogrešaka i povećanje pouzdanosti modela povećanjem njegove generalizacije.

Propagacija unatrag u neuronskoj mreži skraćeni je oblik za "propagaciju pogrešaka unatrag". To je standardna metoda treniranja umjetnih neuronskih mreža. Ova metoda pomaže izračunati gradijent funkcije gubitka s obzirom na sve težine u mreži.

Dva se pojma često brkaju. Samo povratno širenje izračunava gradijent; optimizator poput gradijentnog spusta je ono što zapravo promjene težine pomoću tog gradijenta. Gotovo svaki moderni okvir automatski izvodi povratno širenje putem svog mehanizma za automatsko razlikovanje.

Kako radi algoritam širenja unatrag

Algoritam povratnog širenja u neuronskoj mreži izračunava gradijent funkcije gubitka za jednu težinu pomoću pravila lanca. Učinkovito izračunava jedan sloj istovremeno, za razliku od naivnog izravnog izračuna. Izračunava gradijent, ali ne definira kako se gradijent koristi. Generalizira izračun u delta pravilu.

Pravilo lanca je ono što ovo čini učinkovitim. Utjecaj jedne rane težine na konačni gubitak je produkt lokalnih derivacija duž puta do izlaza, pa algoritam kešira međurezultat svakog sloja na povratku i ponovno ga koristi za svaku težinu u sloju ispod umjesto da ponovno izračunava cijelu mrežu po težini.

Razmotrite sljedeći dijagram primjera neuronske mreže s povratnim širenjem kako biste to razumjeli. Slika tracjedan puni prolaz: ulazi ulaze s lijeve strane, aktivacije se kreću naprijed kroz skriveni sloj do izlaza, a izmjerena pogreška se zatim vraća duž istih veza kako bi se ispravile težine.

Dijagram algoritma povratnog širenja koji prikazuje prolaz naprijed kroz ulazne, skrivene i izlazne slojeve te putovanje pogreške unatrag

  1. Ulazi X, dolaze kroz predpovezani put
  2. Ulaz se modelira korištenjem stvarnih težina W. Težine se obično odabiru nasumično.
  3. Izračunajte izlaz za svaki neuron od ulaznog sloja, preko skrivenih slojeva, do izlaznog sloja.
  4. Izračunajte grešku u izlazima:
    ErrorB= Actual Output – Desired Output
    
  5. Vratite se s izlaznog sloja na skriveni sloj kako biste prilagodili težine tako da se pogreška smanji.
  6. Nastavite ponavljati postupak dok se ne postigne željeni izlaz.

Mnogi udžbenici pišu istu količinu kao željeno minus stvarnoObje konvencije funkcioniraju jer se znak apsorbira kada optimizator podređentracts gradijent, pod uvjetom da zadržite jednu konvenciju u cijeloj mreži.

U praksi, greška rijetko bude goli podsistemtraccija. Funkcija gubitka, kao što je srednja kvadratna pogreška za regresiju ili unakrsna entropija za klasifikaciju, pretvara razlike po izlazu u jedan broj čiji se povratni gradijentni slijed zapravo izračunava.

Zašto nam treba povratno širenje?

Najistaknutije prednosti širenja unatrag su:

  • Propagacija unatrag je brza, jednostavna i laka za programiranje
  • Ne dodaje nikakve nove vlastite parametre; podešavanje koje vršite pripada optimizatoru i mreži, uglavnom brzini učenja i broju ulaza.
  • To je fleksibilna metoda jer ne zahtijeva prethodno znanje o mreži
  • To je standardna metoda koja općenito dobro funkcionira
  • Ne treba posebno spominjati značajke funkcije koju treba naučiti.

Jednostavno rečeno, bez učinkovitog načina za dobivanje gradijenata, treniranje bilo čega dubljeg od jednog sloja bilo bi računalno nepraktično.

Što je Feed Forward mreža?

Feedforward neuronska mreža je umjetna neuronska mreža u kojoj čvorovi nikada ne tvore ciklus. Ova vrsta neuronske mreže ima ulazni sloj, skrivene slojeve i izlazni sloj. To je prvi i najjednostavniji tip umjetne neuronske mreže.

Razlika je ovdje važna jer je prolaz naprijed kod povratnog širenja upravo prolaz naprijed; samo što se korekcija pogreške odvija u suprotnom smjeru.

Vrste mreža za širenje unatrag

Dvije vrste mreža za širenje unatrag su:

  • Statičko širenje unatrag
  • Rekurentno širenje unazad

Statičko povratno širenje

To je jedna vrsta mreže povratnog širenja koja stvara mapuping statičkog ulaza za statički izlaz. Korisno je za rješavanje problema statičke klasifikacije poput optičkog prepoznavanja znakova.

Rekurentno širenje unazad

Rekurentno povratno širenje u data mining se prenosi naprijed dok se ne postigne fiksna vrijednost. Nakon toga se izračunava pogreška i propagira unatrag.

Glavna razlika između ove dvije metode je: kartaping je brz u statičkom povratnom širenju, dok je nestatičan u rekurentnom povratnom širenju. Tablica u nastavku ih usporedno prikazuje.

Kriterij Statičko povratno širenje Rekurentno povratno širenje
Kartaping Statički ulaz u statički izlaz Nestatička; mreža se smiri prije nego što se greška iskoristi
Brzina Brzo, jedan prolaz po uzorku Sporije, aktivacija se ponavlja dok se ne stabilizira
Oblik mreže Unaprijed, bez ciklusa Sadrži povratne veze
Tipična upotreba Optičko prepoznavanje znakova, klasifikacija fiksne veličine Problemi čiji izlaz ovisi o ustaljenom unutarnjem stanju

Povijest povratnog širenja

  • Godine 1961. osnovni koncept kontinuiranog povratnog širenja izveden je u kontekstu teorije upravljanja od strane J. Kellyja, Henryja Arthura i E. Brysona.
  • Godine 1969. Bryson i Ho dali su metodu višestupanjske optimizacije dinamičkog sustava.
  • Godine 1970. Seppo Linnainmaa objavio je obrnuti način automatskog diferenciranja, računalnu metodu na kojoj je izgrađena moderna metoda povratnog širenja.
  • Godine 1974. Werbos je naveo mogućnost primjene ovog principa u umjetnoj neuronskoj mreži.
  • Godine 1982. Hopfield je iznio svoju ideju neuronske mreže.
  • Godine 1986., trudom Davida E. Rumelharta, Geoffreya E. Hintona, Ronalda J. Williamsa, backpropagation je dobio priznanje.
  • Godine 1989., Yann LeCun i kolege obučili su konvolucijsku mrežu s povratnim širenjem za čitanje rukom pisanih znamenki, što je bila jedna od prvih praktičnih primjena velikih razmjera.
  • Godine 1993. Wan je bio prva osoba koja je pobijedila na međunarodnom natjecanju u prepoznavanju uzoraka uz pomoć metode povratnog širenja.
  • Godine 2006., Hintonov rad na mrežama dubokih uvjerenja i slojevitom prethodnom treniranju oživio je interes za treniranje dubokih mreža, koji je zastao zbog nestajućih gradijenata.
  • Godine 2010., Xavier Glorot i Yoshua Bengio analizirali su zašto je duboke mreže teško trenirati i uveli poboljšanu inicijalizaciju težina, što je, uz ReLU aktivacije, učinilo duboko povratno širenje praktičnim.
  • Godine 2012., AlexNet (Krizhevsky, Sutskever i Hinton) pobijedio je na natjecanju ImageNet koristeći GPU-ubrzano povratno širenje, pokrećući moderni procvat dubokog učenja.
  • Godine 2014. predstavljen je Adam optimizator (Kingma i Ba) i brzo je postao zadana varijanta gradijentnog spuštanja koja se koristi s povratnim širenjem.
  • Godine 2015., normalizacija serije i rezidualne mreže (ResNet) riješile su probleme gradijentnog toka u vrlo dubokim mrežama, omogućujući povratno širenje kroz stotine slojeva.
  • U razdoblju 2015.-2017., TensorFlow i PyTorch je automatsku diferencijaciju učinio standardnom softverskom značajkom, tako da se gradijenti više nisu morali izvoditi ručno.
  • Godine 2017. predstavljena je Transformer arhitektura koja se trenira od početka do kraja s povratnim širenjem koda, kao i veliki jezični modeli izgrađeni na njoj.
  • Bengio, Hinton i LeCun su 2019. godine primili nagradu ACM AM Turing za svoj rad na dubokim neuronskim mrežama.
  • U radu „Backpropagation and the Brain“ (Lillicrap, Santoro, Marris, Akerman i Hinton) iz 2020. godine tvrdi se da mozak može aproksimirati učenje slično backpropagationu, ponovno otvarajući raspravu o biološkoj vjerojatnosti.
  • Godine 2022. Hinton je predložio algoritam Naprijed-Naprijed, metodu treniranja koja u potpunosti izbjegava prolaz unatrag.
  • Godine 2024. John Hopfield i Geoffrey Hinton dobili su Nobelovu nagradu za fiziku za temeljna otkrića koja su omogućila strojno učenje s umjetnim neuronskim mrežama.
  • Godine 2025. metode forward-forward proširene su na konvolucijske mreže, pokazujući da treniranje bez povratnog širenja može funkcionirati na zadacima klasifikacije slika.
  • Od 2026. godine, povratno širenje ostaje standardni algoritam treniranja za gotovo sve modele dubokog učenja, dok se istraživanje nastavlja u metodama učenja bez gradijenta, lokalnog i paralelnog učenja koje smanjuju njegovu memoriju i računalne troškove.

Ključne točke širenja unatrag

  • Pojednostavljuje strukturu mreže uklanjanjem ponderiranih veza koje imaju najmanji utjecaj na obučenu mrežu
  • Morate proučiti grupu ulaznih i aktivacijskih vrijednosti kako biste razvili odnos između ulaznih i skrivenih slojeva jedinica.
  • Pomaže u procjeni utjecaja koji određena ulazna varijabla ima na mrežni izlaz. Znanje stečeno ovom analizom treba predstaviti u pravilima.
  • Propagacija unatrag je posebno korisna za duboke neuronske mreže koje rade na projektima sklonim pogreškama, kao što je prepoznavanje slike ili govora.
  • Unatrag propagirano korištenje koristi pravila lanca i potencije, što mu omogućuje funkcioniranje s bilo kojim brojem izlaza.

Najbolja praksa za povratno širenje

Povratno širenje u neuronskoj mreži može se objasniti uz pomoć analogije "vezice za cipele". Ažuriranja težine ponašaju se slično kao napetost vezice: premalo i ništa se ne drži zajedno, previše i nešto pukne.

Napetost čipke Što to znači tijekom treninga
Premalo napetosti Premalo ograničavajuće i vrlo labavo — model ne odgovara
Previše napetosti Previše ograničenja (pretreniranost); predugo oduzimanje vremena (relativno spor proces); veća vjerojatnost prekida
Povlačenje jedne vezice više nego druge Neugoda (pristranost) - jedan dio mreže dominira prilagodbom

Iz analogije slijede dvije praktične navike: skalirati ulazne podatke prije treninga tako da nijedna značajka ne povlači jače od ostalih i pratiti gubitak validacije kako bi se napetost oslobodila prije nego što dođe do pretreniranosti.

Nedostaci korištenja povratnog širenja

  • Stvarna izvedba povratnog širenja na specifičnom problemu ovisi o ulaznim podacima.
  • Algoritam povratne propagacije u rudarenju podataka može biti prilično osjetljiv na podatke s šumom
  • Tijekom mini-serije, povratno širenje treba implementirati pristupom temeljenim na matrici; looping preko jednog primjera odjednom je znatno sporije.
  • U dubokim mrežama ponovljeno množenje malih derivacija može smanjiti gradijente prema nuli, tako da najraniji slojevi jedva uče - problem nestajućeg gradijenta opisan u Google Crash tečaj strojnog učenja.

Ništa od ovoga ne isključuje metodu. To su razlozi zašto praktičari posežu za ReLU aktivacijama, normalizacijom i pažljivim rasporedima brzine učenja kada prelaze s plitke mreže na duboko učenje Model.

Pitanja i odgovori

Unatrag se izračunava gradijent gubitka s obzirom na svaku težinu. Gradijentni spust je optimizator koji koristi taj gradijent i pomiče svaku težinu. Jedan mjeri nagib; drugi uzima korak.

Brzina učenja određuje koliko se svaka težina pomiče duž svog gradijenta. Premala je i učenje puže; prevelika i gubitak oscilira ili divergira. Rasporedi koji smanjuju brzinu tijekom epoha obično pouzdanije konvergiraju.

Unatrag propagirajući kroz vrijeme, rekurentne mreže se obučavaju tako da se niz odmota u lanac kopija, a zatim se na njega primjenjuje obično unatrag propagirajući. Dugi nizovi se obično skraćuju jer gradijenti inače nestaju ili eksplodiraju u mnogim koracima.

Bilo koji diferencijabilni gubitak funkcionira. Srednja kvadratna pogreška odgovara regresiji, binarna unakrsna entropija odgovara problemima s dvije klase, a kategorička unakrsna entropija odgovara izlaznim slojevima s više klasa. Izbor mijenja gradijent na izlaznom sloju, a ne sam algoritam unatrag.

Automatizirani alati za pretraživanje istražuju stope učenja, širine slojeva i postavke regularizacije puno brže od ručnih pokušaja i pogrešaka. Bayesova optimizacija i rano zaustavljanjeping Planeri brzo uklanjaju slabe izvršavanja, ostavljajući izračunavanje za konfiguracije koje zapravo smanjuju gubitak validacije.

GitHub kopilot izrađuje petlje za učenje, provjere gradijenta i definicije slojeva iz kratkog komentara, što skraćuje standardni rad. Provjerite derivacije koje proizvodi u odnosu na numeričku provjeru gradijenta, budući da se znak koji izgleda uvjerljivo, ali je pogrešan, uči tiho.

Velike težine uzrokuju rast povratnih produkata na svakom sloju sve dok ažuriranja ne pređu granicu i gubitak ne postane nestabilan. Gradijentni isječakping, manje početne težine, normalizacija serije i niža stopa učenja drže veličine unutar raspona.

Serija je skupina uzoraka obrađenih prije jednog ažuriranja težine. Iteracija je jedno takvo ažuriranje. Epoha je jedan potpuni prolaz kroz skup za učenje, koji sadrži onoliko iteracija koliko ima serija.

Sažmite ovu objavu uz: