Difuzie pe o mână de puncte
Iată întregul mecanism al difuziei moderne, cu calcul matematic veritabil, adus la o scară pe care o puteți urmări pas cu pas pe ecran. O rețea neuronală minusculă se antrenează în timp real să recunoască zgomotul dintr-un plan bidimensional. Din haosul inițial se cristalizează o spirală elegantă de puncte noi, care nu au existat niciodată în datele de pornire. Este momentul adevărului: putem măsura dacă mașina doar a copiat sau a înțeles structura ascunsă a lumii.
Termeni cheie: varietate de date (manifold) rețea de predicție a zgomotului câmp de direcții (score matching) distanță până la cel mai apropiat exemplu
O rețea neuronală în locul formulelor rigide
În lecția anterioară am putut folosi o formulă matematică fixă doar fiindcă știam dinainte că existau doar șase pictograme posibile. În lumea reală însă, nimeni nu poate scrie o formulă matematică pentru „toate fotografiile posibile cu pisici, apusuri de soare și chipuri umane”. Ceea ce avem la dispoziție este doar o colecție finită de exemple culese din natură.
În locul formulei așezăm așadar o rețea neuronală. Sarcina ei este simplă și limpede: primește un punct din spațiu și un anumit nivel de zgomot, iar datoria ei este să spună: „iată ce zgomot cred că a fost adăugat aici ca să se ajungă în această poziție”. Antrenarea se naște de la sine: luăm un exemplu cunoscut, alegem un nivel de zgomot la întâmplare, îl murdărim cu o cantitate precisă de purici digitali pe care o ținem minte, iar apoi provocăm rețeaua să ghicească zgomotul aplicat.
Pentru ca întregul proces să încapă intuitiv pe ecran, în loc de imagini cu milioane de pixeli lucrăm cu simple puncte într-un plan. Distribuția (sau varietatea geometrică) pe care rețeaua trebuie s-o învețe este o spirală subțire. La fel cum fotografiile reale ocupă doar o oază restrânsă și armonioasă din oceanul tuturor combinațiilor de pixeli, tot așa punctele noastre nu umplu haotic întreg planul, ci trăiesc pe o cărare grațioasă în formă de melc.
Marea naștere: din pulbere de haos se încheagă spirala
După ce s-a antrenat, rețeaua nu ține minte nicio spirală desenată dinainte. Ea știe un singur lucru: să recunoască zgomotul dintr-un punct. Și totuși, din această pricepere modestă se naște întreaga magie a generării!
Pornim cu o mână de puncte împrăștiate la întâmplare pe tot ecranul — un roi de zgomot pur. La fiecare pas, rețeaua estimează zgomotul din fiecare punct, scădem o parte din această predicție pentru a ghida punctul spre o zonă mai curată, adăugăm un strop minuscul de zgomot proaspăt și repetăm procedura pas cu pas.
Observați cele două numere din dreptul figurii, fiindcă ele dezvăluie ritmul intim al creației: raza medie a roiului se așază foarte repede aproape de valoarea firească, deoarece norul de zgomot are din start o anvergură globală similară. În schimb, procentul de puncte așezate fidel chiar pe brațele spiralei stagnează la valori mici pe trei sferturi din drum, pentru a urca exploziv abia în ultima parte a călătoriei.
Iată cum arată în cifre concrete principiul „contururile mari înaintea detaliilor fine”: anvergura generală a formei se fixează devreme, deoarece ea iese imediat în evidență din zgomot; pe care braț anume al spiralei se va așeza fiecare punct se hotărăște abia la urmă, când ceața rămasă devine mai subțire decât distanța dintre brațe.
Harta invizibilă: un câmp de forțe călăuzitoare
Rețeaua nu a învățat o listă rigidă de puncte. Ea a dobândit o hartă de navigare: pentru orice colț din plan și pentru fiecare nivel de zgomot, ea cunoaște o direcție — încotro trebuie împins un punct rătăcit pentru a-l apropia de pământul ferm al datelor reale.
Trageți de maneta nivelului de zgomot și priviți orientarea săgeților: la zgomot mare, săgețile arată toate obedient spre centrul planului — de la mare distanță, tot ce știe rețeaua este că spirala locuiește undeva în mijloc. Dar pe măsură ce zgomotul se risipește, săgețile se curbează delicat, se aliniază după brațele spiralei și împing precis spre linia ei subțire. Aceasta este întreaga înțelepciune a rețelei: nu a memorat coordonate fixe, ci o dinamică vie de mișcare.
Verdictul: memorie oarbă sau imaginație autentică?
Marea întrebare rămasă din lecția precedentă este dacă drumul invers creează ceva cu adevărat nou sau doar repetă mecanic exemplele pe care le-a văzut la antrenament. Putem răspunde fără speculații, printr-o măsurătoare geometrică riguroasă.
Pentru fiecare punct generat de rețea, căutăm cel mai apropiat punct din datele de antrenare și notăm distanța. Apoi facem exact aceeași măsurătoare pentru un eșantion de puncte *reale noi*, culese din aceeași ecuație a spiralei, dar pe care rețeaua nu le-a văzut niciodată. Dacă modelul ar copia orbește exemplele, distanțele sale ar fi minuscule — practic zero.
Priviți cifrele: distanțele sunt de același ordin de mărime! Rețeaua nu a memorat spirala punct cu punct; ea a înțeles structura geometrică a formei și poate așeza puncte pe brațele ei în locuri unde nu i s-a arătat niciodată vreun exemplu. Raportul dintre cele două mediane, afișat sub tabel, confirmă că punctele generate se bucură de aceeași libertate spațială ca datele naturale.
Faptul că unele puncte se nimeresc foarte aproape de un exemplu nu este o dovadă de copiere: exemplele reale stau ele însele adesea înghesuite la distanțe mici unele de altele. Tabelul le pune alături tocmai pentru a vă oferi un termen onest de comparație.
Măsurătoarea de aici testează noutatea, nu perfecțiunea execuției. Fiindcă rețeaua din pagină este minusculă și s-a antrenat în doar câteva clipe în browserul dumneavoastră, unele puncte cad pe lângă spirală. Cifrele din tabel reflectă transparent câte puncte au nimerit brațele și câte s-au rătăcit.
Până acum, modelul a desenat liber tot ce știa, fără nicio preferință. În lecția următoare vom adăuga o baghetă călăuzitoare: un text descriptiv care să tragă pensula difuziei către o anumită formă dorită, și vom descoperi ce se întâmplă când forțăm prea tare această călăuzire.