L.13Partea 3 / Învățarea
Cuprins

Coborârea pantei

Funcția de cost desenează un relief plin de dealuri și văi, iar misiunea noastră este să aducem butoanele pe fundul văii, unde eroarea este minimă. Algoritmul universal care face asta — de la cea mai simplă dreaptă până la rețelele neuronale uriașe de astăzi — funcționează ca un călător prins în ceață pe munte: pipăie panta solului sub tălpi și face cu răbdare un pas la vale.

Termeni: coborârea pantei pantă · derivată gradient rată de învățare normalizare coborâre stocastică

Căutarea oarbă care devine imposibilă

Când avem doar două butoane și testăm câte o sută de poziții pentru fiecare, obținem zece mii de combinații. Un calculator modern le parcurge într-o clipită — exact așa a funcționat căutarea automată din lecția 11. Dar ce se întâmplă când modelul are zece butoane? Numărul combinațiilor sare la o sută de miliarde de miliarde.

Iar marile modele de limbaj de astăzi au sute de miliarde de parametri. Încercarea la întâmplare sau testarea tuturor combinațiilor nu mai este doar lentă, ci fizic imposibilă: numărul încercărilor ar depăși cu mult numărul atomilor din universul observabil.

Suntem nevoiți să apelăm la o strategie mult mai înțeleaptă și mai modestă: pornim dintr-un punct oarecare și facem ajustări mici, folosind exclusiv indiciile pe care le putem culege chiar acolo unde ne aflăm. Această metodă se numește coborârea pantei (sau gradient descent). Este exact ca și cum te-ai afla pe un munte învăluit într-o ceață densă: nu poți vedea satul din vale, dar dacă simți cu tălpile că pământul coboară spre stânga, faci un pas prudent în acea direcție.

Panta unui singur buton

Să simplificăm lucrurile: lăsăm un buton complet nemișcat și ne jucăm doar cu celălalt. În acel moment, costul devine o simplă curbă — o valoare a erorii pentru fiecare poziție a butonului activ. În realitate, nu cunoaștem dinainte această curbă pe de-a-ntregul; a o desena dinainte ar însemna să testăm toate pozițiile, exact risipa pe care vrem să o evităm.

Tot ce putem afla este strict local. Mișcăm butonul o fracțiune de milimetru spre stânga, apoi o fracțiune spre dreapta, și comparăm cele două costuri. Diferența ne spune imediat încotro coboară terenul și cât de repede scade eroarea. Această măsură — cu cât se modifică eroarea la o mișcare minusculă a unui parametru — este panta sau, în limbaj matematic, derivata. Nu ai nevoie de formule complicate pentru a o înțelege: derivata este pur și simplu înclinația solului pe care o simți sub picioare.

Un singur buton mișcat, restul curbei ascuns
—

Când ambele tălpi ajung la același nivel orizontal, panta devine zero: orice mișcare într-o parte sau alta ar însemna să urci. Acolo ai atins fundul văii pentru acel buton.

Gradientul: busola care arată drumul

Fiecare buton are propria sa pantă, măsurată independent, ținându-le pe celelalte nemișcate. Dacă punem laolaltă toate aceste înclinații, obținem o săgeată unică ce indică direcția în care costul crește cel mai abrupt. Această săgeată combinată se numește gradient.

Dacă avem două butoane, gradientul este o săgeată pe o hartă plană. Dacă avem un miliard de butoane, gradientul este tot o săgeată matematică, doar că trăiește într-un spațiu cu un miliard de dimensiuni. Mintea umană nu poate vizualiza un asemenea spațiu, dar algoritmul nu are nevoie să-l vadă: el are nevoie doar de cifrele acelei săgeți.

Regula de aur este fermecător de simplă: facem pasul exact în sensul opus săgeții. Calculăm gradientul în punctul în care ne aflăm, facem un pas mic la vale împotriva lui, recalculăm panta în noul loc și repetăm procesul.

Terenul costului, în ceață; apasă sau trage ca să muți poziția
terenul, văzut de sus
cele două pante, puse cap la cap

Cele două axe ale terenului sunt desenate la scări diferite, fiindcă altfel valea n-ar încăpea în imagine. Din pricina asta săgeata nu pare perpendiculară pe curbele de nivel, deși în unitățile adevărate este. Secțiunea despre scara mărimilor arată că întinderea aceasta nu e doar un accident de desen.

Lungimea pasului: rata de învățare

Cât de mare trebuie să fie pasul pe care îl facem la vale? Aceasta este singura decizie critică pe care nu o pot lua datele singure, ci trebuie aleasă de om. Ea se numește rată de învățare (sau learning rate).

Dacă rata este prea mică, pașii sunt minusculi și prudenți; coborârea este corectă, dar poate dura o veșnicie. Dacă rata este prea mare, pasul devine un salt uriaș: sari peste fundul văii și aterizezi pe versantul opus, mai sus decât ai plecat. Dacă continui așa, sari tot mai haotic dintr-o parte în alta, iar eroarea explodează în câteva secunde. Arta de a antrena rețele neuronale este, într-o măsură uriașă, arta de a regla cu măiestrie această mărime a pasului.

Coborâre completă; apasă pe teren ca să alegi punctul de plecare
măsurătorile și dreapta
terenul și urma pașilor
costul, pas cu pas
—

De ce contează scara mărimilor (normalizarea)

Apasă pe butonul „Normalizează mărimile” din figură. Acest buton schimbă unitățile de măsură: în loc de distanțe brute exprimate în zeci de kilometri, exprimăm fiecare distanță ca o abatere față de media tuturor călătoriilor. Modelul final și dreapta optimă rămân absolut neschimbate; se schimbă doar cifrele scrise pe cadranele butoanelor.

Privește însă ce se întâmplă cu relieful: în kilometri neprelucrați, valea era un canion lung, îngust și deformat. O mică rotire a pantei arunca eroarea în aer, în timp ce pornirea abia dacă mișca ceva. Coborârea se lovește continuu de pereții abrupți, înaintând într-un zigzag lent și chinuit. Când aducem datele la aceeași scară, canionul devine un castron aproape perfect rotund! Pașii se îndreaptă glonț spre fundul văii.

Numărul de pași necesari scade de zeci sau chiar sute de ori! Iată o lecție prețioasă: aceleași date și același model pot ajunge la soluție fie într-o clipă, fie după ore întregi de chin, doar din felul în care sunt calibrate scalele numerice înainte de antrenare.

Capcana văilor multiple și șeile de munte

Terenul neted cu o singură vale pe care l-am explorat până acum există pentru că modelul nostru este o simplă linie dreaptă. De îndată ce construim modele mai expresive, relieful devine accidentat, plin de dealuri, văi adânci și depresiuni locale. O bilă lăsată să se rostogolească se poate opri în prima groapă pe care o întâlnește, fără să mai ajungă la valea cea mai adâncă.

Un teren cu două văi; trage bila și dă-i drumul
Trage bila oriunde pe teren și dă-i drumul.

Această problemă pare descurajantă, dar în practică spațiile cu mii sau milioane de dimensiuni ne rezervă o surpriză plăcută: adevăratele funduri de vale izolate sunt surprinzător de rare. Cele mai multe zone plate sunt de fapt „șei de munte” (locuri care urcă într-o direcție, dar coboară în altele). În plus, chiar dacă algoritmul se oprește într-o vale secundară, în modelele uriașe calitatea soluției de acolo este aproape la fel de bună ca în oricare altă vale rezonabilă.

Cum arată coborârea la scară adevărată

Pentru a înțelege cum lucrează sistemele reale de inteligență artificială, merită să dezvăluim trei simplificări pe care le-am folosit în demonstrațiile de mai sus:

În primul rând, pantele nu se măsoară prin „pipăit” pas cu pas la fiecare buton. Dacă un model are un miliard de parametri, pipăitul ar cere două miliarde de calcule doar pentru un singur pas! În practică, pantele tuturor parametrilor se calculează simultan, dintr-o singură trecere înapoi prin model — mecanismul ingenios numit propagare înapoi, pe care îl vom descoperi în lecția 17.

În al doilea rând, terenul nu stă nemișcat. Într-un antrenament real pe milioane de texte sau imagini, costul se calculează la fiecare pas doar pe un mic pachețel de exemple alese la întâmplare. Aceasta se numește coborâre stocastică (SGD). Terenul se clatină ușor la fiecare pas, iar drumul este mai zdruncinat; dar această mișcare zgomotoasă este o binecuvântare: ajută bila să sară din micile gropi accidentale și să continue coborârea.

În sfârșit, fundul văii pe datele cunoscute nu este ținta supremă. Coborârea găsește reglajul ideal pentru exemplele pe care le-a văzut deja. Dar cum se va descurca modelul pe exemple complet noi, pe care nu le-a întâlnit niciodată? Aceasta este marea provocare a supraînvățării, pe care o vom explora chiar în lecția următoare.