Exercitiile de aritmetica din scoala primara sunt inca o amintire vie in mintile noastre. O inmultire efectuata cu creionul pe hartie precum 4537 x 6958 poate dura chiar si un minut. Desigur, astazi, avand telefonul la indemana putem afla imediat rezultatul. Procesoarele din telefoanele noastre mobile pot realiza zeci sau sute de miliarde de astfel de operatii pe secunda cu un consum foarte mic, facandu-le mult mai eficiente decat creierul nostru lent care consuma aproximativ 20 watti si necesita mult mai mult timp pentru a obtine acelasi rezultat.

Creierul nostru nu a evoluat pentru a efectua aritmetica, dar exceleaza in procesarea unui flux continuu de informatii din mediul inconjurator si actioneaza asupra acelei informatii – uneori mult mai rapid decat constientizam. Indiferent cat de mult ar consuma un calculator conventional, acesta va intampina dificultati in efectuarea multor task-uri pe care creierul le poate realiza cu usurinta, cum ar fi intelegerea limbajului sau recunoasterea obiectelor sau persoanelor.

Daca s-ar putea creea o masina cu capacitatea de calcul a unui calculator si cu eficienta energetica a creierului ar fi de-a dreptul revolutionar. Mai multe astfel de sisteme ar putea culege foarte rapid date din diverse domenii precum stiinta sau medicina pentru a descoperi relatii cauzale sau pentru a efectua predictii. Aceeasi tehnologie s-ar putea folosi si pentru dispozitive de dimensiuni mici, cu un consum redus de curent, pentru a ne imbunatati simturile, sau pentru a emula semnalele neuronale la persoanele cu paralizie.

Dar nu este prea devreme pentru o incercare atat de indrazneata? Cunostintele noastre despre felul cum functioneaza creierul sunt destul de limitate pentru a incepe sa construim tehnologii bazate pe functionarea sa. Dar chiar si emularea unor caracteristici de baza ale circuitelor neurale ar putea da mare impuls multor aplicatii relevante din punct de vedere comercial. Cat de fidel vor trebui sa imite detaliile biologice pentru a aborda nivelul de performanta a creierului ramane inca o intrebare fara raspuns.

Diferente intre sistemele artificiale si cele biologice

O caracteristica cheie a calculatoarelor conventionale este separarea fizica a memoriei, cea care stocheaza date si instructiuni, de cea logica, care proceseaza acele date (procesor). Creierul nostru nu are o astfel de distinctie. Computatia si stocarea datelor sunt realizate impreuna la nivel local intr-o retea vasta formata din aproximativ 100 de miliarde de celule neuronale (neuroni) si peste 100 de miliarde de conexiuni. Tot ceea ce face creierul este determinat de acele conexiuni si de felul in care fiecare neuron raspunde la semnalele primite de la alti neuroni.

Cand vorbim despre capabilitatile extraordinare ale creierului uman, ne referim de obicei la cea mai recenta achizitie in lungul proces evolutiv: neocortexul. Acest strat subtire, foarte pliat, formeaza partea exterioara a creierului nostru si realizeaza un set divers de sarcini care include procesarea intrarilor senzoriale, controlul muschilor, memoria si invatarea. Aceasta gama larga de abilitati diferite se realizeaza printr-o structura destul de uniforma: sase straturi orizontale si un milion de coloane verticale de 500 micrometri, toate construite din neuroni care integreaza si distribuie informatii codificate electric.

Precum toate celulele din corpul uman, un neuron are in mod normal un potential electric de aproximativ -70 milivolti, numit potentialul de membrana. Aceasta este diferenta de potential electric intre interiorul si exteriorul unei celule biologice. Toate celulele biologice sunt inconjurate de o membrana compusa dintr-un bistrat fosfolipidic cu o varietate de tipuri de proteine incorporate in ea. Potentialul de membrana apare in primul rand din interactiunea intre membrana si actiunile a doua tipuri de proteine transmembranale incorporate in membrana. Membrana serveste atat ca un izolator cat si de bariera de difuzie a ionilor.

Tensiunea membranei se modifica atunci cand un neuron primeste semnale de la alti neuroni conectati la el si daca tensiunea se ridica la un prag critic, ea formeaza un impuls de tensiune, sau varf, cu o durata de cateva milisecunde si o valoare de aproximativ 40 mV.

Acest impuls se propaga de-a lungul axonului neuronului pana cand ajunge la o sinapsa. Daca sunt indeplinite anumite criterii, sinapsa il transforma intr-un alt impuls de tensiune care se propaga in structura ramificata a dendritelor si contribuie fie pozitiv, fie negativ la tensiunea membranei celulare.

Conectivitatea este si ea un element crucial. Celulele piramidale, de exemplu, contin aproximativ 30.000 de sinapse si 30.000 de intrari de la alti neuroni. Creierul este intr-o permanenta adaptare, iar neuronii si proprietatile sinapselor sunt intr-o permanenta schimbare datorita intrarilor senzoriale si a raspunsurilor din mediul inconjurator.

Calculatoarele de astazi sunt mai degraba digitale decat analogice, dar creierul nu este la fel de usor de clasificat. Neuronii acumuleaza incarcatura electrica precum un condensator din circuitele electronice. Acesta este in mod clar un proces analogic. Dar creierul foloseste si impulsurile ca unitati de informatie, iar acestea sunt binare: in orice loc si in timp, fie exista un impuls fie nu. Aceasta combinatie analog-digital ajuta creierul sa depaseasca pierderile de transmisie. Deoarece un impuls are in esenta o valoare de 0 sau 1, acesta poate calatori pe distante lungi fara a pierde acele informatii de baza. Este, de asemenea, regenerat atunci cand ajunge la urmatorul neuron din retea.

O alta diferenta cruciala intre creier si calculatoare este aceea ca, creierul isi realizeaza toata prelucrarea informatiilor fara un ceas central pentru a-l sincroniza. Desi observam evenimentele de sincronizare – undele creierului – ele sunt autoorganizate, produse emergente ale retelelor neuronale. Interesant este faptul ca si calculatoarele moderne au inceput sa adopte asincronitatea creierului, pentru a accelera calculul prin efectuarea de operatii in paralel, chiar daca gradul si scopul paralelismului in cele doua sisteme sunt foarte diferite.

Copierea sistemelor biologice

Ideea utilizarii creierului ca model de calcul are o lunga istorie. Primele eforturi s-au axat pe un simplu neuron de prag, care da o valoare daca suma intrarilor ponderate este mai mare decat pragul si alta daca este inferioara. Realismul biologic al acestui sistem, pe care Warren McCulloch si Walter Pitts l-au conceput in anii 1940, este foarte limitat. Cu toate acestea, a fost primul pas spre adoptarea conceptului de neuron ca element de calcul. Lucrarea lor originala numita „A Logical Calculus of the Ideas Immanent in Nervous Activity” poate fi citita aici: http://cns-classes.bu.edu/cn550/Readings/mcculloch-pitts-43.pdf

In 1957, Frank Rosenblatt a propus o modificare a sistemului, numit perceptron. Acestia erau aranjati in straturi, formand o retea de noduri. Straturile „vizibile” (layere) de pe marginea retelei interactionau cu lumea exterioara ca niste intrari sau iesiri, iar straturile „ascunse” aflate la mijloc, efectuau cea mai mare parte a calculului.

Rosenblatt a introdus de asemenea o caracteristica esentiala gasita in creier: inhibarea. In loc sa se adune pur si simplu niste intrari, neuronii dintr-o retea perceptron ar putea avea si contributii negative. Aceasta caracteristica permite unei retele neuronale care utilizeaza doar un singur strat ascuns sa rezolve problema XOR in logica, in care iesirea este adevarata numai daca exact una din cele doua intrari binare este adevarata. Acest exemplu simplu arata ca adaugarea realismului biologic poate adauga noi capacitati computationale. Dar ce trasaturi ale creierului sunt esentiale pentru ceea ce poate face si care sunt doar vestigii inutile ale evolutiei? Nimeni nu stie.

Stim ca unele caracteristici computationale impresionante pot fi realizate fara a recurge la mai mult realism biologic. Cercetatorii in domeniul invatarii aprofundate, de exemplu, au facut pasi importanti in utilizarea computerelor pentru a analiza volume mari de date si pentru a extrage caracteristici din imagini complicate. Desi retelele neuronale pe care le construiesc au mai multe intrari si straturi ascunse decat inainte, ele se bazeaza inca pe modelele neuronale foarte simple. Marile lor capacitati nu reflecta realismul biologic, ci amploarea retelelor pe care le contin si computerele foarte puternice folosite pentru a le instrui. Retelele „Deep learning” sunt inca departe de performanta, eficienta energetica si de capacitatile de invatare a creierului biologic.

Marea diferenta dintre creier si computerele de astazi este probabil cel mai bine subliniata prin analizarea simularilor pe scara larga ale creierului. In decursul anilor, au existat mai multe astfel de eforturi, insa toate acestea au fost limitate de doi factori: timpul simularii si energia folosita. De exemplu, Markus Diesmann a realizat o simulare folosind aproape 83.000 de procesoare pe supercomputerul K din Japonia. Simularea unui numar de 1,73 miliarde de neuroni a consumat de 10 miliarde de ori mai multa energie decat o portiune evhivalenta a creierului, chiar daca a folosit metode foarte simplificate si nu a rulat niciun algoritm de invatare asupra lor. Iar aceste simulari aveau o viteza cu mult mai mica decat a creierului uman.

De ce asa de lent? Motivul este ca simularea creierului pe un calculator conventional necesita miliarde de ecuatii diferentiale cuplate impreuna pentru a descrie dinamica celulelor si a retelelor: procese analogice precum miscarea sarcinilor pe o membrana celulara. Computerele care folosesc logica booleana si care separa memoria si calculul, par a fi foarte ineficiente pentru a emula cu adevarat un creier.

Aceste simulari pe calculator pot fi un instrument care sa ne ajute sa intelegem creierul, transferand cunostintele acumulate in laborator in simulari pe care le putem experimenta si compara cu observatiile din lumea reala. Dar daca speram sa mergem in directia opusa si sa folosim lectiile neurologiei pentru a construi noi sisteme de calcul, trebuie sa regandim modul in care proiectam si construim computerele.

Retele neurale artificiale

“Spiking neural networks”, prescurtat SNN, intra in cea de-a treia generatie de retele neurale. Spre deosebire de retelele neurale de generatie a doua, SNN incorporeaza conceptul de timp in modelul lor operational. Ideea este ca neuronii din SNN nu se declanseaza la fiecare ciclu de propagare (asa cum se intampla cu retelele perceptron tipice cu mai multe “straturi”), ci mai degraba doar atunci cand un potential atinge o valoare specifica. Atunci cand un neuron se declanseaza, acesta genereaza un semnal care se propaga catre alti neuroni, care, la randul lor, maresc sau reduc potentialul lor in raport cu acest semnal. In contextul dezvoltarii retelelor neuronale, nivelul de activare (modelat ca o anumita ecuatie diferentiala) este in mod normal considerat a fi starea neuronului, cu varfurile de intrare impingand aceasta valoare mai mare si apoi fie actionand, fie decad in timp. Exista diferite metode de codare pentru a interpreta varful de iesire ca numar de valoare reala, fie bazandu-se pe frecventa varfurilor, fie pe timpul dintre varfuri, pentru a codifica informatiile.

Neurogrid, construit la Univsersitatea Stanford, este un circuit care poate simula “Spiking Neural Networks” direct in hardware. SpiNNaker (Spiking Neural Network Architecture) realizat de Universitatea din Manchester, este un sistem similar ce foloseste procesoare ARM in vederea simularii modelului talamocortical in 6 straturi.

Arhitecturi hardware

Proiectul BrainScaleS isi propune sa abordeze problema intr-un alt mod. Copierea functionarii creierului in electronica poate fi mai fezabila decat pare la prima vedere. Se pare ca si costul energiei pentru crearea unui potential electric intr-o sinapsa este de aproximativ 10 femtojouli (10-15 jouli). Poarta unui tranzistor de metal-oxid-semiconductor (MOS) necesita doar o incarcare de 0,5 fJ. O transmisie sinaptica este deci echivalenta cu incarcarea a cel putin 20 de tranzistori. In plus, circuitele biologice si cele electronice nu sunt chiar atat de diferite. Deci, in principiu, ar trebui sa fim capabili sa construim structuri precum sinapsele si neuronii, pentru a creea un creier artificial care sa nu consume o cantitate prea mare de energie.

Ideea construirii unui calculator realizat cu tranzistori care sa opereze similar cu neuronii biologici a inceput in anii 1980. Profesorul Carver Mead de la Universitatea Caltech a spus ca dispozitivele semiconductoare pot sa urmeze aceleasi reguli fizice ca si neuronii, numind acest tip de calcul “neuromorfic”.

Ingineria neuromorfa, sau computatia neuromorfa, studiaza si dezvolta circuite analogice pentru a imita arhitectura neuro-biologica din sistemul nervos. Termenul mai este utilizat si pentru a descrie sisteme neuronale care sunt realizate folosind atat semnale analogice, digitale, mix analog/digital VLSI. Implementarea hardware a unui astfel de sistem poate fi realizat folosind memristori, comutatori de prag si tranzistori.

Mead a inventat un cadru de comunicare neurala in care varful impulsurilor sunt codificate numai de adresele lor de retea si de momentul in care acestea apar. Aceasta a fost o idee inovatoare, deoarece a fost primul care a facut timpul o caracteristica esentiala a retelelor neuronale artificiale. Se pare ca timpul este un factor cheie si in creier: este nevoie de timp ca semnalele sa se raspandeasca si membranele sa raspunda la schimbarea conditiilor, iar timpul determina forma potentialelor postsinaptice.

Mai multe grupuri de cercetatori (precum Giacomo Indiveri la ETH Zurich si Kwabena Boahen – Standford) au urmat abordarea lui Mead si au implementat cu succes elementele retelelor corticale biologice. Trucul este de a opera tranzistorii sub pragul de activare folosind curenti extremi de mici, creand circuite analogice care imita comportamentul neuronal si care in acelasi timp consuma foarte putina energie.

In ultimii 10 de ani mai multe grupuri au inceput independent dezvoltarea sistemelor neuromorfe care se abat substantial de la abordarea intiala a lui Mead, cu scopul de a crea sisteme pe scara larga cu milioane de neuroni.

Un sistem apropiat de realitate este proiectul SpiNNaker, condus de Steve Furber de la Universitatea din Manchester. Acest grup a proiectat un cip personalizat (in imagine), complet digital, care contine 18 nuclee de microprocesoare ARM care functioneaza cu o viteza de 200 MHz – aproximativ de 10 ori mai putin decat viteza procesoarelor moderne. Desi nucleele ARM sunt computere clasice, ele simuleaza impulsuri, potentiale de varf, care sunt transmise prin routere specializate sa comunice in mod asincron, la fel ca si creierul. Actuala implementare, parte a proiectului “Human Brain” al Uniunii Europene, a fost finalizata in 2016 si contine 500.000 de nuclee ARM. In functie de complexitatea modelului de neuron, fiecare nucleu poate simula un numar de 1000 de neuroni.

Cipul TrueNorth, dezvoltat de IBM, abandoneaza utilizarea microprocesoarelor ca unitati computerizate, facandu-l un sistem de calcul cu adevarat neuromorfic, prin interconectarea logicii si a calculului cu memoria.

TrueNorth este inca un sistem complet digital, dar se bazeaza pe circuite neuronale personalizate. Cipul dispune de 5,4 miliarde de tranzistoare, construite cu o tehnologice CMOS de 28 nanometri. Aceste tranzistoare sunt folosite pentru a implementa 1 milion de circuite neuronale si 256 de milioane de sinapse simple (1 bit) pe un singur cip.

Poate cel mai apropiat sistem artificial apropiat de creierul biologic este BrainScaleS, dezvoltat la Universitatea Heidelberg din Germania pentru proiectul “Human Brain”. BrainScaleS este o implementare a semnalelor mixte, adica, combina neuronii si sinapsele realizate din tranzistoare de siliciu care functioneaza ca dispozitive analogice cu o comunicatie digitala. Sistemul contine 4 milioane de neuroni si 1 miliard de sinapse, totul incapsulat intr-un circuit de 20 cm.

Sistemul poate replica opt moduri diferite de neuroni biologici. Spre deosebire de abordarea analogica pionierata de Mead, BrainScaleS functioneaza mult mai rapid.

O alta directie ar putea fi circuitele non-CMOS, precum memristorii. Un memristor reprezinta un element pasiv de circuit cu doua borne, care mentine o dependenta functionala intre integralele in functie de timp ale curentului si tensiunii.

Alte forme de memorie ne-ar putea permite sa miscoram celulele de la micrometri la nanometri. Incepem asadar drumul catre sistemele neuromorfe.

Bibliografie

http://www.upm.ro/intranet/ecalin/curs_ai/cap4/cap4.htm
http://spectrum.ieee.org/computing/hardware/the-brain-as-computer
https://www.nist.gov/programs-projects/neuromorphic-systems
http://brainscales.kip.uni-heidelberg.de/public/
http://eda.mmci.uni-saarland.de/pubs/2002/spiking_neural_networks_an_introduction-vreeken.pdf
Foto: https://singularityhub.com

LĂSAȚI UN MESAJ