{"componentChunkName":"component---src-templates-part-template-js","path":"/ro/5","result":{"data":{"allParts":{"totalCount":6},"allSections":{"totalCount":4,"edges":[{"node":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"lead","properties":{},"children":[{"type":"text","value":"Tema pe care o vom aborda în continuare, învățarea profundă și rețelele neuronale, stârnește, de obicei mai mult interes decât multe altele din domeniu."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Și asta poate pentru că sperăm să ne înțelegem propria minte, care decurge din procesul neuronal al creierului. Un alt motiv este faptul că, în ultimii ani, învățarea automată a progresat mult prin combinarea unor seturi masive de date și a unor tehnici de învățare profundă."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{},"children":[{"type":"text","value":"Ce sunt rețelele neuronale?"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Pentru a înțelege mai bine întregul, vom începe prin a discuta fiecare componentă în parte. O rețea neuronală poate însemna fie o rețea neuronală „reală”, biologică, precum cea din creier, fie o rețea neuronală artificială, simulată pe calculator."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"key-terminology","properties":{"terminologies":"[{\n\t\"title\": \"Învățarea profundă\",\n\t\"content\": \"Învățarea profundă se referă la anumite tipuri de tehnici de învățare automată în care mai multe „straturi” de unități de prelucrare simple sunt conectate în rețea, astfel încât intrările în sistem sunt transmise pe rând de fiecare dintre ele. Această arhitectură s-a inspirat din prelucrarea informațiilor vizuale la nivelul creierului, informații care trec prin ochi și sunt captate de retină. Datorită acestei adâncimi, rețeaua poate învăța structuri complexe, fără să aibă nevoie de cantități inimaginabile de date.\"},{\n\t\"title\": \"Neuroni, corpuri celulare și semnale\",\n\t\"content\": \"O rețea neuronală, indiferent dacă e biologică sau artificială, este alcătuită dintr-un număr mare de unități simple, numite neuroni, care primesc semnale unii de la alții și le transmit mai departe. Neuronii sunt elemente foarte simple de tratare a informațiilor: sunt alcătuiți dintr-un corp celular și din fire care îi leagă între ei. În cea mai mare parte a timpului, doar stau și așteaptă semnale.\"},{\n\t\"title\": \"Dendrite, axoni și sinapse\",\n\t\"content\": \"În jargonul biologic, dendritele sunt fire care aduc informații în neuroni. Uneori, în funcție de impulsul primit, neuronul poate fi activat și poate transmite un semnal altor neuroni. Firul care transmite semnalul de ieșire se numește axon. Fiecare axon este conectat la una sau mai multe dendrite prin acele puncte de intersecție denumite sinapse.\"}]"},"children":[{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"De unul singur, un neuron este destul de puțin impresionant: comportamentul său este foarte limitat. Când însă neuronii sunt legați între ei, sistemul care rezultă în urma acțiunii lor comune poate deveni extrem de complex. Pentru a dovedi acest lucru, nu trebuie să căutăm prea departe (ca să folosim un termen juridic): „Proba A”: creierul dumneavoastră! Sistemul se comportă în funcție de modul în care sunt legați neuronii. Fiecare neuron reacționează la semnalele primite într-un anumit mod care, în timp, se poate adapta. Această adaptare este cunoscută ca fiind cheia unor funcții precum memoria și învățarea."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"quiz","properties":{"quizid":"db8350ff-d02e-5d17-80e5-539d2a57de07"},"children":[{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{},"children":[{"type":"text","value":"De ce să dezvoltăm rețele neuronale artificiale?"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Construcția de modele artificiale ale creierului poate fi utilă pentru neuroștiințe – studiul creierului și al sistemului nervos, în general. Este tentant să credem că, atunci când vom reuși să cartografiem creierul uman suficient de detaliat, vom descoperi secretele spiritului și ale conștiinței umane și animale."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"illustrations","properties":{"motive":"brain"},"children":[]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n  "},{"type":"element","tagName":"note","properties":{"heading":"Modelarea creierului","description":"<a target='_blank' rel='noopener noreferrer' href='https://www.braininitiative.nih.gov'>Inițiativa BRAIN</a>, care le aparține unor cercetători americani din domeniul neuroștiințelor, promovează tehnologii de imagistică, modelare și simulare a creierului la o scară mai mare și mai detaliată decât înainte. Unele proiecte de cercetare a creierului își propun obiective foarte ambițioase. <a target='_blank' rel='noopener noreferrer' href='https://www.youtube.com/watch?v=JqMpGrM5ECo'>Proiectul „Creierul uman”</a> promitea, în urmă cu aproximativ 5 ani, că „misterele minții vor fi deslușite... în curând”. După ani de muncă la acest proiect, lumea a început să se întrebe când vor apărea rezultatele, pentru că <a target='_blank' rel='noopener noreferrer' href='https://www.scientificamerican.com/article/why-the-human-brain-project-went-wrong-and-how-to-fix-it/'>Uniunea Europeană investise deja miliarde de euro</a>. Dacă ar fi însă să fim sinceri, anumite obiective mai puțin ambițioase au fost atinse."},"children":[{"type":"text","value":"\n  "}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Chiar dacă se pare că suntem la fel de departe de a înțelege spiritul și conștiința, e clar că s-au parcurs anumite etape în domeniul neuroștiințelor. Pentru că înțelegem mai bine structura și funcția creierului, obținem deja o serie de recompense concrete. Putem, de exemplu, să identificăm erori de funcționare a creierului și să încercăm să îl ajutăm să le evite și să funcționeze din nou în parametri normali. Se deschide astfel calea către noi tratamente medicale pentru persoanele care suferă de tulburări neurologice: epilepsie, Alzheimer, probleme cauzate de tulburări de dezvoltare sau de leziuni etc."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n  "},{"type":"element","tagName":"note","properties":{"heading":"Perspective: interfața om-calculator","description":"Una dintre direcțiile de cercetare în domeniul neuroștiințelor este interfața om-calculator, prin care omul să poată interacționa cu un calculator doar prin gânduri. Interfețele actuale sunt foarte limitate și pot fi utilizate, de exemplu, pentru <a target='_blank' rel='noopener noreferrer' href='https://www.youtube.com/watch?v=Ecvv-EvOj8M'>a reconstitui, într-o formă aproximativă, ceea ce vede o persoană</a> sau pentru <a target='_blank' rel='noopener noreferrer' href='https://www.youtube.com/watch?v=7t84lGE5TXA'>a controla un braț robotic sau o dronă doar prin gânduri</a>. Poate că într-o bună zi vom putea construi efectiv o mașină care să ne citească gândurile și care să poată formula ordine precise. Pentru moment însă, acest tip de mașină este de domeniul științifico-fantastic. De asemenea, este posibil ca în viitor să îi transmitem creierului informații stimulându-l cu mici impulsuri electronice. În prezent, acest tip de stimulare este utilizată în scopuri terapeutice. Furnizarea de informații detaliate, cum ar fi cuvinte, idei, amintiri sau emoții sunt, cel puțin pentru moment, mai degrabă SF decât realitate, dar, în mod evident, nu cunoaștem limitele unei astfel de tehnologii și nici cât de greu este să ajungem acolo."},"children":[{"type":"text","value":"\n  "}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Ne-am îndepărtat puțin de la tema cursului. De fapt, un alt motiv important pentru care construim rețele neuronale artificiale nu are prea mult de a face cu înțelegerea sistemelor biologice. Ideea este să folosim sistemele biologice ca sursă de inspirație pentru a construi tehnici de învățare automată și de IA. Ideea este foarte naturală: creierul este un sistem foarte complex de prelucrare a informațiilor, capabil de o gamă largă de comportamente inteligente (la care se adaugă ocazional unele nu foarte inteligente) și, prin urmare, este logic că acesta ne servește drept sursă de inspirație atunci când încercăm să creăm sisteme inteligente în mod artificial."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Încă din anii 1960, rețelele neuronale se numără printre tendințele majore din IA. Vom reveni la valurile de popularitate din istoria IA în partea finală. Astăzi, rețelele de tip neuronal se află din nou în fruntea listei, pentru că învățarea profundă este utilizată pentru a realiza îmbunătățiri semnificative în multe domenii, cum ar fi limbajul natural și prelucrarea imaginilor, care, în mod tradițional, au fost puncte slabe ale IA."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{},"children":[{"type":"text","value":"De ce sunt atât de speciale rețelele neuronale?"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Cazul rețelelor neuronale ca abordare a IA se bazează pe un argument similar celui utilizat pentru abordările bazate pe logică. În acest ultim caz, s-a considerat că, pentru a obține o inteligență comparabilă cu cea umană, trebuie să simulăm procesele de reflecție de nivel superior, în special manipularea simbolurilor care reprezintă anumite concepte concrete sau abstracte utilizând reguli logice."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Argumentul rețelelor neuronale este că, prin simularea prelucrării datelor de nivel inferior, „subsimbolic”, la nivelul neuronilor și al rețelelor neuronale, va apărea inteligența. Totul pare foarte rezonabil, dar să nu uităm că, pentru a construi aparate de zbor, nu construim avioane care dau din aripi sau care au oase, mușchi și pene. Tot astfel, în cazul rețelelor neuronale artificiale, mecanismul intern al neuronilor este, de multe ori, ignorat, iar neuronii artificiali sunt deseori mult mai simpli decât cei naturali. Și mecanismele electrochimice de semnalizare între neuronii naturali sunt ignorate în mare măsură în modelele artificiale, pentru că obiectivul este mai degrabă construcția de sisteme de IA decât simularea de sisteme biologice."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Comparativ cu modul tradițional de funcționare a calculatoarelor, modul de funcționare a rețelelor neuronale prezintă anumite particularități:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{},"children":[{"type":"text","value":"Caracteristica nr. 1 a rețelelor neuronale"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"În primul rând, într-un calculator tradițional, informațiile sunt prelucrate de un procesor central (unitatea centrală de procesare sau, pe scurt, CPU) care se concentrează pe un singur lucru în același timp. CPU poate prelua datele care urmează să fie prelucrate din memoria calculatorului și poate stoca rezultatul în memorie. Astfel, de stocarea și prelucrarea datelor se ocupă două componente distincte ale calculatorului: memoria și CPU. În cazul rețelelor neuronale, sistemul este format dintr-un număr mare de neuroni, fiecare dintre aceștia putând prelucra separat informații, astfel încât, în loc să avem un CPU care prelucrează informațiile una după alta, neuronii prelucrează simultan cantități mari de informații."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{},"children":[{"type":"text","value":"Caracteristica nr. 2 a rețelelor neuronale"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"A doua diferență constă în faptul că stocarea datelor (memoria) și prelucrarea nu sunt separate, ca în calculatoarele tradiționale. Neuronii îndeplinesc ambele funcții, de stocare și de prelucrare a informațiilor, astfel încât datele nu trebuie preluate din memorie pentru a fi prelucrate. Pe termen scurt, datele pot fi stocate chiar în neuroni (care declanșează sau nu semnale într-un anumit moment), iar pe termen mai lung, în conexiunile dintre neuroni, așa-numitele „greutăți sau ponderi”, despre care vom discuta în continuare."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Din cauza acestor două diferențe, rețelele neuronale și calculatoarele tradiționale sunt potrivite fiecare pentru sarcini oarecum diferite. Rețelele neuronale se pot simula cu ajutorul calculatoarelor tradiționale, așa cum se întâmplă de mult timp, însă capacitatea lor maximă este atinsă numai atunci când folosim un hardware special (un dispozitiv informatic) care poate procesa informații numeroase în același timp. Este ceea ce se numește "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"prelucrare paralelă"}]},{"type":"text","value":". De altfel, procesoarele grafice (sau unitățile de procesare grafică) au această capacitate și au devenit o soluție rentabilă pentru aplicarea unor metode complexe de învățare profundă."}]}],"data":{"quirksMode":false}},"excerpt":"Și asta poate pentru că sperăm să ne înțelegem propria minte, care decurge din procesul neuronal al creierului. Un alt motiv este faptul că…","frontmatter":{"path":"/ro/5/1","title":"Elemente de bază ale rețelelor neuronale","part":5,"type":"section","section":1,"lang":"ro"}}},{"node":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"lead","properties":{},"children":[{"type":"text","value":"Așa cum explicam mai devreme, neuronii sunt unități foarte simple de prelucrare a informației. Pornind de la explicațiile privind regresia liniară și regresia logistică din capitolul 4, putem spune că în esență detaliile tehnice ale rețelelor neuronale sunt variații ale aceluiași principiu."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n  "},{"type":"element","tagName":"note","properties":{"heading":"Ponderi și intrări","description":"Modelul de bază al unui neuron artificial este construit pe un set de parametri ajustabili, denumiți ponderi, la fel ca în regresia liniară și în regresia logistică. Tot ca în cazul regresiei, aceste ponderi sunt utilizate ca multiplicatori pentru intrările neuronului, care sunt apoi adunate. Suma ponderilor înmulțite cu intrările poartă numele de combinație liniară a intrărilor. Probabil vă amintiți analogia cu lista de cumpărături: înmulțiți cantitatea din fiecare categorie cu prețul unitar, apoi faceți adunarea pentru a obține suma totală."},"children":[]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Dacă avem un neuron cu șase intrări (similare cu cele șase articole din lista de cumpărături: cartofi, morcovi etc.), intrarea1, intrarea2, intrarea3, intrarea4, intrarea5 și intrarea6, avem nevoie de un număr egal de ponderi, adică șase ponderi. Ponderile au un rol asemănător prețurilor articolelor. Să le numim ponderea1, ponderea2, ponderea3, ponderea4, ponderea5 și ponderea6. În plus, e preferabil, de regulă, să includem în ecuație o constantă, așa cum am făcut în cazul regresiei liniare. Putem să ne-o imaginăm ca pe un cost fix suplimentar, cum este, de exemplu, comisionul perceput atunci când plătim cu cardul de credit."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Putem apoi să calculăm combinația liniară după cum urmează: combinația liniară = constanta + ponderea1 × intrarea1 +... + ponderea6 × intrarea6 (unde ... este o notație prescurtată care înseamnă că suma include toți termenii de la 1 la 6)."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Introducând câteva valori aleatoare, am putea apoi obține:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n  "},{"type":"element","tagName":"codesnippet","properties":{"text":"10.0 + 5.4 × 8 + (-10.2) × 5 + (-0.1) × 22 + 101.4 × (-5) + 0.0 × 2 + 12.0 × (-3) = -543.0"},"children":[]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"quiz","properties":{"quizid":"85c43670-a892-5273-babe-451824cb448d"},"children":[{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Ponderile sunt aproape întotdeauna învățate din date prin aplicarea acelorași principii ca cele utilizate în cazul regresiei liniare sau al regresiei logistice, așa cum explicam mai devreme. Dar înainte de a aborda mai în detaliu acest subiect, ne vom apleca asupra unei alte etape importante pe care o parcurge un neuron înainte de a trimite un semnal de ieșire."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{},"children":[{"type":"text","value":"Activări și ieșiri"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"După ce a calculat combinația liniară, neuronul mai face o operație. Ia combinația liniară și o trece printr-o așa-numită funcție de activare. Exemple tipice de funcție de activare sunt:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"funcția identitate: nu face nimic și dă ca ieșire combinația liniară"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"funcția prag: dacă valoarea combinației liniare este mai mare de zero, trimite un impuls (ON/pornit), dacă nu, nu face nimic (OFF/oprit)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"funcția sigmoidă: o versiune mai laxă a funcției prag"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"De remarcat că, aplicând prima funcție de activare, funcția identitate, neuronul rămâne exact la fel ca în regresia liniară. Din acest motiv, funcția identitate este rar utilizată în rețelele neuronale: nu aduce nimic nou și interesant."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n  "},{"type":"element","tagName":"note","properties":{"heading":"Cum sunt activați neuronii","description":"Neuronii reali, biologici comunică între ei trimițându-și impulsuri electrice ascuțite denumite „vârfuri” sau „spikes”, astfel încât, în orice moment, semnalul lor de ieșire este fie ON/pornit, fie OFF/oprit (1 sau 0). Funcția prag imită acest comportament. Însă rețelele neuronale artificiale tind să utilizeze funcții de activare continue, precum funcția sigmoidă. Astfel, dacă folosim o analogie puțin stângace, neuronii reali comunică prin semnale asemănătoare codului Morse, în timp ce neuronii artificiali comunică ajustându-și înălțimea vocii ca și cum ar cânta un jodel."},"children":[]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"illustrations","properties":{"motive":"carstop","color":"#ebe9ef","frombottom":"0","totalheight":"35%"},"children":[]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Ieșirea neuronului, determinată de combinația liniară și de funcția de activare, poate fi utilizată pentru a face o predicție sau a lua o decizie. De exemplu, dacă rețeaua este gândită astfel încât să permită unei mașini autonome să identifice un indicator rutier STOP aflat în fața ei, intrarea poate fi reprezentată de pixelii unei imagini provenite de la o cameră de filmat montată în partea frontală a mașinii, iar ieșirea poate fi utilizată pentru a activa o procedură de oprire a mașinii înainte ca aceasta să ajungă în dreptul semnului."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"O rețea învață sau se adaptează atunci când ponderile sunt ajustate astfel încât rețeaua să producă ieșirile corecte, la fel ca în regresia liniară sau logistică. Multe rețele neuronale sunt foarte mari, iar cele mai mari conțin sute de miliarde de ponderi. Optimizarea tuturor acestor ponderi poate fi o sarcină dificilă, care necesită o putere de calcul formidabilă."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n  "},{"type":"element","tagName":"exercise22","properties":{"quizid":"1fa9f09e-cc21-5bfc-8797-81ab48422e5a"},"children":[]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{},"children":[{"type":"text","value":"Perceptronul: baza tuturor rețelelor neuronale artificiale (RNA)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Perceptronul este doar un nume pretențios dat modelului de rețea neuronală simplă, care aplică funcția de activare prag discutată mai sus. Perceptronul a fost unul dintre primele modele formale de calcul neuronal și, dat fiind rolul său fundamental în istoria rețelelor neuronale, nu ar fi greșit să îl numim „baza tuturor rețelelor neuronale artificiale”."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Perceptronul poate fi utilizat ca un clasificator simplu pentru sarcini de clasificare binară. Psihologul Frank Rosenblatt a inventat în 1957 o metodă care permitea învățarea ponderilor perceptronului din datele existente, numită algoritmul Perceptron. Nu vom studia în detaliu algoritmul Perceptron. Este suficient să spunem că este la fel de simplu ca și clasificatorul bazat pe vecinii cei mai apropiați. Principiul de bază constă în a „hrăni” rețeaua cu date de antrenament, una câte una. Orice eroare de clasificare duce la actualizarea ponderii."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n  "},{"type":"element","tagName":"note","properties":{"heading":"Hiperbola mediatică creată în jurul IA","description":"După descoperirea sa, algoritmul Perceptron s-a bucurat de un interes larg, nu în ultimul rând datorită declarațiilor optimiste ale inventatorului său, Frank Rosenblatt. Un exemplu clasic de hiperbolă mediatică în jurul IA îl reprezintă un articol publicat în New York Times la 8 iulie 1958:<br>„Marina militară a divulgat astăzi că lucrează la dezvoltarea unui computer electronic, aflat încă în stadiu embrionar, care se pare că va putea să meargă, să vorbească, să vadă, să se reproducă și să fie conștient de propria sa existență.”<br><br>De remarcat că o astfel de știre stârnește entuziasm nu numai în rândul celor pasionați de rețelele neuronale. Sistemele expert bazate pe logică au trecut, în istoria IA, prin aceleași etape de glorie și decădere ca cele pe care le recunoaștem în hiperbola mediatică creată în jurul IA, și mulți au fost cei care au susținut la vremea respectivă că eram în pragul unei descoperiri epocale. Dimpotrivă, atât la începutul anilor '60, cât și la sfârșitul anilor '80, rezultatul a fost prăbușirea finanțării pentru cercetare, denumită și „iarna IA” sau anii vitregi ai IA."},"children":[]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Istoria dezbaterii care, în cele din urmă, a făcut ca, în anii ’60, abordarea bazată pe rețelele neuronale să fie aproape complet abandonată pentru mai bine de 20 de ani este extrem de fascinantă. Articolul "},{"type":"element","tagName":"i","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"http://journals.sagepub.com/doi/10.1177/030631296026003005","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"„A Sociological Study of the Official History of the Perceptrons Controversy” (Un studiu sociologic al istoriei oficiale a controversei privind perceptronii)"}]}]},{"type":"text","value":", semnat de Mikel Olazaran (publicat în revista "},{"type":"element","tagName":"i","properties":{},"children":[{"type":"text","value":"Social Studies of Science"}]},{"type":"text","value":", 1996), relatează evenimentele din punctul de vedere al sociologiei științei. Este un articol care, citit acum, invită la reflecție. Povestirile cu eroi IA care au dezvoltat algoritmi de rețele neuronale proiectate să rivalizeze în scurt timp cu inteligența umană și să devină conștiente de propria lor existență pot fi comparate cu unele dintre declarațiile exagerate făcute astăzi în spațiul public. Chiar dacă nu îl citiți în întregime, articolul menționat mai sus vă va oferi o perspectivă interesantă asupra știrilor din presa de azi. Să luăm de exemplu un "},{"type":"element","tagName":"a","properties":{"href":"https://www.technologyreview.com/s/608911/is-ai-riding-a-one-trick-pony/","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"articol publicat în revista MIT Technology Review"}]},{"type":"text","value":" în septembrie 2017, în care Jordan Jacobs, cofondatorul Vector Institute for AI, un institut cu cifră de afaceri de ordinul milioanelor de dolari, îl compară pe Geoffrey Hinton (una dintre figurile reprezentative ale actualei ascensiuni a interesului față de învățarea profundă) cu Einstein, invocând contribuția pe care a avut-o acesta la dezvoltarea algoritmilor de rețele neuronale începând cu anii ’80. Vă reamintesc și proiectul Human Brain (Creierul uman) menționat în secțiunea anterioară.."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"În opinia lui Hinton, „faptul că [sistemul] nu funcționează este doar o mică problemă temporară” (deși, potrivit articolului, Hinton face declarația de mai sus râzând, așadar e greu de zis cât de serios este în ce spune). Proiectul „Creierul uman” susține că "},{"type":"element","tagName":"a","properties":{"href":"https://www.humanbrainproject.eu/en/follow-hbp/news/the-quest-for-consciousness/","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"„este în pragul unei descoperiri profunde care ar putea transforma felul în care înțelegem conștiința”"}]},{"type":"text","value":". Vă sună cunoscut, așa-i?"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Nimeni nu știe cu certitudine ce ne rezervă viitorul, dar declarațiile anterioare privind iminența unor descoperiri epocale ne invită să ne exercităm simțul critic. Vom reveni asupra viitorului IA în capitolul final, însă, deocamdată, să vedem cum sunt construite rețelele neuronale artificiale."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{},"children":[{"type":"text","value":"Neuroni interconectați: rețele"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Un singur neuron ar fi o structură mult prea simplă pentru a lua decizii și a face predicții fiabile în majoritatea aplicațiilor din viața reală. Pentru a exploata întregul potențial al rețelelor neuronale, putem folosi ieșirea unui neuron drept intrare pentru alți neuroni, ale căror ieșiri pot constitui intrările pentru alți neuroni și tot așa. Ieșirea întregii rețele astfel constituite este ieșirea unui anumit subset de neuroni, care formează așa-numitul strat de ieșire. Vom reveni asupra acestui aspect după ce vom fi discutat modul în care rețelele neuronale se adaptează pentru a produce diferite comportamente învățându-și parametrii din date."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"key-terminology","properties":{"terminologies":"[\n      {\"title\":\"Straturi\",\"content\":\"De multe ori arhitectura unei rețele este alcătuită din straturi. Stratul de intrare este alcătuit din neuroni care își iau intrările direct din date. Astfel, de exemplu, pentru a îndeplini sarcina de recunoaștere a unei imagini, stratul de intrare utilizează ca intrări valorile pixelilor imaginii de intrare. De regulă, rețeaua are și straturi ascunse care folosesc ieșirile celorlalți neuroni ca intrări și ale căror ieșiri sunt utilizate ca intrări pentru alte straturi de neuroni. În fine, stratul de ieșire dă ieșirea întregii rețele. Toți neuronii dintr-un anumit strat primesc intrări de la neuronii de pe stratul anterior și ieșirile lor alimentează stratul următor.\"}\n  ]"},"children":[{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Un exemplu clasic de rețea multistratificată este așa-numitul perceptron multistrat. Așa cum arătam mai sus, algoritmul Perceptron al lui Rosenblatt poate fi utilizat pentru a învăța ponderile unui perceptron. În cazul perceptronului multistrat, învățarea este un proces mult mai dificil și a durat mult timp până s-a descoperit o soluție acceptabilă, dar, în cele din urmă, aceasta a fost găsită. Algoritmul de propagare înapoi a dus la sfârșitul anilor ’80 la renașterea interesului pentru rețelele neuronale și este în continuare un algoritm central utilizat în multe dintre cele mai avansate soluții de învățare profundă."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n  "},{"type":"element","tagName":"note","properties":{"heading":"Între timp, la Helsinki...","description":"Procesul de descoperire a algoritmului de propagare înapoi a fost destul de lung și sinuos. Un amănunt interesant din istoria sa este legat de departamentul de informatică al Universității din Helsinki. La aproximativ trei ani de la înființarea departamentului în 1967, un student pe nume Seppo Linnainmaa își scria <a target='_blank' rel='noopener noreferrer' href='http://people.idsia.ch/~juergen/linnainmaa1970thesis.pdf'>teza de masterat</a> intitulată „Eroarea de rotunjire cumulativă a algoritmilor ca aproximare Taylor a erorilor de rotunjire individuale” (teza a fost scrisă în finlandeză, așadar aceasta este traducerea titlului original „Algoritmin kumulatiivinen pyöristysvirhe yksittäisten pyöristysvirheiden Taylor-kehitelmänä”).<br><br>\nMetoda diferențierii automate dezvoltată în teză a fost aplicată ulterior de alți cercetători pentru a cuantifica sensibilitatea ieșirii unei rețele neuronale multistrat în raport cu ponderile individuale, acesta fiind principiul central al retropropagării."},"children":[]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{},"children":[{"type":"text","value":"Un clasificator simplu de rețea neuronală"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Pentru a da un exemplu relativ simplu de utilizare a unui clasificator de rețea neuronală, vom analiza o sarcină foarte similară cu cea care constă în recunoașterea cifrelor MNIST, respectiv clasificarea imaginilor în două clase. Vom crea mai întâi un clasificator care să stabilească dacă o imagine reprezintă un „x” sau un „o”. Imaginile noastre sunt reprezentate aici ca pixeli care sunt fie colorați, fie albi, aranjați într-o grilă 5 × 5. În acest format, imaginile noastre cu x și o (de fapt trebuie să recunoaștem că acest cerc seamănă mai mult cu un romb în imagine) arată așa:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n  "},{"type":"element","tagName":"exercise23a","properties":{},"children":[]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Pentru a construi un clasificator de rețea neuronală, trebuie să formalizăm problema astfel încât să o putem rezolva utilizând metodele pe care le-am învățat. Un prim pas constă în a reprezenta informațiile din pixeli prin valori numerice care pot fi utilizate ca intrare pentru un clasificator. Să folosim, de exemplu, 1 pentru pătratele colorate și 0 pentru pătratele albe. Rețineți că, deși simbolurile din graficul de mai sus au culori diferite (verzi și albastre), clasificatorul nostru va ignora informațiile privind culoarea și va utiliza doar informația care indică dacă ele sunt colorate sau albe. Cei 25 de pixeli din imagine reprezintă intrările clasificatorului nostru."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Pentru a fi siguri că știm ce corespunde fiecărui pixel din reprezentarea numerică, putem decide să enumerăm pixelii în ordinea în care am citi un text, adică rând cu rând începând cu rândul de sus și de la stânga la dreapta. Primul rând din imaginea cu x, de exemplu, este reprezentat ca 1,0,0,0,1; al doilea rând ca 0,1,0,1,0, și așa mai departe. Intrarea completă pentru intrarea cu x este așadar: 1,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,1."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Vom utiliza modelul neuronal de bază, în care prima etapă constă în calcularea combinației liniare a intrărilor. Avem așadar nevoie de o pondere pentru fiecare pixel de intrare, adică în total 25 de ponderi."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"La sfârșit, folosim funcția de activare prag. Dacă combinația liniară este negativă, activarea neuronului este zero, număr pe care îl desemnăm să reprezinte x-ul. Dacă combinația liniară este pozitivă, activarea neuronului este unu, număr pe care îl desemnăm să reprezinte o-ul."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Să vedem ce se întâmplă atunci când toate ponderile iau aceeași valoare numerică, 1. În acest caz, combinația noastră liniară pentru imaginea cu x va fi 9 (9 pixeli colorați, adică 9 × 1 și 16 pixeli albi, 16 × 0), iar pentru imaginea cu o, va fi 8 (8 pixeli colorați, 8 × 1 și 17 pixeli albi, 17 × 0). Cu alte cuvinte, combinația liniară este pozitivă pentru ambele imagini și, așadar, ambele sunt clasificate ca x-uri. Nu este un rezultat foarte bun dacă ne gândim că nu a trebuit să clasificăm decât două imagini."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Pentru a îmbunătăți acest rezultat, trebuie să ajustăm ponderile astfel încât combinația liniară să fie negativă pentru imaginea cu x și pozitivă pentru imaginea cu o. Dacă ne gândim care sunt elementele care diferențiază imaginea lui x de cea a lui o, putem vedea că o nu are pixeli colorați în centru, în timp ce x da. În plus, pixelii din colțurile imaginii sunt colorați în cazul lui x și albi în cazul lui o."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Putem acum ajusta ponderile. Putem utiliza un număr infinit de ponderi. De exemplu, se atribuie ponderea -1 pixelului din centru (al 13-lea pixel), ponderea 1 pixelilor situați la mijlocul fiecăreia dintre cele 4 laturi ale imaginii, iar 0 – tuturor celorlalți pixeli. Acum pentru intrarea cu x, pixelul din centru produce valoarea -1, în timp ce pentru toți ceilalți pixeli fie valoarea pixelilor, fie ponderea este 0, astfel încât -1 este și valoarea totală. Aceasta duce la o activare 0, iar x-ul este clasificat în mod corect."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Ce se întâmplă însă cu imaginea cu o? Fiecare dintre pixelii din mijlocul laturilor produce valoarea 1, ceea ce înseamnă 4 × 1 = 4 în total. Pentru toți ceilalți pixeli, fie valoarea pixelilor, fie ponderea este egală cu zero, deci 4 este suma totală. Cum 4 este o valoare pozitivă, activarea este 1, iar o-ul este și el recunoscut în mod corect."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{},"children":[{"type":"text","value":"Mulțumiți?"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Vom urmări acum un raționament similar pentru a construi un clasificator pentru emoticoane. Puteți atribui ponderi pixelilor de intrare din imagine făcând clic pe aceștia. Dacă faceți clic o singură dată, ponderea este 1, dacă mai faceți clic o dată este -1. Activarea 1 indică faptul că imaginea este clasificată ca un emoticon reprezentând o față fericită, care poate fi sau nu rezultatul corect, în timp ce activarea -1 indică faptul că imaginea este clasificată ca un emoticon reprezentând o față tristă."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Nu vă descurajați dacă nu puteți clasifica în mod corect toate emoticoanele: este, de fapt, o sarcină imposibilă pentru clasificatorul nostru simplu! Acesta este un obiectiv important al învățării: uneori clasificarea perfectă nu este posibilă deoarece clasificatorul este prea simplu. În acest caz, neuronul simplu care utilizează o combinație liniară a intrărilor este prea simplu pentru sarcina dată. Observați cum ați putea construi clasificatori care dau rezultate fiabile în diferite cazuri: unii clasifică în mod corect majoritatea emoticoanelor care reprezintă fețe fericite, dar nu identifică în mod corect fețele triste sau invers."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Puteți să obțineți un scor de 6/8 răspunsuri corecte la identificarea fețelor fericite și a celor triste?"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n  "},{"type":"element","tagName":"exercise23b","properties":{},"children":[]},{"type":"text","value":"\n"}]}],"data":{"quirksMode":false}},"excerpt":"Dacă avem un neuron cu șase intrări (similare cu cele șase articole din lista de cumpărături: cartofi, morcovi etc.), intrarea1, intrarea…","frontmatter":{"path":"/ro/5/2","title":"Cum sunt construite rețelele neuronale?","part":5,"type":"section","section":2,"lang":"ro"}}},{"node":{"htmlAst":{"type":"root","children":[{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"lead","properties":{},"children":[{"type":"text","value":"În secțiunea precedentă, am explicat principiile de bază pe care le regăsim în majoritatea metodelor folosite de rețelele neuronale: rețelele multistrat, funcțiile de activare neliniare și regulile de învățare, cum ar fi algoritmul de retropropagare. "}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Sunt metode care sunt folosite de aproape toate aplicațiile moderne bazate pe rețele neuronale. Există însă și unele variații interesante pe această temă, cu impact puternic, care au contribuit la realizarea unor progrese importante în învățarea profundă în multe domenii."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{},"children":[{"type":"text","value":"Rețele neuronale convoluționale (CNN)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Un domeniu în care învățarea profundă a dat rezultate spectaculoase este procesarea imaginilor. Clasificatorul simplu pe care l-am studiat în detaliu în secțiunea anterioară este extrem de limitat – după cum ați văzut, nici măcar nu a putut să clasifice corect toate emoticoanele. Problema e rezolvată în principiu dacă adăugăm mai multe straturi în rețea și utilizăm retropropagarea pentru a învăța ponderile, dar apoi ne confruntăm cu o altă problemă: numărul ponderilor devine extrem de mare și, prin urmare, volumul de date de antrenament necesare pentru a ajunge la o precizie satisfăcătoare poate deveni prea mare pentru a putea fi realist."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Din fericire, există o soluție foarte elegantă la problema unui număr prea mare de ponderi: un anumit tip de rețea neuronală sau, mai degrabă, un strat special care poate fi inclus într-o rețea neuronală profundă. Acest strat special poartă numele de "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"strat convoluțional"}]},{"type":"text","value":". Rețelele care includ straturi convoluționale sunt denumite "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"rețele neuronale convoluționale"}]},{"type":"text","value":" ("},{"type":"element","tagName":"em","properties":{},"children":[{"type":"text","value":"convolutional neural networks"}]},{"type":"text","value":", CNN). Principala lor proprietate este aceea că pot detecta caracteristici ale imaginii cum ar fi prezența unor pete luminoase sau întunecate (sau de o anumită culoare), prezența unor unghiuri care apar în funcție de orientarea imaginii, prezența unor regularități etc. Pe baza acestor caracteristici pot fi identificate caracteristici mai abstracte cum ar fi urechile unei pisici, botul unui câine, ochiul unei persoane sau forma octogonală a unui indicator STOP. În mod normal, ar fi greu să înveți o rețea neuronală să identifice astfel de caracteristici pornind de la pixelii imaginii de intrare pentru că aceste caracteristici pot apărea în imagine în diferite poziții, orientări sau dimensiuni: deplasarea obiectului sau a unghiului camerei foto va modifica radical valorile pixelilor, chiar dacă pentru noi obiectul reprezentat nu pare să se fi schimbat. Pentru a învăța o rețea să detecteze un indicator STOP în toate aceste condiții diferite, ar fi necesar un volum uriaș de date de antrenament deoarece rețeaua nu ar putea identifica semnul respectiv decât în aceleași condiții ca cele în care a apărut în datele de antrenament. Astfel, de exemplu, un indicator STOP care apare în colțul din dreapta sus al unei imagini ar fi detectat numai dacă în datele de antrenament a apărut o imagine cu semnul de stop în colțul din dreapta sus. CNN pot să recunoască obiectul în cauză oriunde apare în imagine, indiferent de poziția sa în imaginile de antrenament."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n  "},{"type":"element","tagName":"note","properties":{"heading":"De ce avem nevoie de CNN?","description":"CNN recurg la un truc ingenios pentru a reduce volumul de date de care au nevoie pentru a detecta obiectele în condiții diferite. În esență, CNN utilizează aceleași ponderi de intrare pentru mai mulți neuroni – astfel încât toți acești neuroni sunt activați atunci când se constată un tipar, o regularitate în date –, însă utilizează pixeli de intrare diferiți. De exemplu, putem avea un set de neuroni care sunt activați la vederea urechii ascuțite a unei pisici. Atunci când datele de intrare sunt reprezentate de fotografia unei pisici, sunt activați doi neuroni, unul pentru urechea stângă și altul pentru urechea dreaptă. De asemenea, pixelii de intrare ai neuronului pot să provină de pe o suprafață mai mică sau mai mare, astfel încât vor fi activați neuroni diferiți atunci când urechea apare la scări (dimensiuni) diferite; în acest fel vom putea identifica urechile unei pisici mici chiar dacă în datele de antrenament nu au fost incluse decât imagini cu pisici mari."},"children":[{"type":"text","value":"\n  "}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Neuronii convoluționali sunt așezați de regulă în straturile inferioare ale rețelei, care procesează pixelii de intrare bruți. Neuronii de bază (cum ar fi neuronul perceptron pe care l-am discutat înainte) sunt plasați în straturile superioare, care procesează datele de ieșire produse de straturile inferioare. Straturile inferioare pot fi, de obicei, antrenate prin procesul de învățare nesupravegheată, fără să se aibă în vedere formularea unei anumite predicții. Ponderile lor vor fi astfel ajustate încât să se detecteze caracteristicile care apar frecvent în datele de intrare. Astfel, dacă analizăm fotografii cu animale, caracteristicile care vor apărea sistematic vor fi urechile și boturile, în timp ce în imaginile care înfățișează clădiri caracteristicile vor fi elemente arhitectonice cum ar fi ziduri, acoperișuri, ferestre etc. Dacă se folosesc ca date de intrare diferite obiecte și scene, atunci caracteristicile care au fost învățate de straturile inferioare vor fi mai mult sau mai puțin generice. Aceasta înseamnă că straturile convoluționale preantrenate pe un set de date pot fi reutilizate pentru o multitudine de sarcini diferite de procesare a imaginilor. Este un aspect extrem de important deoarece este ușor să se obțină un volum practic nelimitat de date de antrenament neetichetate – imagini fără etichete – care pot fi utilizate pentru a antrena straturile inferioare. Straturile superioare sunt întotdeauna antrenate prin tehnici de învățare automată supravegheată, cum ar fi retropropagarea."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"illustrations","properties":{"motive":"gan","color":"#00B5AA","frombottom":"0","totalheight":"54%"},"children":[]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{},"children":[{"type":"text","value":"Visează rețelele neuronale oi electrice? Rețele generative adversare (GAN)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"După ce a fost antrenată pe un set de date, o rețea neuronală poate fi utilizată pentru a face predicții. Întrucât straturile superioare ale rețelei au fost antrenate într-un mod supravegheat pentru a îndeplini o anumită sarcină de clasificare sau a face o anumită predicție, straturile superioare sunt de fapt utile numai pentru sarcina respectivă. O rețea antrenată să detecteze indicatoare STOP este incapabilă să detecteze caractere scrise de mână sau pisici."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Putem obține rezultate fascinante dacă luăm straturile inferioare preantrenate și studiem cum arată caracteristicile pe care le-au învățat. Putem face acest lucru generând imagini care activează un anumit set de neuroni din straturile inferioare. Dacă analizăm imaginile generate, putem vedea cum „crede” rețeaua neuronală că arată o anumită caracteristică sau cum arată o imagine cu un set predefinit de caracteristici. Unii cercetători afirmă că rețelele „visează” sau „halucinează” (a se vedea "},{"type":"element","tagName":"a","properties":{"href":"https://en.wikipedia.org/wiki/DeepDream","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"sistemul DeepDream"}]},{"type":"text","value":" al Google)."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n  "},{"type":"element","tagName":"note","properties":{"heading":"Atenție la metafore!","description":"Am dori totuși să subliniem încă o dată problema utilizării unor metafore precum visele atunci când vorbim de fapt despre o simplă optimizare a imaginii de intrare – amintiți-vă cuvintele-valiză discutate în capitolul 1. Rețeaua neuronală nu visează cu adevărat și nu înțelege conceptul de pisică așa cum l-ar înțelege un om. Este doar antrenată să recunoască obiecte și poate genera imagini care sunt asemănătoare cu datele de intrare pe care a fost antrenată."},"children":[]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Pentru a genera imagini cât mai realiste de pisici, fețe umane sau alte obiecte (veți obține ceva similar cu ce ați folosit ca date de antrenament), "},{"type":"element","tagName":"a","properties":{"href":"https://en.wikipedia.org/wiki/Ian_Goodfellow","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"Ian Goodfellow"}]},{"type":"text","value":", care lucrează în prezent la Google Brain, a propus o combinație ingenioasă a două rețele neuronale. Ideea este de a permite celor două rețele să concureze între ele. Una dintre rețele este antrenată să genereze imagini asemănătoare celor din datele pe care a fost antrenată (așa-numita „rețea generativă” sau „generatoare”). Cealaltă rețea are sarcina de a departaja imaginile generate de prima rețea de imaginile reale din datele de antrenament – este așa-numita „rețeaua adversară” sau „discriminatorie”, iar întregul sistem este numit „„rețea generativă adversară” sau „GAN” (Generative Adversarial Networks)."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Sistemul antrenează în paralel cele două modele. La începutul antrenamentului, modelul adversar are sarcina ușoară de a departaja imaginile reale din datele de antrenament de încercările stângace ale modelului generativ. Însă, pe măsură ce rețeaua generatoare devine mai performantă, modelul adversar trebuie la rândul său să se îmbunătățească, iar ciclul continuă până când, în cele din urmă, imaginile generate ajung să fie aproape imposibil de departajat de imaginile reale. GAN încearcă nu numai să reproducă imaginile din datele de antrenament: ar fi o strategie mult prea simplă pentru a învinge rețeaua contradictorie / adversară. Mai degrabă, sistemul este, de asemenea, antrenat să poată genera imagini noi, cât mai realiste."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"span","properties":{"className":["gatsby-resp-image-wrapper"],"style":"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 674px; "},"children":[{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["gatsby-resp-image-background-image"],"style":"padding-bottom: 99.72222222222223%; position: relative; bottom: 0; left: 0; background-image: url('data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGQABAAMBAQAAAAAAAAAAAAAAAAMEBQEC/8QAFQEBAQAAAAAAAAAAAAAAAAAAAgP/2gAMAwEAAhADEAAAAbdOXs6YjXOcHoNM8If/xAAeEAACAQMFAAAAAAAAAAAAAAABAgMAEhMEESEiM//aAAgBAQABBQLhjKA2rlAWRmO7dqsjakJxXHJP6//EABYRAAMAAAAAAAAAAAAAAAAAAAABEP/aAAgBAwEBPwEd/8QAFREBAQAAAAAAAAAAAAAAAAAAASD/2gAIAQIBAT8BCP/EAB4QAAICAgIDAAAAAAAAAAAAAAABAhEhMRIiQXGh/9oACAEBAAY/Ak6yO14GkScaqP0jLFtbO/Gyfsq8KOhn/8QAGxABAQEBAQADAAAAAAAAAAAAAREAQTEhYXH/2gAIAQEAAT8h8aQ0XR6QMNKSfWUSGjTCIgcW65TzvlyvmzrIU4369//aAAwDAQACAAMAAAAQ1DCC/8QAFxEAAwEAAAAAAAAAAAAAAAAAAAERMf/aAAgBAwEBPxBtORGi4PT/xAAYEQEBAQEBAAAAAAAAAAAAAAABABExIf/aAAgBAgEBPxBDdYPI4xy//8QAHRABAQACAwADAAAAAAAAAAAAAREAITFRYXGRof/aAAgBAQABPxBGNCPY2P5h6haEXXeA2g8bTzE0vtLHU9ygb67ASEsyM8tLiOGXWsQVXT7C5qeCwWXBtVSjv4M//9k='); background-size: cover; display: block;"},"children":[]},{"type":"text","value":"\n  "},{"type":"element","tagName":"img","properties":{"className":["gatsby-resp-image-image"],"alt":"fakecelebrityfaces","title":"fakecelebrityfaces","src":"/static/ac3753c9c9a3248de4bc71231b483be1/a6d30/5_3_fake-celebrity.jpg","srcSet":["/static/ac3753c9c9a3248de4bc71231b483be1/158ba/5_3_fake-celebrity.jpg 360w","/static/ac3753c9c9a3248de4bc71231b483be1/a6d30/5_3_fake-celebrity.jpg 674w"],"sizes":["(max-width:","674px)","100vw,","674px"],"style":"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;","loading":"lazy"},"children":[]},{"type":"text","value":"\n    "}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Imaginile de mai sus au fost generate de o GAN dezvoltată de NVIDIA în cadrul unui proiect condus de "},{"type":"element","tagName":"a","properties":{"href":"https://users.aalto.fi/~lehtinj7/","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"prof. Jaakko Lehtinen"}]},{"type":"text","value":" (a se vedea "},{"type":"element","tagName":"a","properties":{"href":"https://www.technologyreview.com/the-download/609290/meet-the-fake-celebrities-dreamed-up-by-ai/","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"acest articol pentru mai multe detalii"}]},{"type":"text","value":")."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Ați fi putut să vă dați seama că nu e vorba de imagini reale?"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{},"children":[{"type":"text","value":"\n  "},{"type":"element","tagName":"part-summary","properties":{"chapter":"5","heading":"După ce ați terminat capitolul 5, ar trebui să puteți:","listitems":"[ {\"content\":\"să explicați ce este o rețea neuronală și în ce domenii sunt utilizate cu succes astfel de rețele\"}, {\"content\":\"să înțelegeți metodele tehnice care stau la baza rețelelor neuronale\"}]"},"children":[{"type":"text","value":"\n  "}]},{"type":"text","value":"\n"}]}],"data":{"quirksMode":false}},"excerpt":"Sunt metode care sunt folosite de aproape toate aplicațiile moderne bazate pe rețele neuronale. Există însă și unele variații interesante pe…","frontmatter":{"path":"/ro/5/3","title":"Tehnicile rețelelor neuronale avansate","part":5,"type":"section","section":3,"lang":"ro"}}},{"node":{"htmlAst":{"type":"root","children":[],"data":{"quirksMode":false}},"excerpt":"","frontmatter":{"path":"/ro/5","title":"Rețele neuronale","part":5,"type":"part","section":null,"lang":"ro"}}}]},"currentPart":{"htmlAst":{"type":"root","children":[],"data":{"quirksMode":false}},"frontmatter":{"path":"/ro/5","title":"Rețele neuronale","part":5,"quote":"Domenii precum limbajul natural și procesarea imaginilor, sunt, în mod tradițional, punctele nevralgice de IA. Rețelele neuronale și învățarea profundă sunt utilizate în prezent tocmai pentru a aduce îmbunătățiri semnificative în aceste domenii.","quoteAuthor":"","bannerImage":{"publicURL":"/static/8d6d86ca3c422d98b6213f5ddfbe8c07/banner5.png"}}},"site":{"siteMetadata":{"languages":{"defaultLangKey":"en","langs":["en","fi","se","de","ee","fr","it","fr-be","no","lt","lv","nl-be","mt","hr","pl","en-ie","ga","nl","sk","da","ro","sl","is","de-at","en-lu","bg","cs","pt","es","el"]}}}},"pageContext":{"part":5,"type":"part","lang":"ro"}},"staticQueryHashes":["3539470774"]}