Cunoscind regulile de baza de procesare nelineara de la Munteanu pe care sunt bazate extensii ca transformer neural network, gpt 1,2,3 dalee(openai)imagen(google)… Este simplu de lamurit lucrul lor chiar in lipsa documentatiei de realizare.
Acest document descrie cele mai principale componente fara care nu pot lucra retelele neurale generative.
In primul rind reteaua neurala trebuie sa memorizeze continutul cu care va lucra. In exemplu dat avem imaginea unei mingi,
partile cele mai primitive a imaginii incepind cu primii pixel se unesc impreuna pentru a forma primele structuri sau altfel spus paterne
dupa aceasta in sloiurile urmatoare paternele se compun in noi structuri care au conectiune la sloiul de mai jos si se unesc formind noi paterne mai complexe astfel pina cind toata imaginea se stringe intrun arbore complex care reprezinta toate detaliile imaginei.
Retelele neurale de tip feedforward puteau identifica imaginea si oferia descrierea ei. Acum unul si acelasi mecanism de procesare a datelor permite in acelasi timp de detectat si de intors descrierea imaginei si la fel de generat imagine dupa descrierea introdusa de utilizator. Pentru asta reteaua neurala primeste descrierea introdusa de utilizator apoi transmite stimulul spre ierarhia cu imaginea asociata si incepind cu nivelul cel mai inalt ce descrie imaginea, stimulul trece prin toate paternele spre cel mai jos nivel difuzind detaliile asociate care in final formeaza imaginea.
Mecanismul neliniar de circulatie permite la fel ca sa reconstruiasca detaliile care lipsesc in paternul oferit de utilizator, altfel spus reflectarea orizontala. Pentru a da un exemplu mai simplu se poate descri invatarea unui simplu text ce descrie propozitia “Scaun pe plaja” si stiind ca reteaua invata prin compozitia paternelor apropiate vom obtine in primul sloi a ierarhiei paternele [Scaun pe] si [pe plaja] apoi in urmatoarul sloi din ierarhie aceste paterne se vor stringe impreuna formind paternul [[Scaun pe][pe plaja]].
In asa mod daca retelei neurale i se prezinta textul “Scaun pe” reteaua va infera( va detecta sau altfel spus va conclude) paternul[Scaun pe] apoi acest patern partial va stimula neuronul cu nivel main inalt [[Scaun pe][pe plaja]] ceia ce va servi ca context( sau cauza) si va difuza( sau altfel spus va genera, va reflecta, va intoarce, va prognoza ) asocierea paternului [pe plaja] astfel completind detaliile care lipsesc.
Reprezentarea ierarhicala a structurilor de text este mai simpla astfel cum iti poti imagina reteaua in forma 2D care are latime si inaltime unde la nivelul de jos cuvintele stau in rand si cu fiecare nou nivel mai sus aceste paterne se unesc formind paterne care descriu niste conceptii.
In cazul cu imaginile aceasta ierarhie e putin mai greu de imaginat astfel cum ea are nu doar latime, inaltime dar si adincime.
Daca prezinti retelei doar o parte din imaginea unui scaun spre exemplu, si reteaua deja are in memorie aceasta reprezentatie atunci in primul rind se detecta partea imaginei oferita de utilizator, paternele care descriu aceasta parte de imagine se infera( se conclude ) pina la cel mai inalt nivel din ierarhie apoi reprezentarea acestui patern stimuleaza din sus in jos sau altfel spus difuzeaza restul imaginei care lipseste formind un continut intreg.
Generarea imaginei cu ajutorul descrierei de text.
In cazul cind se ofera putine detalii de text pentru generarea imaginei, spre exemplu daca reteaua a invatat reprezentarea unui “scaun in bucatarie”, a unui “scaun pe plaja”, si a unei “mingi de pe plaja”, apoi utilizatorul indica prin text sa genereze un scaun, reteaua va genera scaunul dar cind va incerca sa autocompleteze toate detaliile in cazul dat vor fi doua variante, 1 asociatia vizuala cu plaja si 2 asociatia cu bucataria astfel rezultatul nu e concret si amestectat sau in cel mai bun caz se va alega prima varianta.
Daca ii vei specifica concret sa genereze scaunul pe plaja atunci va lua prioritatea imaginei invatate corespunzator si o va genera.
Daca ii vei specifica sa genereze minge pe plaja la fel va avea prioritate imaginea corecta si se va genera.
Iar daca ii vei specifica sa genereze o minge si un scaun atunci aici va fi doua variante cu prioritate si reteaua va incerca sa genereze totul impreuna.
Astfel daca tu indici ca sa se genereze imaginea unui scaun linga minge mecanismul de difuzare avind ca context scaunul si mingea si la fel stiind ca aceste contexte sunt asociate cu plaja atunci se va genera scaunul nisip in jurul sau apoi mingea si nisip in jurul ei aflinduse in aceleasi pozitii ca din imaginile originale. Cum anume se formeaza aceasta legatura daca reteaua nu a fost explicit antrenata sa genereze “scaun si minge pe plaja”. Raspunsul e simplu in reprezentarea ierarhicala se formeaza structuri relationale mai simplu spus se invata [scaun linga nisip] si [nisip linga minge] iar aceste paterne au factorul comun de legatura “nisip” care se va genera corect daca reteua a invatat mingea si scaunul in pozitii diferite, iar daca aceste imaginile invatate au aceste subiecte in acelasi loc atunci imaginea se va genera gresit.Acest mecanism de generare a imaginilor este similar cu generarea textului doar ca se lucreaza cu mai multe detalii.