Ce înseamnă Backpropagation
Backpropagation (în română „propagarea înapoi a erorii”) este algoritmul care face posibilă antrenarea rețelelor neuronale. După ce rețeaua dă un răspuns și se măsoară cât de greșit a fost, backpropagation calculează pentru fiecare dintre ponderi (pot fi miliarde) în ce direcție și cât de mult ar trebui modificată ca eroarea să scadă.
Ideea matematică exista dinainte, dar a devenit celebră în 1986, printr-o lucrare a lui David Rumelhart, Geoffrey Hinton și Ronald Williams, care a arătat că permite rețelelor cu straturi ascunse să învețe reprezentări utile. Fără ea, deep learning-ul nu ar exista în forma de azi.
Cum funcționează
Antrenarea are doi pași care se repetă. Pasul înainte: datele trec prin rețea, strat cu strat, și se obține o predicție, care se compară cu răspunsul corect prin funcția de pierdere. Pasul înapoi: eroarea pornește de la ieșire spre intrare, strat cu strat, iar cu regula derivării funcțiilor compuse (chain rule) se calculează gradientul fiecărei ponderi, adică cât s-ar schimba eroarea dacă ponderea s-ar mări puțin.
Backpropagation doar calculează aceste gradiente. Modificarea propriu-zisă a ponderilor o face apoi un algoritm de optimizare, de obicei o variantă de gradient descent.
Pe înțelesul tuturor
Un client se plânge că supa e prea sărată. Șeful bucătăriei nu dă vina pe toată lumea la fel: întreabă înapoi, pe rând, cine a gustat, cine a pus sare și cât. La final știe cât a contribuit fiecare și cine trebuie să-și ajusteze rețeta și cu cât. Backpropagation face această „anchetă” matematic, pentru fiecare pondere.
Exemplu
O rețea care estimează prețul unei mașini second-hand spune 9.000 de euro, iar prețul real este 10.000. Pasul înapoi arată, de exemplu, că ponderea legată de „anul fabricației” a tras estimarea prea jos, iar cea legată de „kilometraj” prea puțin. La următoarea actualizare, prima pondere crește puțin, a doua scade puțin. După milioane de astfel de corecturi, estimările devin bune.
De reținut
- Backpropagation calculează contribuția fiecărei ponderi la eroare, pornind de la ieșire spre intrare.
- Lucrează împreună cu gradient descent, care face efectiv corecturile.
- Bibliotecile precum PyTorch și TensorFlow fac acest calcul automat.
Nu confunda
- Backpropagation vs. gradient descent: backpropagation răspunde la „în ce direcție greșește fiecare pondere?”; gradient descent răspunde la „hai să facem un pas în direcția bună”.
Termeni înrudiți
- Gradient descent (coborârea gradientului): Metoda de optimizare prin care un model își ajustează ponderile în pași mici, mereu în direcția în care eroarea scade.
- Funcție de pierdere (loss): Formula care măsoară cât de greșite sunt predicțiile unui model; antrenarea înseamnă micșorarea acestui număr.
- Rețea neuronală: Model de AI format din mulți neuroni artificiali legați între ei, care învață din exemple ajustând puterea legăturilor.
- Antrenarea unui model: Procesul prin care un model AI învață din date, ajustându-și parametrii pas cu pas, ca să greșească tot mai puțin.
- Rată de învățare (learning rate): Hiperparametrul care stabilește cât de mari sunt pașii de corectare a ponderilor în timpul antrenării.