Scrigroup - Documente si articole

Username / Parola inexistente      

Home Documente Upload Resurse Alte limbi doc  
AstronomieBiofizicaBiologieBotanicaCartiChimieCopii
Educatie civicaFabule ghicitoriFizicaGramaticaJocLiteratura romanaLogica
MatematicaPoeziiPsihologie psihiatrieSociologie


BAZELE TEORETICE ALE RETELELOR NEURONALE

Psihologie psihiatrie



+ Font mai mare | - Font mai mic



BAZELE TEORETICE ALE RETELELOR NEURONALE



Introducere

Creierul uman, intr-o analogie cu un calculator, este un sistem de procesare a informatiilor caracterizat prin complexitate, neliniaritate si paralelism. Creierul uman are capacitatea de a-si organiza activitatea neuronala in asa fel incat sa realizeze activitati complexe (recunoasterea formelor, perceptie, control motric, etc.,.) mult mai rapid si mai performant decat cel mai puternic super - calculator construit vreodata de om. Daca ar fi sa analizam doar vazul uman [77] care poate fi asimilat ca un proces de prelucrare informationala: functia sistemului vizual uman este de a oferi o reprezentare a mediului inconjurator si de a oferi informatia necesara pentru a interactiona cu acest mediu inconjurator [131]. Creierul reuseste ca in aproximativ 100-200 ms. sa rezolve o problema complexa ca aceea a recunoasterii unei persoane, pe cand un sistem de calcul necesita mult mai mult timp pentru sarcini mult mai simple.

La nastere, creierul omului deja are o structura complexa, dar ce este mai important, are capacitatea de a-si "defini" propriile "reguli" prin ceea ce este denumit ca fiind "experienta" si "invatare". Aceasta "experienta" este construita in ani si ani de zile, ceea mai puternica dezvoltare avand loc in primii doi ani de viata, cand aproximativ 1 milion de sinapse sunt formate in fiecare secunda.

Cum functioneaza creierul uman? Raspunsul la aceasta intrebare este departe de a fi cunoscut. Totusi, s-a reusit ca in ultima perioada de timp, sa se faca progrese insemnate in descifrarea modului de functionare a sistemului neuronal. O contributie insemnata au avut-o progresele aparute in neuro - fiziologie, care au insemnat un mare pas inainte in explicarea fenomenelor neurologice. Incercarea de a modela structura si modul de functionare al creierului uman au pus bazele unei noi discipline numita "calcul neuronal".

"Calculul neuronal", este o disciplina complexa, care foloseste cunostinte din numeroase alte discipline traditionale: biologie, neurologie, anatomie, chimie, fizica, matematica, informatica, etc.,. De aceea si studiul calculului neuronal trebuie sa se bazeze pe abordari complexe care sa confere un cadru teoretic si aplicativ riguros, care sa-l transforme intr-o disciplina matura, cu un aparat stiintific bine pus la punct. Din acest punct de vedere, in aceasta teza, vom incerca sa contribuim la studiul calculului neuronal printr-o analiza din punct de vedere matematic, mai precis din punct de vedere al analizei numerice. Ideea de baza o va reprezenta faptul ca o retea neuronala este o schema de aproximare-interpolare. Din acest punct de vedere, vom putea folosi rezultatele consacrate ale analizei numerice pentru un studiu teoretic si practic al calculului neuronal. De asemenea, vom folosi elementele calculului neuronal pentru a imbunatatii proprietatile de aproximare ale unor clase de functii.

Calculul neuronal, reprezentat prin intermediul retelelor neuronale, constituie o metoda noua de calcul cu influente provenite din numeroase alte discipline. Retelele neuronale poseda numeroase calitati: capacitatea de aproximanta universala, abilitatea de a invata si de a se adapta la mediul inconjurator, de a extrage trasaturi fundamentale din datele de intrare [49], [74], [75], [76], [123]. Acest curs, reprezinta o analiza teoretica si aplicativa detailata a calculului neuronal, continand exemple numeroase, experimente aplicative si aplicatii. Este destinat studentilor de la facultatile de inginerie si informatica, precum si celor care doresc sa cunoasca acest domeniu fascinant al calculului neuronal. Cursul este organizat in 8 capitole principale care contin elementele fundamentale ale calculului neuronal.

Capitolul I, contine o scurta descriere a elementelor de baza ale Inteligentei Artificiale, precum si incadrarea modelelor cognitive bazate pe calculul neuronal in cadrul modelelor generale de Inteligenta Artificiala.

In Capitolul II sunt prezentate notiunile introductive fundamentale ale calculului neuronal, motivatia neurobiologica, constructia neuronului artificial, principale arhitecturi de retelele neuronale, clasificarea acestora, domeniile de utilizare si un scurt istoric al calculului neuronal.

In Capitolul III se trateaza riguros din punct de vedere matematic notiunea definitorie a calculului neuronal, si anume procesul de invatare. Se prezinta principalii algoritmi de invatare din calculul neuronal: invatarea ca un proces de optimizare a unei functii eroare, invatarea competitiva, invatarea Hebbiana si invatarea Boltzmann. De asemenea, sunt prezentate si principalele paradigme de invatare: invatarea supervizata, invatarea nesupervizata si invatarea intarita (reinforcement). In acest capitol se face o analiza detaliata a procesului de invatarea prin prisma unui proces statistic. Aceasta analiza statistica permite definirea riguroasa a procesului general de invatare, precum si definirea notiunii de mare importanta, capacitatea de generalizare a unei retele neuronale.

In Capitolul IV se analizeaza detaliat arhitectura fundamentala a retelelor neuronale, si anume perceptronul simplu, care este baza calculului neuronal. Se trec in revista performantele si limitele perceptronului simplu, luandu-se in considerare cele mai importante modele.

Capitolul V este dedicat celui mai importante arhitecturi de retea neuronala, perceptronul multistrat, si a celei mai populare legi de invatare supervizate, algoritmul Back Propagation. De asemenea se analizeaza cele mai importante trasaturi alee perceptronului multistrat, interpretarea geometrica, si altele.

Capitolul VI si VII contin cele mai importante trasaturi ale retelelor neuronale nesupervizate. In Cap VI se analizeaza o serie de arhitecturi fundamentale de retele neuronale nesupervizate, detectoarele de trasaturi, clustering, codificatoare, analiza componentei principale, etc. Cap. VII este dedicat unui tip particular de retea neuronala bazata pe invatare nesupervizata competitiva..

In Capitolul VIII se prezinta aplicatiile invatarii nesupervizate.

Acest curs este adecvat pentru cursurile fundamentale de calcul neuronal, care este o componenta dominanta a Inteligentei Artificiale. Elementele prezentate in acest curs au un fundament matematic solid, care este necesar oricarui tip de pregatire academica.

Pentru aprofundarea aparatul matematic folosit ]n aceasta lucrare recomandam urmatoarele lucruri:

I.     Elemente generale de Inteligenta Artificiala 8

I.1. Sisteme de Inteligenta Artificiala.... 8

I.2. Calculul neuronal in cadrul AI.....13

I.3. Ce este calculul neuronal?....14

I.4. Istoric al dezvoltarii calculului neuronal. 15

I.5. Concluzii.    17

I. Elemente generale de Inteligenta Artificiala.

I.1. Sisteme de Inteligenta Artificiala.

Scopul Inteligentei Artificiale (AI) este de a dezvolta algoritmi sau metode pentru sistemele de calcul, care sa simuleze modul de gandire uman [8]. Evident propozitia aceasta nu trebuie luata ca o definitie riguroasa a conceptului de AI. Ceea ce trebuie totusi remarcat in aceasta propozitie este utilizarea termenului de 'gandire', si nu de 'inteligenta', cu scopul de largi campul aplicatiilor care pot fi considerate ca apartinand AI, ca de exemplu perceptia, prelucrari de limbaj, , etc.

Un sistem AI trebuie sa fie capabil sa efectueze 3 lucruri principale [66]:

memorare de cunostinte;

aplicarea cunostintelor dobandite (memorate) pentru a rezolva probleme;

dobandirea de noi cunostinte prin experienta.

De asemenea, un sistem AI este constituit din trei componente:




Fig. 1.1.: Modelul unui sistem AI cu cele 3 componente ale sale.

Sa analizam fiecare dintre componentele unui astfel de sistem AI:

Reprezentare: Una dintre cele mai distincte trasaturi ale unui sistem AI este posibilitatea de a utiliza un limbaj constituit din simboluri, cu ajutorul carora se pot construi structuri pentru a reprezenta 2 elemente:

cunostinte generale despre o problema de rezolvat;

cunostinte specifice despre solutia problemei de rezolvat;

Simbolurile trebuie descrise de obicei in termeni cat mai familiari, pentru a face reprezentarea simbolica a unui sistem AI cat mai usor de inteles de catre un subiect uman. De aceea claritatea simbolisticii folosite de sistemele AI le face atat de utile in cadrul procesului de comunicatie om-masina.

In terminologia AI, prin termenul de 'cunostinte' intelegem de fapt o alta forma de exprimare pentru notiunea de data. Dar daca privim din punct de vedere al unei reprezentari declarative, cunostintele reprezinta o multime statica de fapte, reunita cu o multime de proceduri generale de prelucrare si manipulare a faptelor. De fapt, trasatura caracteristica a reprezentarilor declarative o constituie faptul ca aceste reprezentari contin un inteles intrinsec prin prisma unui utilizator uman, independent de utilizarea lor in cadrul unui sistem AI. Intr-o reprezentare procedurala, cunostintele sunt incluse intr-un cod executabil care actioneaza de fapt in afara intelesului acestor cunostinte.

Ambele tipuri de cunostinte, declarative si procedurale, sunt necesare pentru a putea rezolva majoritatea problemelor.

2. Gandirea: In cea mai simpla definitie, putem spune despre gandire ca reprezinta abilitatea de a rezolva probleme. Dar pentru ca un sistem sa poata fi calificat ca un sistem dotat cu gandire, acesta trebuie sa satisfaca anumite conditii [66]:

sistemul trebuie sa fie capabil sa exprime si sa rezolve o gama larga de probleme si de tipuri de probleme;

sistemul trebuie sa fie capabil sa extraga din informatiile memorate, informatii explicite si informatii implicite;

sistemul trebuie sa posede un mecanism de control care sa determine, atunci cand o solutie a fost obtinuta, care operatie sa fie aplicata unei probleme particulare, sau, cand trebuie oprita orice activitate relativ la problema de rezolvat.

Rezolvarea problemelor poate fi privita de fapt ca o problema de cautare (searching). Conform cu [82], metoda clasica de a aborda o problema de cautare este de a folosi reguli, date si control. Regulile actioneaza asupra datelor, iar controlul actioneaza asupra regulilor. Sa consideram un exemplu clasic, problema comisionarului voiajor (traveling salesman problem)., care necesita sa se afle cel mai scurt drum care trece prin fiecare oras, dar drumul nu are voie sa treaca decat o data printr-un oras. In aceasta problema datele sunt alcatuite din toate orasele de vizitat precum si din matricea distantelor dintre aceste orase. Regulile reprezinta modul de alegere a urmatorului oras de vizitat, iar controlul constituie decizia de a aplica o regula sau alta precum si momentul de aplicare al acelei reguli.

In practica, de cele mai multe ori insa cunostintele disponibile sunt limitate (de exemplu in diagnosticul medical), putand fi incomplete sau inexacte. In astfel de situatii, se folosesc proceduri de gandire probabilistice, permitand astfel sistemelor AI sa ia in considerare si nedeterminarea.

3. Invatarea: Procesul de invatare poate fi reprezentat grafic prin intermediul schemei din Fig.1.2. Dupa cum se vede din schema, mediul inconjurator furnizeaza anumite informatii elementului de invatare, care la randul sau utilizeaza aceasta informatie pentru a imbogatii si imbunatatii continutul unei baze de cunostinte, iar in final elementul de procesare utilizeaza baza de cunostinte pentru a efectua sarcina dorita.


Fig.1.2: Schema pentru reprezentarea procesului de invatare.

Informatia furnizata de mediul inconjurator sistemului de invatare (masinii) este in general, imperfecta, elementul de invatare nestiind sa umple golurile lasate de informatiile lipsa, sau, sa ignore elementele neesentiale. De aceea masina lucreaza mai mult pe baza deductiilor, ajustandu-si permanent comportamentul pe baza feedback-ului obtinut de la elementul de procesare.

Invatare se refera la doua tipuri de procesari de informatii:

procesare informationala inductiva;

procesare informationala deductiva;

In procesarea inductiva , regulile si formele generale sunt deduse pe baza unor date sau experimente discrete. Pe de alta parte, procesarea deductiva, regulile generale sunt utilizate pentru a determina anumite fapte specifice. Ca un exemplu de invatare inductiva putem considera invatarea bazata pe similaritate, iar ca un exemplu de invatare deductiva procesul de demonstrare a unei teoreme pe baza unor axiome sau teoreme existente. Invatarea avand la baza un proces explicativ utilizeaza si invatarea inductiva si invatarea deductiva.

Importanta bazelor de cunostinte precum si dificultatile unui proces de invatare au condus la dezvoltarea mai multor metode pentru a augmenta bazele de cunostinte. Mai concret, daca exista experti intr-un anumit domeniu, este mult mai usor sa beneficiem de experienta lor intr-o forma compilata, decat de a duplica aceasta experienta. Aceasta reprezinta de fapt idea ce se afla la baza sistemelor expert.

Pana in acest moment ne-am familiarizat doar cu elemente constitutive ale unor masini AI simbolice. Ceea ce ne va interesa in continuare, este cum sa comparam aceste sisteme expert cu retelele neuronale ca si niste modele cognitive? Pentru a raspunde la aceasta intrebare ne vom folosi de modelul descris de [66], care presupune trei nivele:



1. Nivelul explicativ. In cadrul AI clasic, efortul principal este concentrat pe constructia reprezentari simbolice. De obicei aceste reprezentari sunt discrete si arbitrare, de exemplu proprietati abstracte, in locul unor imagini analogice. Din punct de vedere al procesului cognitiv, este evident ca nu ne putem pune problema unei reprezentari mentale, modelarea procesului cognitiv facandu-se pe baza unei procesari secventiale reprezentarilor simbolice.

In cadrul calculului neuronal, procesele cognitive sunt total diferite de cele din AI clasic. Scopul calculului neuronal este de a construi modele paralele de procesare distribuita (PDP - Parallel Distributed processing). Aceste modele PDP presupun ca procesarea informatiei se face prin interactiunea unui numar mare de neuroni, fiecare neuron trimitand semnale excitatorii sau inhibitorii catre alti neuroni ai retelei neuronale de care apartin [136].Mai mult chiar, retelele neuronale pun un mare pret pe explicarea neurobiologica a fenomenelor cognitive.

2. Metoda de procesare. In AI clasic, modul de procesare este secvential, ca la calculatoarele clasice von Neumann. Chiar daca nu exista o ordine predeterminata, operatiile trebuie efectuate in maniera pas-cu-pas. Acest mod de procesare secvential are ca sursa de inspiratie natura secventiala a limbajului natural, trebuind sa observam ca AI traditional s-a nascut la putin timp dupa masina von Neumann.

Pe de alta parte, procesarea paralela reprezinta una din trasaturile definitorii ale retelelor neuronale. Paralelismul este esential nu numai pentru modul de procesare al informatiilor de catre o retea neuronala, dar si sursa principala a flexibilitatii lor. Paralelismul poate fi masiv in cadrul retelelor neuronale (sute de mii de neuroni), ceea ce le confera acestora o remarcabila robustete. Procesul de calcul fiind distribuit relativ la un numar mare de neuroni, deviatia calculelor generate de un numar mic de neuroni nu il afecteaza. Date de intrare zgomotoase, deteriorate sau incomplete pot fi folosite totusi de reteaua neuronala, o retea neuronala partial deteriorata poate functiona satisfacator, invatarea unei retele neuronale netrebuind sa fie perfecta; performantele retelei neuronale se degradeaza continuu si nu abrupt. Astfel, sistemele PDP aproximeaza flexibilitatea unui sistem continuu, in contrast evident cu rigiditatea sistemelor AI traditionale bazate pe simbolica discreta.

O alta trasatura demna de mentionat a paralelismului o reprezinta faptul ca cunostintele nu sunt reprezentate prin expresii declarative, ci prin structura si nivelul de activare al retelei neuronale. Atunci rezult ca, continutul necesar descrierii unei probleme nu reprezinta altceva decat insasi reteaua neuronala.

Calculul secvential reprezinta trasatura fundamentala a AI traditional, in timp ce calculul paralel caracterizeaza retelele neuronale.

3. Structura de reprezentare. Dupa cum am vazut, AI traditional are la baza reprezentarea simbolica, care poseda o structura cvasi lingvistica. Ca si expresiile limbajului natural, expresiile din AI traditional sunt in general complexe, fiind construite din simboluri simple intr-o maniera sistematica. Cu ajutorul unei multimi limitate de simboluri, noi expresii pline de continut pot fi construite pe baza analogiei dintre structurile semantice si sintactice.

Natura si structura reprezentarii sunt o problema cruciala a retelelor neuronale. Acest subiect nu a fost pus nici un moment la indoiala in partizanii celor doua tabere ale AI traditional si clasic. De fapt s-au adus numeroase critici din acest punct de vedere la adresa retelelor neuronale, cea mai competenta critica [66] subliniind urmatoarele in favoarea AI traditional fata de retelele neuronale:

Reprezentarile mentale prezinta in mod caracteristic o structura combinatoriala si o semantica combinatoriala;

Procesele mentale sunt senzitive la structura combinatoriala a reprezentarii asupra carora opereaza.

Intr-o retea neuronala reprezentarea este distribuita. Totusi, trebuie sa subliniem faptul ca cele mai multe retele neuronale propuse ca si candidati pentru reprezentarea structurala distribuita au mai de graba un caracter ad-hoc; ele rezolva problema relativ la o clasa particulara intr-o maniera ce nu permite o extindere simpla.

In concluzie, putem defini AI simbolic ca fiind manipularea formala a unui limbaj algoritmic si reprezentarea datelor dupa modelul top-down. Pe de alta parte, putem defini retelele neuronale ca fiind procesoare simple distribuite ce poseda o capacitate naturala de a invata, modul lor de operare fiind mai de graba de tip buttom-up. De aceea pentru a implementa unor aplicatii cu caracter cognitiv, cea mai buna solutie ar fi este de a construi un puternic model structural conexionist, care sa imbine puterea ambelor directii din AI: AI traditional ti retelele neuronale. Astfel am fi in stare sa combinam trasaturile pozitive ale retelelor neuronale - adaptivitate, robustete, uniformitate, cu cele ale AI simbolic - reprezentare, inferenta si universalitate. Un astfel de hibrid poate fi eficient daca reusim sa stabilim cu precizie domeniile de eficienta a celor doua constituente:

AI simbolic este mai eficient pentru procesare de limbaj, planificare, sau gandire explicita;

retelele neuronale sunt mai eficiente procesele perceptuale de mic nivel, recunoasterea formelor si memorie asociativa.

I.2. Calculul neuronal in cadrul AI.

Calculul neuronal reprezinta o alternativa viabila fata de metodele de calcul traditional, care timp de cativa zeci de ani au dominat stiintele cognitive si domeniul AI , cu toate ca modelele matematice generate cu ajutorul calculului neuronal raman inca controversate.

Calculul neuronal se bazeaza pe o serie de modele matematice inspirate din neurobiologie, numite modele conexioniste sau retele neuronale. Retelele neuronale pot fi caracterizate prin trei trasaturi computationale generale:

- straturi distincte de unitati de calcul interconectate.

- reguli recursive de modificare a "tariei" conexiunilor dintre unitatile de calcul.

- Unitati de calcul simple si omogene.

Utilizand doar aceste trei trasaturi se pot construi si modela sisteme deosebit de puternice si elegante, corespunzatoare memoriei, perceptiei, categorizarii, controlului motric, recunoasterii formelor si chiar pentru gandirea umana.

In acest capitol vom incerca sa raspundem la intrebarile:

- ce este calculul neuronal?

- ce il face sa fie diferit de alte metode de calcul?

- la ce poate fi utilizat?

- care sunt implicatiile tehnologice ale calcului neuronal?

- cum s-a dezvoltat istoric calculul neuronal?

- care este stadiul actual de dezvoltare al calculului neuronal?

Pentru a raspunde la ultima intrebare vom prezenta doua din cele mai importante modele conexioniste care stau la baza calcului neuronal: perceptronul simplu si perceptronul multistrat, impreuna cu elementele lor definitorii.

I.3. Ce este calculul neuronal?

Creierul uman este cel mai complex sistem de calcul. Capacitatea creierului uman de a gandi, memora, de a rezolva probleme complexe au tentat in ultima perioada de timp un mare numar de cercetatori, in incercarea de a modela modul sau de operare. Aceste incercari de a crea un sistem de calcul care sa cuprinda trasaturile fundamentale ale creierului uman, au generat o noua directie de cercetare, care poate fi numita pe scurt, calcul neuronal.

Oricine poate sesiza faptul ca creierul uman este de departe superior oricarui calculator digital, aproape in orice domeniu. Un exemplu elocvent: un copil de 1 an de zile este mult mai rapid si mai precis in recunoasterea obiectelor si a persoanelor decat cel mai avansat sistem de inteligenta artificiala, ruland pe cel mai puternic supercalculator.



Creierul uman are numeroase trasaturi care s-au dorit a fi modelate cu ajutorul unor sisteme de calcul artificiale [30]:

- este robust si tolerant la deteriorari. Celulele nervoase din creier mor zilnic fara a afecta performantele sale.

- este flexibil, putandu-se adapta la un nou mediu prin "invatare", pentru aceasta nu trebuie sa fie programat intr-un limbaj de programare ( Pascal, C, Fortran, Lisp, etc., ..).

- poate prelucra informatii incomplete, inconsistente, probabilistice.

- este un sistem cu un inalt grad de paralelism.

- este de dimensiuni mici, compact, disipand o foarte mica cantitate de energie.

Doar in activitati de calcul bazate pe operatii algebrice putem spune ca un sistem de calcul electronic (un computer), depaseste performantele creierului uman.

Trasaturile de mai sus ale creierului uman constituie o motivatie reala pentru necesitatea studiului calculului neuronal. Calculul neuronal, asa cum am mai precizat, reprezinta o alternativa viabila la metodele de calcul traditional, bazate pe programarea unei secvente de instructiuni, indiferent daca modul de procesare este serial sau paralel [158].

Calculul secvential a fost introdus de von Neumann [160], constituind baza tuturor echipamentelor de calcul existente astazi. Calculul neuronal are ca sursa de inspiratie cunostintele acumulate de stiintele neurologice, cu toate ca nu intotdeauna elementele folosite sunt plauzibile din punct de vedere biologic. In lucrarea noastra, dorind sa prezentam un nou model de calcul, vom neglija plauzibilitatea biologica, noi fiind interesati de alte trasaturi.

I.4. Istoric al dezvoltarii calculului neuronal.

Putem considera anul 1943, momentul de nastere a calculului neuronal cand microbiologistul W. McCullogh si matematicianul W. Pitts, publica lucrarea fundamentala [104] "A Logical Calculus of Ideas Immanent in Nervous Activity". Modelul de neuron artificial apartine acestor cercetatori. Aceasta lucrare a constituit punctul de pornire a trei domenii de cercetare:

- Calculatoare digitale. John vonNeumann a caracterizat aceasta lucrare ca o schema functionala a unui creier electronic.

- Inteligenta Artificiala. Marvin Minsky, unul din cei mai importanti cercetatori ai domeniului Inteligentei Artificiale, a fost inspirat de idea inteligentei macroscopice continuta in aceasta lucrare de referinta, ducand la dezvoltarea primelor sisteme expert.

- Calcul neuronal. Un mare numar de cercetatori, incepand cu F. Rosenblatt, au dezvoltat bazele acestui model de calcul, avand la baza o arhitectura inspirata de modelele neurologice biologice, retelele neuronale.

Urmatorii 50 de ani de la lucrarea lui McCullogh si Pitts cunosc in domeniul cercetarii un efort considerabil in cunoasterea logicii discrete si a modului de operare al retelelor neuronale. Retelele neuronale au fost concepute ca sisteme universale de calcul, existand o analogie cu masinile cu stari finite [109].

La extremitatea opusa logicii discrete, au fost dezvoltate o serie de cercetari avand la baza aspectul continuu. Cunoscut sub numele de neurodinamica sau teoria campului neuronal, aceste teorii utilizeaza ecuatii diferentiale, pentru a descrie activitatea nervoasa cerebrala [1],[13],[128],[166], [168].

Aproximativ in jurul anului 1960, intalnim unul din momentele de varf ale cercetarii calculului neuronal, prin activitatea desfasurata de un grup de cercetatori condusi de F. Rosenblatt. Telul activitatii lor l-a reprezentat problema determinarii tariilor sinaptice, relativ la o problema data. Pentru aceasta au construit modelul de retea neuronala numit Perceptron, constituit din neuroni grupati pe straturi succesive, cu o propagare directa a informatiei, de la stratul de intrare catre stratul de iesire. Perceptronul prezinta o mare importanta, nu numai din punct de vedere istoric, ci si prin prisma faptului ca din perceptron au evoluat aproape toate celelalte modele de retele neuronale. De asemenea, perceptronul este unica retea neuronala pentru care s-a reusit demonstrarea convergentei unei legi de invatare. Din momentul in care s-a cunoscut teorema de convergenta, calculul neuronal a capatat un statut de cercetare aparte, o armata intreaga de cercetatori dedicandu-i-se, fonduri mari fiindu-i alocate. Entuziasmul nu a durat prea mult deoarece s-a inteles ca teorema de convergenta a legii de invatare a perceptronului simplu (perceptron cu un singur strat) are un caracter limitat. Acest lucru a fost pus in evidenta de M. Minsky si S. Papert, in cartea lor Perceptrons [110].

Cam in aceeasi perioada, modele simple de retele neuronale au fost construite de cercetatorii Widrow si Hoff [165], model numit Adaline (Adaptive Linear Neuron), iar mai tarziu Madaline (Multiple Adaptive Linear Neuron). Aceste retele neuronale reprezentau implementarea cu ajutorul calculului neuronal a unei clase de functii liniare adaptive.

M. Minsky si S. Papert au aratat folosind argumente geometrice, ca un perceptron simplu este capabil sa reprezinte doar probleme pentru care spatiul datelor de intrare este liniar separabil. Celebrul exemplu XOR (SAU EXCLUSIV), problema care nu poate fi rezolvata cu un perceptron simplu, apartine celor doi cercetatori.

Era clar ca perceptronul simplu are o capacitate de reprezentare limitata la clasa functiilor liniar separabile. Limitarea putea fi inlaturata prin adaugarea de straturi ascunse la topologia perceptronului simplu, obtinandu-se perceptronul multistrat (multylayered perceptron). Din pacate, in acea perioada nu s-a putut descoperi o lege de invatare pentru perceptronul multistrat. M. Minsky si S. Papert chiar si-au manifestat indoiala ca o astfel de lege de invatare ar exista, propunand abandonarea calculului neuronal in favoarea altor metode ale Inteligentei Artificiale. A urmat o perioada de aproape 20 de ani, in care doar cativa cercetatori temerari au continuat sa mai lucreze in acest domeniu. Tema majora abordata de acestia o reprezinta cercetarile legate de memoriile asociative, bazate pe corespondenta dintre vectorii de intrare, cand acestia au un grad suficient de mic de similaritate. De fapt acest subiect al memoriilor asociative fusese abordat mai inainte de Taylor [151] si Steinbuch [146], Anderson [7], Willshaw [167], Marr [99], Kohonen [85] [86]. Grossberg [61] redefineste problema generala a invatarii intr-o retea neuronala.

O alta directie de dezvoltare este datorata lui Cragg si Temperlay [27], care au reformulat modelul McCullogh-Pitts ca un sistem de spin magnetic, dupa modelul fizic. In acest model s-a considerat ca memoria consta din histerezisul formei domeniului asteptat la un astfel de sistem. Caianiello [21] construieste o teorie statistica, folosind idei ale mecanicii statistice. Aceleasi preocupari le regasim la Little [95] si la Hopfield [73].

Lui Hopfield i se datoreaza conceptul foarte important de functie energetica atasata retelei neuronale si cea de memorie privita prin prisma unor atractori dinamici stabili.

Hinton si Sejnowski [70], Peretto [121] dezvolta ideea de neuron stohastic care se comporta aproximativ ca un neuron McCullogh-Pitts, in functie de o anumita probabilitate analoga temperaturii fizice din mecanica statistica.

Amit [4] dezvolta teoria sistemelor magnetice aleatoare, numite spin glasses, care constituie preludiul implicarii puternice a mecanicii statistice in domeniul calculului neuronal.

Totusi, cel mai important moment al dezvoltarii calcului neuronal il reprezinta momentul descoperirii unei legi de invatare pentru perceptronul multistrat, lege de invatare numita Propagare-Inapoi (Back-Propagation). Idea de baza apartine lui Werbos [162], dar este reformulata independent si adusa in atentia lumii stiintifice de Rumelhart, Hinton si Williams [134]. Din acest moment se pune in evidenta caracterul universal al calculului neuronal, construindu-se si un mare numar de aplicatii practice, lumea stiintifica acordandu-i o justificata atentie.

O analiza mai detaliata a aspectului istoric a dezvoltarii calculului neuronal se poate gasi in [6].

I.5. Concluzii.

Tot ceea ce am prezentat in acest capitol reprezinta o pledoarie in favoarea calculului neuronal. Din punct de vedere teoretic problemele sunt deosebit de atractive si bine fundamentate; din punct de vedere practic aplicarea calculului neuronal si prin urmare constructia unei retele neuronale trebuie sa fie precedata de raspunsuri date la urmatoarele intrebari :

- Care este arhitectura optimala? Cate straturi sunt necesare? Cati neuroni sunt necesari in fiecare strat? Cate conexiuni sinaptice sunt necesare si cum trebuie organizate acestea? Ce fel de functie de activare trebuie sa folosim? Ce lege de invatare este mai eficienta? Trebuie sa folosim o lege de invatare sincrona sau asincrona, determinista sau stohastica?

- Cate exemple trebuie sa prezentam retelei neuronale pentru a invata ceea ce dorim noi? De cate ori trebuie sa-i prezentam aceste exemple? E nevoie ca procesul de invatare sa fie supervizat sau poate fi doar reantarit?

- Ce poate efectua de fapt o retea neuronala construita pentru o anumita problema? Cate probleme poate ea rezolva? Cat de bine? Cat de repede? Cat de robusta este reteaua neuronala fata de date incorecte, deteriorari sau eliminari de neuroni? Poate reteaua neuronala generaliza cu succes? Ce fel de clase de functii poate reprezenta?

- Cum poate fi implementata din punct de vedere software si hardware reteaua neuronala? Care sunt avantajele si dezavantajele diferitelor implementari hardware posibile, ce performante au in raport cu simularea software?





Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1680
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved