L.23Partea 4 / Limbajul
Cuprins

Rețeaua recurentă

Prima arhitectură ingenioasă capabilă să citească texte de orice lungime folosind un singur set de reguli reutilizate la fiecare pas. A dominat procesarea limbajului timp de două decenii, până când s-a izbit de propriile limite fizice: memoria care se estompează ca într-un joc de „telefonul fără fir” și neputința de a calcula în paralel pe cipurile moderne.

Termeni: stare ascunsă (memorie internă) rețea recurentă (RNN) estomparea gradientului porți selective memorie LSTM

Un carnețel purtat din pas în pas

Cum putem scăpa de tirania ferestrei fixe de cuvinte? Printr-o idee elegantă și profund umană: în loc să încercăm să cuprindem toată fraza dintr-o singură privire rigidă, citim textul cuvânt cu cuvânt, de la stânga la dreapta, exact așa cum citește un om. Pe măsură ce înaintează, rețeaua poartă cu sine un mic rezumat numeric — un fel de carnețel de notițe intern — care sintetizează tot ce a citit până în acea clipă. Acest pachet de numere poartă numele de stare ascunsă și reprezintă întreaga memorie a rețelei despre trecut.

La fiecare pas de lectură se repetă aceeași operațiune ritmică: rețeaua combină cuvântul abia sosit cu notițele de la pasul anterior, le trece printr-un strat de neuroni și produce o nouă versiune actualizată a carnețelului. O astfel de construcție se numește rețea recurentă (sau RNN), deoarece ieșirea fiecărui moment se reîntoarce ca intrare pentru pasul următor. Este exact aceeași buclă de autoreglare pe care o întâlnisem la circuitul bistabil din primele lecții: o mașină care își ține minte propria stare de la o clipă la alta.

Aceeași celulă repetată la fiecare pas; nuanțele reflectă memoria internă
6

În simularea interactivă de mai sus, am antrenat o rețea simplă cu o singură misiune: să țină minte care a fost primul simbol al șirului (A sau B) până la capătul drumului. Observați cum anumite valori din carnețelul intern rămân clar diferențiate de-a lungul întregii secvențe. Acolo stă amintirea: un ecou numeric care rezistă și este transmis mai departe de la o celulă la alta.

Aceeași mașinărie refolosită la nesfârșit

Marea frumusețe inginerească a unei rețele recurente este că nu are nevoie de parametri separați pentru primul, al doilea sau al zecelea cuvânt. Ea folosește un singur set stabil de conexiuni, refolosit identic la fiecare pas — întocmai cum filtrul de convoluție glisa pe întreaga suprafață a unei imagini.

Acest truc aduce două avantaje formidabile. În primul rând, fraza poate avea orice lungime imaginabilă: o sută, o mie sau zece mii de cuvinte, pentru că celula de procesare este aceeași. În al doilea rând, ceea ce învață rețeaua despre un verb sau o prepoziție rămâne valabil indiferent unde apare cuvântul în frază. Risipa enormă a ferestrei rigide părea să fie rezolvată definitiv pe hârtie.

Gâtuirea memoriei: cât de mult poate reține carnețelul?

Dar există o piedică fizică inevitabilă: carnețelul rețelei are o dimensiune fixă. Indiferent cât de lung și complex este textul parcurs, toată informația din paginile anterioare trebuie condensată și înghesuită în aceleași câteva sute de numere reale. Fiecare cuvânt nou sosit concurează acerb pentru spațiu cu amintirile vechi. Este ca o cameră îngustă de arhivă: pentru fiecare dosar nou pe care îl îndesi pe raft, un dosar mai vechi este împins inevitabil afară pe fereastră.

Această slăbiciune a memoriei poate fi testată cu precizie de laborator: îi dăm rețelei un șir care debutează cu „A” sau „B”, inserăm apoi o serie de simboluri aleatorii de umplutură și o întrebăm la final ce literă a fost la început. Sarcina nu presupune nicio deducție sofisticată, ci doar reținerea fidelă a unei informații pe distanță lungă.

Testul rezistenței în timp a memoriei recurente

Priviți rezultatele din tabel: precizia nu scade lin, ci se prăbușește abrupt! Până la o distanță de zece-cincisprezece pași, rețeaua răspunde impecabil; dincolo de această barieră invizibilă, performanța cade la 50%, exact ca la aruncarea la întâmplare a unei monede. Iar mărirea volumului de exemple la antrenament nu schimbă deloc acest prag. Defecțiunea este adânc înrădăcinată în chiar mecanismul matematic de învățare.

Telefonul fără fir: panta care se stinge

De unde vine această amnezie timpurie? Răspunsul se ascunde în algoritmul de propagare înapoi a erorii. Pentru ca rețeaua să realizeze că primul cuvânt a influențat greșeala comisă la final, semnalul de corecție (gradientul) trebuie să călătorească înapoi prin timp, pas cu pas, prin toate verigile intermediare. La fiecare pas înapoi, semnalul este înmulțit cu matricea de ponderi a celulei.

Ne amintim regula înmulțirilor repetate din lecția despre optimizare: dacă înmulțești repetat un număr subunitar (de pildă 0,9) de treizeci de ori cu el însuși, rezultatul tinde rapid spre zero. Dacă numărul este doar puțin supraunitar (de pildă 1,1), rezultatul explodează spre infinit! Este sindromul clasic al jocului de „telefonul fără fir” de-a lungul unui șir lung de copii: șoapta inițială fie se stinge complet până nu se mai aude nimic, fie este distorsionată grotesc.

Scăderea intensității semnalului de învățare pe măsură ce călătorește înapoi

Semnalul de corectură care reușește să ajungă la primii pași este de zeci de mii de ori mai slab decât cel de la sfârșit. Conexiunile care ar trebui să învețe să conserve amintirile vechi primesc o ajustare practic nulă. Rețeaua nu uită din răutate sau lipsă de memorie brută; ea uită fiindcă ecoul matematic al învățării se stinge pe drum și nimeni nu reușește să-i transmită că acele detalii inițiale meritau ținute minte!

Bypass-ul salvator: porțile celulei LSTM

Soluția ingenioasă la această problemă a fost formulată în 1997 de cercetătorii Sepp Hochreiter și Jürgen Schmidhuber sub numele de rețea cu memorie pe termen lung și scurt (LSTM). Ideea lor a fost să creeze o bandă transportoare paralelă (o „autostradă a memoriei”) pe care informația să poată călători nestingherită, fără a fi strivită la fiecare pas de înmulțiri succesive.

Accesul la această bandă este controlat de niște robinete inteligente numite porți: o poartă de uitare care decide ce detalii vechi pot fi șterse, o poartă de scriere care adaugă fapte proaspete și o poartă de citire care extrage ce este util pentru momentul prezent. Datorită acestei structuri cu autostradă directă, semnalul de gradient nu se mai stinge, iar rețelele LSTM au putut reține contexte mult mai lungi, dominând traducerea automată și recunoașterea vocală timp de aproape douăzeci de ani.

Zidul de netrecut: gâtuirea și prelucrarea pas cu pas

Deși arhitectura LSTM a împins considerabil capacitatea de memorare, două neajunsuri fundamentale au rămas nesoluționate și au blocat în cele din urmă progresul.

Primul este gâtuirea informațională a rezumatului unic. Oricât de rafinate sunt porțile, întregul conținut al unei cărți sau al unui document complex trebuie să fie stors și comprimat printr-un singur vector de dimensiune fixă. Ceea ce se pierde pe parcurs este pierdut pentru totdeauna; pașii ulteriori nu mai au nicio modalitate de a privi direct în urmă pentru a reciti textul original.

Al doilea obstacol s-a dovedit însă fatal pentru epoca calculatoarelor moderne: dependența strict secvențială. Pentru a procesa cuvântul numărul o mie, o rețea recurentă trebuie să fi terminat obligatoriu cuvântul nouă sute nouăzeci și nouă, deoarece are nevoie vitală de starea lui ascunsă! Este imposibil să procesezi fraza dintr-o singură lovitură în paralel. Or, procesoarele grafice moderne (GPU-urile) își trag puterea tocmai din capacitatea de a executa milioane de operații simultane pe matrici mari.

Aici s-a oprit evoluția recurenței: nu din lipsă de imaginație, ci fiindcă nu putea profita de puterea masivă a noilor cipuri paralele. Era nevoie de o revoluție completă: un mecanism care să permită fiecărui cuvânt să privească direct spre oricare alt cuvânt din frază, dintr-o singură privire globală și fără rezumate gâtuite. În lecția următoare, vom descoperi această idee care a schimbat lumea: mecanismul de atenție.