Sfârsitul secolului XX a fost marcat de aparitia, dezvoltarea fulgerãtoare si “dominatia” calculatoarelor în fiecare domeniu de activitate al omenirii, fãcând o concurentã neloialã mijloacelor “clasice” de pânã atunci. Calculatoarele ocupã un loc atât de important în era noastrã încât au impus noi principii vitale: rapiditatea, adaptabilitatea, precizia, etc.
Dar, oricât de perfectionate ar fi calculatoarele, oricât de rapide si de performante ar deveni acestea, ele nu au cãpãtat anumite calitãti ale creierului uman, care îl fac unic, care îl transformã într-o capodoperã a ingineriei genetice a Naturii, cum ar fi creativitatea, imaginatia, etc., aptitudini pe care calculatorul nu le poate învãta. În ciuda acestui fapt, o nouã descoperire a informaticii pregãteste calea spre progresul calculatoarelor în acest domeniu – retelele neuronale artificiale, care dupã afirmatiile multor specialisti, vor revolutiona sistemele informatice. Creierul uman – un unicat prin excelentã Creierul este alcãtuit din miliarde de neuroni, celule specializate, ce permit creierului sã memoreze, sã rationeze si sã invete. Prin activitatea neuronilor, organismul rãspunde la modificãrile mediului. Orice modificare a mediului, orice miscare si factor ce actioneazã asupra corpului sunt însotite de activitatea a milioane de neuroni care primesc si transmit “mesaje” nervoase. Aceste mesaje constau în impulsuri electrice si chimice.
Fiecare neuron poate avea mii de extremitãti cu care acesta se conecteazã cu alti neuroni. Aceste extremitãti sunt numite dendrite sau axoni: prin dendrite sunt transmise impulsuri prin corpul celular, iar prin axon trec impulsurile de la corpul celular la alt neuron. În anumite aspecte, neuronii se comportã precum calculatoarele, adicã primesc, proceseazã impulsurile nervoase si trimit rezultatele sub forma de noi impulsuri la ceilalti neuroni. Impulsurile constau în substante chimice care interactioneazã cu suprafata externa a membranei, cauzând reactii chimice în interiorul neuronului postsinaptic. Numele acestui schimb constant de “mesaje” chimice între neuroni este neurotransmisia. Acest proces are trei etape:1. Eliberarea neurotransmitãtorilor de cãtre neuronul presinaptic În stare de repaus, neuronul are sarcinã electricã negativã, adicã dispune de mai multi ioni negativi înãuntrul axonului decât în afara lui. Spre deosebire de acesta, fluidul din afara axonului are o sarcinã electricã pozitivã. Deoarece pãrtile internã si externã ale axonului au sarcini de semne contrare, se spune cã axonul este polarizat. Atunci când un neuron este excitat, au loc o serie de procese care creeazã un impuls electric. Ionii de Na, care au sarcinã pozitivã, intra in axon, depolarizând axonul, care îsi schimba sarcina electrica din negativa in pozitiva. Aceastã schimbare începe la capãtul unui axon si continuã pana la celalalt capãt. Ca rãspuns la impulsul electric( numit potential de actiune), veziculele converg cãtre capãtul axonului si elibereazã neurotransmitãtorii in sinapsa; dupã eliberarea acestora, ionii de Na ies din interiorul axonului, restabilind sarcina electrica negativa initialã a axonului. 2. Legarea neurotransmitãtorilor de receptori Neurotransmitãtorii parcurg sinapsa pânã când ajung la dendritele celuilalt neuron, pe care se aflã molecule specializate, numite receptori si de care neurotransmitãtorii se “agatã”. Fiecare receptor acceptã un anumit tip de neurotransmitãtori. Dupã aceasta faza, neurotransmitatorii sunt eliberati, unii fiind chiar distrusi de enzime sau pot fi transportati de proteine înapoi la axonul de unde au provenit, alcãtuind un ciclu.3. Trecerea legãturii în cadrul “mesajului” neurotransmitãtorilor Unirea receptorilor cu neurotransmitãtorii genereazã anumite reactii in cadrul neuronului post-sinaptic, reactii care dau nastere unui nou impuls asemãnãtor celui anterior, care este propagat mai departe printr-o cale nervoasã, ajungând eventual la destinatie( muschi, glandã, organ, etc.). Rezultatul este o schimbare in felul in care gândim, simtim, ne comportãm. Unul din neurotransmitãtorii cu rolul cel mai important este dopamina. Dopamina afecteazã procesele cerebrale care controleazã miscarea, manifestãrile emotionale, abilitatea de a manifesta plãcerea si durerea. Reglarea cantitãtii de dopaminã joaca un rol important în cadrul sãnãtãtii fizice si mentale a organismului. Cocaina si celelalte droguri pot altera functia dopaminei, având diferite efecte in functie de receptorii pe care ii stimuleazã sau ii blocheazã. Alti neurotransmitatori importanti sunt serotonina (implicatã în reglarea temperaturii, perceptia senzorialã, controlul stãrilor sufletesti), noradrenalina (are atât rol de neurotransmitator participând la formarea viselor si a stãrilor sufletesti cât si rol de hormon, contribuind la cresterea presiunii arteriale, contractia vaselor sangvine si mãrirea ritmului bãtãilor inimii ca rezultat al actiunii stresului. Neuronii au capacitatea de a face sinapsa sincronizându-se pentru a procesa informatiile primite. Undele cerebrale parcurg ramurile acelorasi neuroni de mai multe ori pe secundã pentru ca encefalul sa poatã lua decizii conform dinamicii stimulilor externi sau interni. Puterea si eficienta creierului stã în capacitatea de a controla secventele sinapselor neuronilor. Este important sã concepi cum functioneazã creierul pentru cã modelul general va afecta detaliile proceselor neuronale de calcul si totodatã, deoarece “capitolele” finale ale “cãrtii” creierului încã nu au fost scrise. Un model soft al arhitecturii neuronale este doar intuitiv si orice programator de calculatoare are libertatea de a “construi” propria “teorie”, adicã poate concepe propria retea neuralã atâta timp cât ea dã dovadã de eficientã. Într-o zi, poate vom obtine “reteta” pentru a construi circuite neurale dintr-un substrat primitiv ca membrana neuronalã. Pânã atunci va trebui sa creiem modele de circuite neurale care aproximeazã fiziologia creierului uman, dat fiind faptul cã nu putem mãsura gândurile ce se manifestã la nivelul sinapselor sub forma de impulsuri nervoase. Oricum, se stie cã procesele de gândire au ca suport natural un anumit limbaj ca orice program informatic. Elemente de limbaj natural precum cuvintele, propozitiile si asociatiile pe care aceste elemente le fac la nivelul creierului sunt oarecum de neînlocuit deoarece este foarte probabil ca arhitectura creierului sã fie conceputã in asa fel încât sã se acomodeze cu un anumit limbaj în mod intrinsec. Se poate, deci, ca limbajul sã existe ca implicatie a naturii creierului uman. Limbajul scris si cel vorbit ne permit sã asociem si sã legãm pãrtile unui cuvânt. Imaginile sunt compuse din elemente picturale care sunt semnificative una fatã de cealaltã sub aspectul spatial al acestora. Atât limbajul vizual cât si cel verbal pot fi descrise prin secvente de cuvinte sau de imagini, iar creierul nostru proceseazã aceste informatii prin asocierea acestor elemente într-o secventã spatialã si temporalã. De la neuroni la retele neurale artificiale O retea neuralã, numitã si retea neuralã artificialã( ANN), constituie o arhitecturã informaticã cu totul unicã, a cãrui potential abia a început sa fie exploatat. Retelele neurale sunt folosite la rezolvarea problemelor intangibile prin metode traditionale. Aceste structuri cibernetice inedite sunt cu totul diferite de calculatoarele folosite astãzi. ANN-urile sunt sisteme paralele masive care se bazeazã pe aranjamente dense de interconexiuni si procesoare surprinzãtor de simple. Numele lor provine de le retelele neuronale ce alcãtuiesc creierul uman. Cu toate ca o mare parte din detaliile biologice sunt eliminate în aceste modele, ANN-urile retin o mare parte din structura cerebralã. Într-o retea neuralã, fiecare procesor este conectat cu mai multe procesoare “vecine”, existând astfel mai multe interconexiuni decât procesoare. Puterea unei retele neurale, ca si în cazul creierului, stã în numãrul imens de conexiuni neurale. ANN-urile au generat un interes sporit programatorilor si în general oamenilor de stiintã, contribuind pe de o parte la întelegerea modelelor biologice si pe de altã parte la promovarea unui nou tip de procesare în paralel cu capabilitãti sporite si un potential ridicat de implementare hardware. Dupã cum am afirmat anterior, ANN-urile sunt complet diferite de calculatoarele normale, cu un singur procesor, denumite si masini Von Neumann care, având o singura unitate centrala de prelucare- CPU, realizeazã toate operatiile în secvente, una dupã alta. Spre deosebire de acestea, retelele neuronale realizeazã unul sau putine calcule. O functie de însumare este realizatã la începutul fiecãrei procesãri si sunt realizate schimbãri de incrementare a parametrilor asociati la interconexiuni. Încã nu se cunoaste în totalitate mecanismul de functionare a creierului, dar studiile importante fãcute în trecut în domeniul fiziologiei cerebrale ne-a dat posibilitatea de a alcãtui un model simplu si intuitiv al
acestui mecanism. În orice caz, nu se stie cât de mult s-au apropiat programatorii de aflarea mecanismului prin care neuronii creierului genereazã informatia ca o retea globalã care realizeazã la nivelul organismului uman starea de constientã si de veghe. Cele douã atribute de bazã ale ANN-urilor sunt învãtarea si reprezentarea informatiilor. Numerosi specialsti prezic cã tehnicile de învãtare artificialã vor da sperante problemelor ce necesitã un nivel de inteligentã ridicat. Majoritatea retelelor neurale invatã din exemple, asemenea copiilor, de exemplu sa recunoascã un câine. De obicei, o retea este prezentatã cu un set de antrenare ce consistã într-o suitã de exemple din care reteaua poate practic sã învete. Aceste exemple, denumite si modele de antrenare, sunt reprezentate de vectori, care pot fi luate din surse cum ar fi imaginile, vorbirea sau anumite semnale. Ca rãspuns la aceste “date de intrare” si “datele de iesire” corespunzãtoare; retelele îsi ajusteazã valorile interne, iar dacã testul a reusit, parametrii interni sunt ajustati în punctul în care reteaua poate produce rãspunsurile corecte fiecãrui model test. Deoarece învatã din exemple, ANN-urile au capacitatea de a-si construi propriile sisteme, fãrã a trebui sa fie programate. ANN-urile oferã astfel o inovatie in cadrul programãrii, deoarece intr-un program de calculator obisnuit, fiecare pas executat de calculator este specificat de retea, spre deosebire de ANN-uri, care nu au nevoie decât de o serie de “date de intrare” si “date de iesire” pentru a-si crea un “algoritm” propriu. Oricum, nici o discutie despre retelele neurale artificiale nu ar fi completã daca nu am face referiri si la retelele neuronale “originale”, adicã cele continute de sistemul nervos biologic. Aceste sisteme au fost sursa arhitecturilor primelor retele neuronale. Ambele sisteme, biologic si artificial, sunt bazate pe procesarea paralela a informatiilor prin procesoare puternic interconectate, continând capacitãti precum paralelism masiv, detectori, modularea conexiunilor, etc. Însã, diferentele dintre sistemele neuronale biologice si artificiale sunt substantiale; ANN-urile dispun de interconexiuni neurale cu topologii obisnuite, bazate pe conexiune completã si organizare ramificatã, in timp ce interconexiunile biologice, nu sunt tocmai complet conectate, având o structurã bine definitã la nivelul sistemelor neurale, ce include arii specifice care unesc sinapse si fibre. Cu toate ca multe conexiuni cerebrale pot pãrea aleatoare, este foarte probabil sã existe o anumitã precizie în stabilirea acestora al nivel celular si de ansamblu ca si la nivelul sistemului. O altã diferentã dintre cele douã sisteme este faptul cã creierul se organizeazã in mod dinamic in timpul perioadei de dezvoltare si îsi poate schimba permanent structura conexiunilor, putând apãrea sau dispãrea anumite sinapse în timpul perioadelor critice ale dezvoltãrii. Viitorul retelelor neuronale va beneficia din plin din studiile comparative biologice. Structuri gãsite in cadrul sistemelor biologice pot inspira conceperea unor modele de ANN-uri. Oricum, concluziile trebuie luate cu atentie pentru a se evita confuziile între cele douã tipuri de sisteme.
Construirea unor modele de retele neuronale Modelul neuronal prezentat este cel care convine cel mai mult unui programator care incearcã sã recreeze un set de neuroni care realizeazã “procesarea”. Se construiesc straturile neurale standard si se propagã o unda prin aceste straturi. Lãsãm reteaua sã determine cum informatia este formatã sau structuratã prin straturile neurale lãsând neuronii sã genereze în aceste straturi conexiuni între ei. Cheia construirii unui bun procesor neural stã in descrierea felului în care neuronii fac sinapsa sau in care realizeazã tranzitia impulsurilor. Matricele de greutate sunt obiecte matematice care precizeazã ce neuroni sunt conectati si cât de puternice sunt aceste conexiuni. Dar numai folosirea matricelor de greutate nu este suficientã pentru a exprima natura dinamicã a neuronilor individuali care sunt supusi tranzitiilor cerebrale. Deci vom reprezenta neuronul ca o “masinã stabilã”. Fiecare neuron are o listã sau coadã a conexiunile pe care le poate realiza. Metoda de bazã de formare a acestor liste sau cozi de tranzitie este numitã “trail-and-error”(urmã si eroare). Principalul dezavantaj al folosirii modelelor neurale este utilizarea unor resurse de memorie foarte mari pentru procesarea unui numãr relativ mic de neuroni. Astfel, o prioritate în realizarea retelelor neurale este utilizarea eficientã a puterii descriptive a neuronilor si eficienta descrierii întregii retele folosind matricele de greutate. Unul din programele pionier în acest domeniu este PRISM, care nu a luat în considerare neuronii sau masinile stabile. A încercat doar sã descrie cea mai simplã retea semanticã posibilã. PRISM a reprezentat un set de cuvinte drept profil sau “scenariu” si a utilizat eficient tehnicile de juxtapunere a modelelor prin metodele informatice traditionale pentru a codifica si înmagazina textele scrise sau imaginile. Profilele din PRISM nu prezintã o dependentã fatã de timp. Procesele neurale sunt intrinsec dependente de timp; cel mai elocvent exemplu în acest sens este procesul Markov. Modelul “ascuns” Markov( HMM), este folosit extensiv pentru recunoasterea codului vocal. Recreerea programului PRISM necesitã folosirea unor idei utilizate în modelarea retelelor neuronale. Coerente si sincronizate, undele cerebrale sunt generate de un câmp de neuroni ce fac sinapse între ei. Presupunem cã grupuri de neuroni individuali fac sinapsã în modalitãti care determinã comportamentul global al ansamblelor si straturilor neurale. În construirea unui model informatic pentru a simula functionarea neuronilor, putem folosi un instrument matematic formal pentru a descrie cum sinapsele unor neuroni individuali genereazã un câmp global sau un semnal in straturile neurale. Comportamentul dinamic sau cinetic al undelor neurale a fost descris de cãtre cei care au utilizat modelul Markov. Acest model functioneazã foarte bine atunci când se iau în considerare procesele dinamice de realizare a sinapselor din punctul de vedere al neurobiologistilor. Modelele cinetice Markov au fost folosite pentru a sintetiza o descriere completã a transmisiei sinaptice, ce include deschiderea canalelor de tensiune în terminalul presinaptic, eliberarea neurotransmitãtorilor, activarea receptorilor postsinaptici si a sistemului postsinaptic de transmisie. Modelele Markov evidentiazã proprietãtile esentiale ale curentilor sinaptici, neuromodulatori, electro-ghidati. Formalismul modelelor Markov permite ca dinamica curentilor ionici sã fie consideratã naturalã într-un context mai larg al transductiei semnalelor biochimice. Pentru programatorul de calculatoare, lucrul al acest nivel al detaliilor devine o problemã serioasã datoritã numãrului foarte mare de parametri care descriu proprietãtile chimice ale neuronului. A încerca sã construiesti o paralelã de idei între neuroni si sinapse, pe de o parte, si retelele lingvistice si semantice, pe de altã parte, este foarte dificil. O altã aplicatie este Net-Talk, o retea neuralã care învatã sã producã siruri fonetice, care specificã pronuntarea unui text introdus ca “date de intrare”, un text în limba englezã sub formã de litere succesive dispuse în propozitii. “Datele de iesire” erau reprezentate de notatii fonetice specifice textului introdus, conectate la un generator de “vorbire”, observatorul fiind capabil sã vadã cum reteaua neuralã învatã, practic, sã vorbeascã. Aceastã retea, ce mai poartã si numele celor care au conceput-o, Sejnowski si Rosenberg, a învãtat sã vorbeascã la un ridicat nivel de acuratete. Teoria câmpurilor( “pachetelor”) de unde O modalitate mai simplã si mai intuitivã de descriere a efectelor câmpului global este folosirea teoriei câmpurilor de unde. Dacã acceptãm ca adevãratã ipoteza cã gândurile iau nastere din descãrcãrile coerente sau sinapsele neuronilor, si cã aceste sinapse sincronizate se miscã de-a lungul ansamblului sau câmpului de neuroni atunci aplicare unui model al pachetului de unde pentru a reprezenta sinapsele coerente pare destul de plauzibilã. Din punct de vedere matematic, un pachet de unde este creat atunci când un grup de unde situate in jurul unei frecvente se compun. Pachetul de unde reprezintã o regiune unde are loc o concentrare de energie. Se presupune cã sinapsele, coerente, energetice, compuse din elemente neural-dinamice, pot fi modelate cu ajutorul acestei constructii matematice. Presupunând cã o unda neuralã poate fi descrisã ca un pachet de unde solitar, care se autopropagã( pachet de unde sinaptic), ne putem baza pe disciplina matematicã în analiza undelor, detinând propriul instrument matematic formal. În figura de mai jos(fig.4), aveti un cadru din “filmul” dinamicii unui pachet de unde nonlinear.
Retele si câmpuri semantice Gândurile care se formeazã la nivelul creierului sunt create de sinapsele neuronilor realizate in milioane secvente. Neuronii se descarcã in secvente si paralel formând o undã sinapticã de energie. Portiunile de informatie dobândesc sens doar din perspectiva relatiilor acestora cu celelalte. Fiecare “bucatã” de informatie este definitã prin relatia cu celelalte “piese”. Cuvintele dintr-un dictionar sunt în relatie cu una cu cealaltã prin asocierea într-o retea semanticã. Cuvintele care formeazã un concept sunt compuse în asociatie cu alte concepte într-o ierarhie. Modelul informatic al functionãrii neuronilor, forma structurii acestor elemente neurale, sunt bazate pe analogia cu calculatoarele “statice” si structurile informatice arborescente-binare simple utilizate de programatori. Asa-zisele calculatoare “statice” si arborii binari sunt folositi in construirea compilãrilor pentru a traduce limbajul scris in cod binar. In modelul de mai jos (fig. 5), am figurat traversarea structurilor arborescente binare la propagarea sinapselor neurale printr-o retea de dendrite ale unor neuroni. Fig. 5 Acest model de calculator ce simuleazã activitatea cerebralã este bazat pe o structurare ierarhicã a obiectelor. Obiectul cel mai redus este neuronul. Apoi urmeazã ramura, stratul de ramuri si reteaua. Detaliile acestor obiecte sunt codificate în calculator în urmãtoarele sectiuni. Se observã în figura 6 deplasarea undelor cerebrale de la stânga la dreapta. Analog, ne putem imagina propagarea sinapselor reprezentând secvente ale cãilor ce leagã douã liste arborescente. Figura 6
Dinamica procesãrii listelor necesitã un software eficient pentru a manipula listele in memoria calculatorului. Unul din programele care, probabil, intuieste cel mai bine mecanismul neuronal de codificare a limbajului scris foloseste un obiect-autorul a utilizat programarea orientatã pe obiecte -numit Regulã, care reprezintã o frazã din limbajul folositã cu o structurã gramaticalã bine stabilitã, denumitã prin abreviere CF-PSG( context free phrase structured grammar). Obiectul Regulã permite producerea unor reguli de reprezentare a listelor de conexiuni. Capul listei reprezintã partea stângã a setului de reguli (LHS), iar parte dreaptã a listei (RHS), formeazã restul corpului de reguli.
Fig.7 Retea semanticã – alcãtuire
Ideile geometrice de rescriere a seturilor de reguli sunt usor de vãzut. Implicita dependentã de timp în procesarea neuralã apare, dupã cum am mai precizat la folosirea masinilor statice acre descriu propagarea sau tranzitia undelor neurale. Arhitectura recurentã, evidentiatã de semnalele conexiunilor inverse din inelul de propagare permite dependenta temporalã. Sistemul foloseste stãrile anterioare, trecute în inelul de propagarea fãcând posibilã folosirea “amintirilor trecute”. Deoarece parcurgerea retelei de neuroni de cãtre undele cerebrale se desfãsoarã în parametri constanti, înseamnã ca întregul mecanism de calculare a matricei de greutate se continuã la infinit fiind un proces ciclic, iar fiecare pas al propagãrii are conexiuni inverse recurente. În modelul de mai jos, este prezentat graficul unei retele semantice neurale ce poate fi imaginatã ca un arbore ierarhic tridimensional, în care informatia este codificatã în neuroni localizati. Pachetele de unde ne permit sã obtinem o mai bunã imagine a propagãrii undelor energetice cuantice si localizate.
Deocamdatã, ANN-urile sunt foarte importante in domenii cum ar fi: domeniul financiar (sunt utilizate in algoritmi probabilistici capabili sa prefigureze dinamica actiunilor la bursa), in domeniul studiilor seismologice, în tehnologiile de vârf la recunoasterea unor coduri biologice complexe(vocal, caligrafic, etc.) Retelele neuronale sunt domeniul în care programatorii vor reusi, dacã nu sã acceadã, cel putin sã se apropie de mecanismele cerebrale, sã descopere secretele formãrii gândurilor, ratiunii, constiintei si,( de ce nu?), sã poatã crea sisteme informatice care sã dezvolte aceste calitãti. Perspectivele sunt oarecum îndepãrtate si poate putin de domeniul SF-urilor, dar nu sunt imposibile, în conditiile unui progres acerb al tehnologiei si a sistemelor informatice care evolueazã în ritm exponential si posibilitatea existentei unui calculator care sã simuleze activitatea creierului uman, posibilitate pe care multi oameni de stiintã o considerã cât se poate de plauzibilã.