Retropropagare în Rețelele Neuronale: Algoritm ML și Exemplu
⚡ Rezumat inteligent
Retropropagarea este algoritmul de antrenament de bază al unei rețele neuronale, care ajustează fin fiecare pondere în funcție de eroarea măsurată în epoca anterioară, astfel încât modelul să generalizeze mai bine pe date nevăzute, câte un strat pe rând.
Ce este o rețea neuronală artificială?
O rețea neuronală artificială este un grup de unități I/O conectate, unde fiecare conexiune are o pondere. Aceasta vă ajută să construiți modele predictive din baze de date mari, iar designul împrumută vocabularul său din sistemul nervos uman. Rețelele de acest tip susțin înțelegerea imaginilor, învățarea automată, vorbirea computerizată și multe alte sarcini de recunoaștere a tiparelor.
Retropropagarea este algoritmul care decide care ar trebui să fie aceste ponderi, așa că cele două idei sunt cel mai bine interpretate împreună.
Ce este Backpropagation?
Retropropagarea este esența antrenării rețelelor neuronale. Este metoda de reglare fină a ponderilor unei rețele neuronale pe baza ratei de eroare obținute în epoca anterioară (adică, iterația). Reglarea corectă a ponderilor permite reducerea ratelor de eroare și creșterea fiabilității modelului prin creșterea generalizării acestuia.
Propagarea înapoi în rețeaua neuronală este o formă scurtă pentru „propagarea înapoi a erorilor”. Este o metodă standard de antrenare a rețelelor neuronale artificiale. Această metodă ajută la calcularea gradientului unei funcții de pierdere în raport cu toate greutățile din rețea.
Doi termeni sunt adesea confundați. Doar retropropagare calculează gradientul; un optimizator precum gradient descens este ceea ce de fapt schimbari ponderile folosind acel gradient. Aproape fiecare framework modern efectuează automat backpropagation prin intermediul motorului său autodiff.
Cum funcționează algoritmul de backpropagation
Algoritmul de propagare inversă în rețelele neuronale calculează gradientul funcției de pierdere pentru o singură ponderare folosind regula lanțului. Calculează eficient câte un strat pe rând, spre deosebire de un calcul direct naiv. Calculează gradientul, dar nu definește modul în care este utilizat gradientul. Generalizează calculul în regula delta.
Regula lanțului este cea care face acest lucru eficient. Influența unei ponderi timpurii asupra pierderii finale este un produs al derivatelor locale de-a lungul căii către ieșire, astfel încât algoritmul stochează în cache rezultatul intermediar al fiecărui strat la întoarcere și îl reutilizează pentru fiecare pondere din stratul inferior în loc să recalculeze întreaga rețea per pondere.
Luați în considerare următoarea diagramă exemplu de rețea neuronală cu propagare inversă pentru a înțelege. Figura tracare o singură trecere completă: intrările intră pe stânga, activările avansează prin stratul ascuns către ieșire, iar eroarea măsurată se deplasează apoi înapoi de-a lungul acelorași conexiuni pentru a corecta ponderile.
- Intrările X, ajung prin calea preconectată
- Intrarea este modelată folosind greutăți reale W. Greutățile sunt de obicei selectate aleatoriu.
- Calculați ieșirea pentru fiecare neuron de la stratul de intrare, la straturile ascunse, la stratul de ieșire.
- Calculați eroarea din ieșiri:
ErrorB= Actual Output – Desired Output
- Călătoriți înapoi de la stratul de ieșire la stratul ascuns pentru a ajusta greutățile astfel încât eroarea să fie redusă.
- Repetați procesul până când se obține rezultatul dorit.
Multe manuale scriu aceeași cantitate ca dorit minus realAmbele convenții funcționează, deoarece semnul este absorbit atunci când optimizatorul subtraceste gradientul, cu condiția să păstrați o convenție în întreaga rețea.
În practică, eroarea este rareori o simplă subtitrare.tracO funcție de pierdere, cum ar fi eroarea medie pătratică pentru regresie sau entropia încrucișată pentru clasificare, convertește diferențele per ieșire într-un singur număr a cărui retropropagare a gradientului este calculată efectiv.
De ce avem nevoie de propagare inversă?
Cele mai importante avantaje ale propagării inverse sunt:
- Backpropagarea este rapidă, simplă și ușor de programat
- Nu adaugă parametri noi proprii; reglajul pe care îl faci aparține optimizatorului și rețelei, în principal rata de învățare și numărul de intrări.
- Este o metodă flexibilă, deoarece nu necesită cunoștințe prealabile despre rețea
- Este o metodă standard care, în general, funcționează bine
- Nu are nevoie de nicio mențiune specială a caracteristicilor funcției de învățat.
Simplu spus, fără o modalitate eficientă de a obține gradienți, antrenarea a ceva mai profund decât un singur strat ar fi impracticabilă din punct de vedere computațional.
Ce este o rețea Feed Forward?
O rețea neuronală feedforward este o rețea neuronală artificială în care nodurile nu formează niciodată un ciclu. Acest tip de rețea neuronală are un strat de intrare, straturi ascunse și un strat de ieșire. Este primul și cel mai simplu tip de rețea neuronală artificială.
Distincția contează aici deoarece trecerea înainte a propagării inverse este exact o trecere feedforward; doar că corecția erorii se desfășoară în direcția opusă.
Tipuri de rețele de backpropagation
Două tipuri de rețele de backpropagation sunt:
- Propagare inversă statică
- Propagarea inversă recurentă
Propagare inversă statică
Este un tip de rețea de retropropagare care produce o hartăping a unei intrări statice pentru ieșire statică. Este util pentru a rezolva problemele de clasificare statică, cum ar fi recunoașterea optică a caracterelor.
Propagarea inversă recurentă
Propagare inversă recurentă în data mining este transmisă înainte până când se atinge o valoare fixă. După aceea, eroarea este calculată și propagată înapoi.
Principala diferență dintre aceste două metode este că hartaping este rapidă în retropropagarea statică, în timp ce este nestatică în retropropagarea recurentă. Tabelul de mai jos prezintă cele două alăturate.
| Criteriu | Propagare inversă statică | Retropropagare recurentă |
|---|---|---|
| Hartăping | Intrare statică către ieșire statică | Nestatic; rețeaua se stabilizează înainte ca eroarea să fie utilizată |
| Viteză | Rapid, o singură trecere per probă | Mai lent, activarea este iterată până se stabilizează |
| Forma rețelei | Feedforward, fără cicluri | Conține conexiuni de feedback |
| Utilizare tipică | Recunoaștere optică a caracterelor, clasificare cu dimensiuni fixe | Probleme al căror rezultat depinde de o stare internă stabilizată |
Istoria propagării inverse
- În 1961, conceptul de bază al retropropagarii continue a fost derivat în contextul teoriei controlului de către J. Kelly, Henry Arthur și E. Bryson.
- În 1969, Bryson și Ho au oferit o metodă de optimizare a sistemului dinamic în mai multe etape.
- În 1970, Seppo Linnainmaa a publicat modul invers al diferențierii automate, metoda de calcul pe care se bazează retropropagarea modernă.
- În 1974, Werbos a declarat posibilitatea aplicării acestui principiu într-o rețea neuronală artificială.
- În 1982, Hopfield și-a adus ideea unei rețele neuronale.
- În 1986, prin efortul lui David E. Rumelhart, Geoffrey E. Hinton, Ronald J. Williams, retropropagarea a câștigat recunoaștere.
- În 1989, Yann LeCun și colegii săi au antrenat o rețea convoluțională cu retropropagare pentru a citi cifrele scrise de mână, una dintre primele utilizări practice la scară largă.
- În 1993, Wan a fost prima persoană care a câștigat un concurs internațional de recunoaștere a modelelor cu ajutorul metodei de backpropagation.
- În 2006, munca lui Hinton asupra rețelelor de credințe profunde și a pre-antrenamentului pe straturi a reînviat interesul pentru antrenarea rețelelor profunde, care stagnase din cauza dispariției gradienților.
- În 2010, Xavier Glorot și Yoshua Bengio au analizat de ce rețelele profunde erau greu de antrenat și au introdus o inițializare îmbunătățită a ponderilor, care, împreună cu activările ReLU, a făcut ca retropropagarea profundă să fie practică.
- În 2012, AlexNet (Krizhevsky, Sutskever și Hinton) a câștigat competiția ImageNet folosind backpropagation accelerată de GPU, declanșând boom-ul învățării profunde moderne.
- În 2014, a fost introdus optimizatorul Adam (Kingma și Ba) și a devenit rapid varianta implicită de coborâre în gradient utilizată cu backpropagation.
- În 2015, normalizarea în loturi și rețelele reziduale (ResNet) au rezolvat problemele de flux gradient în rețele foarte profunde, permițând retropropagarea prin sute de straturi.
- În perioada 2015-2017, TensorFlow și PyTorch a transformat diferențierea automată într-o funcție software standard, astfel încât gradienții nu mai trebuiau să fie derivați manual.
- În 2017, a fost introdusă arhitectura Transformer, care este antrenată end-to-end cu backpropagation, la fel ca și modelele lingvistice mari construite pe baza acesteia.
- În 2019, Bengio, Hinton și LeCun au primit premiul ACM AM Turing pentru munca lor asupra rețelelor neuronale profunde.
- În 2020, lucrarea „Backpropagation and the Brain” (Lillicrap, Santoro, Marris, Akerman și Hinton) a susținut că, deși creierul poate aproxima învățarea de tip backpropagation, redeschizând dezbaterea privind plauzibilitatea biologică.
- În 2022, Hinton a propus algoritmul Forward-Forward, o metodă de antrenament care evită complet o trecere înapoi.
- În 2024, John Hopfield și Geoffrey Hinton au primit Premiul Nobel pentru fizică pentru descoperirile fundamentale care au permis învățarea automată cu ajutorul rețelelor neuronale artificiale.
- În 2025, metodele forward-forward au fost extinse la rețele convoluționale, demonstrând că antrenamentul fără backpropagation ar putea funcționa în sarcini de clasificare a imaginilor.
- Începând cu 2026, backpropagation rămâne algoritmul standard de antrenament pentru practic toate modelele de deep learning, în timp ce cercetările continuă în ceea ce privește metodele de învățare fără gradient, locale și paralele, care reduc costurile de memorie și de calcul.
Puncte cheie pentru propagarea inversă
- Simplifică structura rețelei prin eliminarea legăturilor ponderate care au cel mai mic efect asupra rețelei antrenate
- Trebuie să studiați un grup de valori de intrare și activare pentru a dezvolta relația dintre straturile de intrare și unități ascunse.
- Ajută la evaluarea impactului pe care o anumită variabilă de intrare îl are asupra ieșirii rețelei. Cunoștințele dobândite în urma acestei analize ar trebui să fie reprezentate în reguli.
- Propagarea inversă este utilă în special pentru rețelele neuronale profunde care lucrează la proiecte predispuse la erori, cum ar fi recunoașterea imaginii sau a vorbirii.
- Propagarea inversă profită de regulile lanțului și ale puterii, ceea ce îi permite să funcționeze cu orice număr de ieșiri.
Cea mai bună practică pentru retropropagare
Propagarea inversă în rețelele neuronale poate fi explicată cu ajutorul analogiei „șiretului de pantofi”. Actualizările de greutate se comportă foarte asemănător tensiunii pe un șiret: dacă este prea puțin, nimic nu este ținut împreună, dacă este prea mult, ceva se rupe.
| Tensiunea dantelelor | Ce înseamnă în timpul antrenamentului |
|---|---|
| Prea puțină tensiune | Nu este suficient de constrângător și foarte lejer — modelul nu se potrivește bine |
| Prea multă tensiune | Prea multă constrângere (supraantrenament); necesită prea mult timp (proces relativ lent); probabilitate mai mare de eșec |
| Tragerea unui șiret mai mult decât a celuilalt | Disconfort (prejudecată) - o parte a rețelei domină potrivirea |
Două obiceiuri practice decurg din analogie: scalarea inputurilor înainte de antrenament, astfel încât nicio caracteristică să nu fie mai solicitată decât restul și urmărirea pierderii validării, astfel încât tensiunea să fie eliberată înainte de instalarea supraantrenamentului.
Dezavantajele utilizării Backpropagation
- Performanța reală a propagării inverse pentru o problemă specifică depinde de datele de intrare.
- Algoritmul de propagare înapoi în mineritul de date poate fi destul de sensibil la datele zgomotoase
- Pe parcursul unui mini-lot, retropropagarea ar trebui implementată cu o abordare bazată pe matrice; looping mai mult de un exemplu odată este semnificativ mai lent.
- În rețelele profunde, multiplicarea repetată a derivatelor mici poate micșora gradienții spre zero, astfel încât cele mai timpurii straturi abia învață - problema gradientului care dispare descrisă în Google Curs de accident de învățare automată.
Niciuna dintre acestea nu exclude metoda. Acestea sunt motivele pentru care practicienii apelează la activări ReLU, normalizare și programe atente ale ratei de învățare atunci când trec de la o rețea superficială la una... învățare profundă model.

