Sunteți pe pagina 1din 300

CĂLIN ENĂCHESCU

CALCULUL NEURONAL

2008

CUPRINS

Introducere

7

I. Elemente generale de Inteligenţă Artificială

11

I.1. Sisteme de Inteligenţă Artificială

11

I.2. Calculul neuronal în cadrul AI

15

I.3. Ce este calculul neuronal?

16

I.4. Istoric al dezvoltării calculului neuronal

16

I.5.

Concluzii

18

II Noţiuni generale

21

II.1. Elemente de bază ale calculului neuronal

21

 

II.1.1.

Neuronul

biologic

21

II.1.2.

Neuronul

artificial

23

II.1.3. Diferenţe între neuronul biologic şi neuronul artificial

25

II.2. Reţele neuronale artificiale

25

II.3. Modul de operare al reţelelor neuronale

27

II.4.

Taxonomia reţelelor

neuronale

28

II.5. Calculul neuronal versus Inteligenţa Artificială şi calculul algoritmic

30

 

II.5.1. Programare versus învăţare

31

II.5.2. Memorii asociative distributive

31

II.5.3. Toleranţa la deteriorări

32

II.5.4. Recunoaşterea formelor (Pattern Recognition)

32

II.5.5.

Sinte

32

II.5.6. Calculul neuronal versus calculul algoritmic

33

II.6. Domenii de utilizare ale reţelelor neuronale

34

II.6.1. Procesarea limbajului

34

II.6.2. Comprimarea datelor

36

 

II.6.3.

Recunoaşterea caracterelor

36

II.6.4. Probleme combinatoriale

37

II.6.5.

Recunoaşterea formelor

37

II.6.6. Prelucrarea semnalelor

38

II.6.7.

Modelare economică şi financiară

39

II.6.8.

Servo-control

39

II.6.9.

Teoria aproximării

40

II.7.

Clasificare

 

40

II.8. Tehnologii implicate în dezvoltarea calculului neuronal

43

II.8.1. Simulatoare software

43

II.8.2. Acceleratoare hardware

44

II.8.3. Procesoare neuronale

44

 

II.8.4.

Procesoare

optice

45

III. Procesul de învăţare

47

III.1.

Noţiuni generale

47

III.2.

Algoritmi de învăţare

48

III.2.1. Învăţare pe baza minimizării unei funcţii eroare

48

III.2.2. Învăţare Hebbiană

50

III.2.3. Învăţare competitivă

51

III.2.4. Învăţare Boltzmann

52

III.3. Paradigme de învăţare

54

III.3.1. Învăţare supervizată

54

III.3.2. Învăţare nesupervizată

55

III.3.3. Învăţare întărită (reinforcement)

56

III.4. Natura statistică a procesului de învăţare

57

 

III.4.1.

Generalităţi

57

III.4.2. Contradicţia dintre varianţă şi bias

61

III.4.3. Modelul general al procesului de învăţare

62

III.4.4. Capacitatea de generalizare

68

IV. Perceptroni

75

IV.1. Perceptronul simplu

75

IV.1.1. Modul de operare al PS

75

IV.1.2. PS cu funcţie de activare f(x) = sgn(x)

76

IV.1.3. PS cu funcţie de activare liniară

81

IV.1.4. PS cu funcţie de activare neliniară

83

IV.1.5.

PS

stohastic

85

IV.1.6. Capacitatea de memorare a PS

89

IV.1.7. Interpretarea geometrică a PS

91

IV.2. Perceptronul multistrat (PMS)

94

IV.2.1. Legea de învăţare BP

94

IV.2.2. Variante ale legii de învăţare BP pentru PMS

97

IV.2.3. Interpretarea geometrică a PMS

104

V. Învăţarea activă

109

V.1.

Introducere

109

V.2. Un cadru general pentru aproximarea activă

109

 

V.2.1.

Preliminarii

109

V.2.2. Algoritmi de alegere a exemplelor

111

V.3. Învăţare activă. Aproximarea funcţiilor continue monoton crescătoare şi mărginite

114

V.3.1. Limita inferioară pentru învăţarea pasivă

115

V.3.2. Algoritmul învăţării active (AIA)

116

V.3.3. Simulări experimentale şi alte investigaţii

121

V.4. Învăţare activă. Aproximarea funcţiilor derivabile cu derivata mărginită

122

V.4.1. Limita inferioară a numărului de exemple

123

V.4.2. Obţinerea unei strategii optimale de alegere a exemplelor

125

V.4.3. Algoritmul de învăţare activă (AIA)

128

V.4.4. Distribuţia exemplelor selectate

129

VI. Învăţarea nesupervizată

131

VI.1.

Generalităţi

131

VI.2. Invăţarea nesupervizată Hebbiană simplă

133

VI.2.1.

Modelul liniar simplu

133

VI.2.2. Regula lui Oja

135

VI.2.3. Alte reguli de învăţare nesupervizată

139

VI.3. Analiza componentei principale

139

VI.3.1. PCA - Analiza Componentei Principale aplicată la PS

141

VI.4. Hărţi de trăsături (feature detection)

144

VI.5.

Învăţarea nesupervizată competitivă

150

VI.5.1.

Generalităţi

150

VI.5.2.

Invăţarea competitivă

151

VI.5.3.

Studiul convergenţei

155

VI.6. Aplicaţii ale învăţării nesupervizate

157

VI.6.1. Scheme auto-organizabile

157

VI.6.2. Hărţi de trăsături (feature mapping)

167

VII. Proprietatea de aproximantă universală a reţelelor neuronale

173

VII.1. Teorema lui Kolmogorov şi perceptronul multistrat

173

VII.1.1.

Preliminarii

173

VII.1.2.

Teorema fundamentală

174

VII.1.3.

Demonstraţii

175

VII.2.Teorema lui Stone-Weierstrass şi perceptronul multistrat

180

VII.2.1.

Introducere

180

VII.2.2. Notaţii şi definiţii

180

VII.2.3. Teoreme fundamentale şi demonstraţii

183

VII.3. Aplicaţii ale teoremei lui Stone-Weierstrass la reţele neuronale

185

VII.3.1.

Introducere

185

VII.3.2. Exemple de reţele neuronale ce satisfac teorema lui Stone-Weierstrass

185

VII.4. Proprietăţi fundamentale de aproximare ale reţelelor neuronale

190

VII.4.1.

Noţiuni introductive

190

VII.4.2. Enunţuri şi rezultate

191

4

VII.4.3. PMS pentru aproximarea unei funcţii şi a derivatelor sale

193

VII.5. Limitele aplicării în practică a proprietăţilor reţelelor neuronale

202

VII.5.1.

Echivalenţa polinomială

202

VII.5.2. Influenţa procesului de învăţare

204

VIII. Reţelele neuronale ca şi metode de aproximare -interpolare

207

VIII.1. Problema aproximării

208

VIII.1.1. Metode de aproximare globale

208

VIII.1.2. Metode de aproximare locale

209

VIII.1.3. Caracterizarea metodelor de aproximare

210

VIII.2. Aproximarea funcţiilor netede

211

VIII.2.1. Alegerea reţelei neuronale aproximante

212

VIII.2.2. Influenţa numărului de date de antrenament

212

VIII.2.3. Reţele neuronale şi teoria regularizării

213

VIII.3. Proprietatea de cea mai bună aproximantă

234

VIII.3.1. Aplicaţia 1: Reţele neuronale de tip BP (Back Propagation)

237

VIII.3.2. Aplicaţia 2: Reţele neuronale de regularizare

238

IX. Aplicaţiile teoriei regularizării la reţelele neuronale

241

IX.1. Reţele neuronale de tip PMSR

241

IX.1.1. Construcţia reţelei neuronale de tip PMSR

241

IX.1.2. Reducerea dimensionalităţii reţelei neuronale PMSR

243

IX.2. Proprietăţile reţelelor neuronale de tip PMSR

261

X. Studiul aplicativ a performanţelor calculului neuronal

265

X.1. Modul practic de construcţie a reţelei neuronale

265

X.2. Studiul comparativ dintre reţelele neuronale şi metodele clasice de aproximare interpolare

268

XI. Concluzii

285

XI.1.

Concluzii generale

285

XI.2.

Perspective

289

XII. Bibliografie

291

Introducere

Creierul uman, într-o analogie cu un calculator, este un sistem de procesare a informaţiilor caracterizat prin complexitate, neliniaritate şi paralelism. Creierul uman are capacitatea de a-şi organiza activitatea neuronală în aşa fel încât să realizeze activităţi complexe (recunoaşterea formelor, percepţie, control motric etc.) mult mai rapid şi mai performant decât cel mai puternic super - calculator construit vreodată de om [9]. Dacă ar fi să analizăm doar văzul uman [105] acesta poate fi asimilat ca un proces de prelucrare informaţională: funcţia sistemului vizual uman este de a oferi o reprezentare a mediului înconjurător şi de a oferi informaţia necesară pentru a interacţiona cu acest mediu înconjurător [169]. Creierul reuşeşte ca în aproximativ 100-200 ms. să rezolve o problemă complexă ca aceea a recunoaşterii unei persoane, pe când un sistem de calcul necesită mult mai mult timp pentru sarcini mult mai simple.

La naştere, creierul omului deja are o structură complexă, dar ce este mai important, are capacitatea de a-şi "defini" propriile "reguli" prin ceea ce este denumit ca fiind "experienţă" şi "învăţare". Această “experienţă” este construită în ani şi ani de zile, cea mai puternică dezvoltare având loc în primii doi ani de viaţă, când aproximativ 1 milion de sinapse sunt formate în fiecare secundă.

Cum funcţionează creierul uman? Răspunsul la această întrebare este departe de a fi cunoscut. Totuşi, s-a reuşit ca în ultima perioadă de timp, să se facă progrese însemnate în descifrarea modului de funcţionare a sistemului neuronal. O contribuţie însemnată au avut-o progresele apărute în neuro-fiziologie, care au însemnat un mare pas înainte în explicarea fenomenelor neurologice. Încercarea de a modela structura şi modul de funcţionare al creierului uman au pus bazele unei noi discipline numită "calcul neuronal".

"Calculul neuronal" este o disciplină complexă care foloseşte cunoştinţe din numeroase alte discipline tradiţionale: biologie, neurologie, anatomie, chimie, fizică, matematică, informatică etc. De aceea, studiul calculului neuronal trebuie să se bazeze pe abordări complexe care să confere un cadru teoretic şi aplicativ riguros, care să-l transforme într-o disciplină matură, cu un aparat ştiinţific bine pus la punct. De aceea, în această carte, vom încerca să contribuim la studiul calculului neuronal printr-o analiză din punct de vedere matematic. Ideea de bază o va reprezenta faptul că o reţea neuronală este o schemă de aproximare-interpolare. Din acest punct de vedere, vom putea folosi rezultatele consacrate ale analizei numerice pentru un studiu teoretic şi practic al calculului neuronal. De asemenea, vom folosi elementele calculului neuronal pentru a îmbunătăţii proprietăţile de aproximare ale unor clase de funcţii.

Analogia dintre o reţea neuronală şi o metodă de aproximare se obţine dacă analizăm cu atenţie procesul învăţării pe baza unor exemple. De fapt, vom arăta în această carte, că o reţea neuronală nu este altceva decât o reprezentare particulară a mai multor metode de aproximare. În particular, o reţea neuronală fără straturi ascunse (perceptron simplu) corespunde metodelor liniare de aproximare, iar reţelele neuronale cu unul sau mai multe straturi ascunse corespund metodelor de aproximare polinomială. Din cele menţionate până acum rezultă cu claritate importanţa studiului procesului de învăţare pe baza unor exemple, ceea ce ne va permite să abordăm tehnologia calculului neuronal prin prisma teoriei aproximării.

Procesul de învăţare a reprezentat întotdeauna problema centrală în încercarea de a înţelege ce este "inteligenţa" şi de a construi maşini "inteligente". Este adevărat însă, că în

cadrul teoriei clasice a Inteligenţei Artificiale, procesului de învăţare nu i se acordă o importanţă prea mare. De aceea, mulţi ani, testul Turing [112] a reprezentat o unitate de

măsură folosită de membrii comunităţii Inteligenţei Artificiale. De fapt, definiţia dată noţiunii de "inteligenţă" în sensul lui Turing poate fi privită mai degrabă ca o capacitate de a rezolva probleme, de a demonstra teoreme, de a juca şah etc. În contrast cu această abordare simplistă, cercetările din cadrul calculului neuronal ţin cont de complexitatea acestei probleme, precum

şi de dificultatea de a încerca să implementăm chiar şi o "fărâmă" de inteligenţă folosind un

program ce rulează pe un sistem clasic de calcul.

O tentativă de a "construi" sisteme inteligente trebuie să se bazeze pe existenţa competenţei perceptuale, motrice şi lingvistice. De aceea, folosind procesul de învăţare ca un nucleu al calculului neuronal, vom putea înţelege şi analiza modul de funcţionare şi de construcţie a unor sisteme "inteligente". Am amintit, şi vom arăta riguros acest lucru, că procesul de învăţare supervizată este echivalent cu aproximarea sau interpolarea unei funcţii. Cu alte cuvinte, teoria aproximării poate juca un rol esenţial în definirea unor noţiuni deosebit

de abstracte şi dificil de cuantificat din cadrul Inteligenţei Artificiale. Dacă o reţea neuronală este echivalentă cu o schemă de aproximare, este foarte important să se analizeze din această prismă proprietăţile sale: proprietatea de aproximantă universală, proprietatea de cea mai buna aproximantă, cadrul general de aplicabilitate, performanţele de aproximare. Vom face însă şi

o definire riguroasă a noţiunii de "proces de învăţare" pe care l-am folosit până acum ca un termen generic.

De asemenea, foarte importantă este comparaţia dintre calculul algoritmic și cel neuronal, comparaţie care scoate în evidență următoarea concluzie: calculul algoritmic necesită programare, adică stabilirea unui set de reguli care să caracterizeze a priori calculul ce urmează a fi implementat pe calculator; reţelele neuronale învaţă, "absorb" experienţa, modificându-şi structura internă în scopul efectuării acţiunii dorite.

Cartea este structurată pe unsprezece capitole, care ţin cont de aspectele tratate şi de contribuţiile aduse în acest domeniu.

Capitolul I conţine o prezentare generală a Inteligenţei Artificiale. De asemenea, se prezintă calculul neuronal ca o componentă dominantă și definitorie a Inteligenţei Artificiale. În acest context, se încearcă definirea noţiunii de calcul neuronal, precum și un studiu istoric al dezvoltării calculului neuronal.

Capitolul II, care are un caracter introductiv, conţine tratarea unor subiecte generale:

elemente de bază ale calculului neuronal, ce îl face să fie diferit de alte metode de calcul, la ce poate fi utilizat, care sunt implicaţiile tehnologice ale calcului neuronal, clasificarea reţelelor neuronale, domenii de utilizare, care este stadiul actual de dezvoltare al calculului neuronal.

În Capitolul III se tratează riguros din punct de vedere matematic noţiunea definitorie a calculului neuronal și anume procesul de învăţare. Se prezintă principalii algoritmi de învăţare din calculul neuronal: învăţarea ca un proces de optimizare a unei funcţii eroare, învăţarea competitivă, învăţarea Hebbiana și învăţarea Boltzmann. De asemenea, sunt prezentate şi principalele paradigme de învăţare: învăţarea supervizată, învăţarea nesupervizată și învăţarea întărită (reinforcement). În acest capitol se face o analiză detaliată a procesului de învăţare prin prisma unui proces statistic. Această analiză statistică permite definirea riguroasă a procesului general de învăţare, precum şi definirea unei noţiuni de mare importantă în cadrul calculului neuronal, capacitatea de generalizare a unei reţele neuronale.

În Capitolul IV se prezintă elementele definitorii a unei reţele neuronale cu propagare directă a informaţiilor şi anume, perceptronul. În prima parte a acestui capitol se prezintă cea mai simplă reţea neuronală numită perceptron simplu (un strat de intrare şi un strat de ieşire), studiindu-se proprietăţile sale. Se trec în revistă diferite tipuri de perceptroni simpli cu

diferite funcţii de activare. În continuare, se trece la o arhitectură mai complexă si anume la perceptronul multistrat, care are în componenţa sa şi straturi ascunse. De asemenea, se face o analiză a legilor de învăţare supervizată. Din această clasă de algoritmi supervizaţi, algoritmul de învăţare Back Propagation este analizat din punct de vedere matematic, cu variantele sale şi cu anumite îmbunătăţiri.

Capitolul V este dedicat unei metode de învăţare supervizate, numită învăţare activă. Metoda prezentată este bazată pe o implicare activă a antrenorului în procesul de învăţare, acesta luând decizii legate de alegerea exemplelor de învăţat. Sunt prezentate performanţele acestei metode de învăţare ca un studiu al aproximării funcţiilor continue monoton crescătoare și a funcţiilor derivabile cu derivata mărginită.

Analiza proceselor de învăţare nesupervizate se face în Capitolul VI. Acest capitol conţine cele mai importante trăsături ale învăţării nesupervizate și anume: învăţarea Hebbiană, analiza componentelor principale, învăţarea nesupervizată competitivă. Tot în acest capitol se prezintă și aplicaţiile învăţării nesupervizate în cadrul schemelor auto-organizabile și ale hărţilor de trăsături.

Capitolul VII cuprinde analiza proprietăţii de aproximantă universala a reţelelor neuronale. În acest scop se foloseşte Teorema lui Kolmogorov, precum şi Teorema lui Stone-Weierstrass. Analiza din acest capitol stabileşte condiţiile pe care trebuie să le satisfacă o reţea neuronală pentru a satisface proprietatea de aproximantă universală. Se analizează cele mai reprezentative exemple de reţele neuronale. Analiza teoretică este întărită de o analiză a limitelor pe care le are implementarea practică a reţelelor neuronale.

În Capitolul VIII se analizează reţelele neuronale ca și metode de aproximare. Se defineşte problema aproximării în contextul calcului neuronal. De asemenea, se prezintă aproximarea funcţiilor netede cu ajutorul reţelelor neuronale. Folosind teoria regularizării se construiesc reţele neuronale cu performanţe foarte bune de aproximare-interpolare. Proprietatea de cea mai bună aproximantă este luată în considerare în analiza unor clase generale de reţele neuronale.

Capitolul IX este dedicat aplicării teoriei regularizării în contextul construirii unor reţele neuronale folosite ca metode de aproximare. Se construieşte reţeaua neuronală de tip PMSR (Perceptron MultiStrat de Regularizare) şi se analizează proprietăţile pe care le are o astfel de reţea neuronală.

Capitolul X conţine elemente de aplicare și implementare a reţelelor neuronale de tip PMSR (Perceptron MultiStrat de Regularizare) și se comparară performanțele reţelelor neuronale ca şi metode de aproximare, în raport cu metodele clasice: polinoame Lagrange, Newton, Hermite şi spline.

Concluziile, precum și perspectivele viitoare de cercetare din domeniul calculului neuronal, sunt cuprinse în Capitolul XI.

Lista bibliografică cuprinzătoare se găseşte la sfârşitul cărții.

I. Elemente generale de Inteligenţă Artificială

I.1. Sisteme de Inteligenţă Artificială

Scopul Inteligenţei Artificiale (AI Artificial Intelligence) este de a dezvolta algoritmi sau metode pentru sistemele de calcul, care să simuleze modul de gândire uman [8]. Evident, propoziţia aceasta nu trebuie luată ca o definiţie riguroasă a conceptului de AI. Ceea ce trebuie totuşi remarcat în această propoziţie este utilizarea termenului de "gândire", şi nu de "inteligenţă", cu scopul de lărgi câmpul aplicaţiilor care pot fi considerate ca aparţinând AI, ca de exemplu percepţia, prelucrări de limbaj etc.

Un sistem AI trebuie să fie capabil să efectueze 3 lucruri principale [93]:

1. memorare de cunoştinţe;

2. aplicarea cunoştinţelor dobândite (memorate) pentru a rezolva probleme;

3. dobândirea de noi cunoştinţe prin experienţă.

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

Reprezentare Învăţare Gândire
Reprezentare
Învăţare
Gândire

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

Să analizăm fiecare dintre componentele unui astfel de sistem AI:

1. Reprezentare: Una dintre cele mai distincte trăsături ale unui sistem AI este posibilitatea de a utiliza un limbaj constituit din simboluri, cu ajutorul cărora se pot construi structuri pentru a reprezenta 2 elemente:

cunoştinţe generale despre o problemă de rezolvat;

cunoştinţe specifice despre soluţia problemei de rezolvat;

Simbolurile trebuie descrise de obicei în termeni cât mai familiari, pentru a face reprezentarea simbolică a unui sistem AI cât mai uşor de înţeles de către un subiect uman. De aceea, claritatea simbolisticii folosite de sistemele AI le face atât de utile în cadrul procesului de comunicaţie om-maşină.

În terminologia AI, prin termenul de "cunoştinţe" înţelegem de fapt o altă formă de exprimare pentru noţiunea de dată. Dar, dacă privim din punct de vedere al unei reprezentări declarative, cunoştinţele reprezintă o mulţime statică de fapte, reunită cu o mulţime de proceduri generale de prelucrare şi manipulare a faptelor. De fapt, trăsătura caracteristică a reprezentărilor declarative o constituie faptul că aceste reprezentări conţin un înţeles intrinsec prin prisma unui utilizator uman, independent de utilizarea lor în cadrul unui sistem AI. Într-o reprezentare procedurală, cunoştinţele sunt incluse într-un cod executabil care acţionează de fapt în afara înţelesului acestor cunoştinţe. Ambele tipuri de cunoştinţe, declarative şi procedurale, sunt necesare pentru a putea rezolva majoritatea problemelor.

2. Gândirea: În cea mai simplă definiţie, putem spune despre gândire că reprezintă abilitatea de a rezolva probleme. Dar pentru ca un sistem să poată fi calificat ca un sistem dotat cu gândire, acesta trebuie să satisfacă anumite condiţii [93]:

sistemul trebuie să fie capabil să exprime şi să rezolve o gamă largă de probleme şi de tipuri de probleme;

sistemul trebuie să fie capabil să extragă, din informaţiile memorate, informaţii explicite şi informaţii implicite;

sistemul trebuie să posede un mecanism de control care să determine, atunci când o soluţie a fost obţinută, care operaţie să fie aplicată unei probleme particulare, sau, când trebuie oprită orice activitate relativ la problema de rezolvat.

Rezolvarea problemelor poate fi privită de fapt ca o problemă de căutare (searching). Conform cu [110], metoda clasică de a aborda o problemă de căutare este de a folosi reguli, date şi control. Regulile acţionează asupra datelor, iar controlul acţionează asupra regulilor. Să considerăm un exemplu clasic, problema comisionarului voiajor (traveling salesman problem), care necesită determinarea celui mai scurt drum care trece prin fiecare oraş, dar drumul nu are voie să treacă decât o dată printr-un oraş. În această problemă datele sunt alcătuite din toate oraşele de vizitat, precum şi din matricea distanţelor dintre aceste oraşe. Regulile reprezintă modul de alegere a următorului oraş de vizitat, iar controlul constituie decizia de a aplica o regulă sau alta, precum şi momentul de aplicare al acelei reguli.

În practică, de cele mai multe ori însă cunoştinţele disponibile sunt limitate (de exemplu în diagnosticul medical), putând fi incomplete sau inexacte. În astfel de situaţii, se folosesc proceduri de gândire probabilistice, permiţând astfel sistemelor AI să ia în considerare şi nedeterminarea.

3. Învăţarea: Procesul de învăţare poate fi reprezentat grafic prin intermediul schemei din Fig.1.2. După cum se vede din schemă, mediul înconjurător furnizează anumite informaţii elementului de învăţare, care la rândul său utilizează această informaţie pentru a îmbogăţii şi îmbunătăţii conţinutul unei baze de cunoştinţe, iar în final elementul de procesare utilizează baza de cunoştinţe pentru a efectua sarcina dorită.

Mediul

înconjurător

Element de

învăţare

Baza de

cunoştinţe

Element de

procesare

Feedback

Fig.1.2: Schema pentru reprezentarea procesului de învăţare.

Informaţia furnizată de mediul înconjurător sistemului de învăţare (maşina) este în general, imperfectă, elementul de învăţare neştiind să umple golurile lăsate de informaţiile lipsă, sau, să ignore elementele neesenţiale. De aceea, maşina lucrează mai mult pe baza deducţiilor, ajustându-şi permanent comportamentul pe baza feedback-ului obţinut de la elementul de procesare.

Învăţarea se referă la două tipuri de procesări de informaţii:

procesare informaţională inductivă;

procesare informaţională deductivă.

În procesarea inductivă, regulile şi formele generale sunt deduse pe baza unor date sau experimente discrete. Pe de altă parte, în procesarea deductivă, regulile generale sunt utilizate pentru a determina anumite fapte specifice. Ca un exemplu de învăţare inductivă, putem considera învăţarea bazată pe similaritate, iar ca un exemplu de învăţare deductivă procesul de demonstrare a unei teoreme pe baza unor axiome sau teoreme existente. Învăţarea, având la bază un proces explicativ, utilizează și învăţarea inductivă şi învăţarea deductivă.

Importanţa bazelor de cunoştinţe, precum şi dificultăţile unui proces de învăţare au condus la dezvoltarea mai multor metode pentru a augmenta bazele de cunoştinţe. Mai concret, dacă există experţi într-un anumit domeniu, este mult mai uşor să beneficiem de experienţa lor într-o formă compilată, decât de a duplica această experienţă. Aceasta reprezintă de fapt ideea ce se află la baza sistemelor expert.

Până în acest moment ne-am familiarizat doar cu elemente constitutive ale unor maşini AI simbolice. Ceea ce ne va interesa în continuare, este cum să comparăm aceste sisteme expert cu calculul neuronal, respectiv, reţelele neuronale ca şi nişte modele cognitive? Pentru a răspunde la această întrebare ne vom folosi de modelul descris de [93], care presupune trei nivele:

1. Nivelul explicativ. În cadrul AI clasic, efortul principal este concentrat pe construcţia reprezentărilor simbolice. De obicei, aceste reprezentări sunt discrete şi arbitrare, de exemplu proprietăţi abstracte, în locul unor imagini analogice. Din punct de vedere al procesului cognitiv, este evident că nu ne putem pune problema unei reprezentări mentale, modelarea procesului cognitiv făcându-se pe baza unei procesări secvenţiale a reprezentărilor simbolice.

În cadrul calculului neuronal, procesele cognitive sunt total diferite de cele din AI clasic. Scopul calculului neuronal este de a construi modele paralele de procesare distribuită (PDP - Parallel Distributed Processing). Aceste modele PDP presupun că procesarea informaţiei se face prin interacţiunea unui număr mare de neuroni, fiecare neuron trimiţând semnale excitatorii sau inhibitorii către alţi neuroni ai reţelei neuronale de care aparţin [174]. Mai mult chiar, reţelele neuronale pun un mare preţ pe explicarea neuro-biologică a fenomenelor cognitive.

13

2.

Metoda de procesare. În AI clasic, modul de procesare este secvenţial, ca la calculatoarele clasice von Neumann. Chiar dacă nu există o ordine predeterminată, operaţiile trebuie efectuate în maniera pas-cu-pas. Acest mod de procesare secvenţial are ca sursă de inspiraţie natura secvenţială a limbajului natural, trebuind să observăm că AI tradiţional s-a născut la puţin timp după maşina von Neumann.

Pe de altă parte, procesarea paralelă reprezintă una din trăsăturile definitorii ale reţelelor neuronale. Paralelismul este esenţial nu numai pentru modul de procesare al informaţiilor de către o reţea neuronală, dar şi sursa principală a flexibilităţii lor. Paralelismul poate fi masiv în cadrul reţelelor neuronale (sute de mii de neuroni), ceea ce le conferă acestora o remarcabilă robusteţe. Procesul de calcul, fiind distribuit relativ la un număr mare de neuroni, deviaţia calculelor generate de un număr mic de neuroni nu îl afectează. Date de intrare zgomotoase, deteriorate sau incomplete pot fi folosite totuşi de reţeaua neuronală, o reţea neuronală parţial deteriorată putând funcţiona satisfăcător, învăţarea unei reţele neuronale netrebuind să fie perfectă; performanţele reţelei neuronale se degradează continuu şi nu abrupt. Astfel, sistemele PDP aproximează flexibilitatea unui sistem continuu, în contrast evident cu rigiditatea sistemelor AI tradiţionale bazate pe simbolica discretă [175].

O altă trăsătură demnă de menţionat a paralelismului o reprezintă faptul că cunoştinţele nu sunt reprezentate prin expresii declarative, ci prin structura şi nivelul de activare al reţelei neuronale. De aceea, conţinutul necesar descrierii unei probleme nu reprezintă altceva decât însăşi reţeaua neuronală.

Calculul secvenţial reprezintă trăsătura fundamentală a AI tradiţional, în timp ce calculul paralel caracterizează calculul neuronal.

3. Structura de reprezentare. După cum am văzut, AI tradiţional are la bază reprezentarea simbolică, care posedă o structură cvasi lingvistică. Ca şi expresiile limbajului natural, expresiile din AI tradiţional sunt în general complexe, fiind construite din simboluri simple într-o manieră sistematică. Cu ajutorul unei mulţimi limitate de simboluri, noi expresii pline de conţinut pot fi construite pe baza analogiei dintre structurile semantice şi sintactice.

Natura şi structura reprezentării sunt o problemă crucială a reţelelor neuronale. Acest subiect nu a fost pus nici un moment la îndoială de partizanii celor două tabere ale AI clasic și calculului neuronal. De fapt, s-au adus numeroase critici din acest punct de vedere la adresa reţelelor neuronale, cea mai competentă critică [93] subliniind următoarele avantaje în favoarea AI tradiţional faţă de calculul neuronal:

reprezentările mentale prezintă în mod caracteristic o structură combinatorială şi o semantică combinatorială;

procesele mentale sunt senzitive la structura combinatorială a reprezentării asupra căreia operează.

Într-o reţea neuronală reprezentarea este distribuită. Totuşi, trebuie să subliniem faptul că cele mai multe reţele neuronale propuse, ca şi candidaţi pentru reprezentarea structurală distribuită, au mai de grabă un caracter ad-hoc; ele rezolvă problema relativ la o clasă particulară într-o manieră ce nu permite o extindere simplă.

În concluzie, putem defini AI simbolic ca fiind manipularea formală a unui limbaj algoritmic şi reprezentarea datelor după modelul top-down. Pe de altă parte, putem defini reţelele neuronale ca fiind procesoare simple distribuite ce posedă o capacitate naturală de a învăţa, modul lor de operare fiind mai de grabă de tip buttom-up. De aceea, pentru implementarea unor aplicaţii cu caracter cognitiv, cea mai bună soluţie ar fi de a construi un

puternic model structural conexionist, care să îmbine puterea ambelor direcţii din AI: AI tradiţional şi reţelele neuronale.

Astfel, am fi în stare să combinăm trăsăturile pozitive ale reţelelor neuronale - adaptivitate, robusteţe, uniformitate, cu cele ale AI simbolic - reprezentare, inferenţă şi universalitate. Un astfel de hibrid poate fi eficient dacă reuşim să stabilim cu precizie domeniile de eficienţă a celor două constituente:

AI simbolic este mai eficient pentru procesarea limbajului, planificare sau gândire explicită;

reţelele neuronale sunt mai eficiente în cadrul proceselor perceptuale, recunoaşterea formelor şi memorie asociativă.

I.2. Calculul neuronal în cadrul AI

Calculul neuronal reprezintă o alternativă viabilă faţă de metodele de calcul tradiţional, care timp de câţiva zeci de ani au dominat ştiinţele cognitive şi domeniul AI , cu toate că modelele matematice generate cu ajutorul calculului neuronal rămân încă controversate.

Calculul neuronal se bazează pe o serie de modele matematice inspirate din neuro- biologie, numite modele conexioniste sau reţele neuronale. Reţelele neuronale pot fi caracterizate prin trei trăsături computaţionale generale:

- straturi distincte de unităţi de calcul interconectate;

- reguli recursive de modificare a "tăriei" conexiunilor dintre unităţile de calcul;

- unităţi de calcul simple şi omogene.

Utilizând doar aceste trei trăsături se pot construi şi modela sisteme deosebit de puternice şi elegante, corespunzătoare memoriei, percepţiei, categorizării, controlului motric, recunoaşterii formelor şi chiar pentru gândirea umană.

În acest capitol vom încerca să răspundem la întrebările:

ce este calculul neuronal?

ce îl face să fie diferit de alte metode de calcul?

la ce poate fi utilizat?

care sunt implicaţiile tehnologice ale calcului neuronal?

cum s-a dezvoltat istoric calculul neuronal?

care este stadiul actual de dezvoltare al calculului neuronal?

Pentru a răspunde la aceste întrebări vom prezenta două din cele mai importante modele conexioniste care stau la baza calcului neuronal: perceptronul simplu şi perceptronul multistrat, împreună cu elementele lor definitorii.

I.3. Ce este calculul neuronal?

Creierul uman este cel mai complex sistem de calcul. Capacitatea creierului uman de a gândi, memora, de a rezolva probleme complexe au tentat în ultima perioadă de timp un mare număr de cercetători, în încercarea de a modela modul său de operare. Aceste încercări de a crea un sistem de calcul care să cuprindă trăsăturile fundamentale ale creierului uman, au generat o nouă direcţie de cercetare, care poate fi numită pe scurt calcul neuronal.

Oricine poate sesiza faptul că creierul uman este de departe superior oricărui calculator digital, aproape în orice domeniu. Un exemplu elocvent: un copil de 1 an de zile este mult mai rapid şi mai precis în recunoaşterea obiectelor şi a persoanelor decât cel mai avansat sistem de inteligenţă artificială, rulând pe cel mai puternic supercalculator.

Creierul uman are numeroase trăsături care s-au dorit a fi modelate cu ajutorul unor sisteme de calcul artificiale [54]:

este robust şi tolerant la deteriorări; celulele nervoase din creier mor zilnic fără a afecta performanţele sale;

este flexibil, putându-se adapta la un nou mediu prin "învăţare", pentru aceasta nu trebuie să fie programat într-un limbaj de programare (Pascal, C, Fortran, Lisp etc.);

poate prelucra informaţii incomplete, inconsistente, probabilistice;

este un sistem cu un înalt grad de paralelism;

este de dimensiuni mici, compact, disipând o foarte mică cantitate de energie.

Doar în activităţi de calcul bazate pe operaţii algebrice putem spune că un sistem de calcul electronic (un computer) depăşeşte performanţele creierului uman.

Trăsăturile de mai sus ale creierului uman constituie o motivaţie reală pentru necesitatea studiului calculului neuronal. Calculul neuronal, aşa cum am mai precizat, reprezintă o alternativă viabilă la metodele de calcul tradiţional, bazate pe programarea unei secvenţe de instrucţiuni, indiferent dacă modul de procesare este serial sau paralel [99].

Calculul secvenţial a fost introdus de von Neumann [201], constituind baza tuturor echipamentelor de calcul existente astăzi. Calculul neuronal are ca sursă de inspiraţie cunoştinţele acumulate de ştiinţele neurologice, cu toate că nu întotdeauna elementele folosite sunt plauzibile din punct de vedere biologic. În această carte dorim să prezentăm un nou model de calcul, neglijând până la o limită plauzibilitatea biologică, noi fiind interesaţi de alte trăsături ale modelului de calcul neuronal.

I.4. Istoric al dezvoltării calculului neuronal

Putem considera anul 1943, momentul de naştere a calculului neuronal când microbiologistul W. McCullogh şi matematicianul W. Pitts, publică lucrarea fundamentală "A Logical Calculus of Ideas Immanent in Nervous Activity" [138]. Modelul de neuron artificial aparţine acestor cercetători. Această lucrare a constituit punctul de pornire a trei domenii de cercetare:

Calculatoare digitale. John von Neumann a caracterizat această lucrare ca o schemă funcţională a unui creier electronic.

Inteligenţă Artificială. Marvin Minsky, unul din cei mai importanţi cercetători ai domeniului Inteligenţei Artificiale, a fost inspirat de ideea inteligenţei macroscopice conţinută în lucrarea de referinţă [144], ducând la dezvoltarea primelor sisteme expert.

Calcul neuronal. Un mare număr de cercetători, începând cu F. Rosenblatt, au dezvoltat bazele acestui model de calcul, având la bază o arhitectură inspirată de modelele neurologice biologice, reţelele neuronale.

Următorii 50 de ani de la lucrarea lui McCullogh şi Pitts cunosc un efort considerabil în domeniul cercetării logicii discrete şi a modului de operare al reţelelor neuronale. Reţelele neuronale au fost concepute ca sisteme universale de calcul, existând o analogie cu maşinile cu stări finite [144].

La extremitatea opusă logicii discrete, au fost dezvoltate o serie de cercetări având la bază aspectul continuu. Cunoscut sub numele de neuro-dinamică sau teoria câmpului neuronal, aceste teorii utilizează ecuaţii diferenţiale pentru a descrie activitatea nervoasă cerebrală [3], [18], [164], [208], [210].

Aproximativ în jurul anului 1960, întâlnim unul din momentele de vârf ale cercetării calculului neuronal, prin activitatea desfăşurată de un grup de cercetători conduşi de F. Rosenblatt. Ţelul activităţii lor l-a reprezentat problema determinării prin învăţare a tăriilor sinaptice, relativ la o problemă dată. Pentru aceasta au construit modelul de reţea neuronală numit Perceptron, constituit din neuroni grupaţi pe straturi succesive, cu o propagare directă a informaţiei, de la stratul de intrare către stratul de ieşire. Perceptronul prezintă o mare importanţă, nu numai din punct de vedere istoric, ci şi prin prisma faptului că din perceptron au evoluat aproape toate celelalte modele de reţele neuronale. De asemenea, perceptronul este unica reţea neuronală pentru care s-a reuşit demonstrarea convergenţei unei legi de învăţare. Din momentul în care s-a cunoscut teorema de convergenţă, calculul neuronal a căpătat un statut de cercetare aparte, o armată întreagă de cercetători dedicându-i-se și fiindu-i alocate importante resurse financiare. Entuziasmul nu a durat prea mult deoarece s-a înţeles că teorema de convergenţă a legii de învăţare a perceptronului simplu (perceptron cu un singur strat) are un caracter limitat. Acest lucru a fost pus în evidenţă de M. Minsky şi S. Papert, în cartea lor Perceptrons [145].

Cam în aceeaşi perioadă, modele simple de reţele neuronale au fost construite de cercetătorii Widrow şi Hoff [207], model numit Adaline (Adaptive Linear Neuron), iar mai târziu Madaline (Multiple Adaptive Linear Neuron). Aceste reţele neuronale reprezentau implementarea cu ajutorul calculului neuronal a unei clase de funcţii liniare adaptive.

M. Minsky şi S. Papert au arătat folosind argumente geometrice, că un perceptron simplu este capabil să reprezinte doar probleme pentru care spaţiul datelor de intrare este liniar separabil. Celebrul exemplu XOR (SAU EXCLUSIV), problemă care nu poate fi rezolvată cu un perceptron simplu, aparţine celor doi cercetători.

Era clar că perceptronul simplu are o capacitate de reprezentare limitată la clasa funcţiilor liniar separabile. Limitarea putea fi înlăturată prin adăugarea de straturi ascunse la topologia perceptronului simplu, obţinându-se perceptronul multistrat (multylayered perceptron). Din păcate, în acea perioadă nu s-a putut descoperi o lege de învăţare pentru perceptronul multistrat. M. Minsky şi S. Papert chiar şi-au manifestat îndoiala că o astfel de lege de învăţare ar exista, propunând abandonarea calculului neuronal în favoarea altor metode ale Inteligenţei Artificiale. A urmat o perioadă de aproape 20 de ani, în care doar câţiva cercetători temerari au continuat să mai lucreze în acest domeniu. Tema majoră abordată de aceştia o reprezintă cercetările legate de memoriile asociative, bazate pe corespondenţa dintre vectorii de intrare, când aceştia au un grad suficient de mic de similaritate. De fapt, acest subiect al memoriilor asociative fusese abordat mai înainte de

Taylor [192] şi Steinbuch [187], Anderson [7], Willshaw [209], Marr [133], Kohonen [114] [115]. Grossberg [87] redefineşte problema generală a învăţării într-o reţea neuronală.

O altă direcţie de dezvoltare este datorată lui Cragg şi Temperlay [36], care au reformulat modelul McCullogh-Pitts ca un sistem de spin magnetic, după modelul fizic. În acest model s-a considerat că memoria constă din histerezisul formei domeniului aşteptat la un astfel de sistem. Caianiello [29] construieşte o teorie statistică, folosind idei ale mecanicii statistice. Aceleaşi preocupări le regăsim la Little [129] şi la Hopfield [101].

Lui Hopfield i se datorează conceptul foarte important de funcţie energetică ataşată reţelei neuronale şi cea de memorie privită prin prisma unor atractori dinamici stabili [100].

Hinton şi Sejnowski [98], Peretto [156] dezvoltă ideea de neuron stohastic care se comportă aproximativ ca un neuron McCullogh-Pitts, în funcţie de o anumită probabilitate analogă temperaturii fizice din mecanica statistică.

Amit [4] dezvoltă teoria sistemelor magnetice aleatoare, numite spin glasses, care constituie preludiul implicării puternice a mecanicii statistice în domeniul calculului neuronal.

Totuşi, cel mai important moment al dezvoltării calcului neuronal îl reprezintă momentul descoperirii unei legi de învăţare pentru perceptronul multistrat, lege de învăţare numită Propagare-Înapoi (BackPropagation). Idea de bază aparţine lui Werbos [204], dar este reformulată independent şi adusă în atenţia lumii ştiinţifice de Rumelhart, Hinton şi Williams [172]. Din acest moment se pune în evidenţă caracterul universal al calculului neuronal, construindu-se şi un mare număr de aplicaţii practice, lumea ştiinţifică acordându-i o justificată atenţie.

O analiză mai detaliată a aspectului istoric a dezvoltării calculului neuronal se poate găsi în lucrarea [6].

I.5. Concluzii

Tot ceea ce am prezentat în acest capitol reprezintă o pledoarie în favoarea calculului neuronal. Din punct de vedere teoretic problemele sunt deosebit de atractive şi bine fundamentate; din punct de vedere practic aplicarea calculului neuronal şi prin urmare construcţia unei reţele neuronale trebuie să fie precedată de răspunsuri date la următoarele întrebări:

Care este arhitectura optimală? Câte straturi sunt necesare? Câţi neuroni sunt necesari în fiecare strat? Câte conexiuni sinaptice sunt necesare şi cum trebuie organizate acestea? Ce fel de funcţie de activare trebuie să folosim? Ce lege de învăţare este mai eficientă? Trebuie să folosim o lege de învăţare sincronă sau asincronă, deterministă sau stohastică?

Câte exemple trebuie să prezentăm reţelei neuronale pentru a învăţa ceea ce dorim noi? De câte ori trebuie să-i prezentăm aceste exemple? E nevoie ca procesul de învăţare să fie supervizat sau poate fi doar reîntărit?

Ce poate efectua de fapt o reţea neuronală construită pentru o anumită problemă? Câte probleme poate ea rezolva? Cât de bine? Cât de repede? Cât de robustă este reţeaua neuronală faţă de date incorecte, deteriorări sau eliminări de neuroni? Poate reţeaua neuronală generaliza cu succes? Ce fel de clase de funcţii poate reprezenta?

Cum poate fi implementată din punct de vedere software şi hardware reţeaua neuronală? Care sunt avantajele şi dezavantajele diferitelor implementări hardware posibile, ce performanţe au în raport cu simularea software?

Bineînţeles, aceste întrebări nu trebuie privite individual, ci în contextul aplicaţiei ce urmează a fi rezolvată. Răspunsul la o întrebare, ca de exemplu, ce arhitectură trebuie să folosim, este cunoscut, atrăgând în mod automat răspunsuri la o serie de alte întrebări.

Acest capitol introductiv, a vrut să pună în evidenţă faptul că problema abordată, a calculului neuronal, este suficient de complexă, dar că se pare că este şi va fi o metodă foarte importantă atât din punct de vedere teoretic, cât şi practic.

În finalul acestui capitol voi încerca o definiţie formală a calculului neuronal, preluată din lucrarea [2]:

Calculul neuronal este studiul unor reţele celulare care au capacitatea naturală de a stoca cunoştinţe pe baza experienţei acumulate. Un astfel de sistem ce are la bază calculul neuronal este comparabil cu creierul uman în sensul că cunoştinţele sunt acumulate prin antrenament şi nu prin programare, fiind stocate prin intermediul unor modificări a unor noduri funcţionale. Cunoştinţele îmbracă forma unor stări stabile sau cicluri de stări relativ la o mulţime de operaţii. O proprietate principală a unor astfel de reţele este de a reconstrui aceste stări sau cicluri de stări ca răspuns şi la stimuli incompleţi sau zgomotoşi.

II Noţiuni generale

II.1. Elemente de bază ale calculului neuronal

Cercetările actuale în domeniul calculului neuronal sunt motivate de dorinţa de a construi reţele neuronale artificiale. Deşi, după cum şi numele de reţele neuronale o implică, la început scopul a fost modelarea matematică a reţelelor neuronale biologice, astăzi gama aplicabilităţii lor este aproape universală.

Din punct de vedere neuro-fiziologic, modelele construite cu ajutorul reţelelor neuronale artificiale sunt extrem de simplificate, ele au totuşi suficiente trăsături care surprind cele mai importante trăsături ale "calculului" biologic.

II.1.1. Neuronul biologic

Unitatea celulară fundamentală a sistemului nervos, şi în particular a creierului, este neuronul. Creierul uman este constituit din aproximativ 10 11 neuroni, fiecare neuron fiind interconectat cu aproximativ 10 4 alţi neuroni. În Fig. 1.1. este reprezentat schematic un neuron biologic.

Neuronul biologic este constituit din trei părţi fundamentale [89]:

Arborele dendritic care colectează semnalele de intrare de la alţi neuroni.

Soma care transformă în anumite condiţii semnalele de intrare în semnale de ieşire.

Axonul care transmite semnalul de ieşire către alţi neuroni prin intermediul arborelui axonic.

Neuronii sunt interconectaţi prin intermediul unor legături numite sinapse, care reprezintă punctele de contact dintre ramurile arborelui axonic ale unui neuron pre-sinaptic şi ramurile arborelui dendritic ale unui neuron post-sinaptic.

Neuronii comunică între ei prin intermediul unor semnale electrice, numite potenţiale de acţiune sau impulsuri, care sunt propagate de-a lungul axonului, prin păstrarea amplitudinii şi formei semnalului electric, până când întâlnesc legătura sinaptică. La sinapsă o substanţă chimică, numită neuro-transmiţător, este stocată într-un număr mare de vezicule. Potenţialul de acţiune eliberează conţinutul anumitor vezicule către cleştele sinaptic.

Moleculele neuro-transmiţătorului ajung la membrana neuronului post-sinaptic, unde recepţia acestor molecule induc un potenţial de acţiune post-sinaptic (PSP).

PSP-urile generate în diferite puncte ale arborelui dendritic difuzează prin atenuare către soma, unde ele sunt integrate. Dacă suma totală a PSP-urilor integrate în limita unui scurt interval de timp depăşeşte un anumit prag (threshold) de aproximativ câteva zecimi de minivolţi, numit nivel de activare, neuronul va deveni activ, generând un potenţial de acţiune de-a lungul axonului.

Contribuţia unui semnal de intrare la PSP caracterizează mărimea numită tărie sinaptică sau eficienţă sinaptică. Un astfel de semnal de intrare are o valoare de aproximativ 1 minivolt, putând fi un semnal excitator sau un semnal inhibitor, în funcţie de influenţa pozitivă sau negativă pe care o are în a face un neuron ca să devină activ. Trebuie să subliniem faptul că PSP-ul nu este unic determinat de semnalul de intrare. Diferite surse de zgomot, în relaţie cu fluctuaţiile de cantitate de neuro-transmiţător chimic, eliberată la conexiunea sinaptică, implică o relaţie de intrare-ieşire de tip probabilistic. Intervalul de timp dintre momentul emisiei unui semnal la soma neuronului pre- sinaptic şi momentul emisiei unui semnal indus de către neuronul post-sinaptic, este de aproximativ 1-2 msec. De aici rezultă că un neuron poate avea o emisie maximală de circa 500-1000 semnale pe secundă, care într-o reţea neuronală este redusă de circa 3-5 ori. Din aceste considerente de dinamică a activităţii neuronale, se poate observa faptul că neuronul biologic este un dispozitiv biologic lent în comparaţie cu dispozitivele electronice construite de om - acestea pot fi chiar de sute de mii de ori mai rapide decât un neuron biologic. Cu toate acestea, orice sistem de calcul bazat pe dispozitive electronice are performanţe inferioare creierului uman constituit din neuroni. Concluzia evidentă este că puterea de calcul al creierului uman nu este datorată vitezei de procesare a neuronilor constitutivi, ci largii interconectări a unor dispozitive biologice lente - neuronii, care efectuează operaţii simple: integrarea semnalelor sosite de-a lungul arborelui dendritic şi emisia unui semnal de-a lungul axonului, dacă semnalul de intrare integrat depăşeşte nivelul de activare.

de intrare integrat depăşeşte nivelul de activare. Fig. 2.1. : Reprezentarea schematică a neuronului biologic.

Fig. 2.1.: Reprezentarea schematică a neuronului biologic.

1

- Arborele dendritic; 2 - Soma (corpul celular); 3 - Nucleul celulei neuronale;

4

- Axonul; 5 - Arborele axonic; 6 - Conexiuni sinaptice.

Modificarea tăriei sinaptice este rezultatul unui proces de “învăţare” [148]. Legătura sinaptică şi modul de procesare a semnalelor de către neuron formează mecanismul de bază al capacităţii de memorare al creierului.

II.1.2. Neuronul artificial

Într-o reţea neuronală artificială, unitatea analogă neuronului biologic este o unitate de procesare simplă, care va fi numit neuron artificial, sau mai simplu neuron.

Un neuron artificial are mai multe căi de intrare care corespund arborelui dendritic. Celei de-a i-a cale de intrare în neuronul al j-lea îi corespunde o valoare numerică reală x i , echivalentul semnalului electric din modelul biologic al neuronului. Fiecare mărime de intrare x i este ponderată valoarea numerică reală w ji , echivalentul tăriei sinaptice din modelul biologic al neuronului. Produsul x i w ji reprezintă al i-lea semnal de intrare dentritic în al j-lea neuron artificial.

Aceste valori sunt integrate (sumate), pe baza unui proces similar celui realizat de soma neuronului biologic.

reprezintă argumentul unei funcţii, numită funcţie de

activare care va determina valoarea de ieşire axonică y j din neuron. Cele mai utilizate funcţii de activare sunt:

- funcţia liniară: f : R R, f (x) x

Suma ponderată

i

x

i

w

ji

 

(2.1)

(2.2)

(2.3)

(2.4)

 

x

x

e

e

x

e

e

x

(2.5)

 

(2.6)

 

1,

0,

x

x

0

0

- funcţia treaptă (Heaviside):

f

: R

{0,1},

f

(

x

)

1,

x

1

x 

1,

x

(

 

1,1)

1

f

(

x

)

1

1 e

x

- funcţia rampă:

f

:

R

[



f

: R

1,1],

f

(

x

)

(0,1),

- funcţia sigmoidală:

- funcţia tangentă hiperbolică:

- funcţia signum:

f

:

R

{



f

: R (1,1), ( ) tanh( )

f

x

x

f

(

x

)

sgn(

x

)

x

1,

x

1,

0

0

1,1},

Acestea sunt exemple de funcţii de activare care sunt cel mai frecvent utilizate în aplicaţiile practice. Funcţia de activare depinde de modelul de reţea neuronală ales şi de tipul problemei pe care dorim să o rezolvăm, alegerea sa nefiind constrânsă de nici o condiţie, decât eventual de analogia cu modelul biologic.

Valoarea obţinută prin aplicarea funcţiei de activare este propagată pe căile de ieşire, echivalente arborelui axonic din modelul biologic.

În Fig. 2.1. avem reprezentarea schematică a neuronului artificial.

În concluzie, neuronul artificial efectuează următoarele operaţii:

Integrare (Sumare): I

j

Activare (Transfer): y

j

n

i 0

f

w

ji

(

I

j

x

)

i

f

(

n

i 0

w

ji

x

 

(2.7)

i

)

(2.8)

În cele ce urmează vom considera nivelul de activare implicit sau explicit, în funcţie de necesităţi, fără ca aceasta să influenţeze într-un fel generalitatea rezultatelor obţinute.

x 0 w j0 x 1 w j1 Sumare Activare w y ji j x
x
0
w
j0
x
1
w
j1
Sumare
Activare
w
y
ji
j
x
I
f(I j )
j
i
w
jn
x
n

Fig. 2.2.: Reprezentarea schematică a neuronului artificial. Indicele j reprezintă al j-lea neuron din reţeaua neuronală artificială.

Obs.2.1.: Termenul x o se numeşte bias, având o valoare constantă x o = +1 sau x o = -1. Rolul termenului bias este de a permite includerea implicită sau explicită a nivelului de activare i , care reprezintă pragul de activare al neuronului artificial.

De exemplu, presupunând că avem funcţia de activare signum,

f

(

x

)   

, x 0

1

0 x

,

0 ,

atunci putem avea una dintre situaţiile:

a). Nivel de activare i explicit:

Integrare:I

j

n

w

i 1

ji

x

i

j

Activare: y

j

f

(

I

j

)

b). Nivel de activare i implicit: notândw j0

Integrare: I

Activare: y

 

n

j

w

ji

i 0

j

f

(

I

j

)

x

i

0

j , x 0 = -1

Acest model matematic al neuronului artificial, propus pentru prima dată de McCullogh şi Pitts [138], deşi foarte simplu, reprezintă o unitate de calcul foarte puternică. McCullogh şi Pitts au demonstrat că un ansamblu de neuroni artificiali interconectaţi este capabil, în principiu, să efectueze orice calcul, cu condiţia alegerii corespunzătoare a tăriilor sinaptice w ji . Acest lucru înseamnă că un ansamblu de neuroni artificiali interconectaţi într-un ansamblu numit reţea neuronală, poate efectua orice calcul pe care poate să-l efectueze un sistem de calcul clasic, chiar dacă nu întotdeauna la fel de repede sau convenabil.

II.1.3. Diferenţe între neuronul biologic şi neuronul artificial

Neuronul biologic comportă totuşi multe alte elemente care în modelul simplu al neuronului artificial au fost cu bună ştiinţă omise [96]. Cele mai semnificative diferenţe sunt următoarele:

Neuronul biologic răspunde la semnalele de intrare într-un mod continuu şi nu discret, ceea ce se numeşte răspuns gradual. Dar relaţia neliniară dintre semnalul de intrare şi semnalul de ieşire la un neuron biologic este o trăsătură universală, care apare şi la neuronul artificial prin intermediul funcţiei de activare.

Neuronii biologici nu au toţi acelaşi moment fix de activare şi nici nu acţionează sub controlul central al unui tact generat de un ceas.

Cantitatea de substanţă neuro-transmiţătoare eliberată de sinapsă poate varia într-un mod impredictibil. Acest efect poate fi modelat, considerând o generalizare stohastică a dinamicii modelului determinist McCullogh-Pitts.

Chiar dacă uneori vom face apel la realismul biologic, vom fi interesaţi de trăsăturile şi capacitatea de calcul ale modelului de reţea neuronală artificială şi nu de aplicabilitatea directă în modelarea creierului. Legătura dintre reţelele neuronale biologice şi artificiale nu este importantă la nivelul modelării detaliate, ci la nivelul reprezentării şi la nivelul algoritmic [138]. Deşi implementările biologice şi artificiale ale algoritmilor sunt diferite, totuşi există numeroase trăsături comune la nivel algoritmic.

II.2. Reţele neuronale artificiale

Reţelele neuronale artificiale sunt constituite din numeroşi neuroni artificiali interconectaţi între ei. Neuronii constituenţi sunt de obicei organizaţi în mulţimi distincte numite straturi (layers). Există şi cazuri de reţele neuronale particulare, având o topologie specială, când neuronii nu sunt organizaţi pe straturi bine definite, ci pe anumite submulţimi

de neuroni. O reţea neuronală clasică constă dintr-o secvenţă de straturi de neuroni, cu conexiuni totale sau aleatore între neuronii conţinuţi în straturi succesive. Întotdeauna vom avea pentru o reţea neuronală, cel puţin două straturi de neuroni, ce au rolul de a comunica cu mediul exterior:

un strat de intrare: care are rolul de a prelua datele de intrare x i , i = 0, , n cu termen bias (vezi Obs. 1.1) sau x 0 = 1, i = 1, , n fără termen bias.

x n ) va fi numit vector de intrare al reţelei

Vectorul x = (x 0 , x 1 , neuronale.

,

x n ) sau x = (x 1 , x 2 ,

,

un strat de ieşire: unde se obţin rezultatele y j , j = 1, , m furnizate de reţeaua neuronală, ca răspuns la vectorul de intrare prezentat la stratul de intrare şi al propagării acestor date de la stratul de intrare către stratul de ieşire.

Vectorul y = (y 1 , y 2 ,

, y m ) se numeşte vector de ieşire al reţelei neuronale.

toate celelalte straturi ale reţelei neuronale, dacă există, diferite de stratul de intrare şi de stratul de ieşire, vor fi denumite straturi ascunse (hidden layers).

Neuronii din stratul de intrare au întotdeauna ca şi funcţie de activare funcţia liniară, rolul lor fiind doar de-a propaga către stratul succesor vectorul de intrare. De aceea, stratul de intrare are doar rolul unui zone tampon, de preluare a datelor de intrare fără a efectua nici o procesare a cestora. Ceilalţi neuroni, din celelalte straturi, pot avea orice funcţii de activare.

Obs. 2.2.: Când vom spune despre o reţea neuronală că are n straturi, nu vom lua în calcul şi stratul de intrare, ceea ce înseamnă că vom avea n -1 straturi ascunse + stratul de ieşire.

Straturi ascunse

x 1 x 2 x i x n Strat de Strat de intrare ieşire
x
1
x
2
x
i
x
n
Strat de
Strat de
intrare
ieşire

y

y

1

2

y j

y m

Fig. 2.3.: Arhitectura generală a unei reţele neuronale.

II.3. Modul de operare al reţelelor neuronale

Vom considera în cele ce urmează reţele neuronale directe (feed-forward) [70], la care propagarea informaţiilor se face de la stratul de intrare către stratul de ieşire, fără a exista conexiuni de tip feedback între neuroni dintr-un acelaşi strat sau către neuronii situaţi într-un strat predecesor.

Reţelele neuronale care conţin legături sinaptice între neuroni conţinuţi în acelaşi strat sau între neuronii unui strat oarecare şi neuronii unui strat predecesor se numesc reţele neuronale recurente (feedback).

Vom presupune că avem o reţea neuronală cu l straturi (vezi Obs.2.2), cu următoarea configuraţie:

n neuroni în stratul de intrare.

n j neuroni în cel de-al j-lea strat ascuns, j = 1,

m neuroni în stratul de ieşire.

,

l

- 1 .

w ji

(k ) tăria sinaptică dintre neuronul al i-lea situat în stratul k -1 şi neuronul al j-lea situat

pe stratul k.

f k funcţiile de activare corespunzătoare stratului k, k = 1, 2,

, l.

Modul de operare al reţelei neuronale directe este următorul:

pentru stratul de intrare (stratul 0): prezentarea vectorului de intrare

x

x ,x ,

0

1

,x

n

;

pentru stratul 1:

Integrare:

Activare:

I

(1) j

y

(1) j

n

i

0

w

(1) ji

f

1

(

I

(1) j

x , j

i

)

f

1

(

pentru stratul ascuns k, k = 2,

,l-1:

1,2,

n

i 0

w

(1) ji

,n

1

x

i

Integrare: I

(

j

k

Activare:

y

)

(

j

k

)

n

k 1

i 0

k

w

(

(

ji

f

k

I

)

( j

k

)

k 1

(

y

)

i

)

,

f

k

j

(

n

k

1

i 0

,2,

1

w

k

( ji

)

pentru stratul de ieşire l:

Integrare: I

(

j

l

)

n

l 1

i 0

w

l

( ji

)

y

(

i

l 1

)

,

j

1

,2,

;

),

j

,

k ;

n

,

y

(

i

k 1

m ;

)

1

,2,

),

j

,

n ;

1

1

,2,

,

n

k ;

Activare: y

(

j

l

)

f

l

(

I

( j

l

)

)

f

l

(

n

l

1

i 0

w

l

( ji

)

y

(

i

l 1

)

),

j

12

,

,

, m

;

Pentru a putea implementa o problemă folosind calculul neuronal, respectiv pentru a construi o reţea neuronală relativ la acea problemă, vom avea de luat în considerare două etape principale [70]:

Învăţare (Antrenament);

Generalizare (Testare).

Învăţarea (antrenamentul). Reprezintă procesul de modificare a tăriilor sinaptice ca răspuns la vectorul de intrare prezentat la stratul de intrare al reţelei neuronale (uneori şi a vectorului ţintă prezentat la stratul de ieşire al reţelei neuronale), în scopul configurării reţelei neuronale pentru a executa acţiunea dorită.

Generalizarea (testarea). După ce reţeaua neuronală a fost învăţată pe baza unui număr suficient de exemple, ea va fi capabilă să inducă o relaţie completă de interpolare sau extrapolare a exemplelor învăţate. Generalizarea reprezintă faza de răspuns a reţelei neuronale, când prezentându-i-se vectori de intrare noi care nu au fost prezentaţi în faza de antrenare, vectorul de ieşire va fi cel aşteptat, cu o posibilă eroare foarte mică. Calitatea răspunsurilor în faza de generalizare reprezintă ţelul fazei de învăţare - trebuie să învăţăm reţeaua neuronală până când va generaliza suficient de bine.

Modul de operare al reţelei neuronale poate fi influenţat de modul de operare al neuronilor dintr-un strat, pe baza a două operaţii posibile:

Normalizarea. Reprezintă procesul de scalare a vectorului de ieşire al unui strat al reţelei neuronale, astfel încât suma totală a componentelor acestui vector să fie constantă. Acest lucru este întâlnit şi la reţelele neuronale biologice, unde neuronii de pe un strat sunt conectaţi la ceilalţi neuroni ai aceluiaşi strat, făcând posibil ca fiecare neuron să-şi auto-ajusteze semnalul de ieşire în concordanţă cu semnalul total de ieşire a stratului. Rezultatul operaţiei de normalizare este că păstrează un nivel constant de activitate la nivelul unui strat de neuroni.

Competiţia (concurenţa). Reprezintă procesul de interacţiune al unui neuron de pe un strat al reţelei neuronale, cu ceilalţi neuroni de pe acelaşi strat. Neuronul sau un grup de neuroni care generează valori de ieşire maximale, vor fi declaraţi “câştigători”, fiind singurii a căror valoare de ieşire va fi propagată mai departe.

Reţelele neuronale ce conţin straturi cu mod de operare competitiv, le vom numi reţele neuronale competitive, iar cele care nu conţin straturi competitive le vom numi reţele neuronale pasive.

II.4. Taxonomia reţelelor neuronale

Având

în

vedere

precedent, şi anume [90]:

caracteristicile

unei

reţele

neuronale

prezentate

în

paragraful

funcţii de activare liniare vs. funcţii de activare neliniare;

mod de operare direct (feedforward) vs. mod de operare recurent;

lege de învăţare supervizată vs. lege de învăţare nesupervizată;

straturi concurente vs. straturi pasive.

Putem prezenta o privire de ansamblu asupra realizărilor de până acum în domeniul calculului neuronal, şi anume o taxonomie a reţelelor neuronale. Fără a avea pretenţia de a cuprinde în totalitate diversa clasă de reţele neuronale existentă, totuşi cele patru caracteristici de mai sus permit o încadrare a majorităţii reţelelor neuronale.

Clasificarea reţelelor neuronale:

- liniare

- directe

- învăţare nesupervizată

Asociator liniar:

- Anderson (1976) [7];

- Willshaw (1977) [209];

- învăţare supervizată

Regresii liniare multiple:

- Kohonen (1990) [117];

- recurente

- învăţare supervizată

- competitiv

Art - Adaptive Resonance Theory:

- Grossberg (1987) [86];

- pasiv

Boltzmann, Recurrent Back-Propagation,

Jordan Nets:

- Ackley, Hinton & Sejnowski (1985);

- Pineda (1989);

- Jordan (1986);

- învăţare nesupervizată

- competitiv

Art - Adaptive Resonance Theory:

- Grossberg (1987) [86];

- pasiv

BSB - Brain State in a Box, Hopfield Nets,

Interactive Activation:

- neliniare

- directe

- învăţare nesupervizată

- competitiv

Feature Maps:

- Kohonen (1983) [116];

- pasiv

Infomax:

- Linsker (1987) [128];

- învăţare supervizată

- competitiv

Competitive Learning:

- Rumelhart & Zipser (1986) [172][173][174];

- pasiv

Perceptron, Delta-Rule, Back-Propagation:

- recurente

- Rosenblatt (1962) [170];

- Widrow & Hoff (1960) [207];

- Rumelhart & al. (1986) [172];

- la fel ca la reţele neuronale liniare-recurente.

II.5. Calculul neuronal versus Inteligenţa artificială şi calculul algoritmic

Folosind termeni de informatică, am putea descrie creierul ca un sistem de calcul paralel, compus din aproximativ 10 11 procesoare. Folosind modelul simplu McCullogh-Pitts, rezultă că fiecare procesor execută un program foarte simplu: integrare şi activare (II.1.2). Faza de activare reprezintă generarea unui semnal de ieşire, reprezentat printr-un număr real y, semnal care este propagat către alte "procesoare" (neuroni), care la rândul lor efectuează un calcul similar.

Diferenţa dintre acest mod de procesoare al informaţiilor şi procesarea clasică von Neumann este evidentă. În calculul neuronal avem un număr mare de procesoare, fiecare

executând un calcul simplu (integrare-activare), spre deosebire de calculul tradiţional unde unul sau câteva procesoare execută secvenţe complexe de calcule.

II.5.1. Programare versus învăţare

Spre deosebire de sistemele expert dezvoltate ca elemente de Inteligenţă Artificială, unde baza de cunoştinţe este explicitată sub forma unui set de reguli implementate de un programator folosind un anumit limbaj de programare, calculul neuronal, respectiv reţelele neuronale îşi generează propriile seturi de reguli din învăţarea exemplelor învăţate. Învăţarea este realizată pe baza unei legi de învăţare care ajustează tăriile sinaptice ale reţelei neuronale ca răspuns la exemplele de antrenament.

Pentru ca reţeaua neuronală să execute task-ul dorit, nu este nevoie să scriem nici un fel de program. Trebuie doar să învăţăm reţeaua, prin prezentarea unui număr suficient de exemple relevante, cu scopul de a ajunge la o generalizare performantă.

Dacă într-un model de calcul tradiţional - program, sistem expert - apar cereri de informaţii noi sau cereri de a modifica informaţiile existente, setul de reguli care implementează baza de cunoştinţe nu este capabil să interpoleze răspunsul dorit. Programatorul, expertul, va trebui să construiască noi reguli, folosind instrucţiunile unui limbaj de programare, testând interacţiunea acestor noi reguli cu cele vechi implementate. Putem defini principalul neajuns al sistemelor tradiţionale de calcul: imposibilitatea de a genera reguli noi sau de a le modifica automat pe cele vechi, reguli ce reprezintă baza de cunoştinţe a task-ului ce se doreşte a fi rezolvat.

II.5.2. Memorii asociative distributive

O caracteristică importantă a calcului neuronal este modul de stocare a datelor de către reţeaua neuronală. Unitatea de memorare o reprezintă tăria sinaptică. Starea curentă de cunoştinţe a reţelei neuronale va fi caracterizată de valorile numerice reale ce corespund în acel moment tăriilor sinaptice. O dată de intrare în reţeaua neuronală nu va fi stocată într-o poziţie unică, ci va fi distribuită în reţeaua neuronală, împărţind spaţiul de memorare şi cu alte date de intrare.

Reţelele neuronale pot fi utilizate şi ca memorii asociative. Acest lucru înseamnă că după ce am antrenat reţeaua neuronală, dacă îi prezentăm o dată distorsionată din mulţimea de antrenament, reţeaua neuronală va genera un răspuns similar cu cel al datei nedistorsionate. Un caz particular îl reprezintă reţelele neuronale auto-asociative, unde vectorul de intrare coincide cu vectorul de ieşire. Prezentându-i-se un vector de intrare distorsionat, la stratul de ieşire vom obţine vectorul restaurat.

II.5.3. Toleranţa la deteriorări

Sistemele de calcul tradiţionale sunt inutilizabile la apariţia celui mai minor defect la unitatea de memorie. Este suficientă deteriorarea unui singur bit de memorie pentru ca datele memorate să se altereze.

La reţelele neuronale, deteriorarea unor neuroni sau a unor tării sinaptice, nu atrage după sine o deteriorare abruptă a performanţelor. Cu cât avem un grad mai mare de degradare

al

reţelei neuronale, cu atât se deteriorează performanţele reţelei neuronale, fără ca aceasta să-

şi

înceteze funcţionarea.

Toleranţa la deteriorări a reţelei neuronale este datorată modului distribuit de stocare a datelor. Toleranţa la deteriorări este o caracteristică fundamentală a reţelelor neuronale biologice. În sistemul nervos, zilnic se degradează câteva mii de neuroni, fără ca aceasta să afecteze, cel puţin până la o anumită vârstă, funcţionalitatea şi robusteţea activităţii sale.

Acest fenomen poate fi privit ca o trăsătură fundamentală a evoluţiei inteligenţei [96].

II.5.4. Recunoaşterea formelor (Pattern Recognition)

Sistemele de calcul neuronal sunt deosebit de eficiente în acţiuni legate de recunoaşterea formelor. Reţelele neuronale s-au dovedit a fi mult superioare sistemelor statistice tradiţionale sau sistemelor expert.

Un exemplu elocvent de recunoaştere a formelor este însăşi abilitatea de a translata simbolurile de pe această pagină în cuvinte, propoziţii, fraze pline de conţinut. Recunoaşterea formelor este o acţiune care necesită capabilitatea de a cuprinde simultan o mare cantitate de informaţii şi de a emite răspunsuri generale. Recunoaşterea formelor necesită sisteme de calcul capabile să "înţeleagă" date parţiale sau deformate [42].

Reţelele neuronale posedă capacitatea de a învăţa şi de a construi structuri unice relative la o problemă dată, fiind din acest motiv deosebit de eficiente în recunoaşterea

formelor. Capacitatea reţelelor neuronale de a selecta combinaţii de trăsături pertinente pentru

o anumită problemă le face să fie superioare sistemelor statistice. De asemenea, capacitatea

reţelelor neuronale de a deduce aceste trăsături pertinente, prin însăşi modul lor de acţiune şi nu prin intervenţia deliberată a unui programator, le face să fie superioare şi sistemelor expert.

II.5.5. Sinteză

Problema învăţării reţelelor neuronale, este echivalentă din multe puncte de vedere cu problema aproximării şi interpolării unei funcţii continue. În această analogie, a învăţa reţeaua neuronală cu ajutorul unei legi de învăţare supervizate, înseamnă a determina acea funcţie parametrică fw pentru care:

y F(x,w)

unde w reprezintă mulţimea tăriilor sinaptice ale reţelei neuronale. S-a demonstrat faptul că reţelele neuronale sunt aproximatori universali, fiind capabile să aproximeze arbitrar de bine orice aplicaţie continuă [44], [57]. Această capacitate a reţelelor neuronale artificiale de a

sintetiza funcţii continue complexe, este analogă cu abilitatea reţelelor neuronale biologice de a învăţa mişcări coordonate complexe, ca de exemplu de a folosi unelte, de a face sport.

II.5.6. Calculul neuronal versus calculul algoritmic

Un algoritm reprezintă descrierea unei secvenţe de instrucţiuni şi ordinea de execuţie a acestor instrucţiuni, care au ca scop atingerea unui ţel. Evident această definiţie nu cuprinde nici pe departe trăsăturile fundamentale ale calculului algoritmic. De aceea, cea mai bună cale de a caracteriza calculul neuronal este de a enumera caracteristicile echipamentelor pe care algoritmul se implementează, adică calculatorul von Neumann:

singură unitate centrală (CPU);

efectuarea calculelor în ordine secvenţială;

mulţime mare de instrucţiuni prin care se descrie algoritmul;

instrucţiunile pentru descrierea algoritmului sunt stocate în memorie;

operanzii folosiţi în calcule, precum şi rezultatele obţinute sunt stocate în memorie, în locaţii bine stabilite;

Datele necesare algoritmului sunt localizate.

Descrierea de mai sus corespunde tipului de calcul secvenţial, cunoscut sub numele de SISD (Single Instruction Single Datastream) [99]. Variaţiile invocate în cadrul calculului paralel nu reprezintă altceva decât variante ale SISD:

(Single Instruction Multiple Datastream): fiecare instrucţiune operează pe mai

SIMD

multe date.

MISD (Multiple Instruction Single Datastream): mai multe instrucţiuni operează în paralel asupra unor date, o instrucţiune pe dată, dar mai multe instrucţiuni simultan. Denumirea consacrată este de arhitectură pipeline.

MIMD (Multiple Instruction Multiple Datastream): mai multe operaţii operează pe mai multe date simultan. Acest lucru se reduce de obicei la mai multe maşini SISD interconectate.

Chiar dacă aceste variante de sisteme de calcul pot implementa calculul algoritmic paralel, ceea ce duce la o eficientizare a vitezei de calcul, trăsătura fundamentală rămâne procesarea secvenţială a datelor.

Din cele prezentate până acuma să încercăm să caracterizăm calculul neuronal:

există un număr mare de elemente de procesare (neuroni);

fiecare element de procesare efectuează un număr mic de calcule simple (adunări, înmulţiri, comparaţii);

fiecare element de procesare este conectat la multe alte elemente de procesare;

numărul de conexiuni dintre elementele de procesare este mult mai mare decât al elementelor de procesare;

tăria legăturii dintre elementele de procesare este variabilă, şi ceea ce este foarte important, este faptul că reţeaua neuronală îşi modifică singură tăria acestei legături;

dacă la un sistem de calcul von Neumann, instrucţiunile care se execută de elementul de procesare caracterizează deplin acţiunea de executat, la o reţea neuronală elementele de procesare efectuează calcule simple, independente de acţiunea de executat;

reţeaua neuronală învaţă cum să execute acţiunea dorită prin antrenament (experienţă); de aceea ea nu este programată prin intermediul unui set de reguli descrise a priori;

informaţia este distribuită în reţeaua neuronală, fiind stocată în tăriile legăturilor sinaptice dintre neuroni.

evidenţă

următoarea concluzie:

Calculul algoritmic necesită programare, adică stabilirea unui set de reguli care să caracterizeze a priori calculul ce urmează a fi implementat pe calculator;

Reţelele neuronale învaţă, “absorb” experienţă, modificându-şi structura internă în scopul efectuării acţiunii dorite.

Comparaţia

dintre

calculul

algoritmic

şi

calculul

neuronal

scoate

în

II.6. Domenii de utilizare ale reţelelor neuronale

Din cele prezentate până acum, rezultă faptul că reţelele neuronale sunt utile într-o gamă foarte diversificată de aplicaţii. Dacă studiem literatura de specialitate relativ la domeniul aplicativ al reţelelor neuronale, vom găsi aplicarea lor în toate domeniile activităţii umane. Pornind de la artă, ştiinţe naturale, ştiinţe sociale, industrie, agricultură, mergând până la sport, divertisment, aproape că nu existe domeniu în care să nu găsim aplicaţii ale calculului neuronal. Acest lucru nu este de mirare, deoarece analizând trăsăturile calculului neuronal (I.2) deducem caracterul său universal. Totuşi, cea mai adecvată utilizare a calculului neuronal o reprezintă domeniile apropiate percepţiei şi gândirii umane.

II.6.1. Procesarea limbajului

Conversii text-limbaj

T. Sejnowski şi C. Rosenberg [183] au aplicat sistemele de calcul neuronal în domeniul translatării unui text scris în limbaj vorbit. Proiectul lor, numit Nettalk, a avut la bază o reţea neuronală directă cu două straturi, învăţată pe baza unei legi de învăţare supervizată.

După cum se vede în Fig.2.4, reţeaua neuronală Nettalk cuprinde un strat de intrare cu 7 neuroni, valorile admisibile de intrare fiind caracterele alfabetului englez şi semnele de punctuaţie. Stratul ascuns este constituit din 80 de neuroni, iar stratul de ieşire din 26 de neuroni, fiecare corespunzând unei unităţi fonetice, numită fonemă. Reţeaua neuronală a fost antrenată cu ajutorul unui dicţionar de 1024 cuvinte. După 10 şedinţe de antrenament s-a

obţinut o pronunţie inteligibilă, iar după circa 50 de şedinţe de antrenament s-a obţinut o acurateţe de 95% în pronunţie.

S-a constatat faptul că reţeaua neuronală a reuşit să extragă din datele învăţate o serie de trăsături esenţiale procesului de vorbire. Astfel, neuronii din stratul ascuns răspund diferenţiat, prin valori de activare mai mari sau mai mici, la vocale sau consoane. Analizându- se structura internă şi modul de stocare a datelor în reţea, s-a regăsit însăşi structura fonologică a limbii engleze. Deteriorări premeditate ale reţelei neuronale Nettalk, au dus la o degradare continuă şi lentă a performanţelor sale, dar nu catastrofală, deteriorare imediat recuperată printr-o nouă fază de re-antrenare.

T

\z\

Stratul de ieşire

(Foneme) Strat ascuns h i s i s t h e input Fig.2.4.: Arhitectura generală
(Foneme)
Strat ascuns
h
i
s
i
s
t
h
e input
Fig.2.4.: Arhitectura generală a reţelei neuronale Nettalk.

Un produs similar de conversie text scris-text pronunţat, având la bază un sistem expert, produs de firma DEC şi numit DecTalk, a necesitat un efort uriaş de programare al unei echipe de 35 specialişti, timp de 2 ani de zile, fără a obţine un produs superior reţelei neuronale Nettalk.

Aceeaşi arhitectură ca la reţeaua Nettalk a fost aplicată de Qian şi Sejnowski [163] la determinarea structurii secundare a proteinelor, în scopul de a transcrie secvenţe de DNA pentru coduri de proteine.

Procesarea limbajelor naturale

D. Rumelhart şi J. McClelland [174] au introdus reţelele neuronale în domeniul procesării limbajului natural. Prin procesare a unui limbaj natural vom înţelege studiul modului de construcţie a regulilor unui limbaj.

D. Rumelhart şi J. McClelland au studiat acest proces cu ajutorul unei reţele neuronale capabile să înveţe timpul trecut (Past Tense) al limbii engleze. Învăţând reţeaua neuronală, ea a progresat din faza unui începător care face greşeli de tipul bring-bringed, până la o fază de specialist în care era capabilă de a determina timpul trecut pentru verbe neregulate. Abilitatea reţelei neuronale de a generaliza pe baza unor date incomplete şi de a se auto-organiza, au permis ca reţeaua neuronală să genereze răspunsuri corecte când i s-a prezentat un verb nou sau necunoscut.

II.6.2. Comprimarea datelor

G.W. Cottrell, D.Zipser şi P. Munro [33] au utilizat reţelele neuronale în scopul de a comprima eficient informaţii corespunzătoare unor imagini grafice. Imaginile grafice ocupă, în funcţie de rezoluţia de reprezentare şi de numărul de culori folosit, un spaţiu de memorare foarte mare, ajungând până la ordinul mega-octeţilor.

Compresia imaginilor reprezintă o necesitate practică, deoarece spaţiul de memorare este foarte costisitor, şi în acelaşi timp timpul de transfer al unei imagini este evident influenţat de dimensiunea spaţiului de memorare necesar pentru respectiva imagine.

Sistemul de calcul neuronal conceput de Cottrell, Munro şi Zipser are la bază o reţea neuronală cu trei straturi, capabilă a comprima o imagine, şi bineînţeles capabilă şi de a o decomprima fără distorsiuni. Este importantă de menționat legea de învăţare nesupervizată folosită pentru a învăţa reţeaua neuronală, care a permis ca ea să se auto-configureze, fără intervenţia specialiştilor. Cu această reţea neuronală s-a reuşit comprimarea datelor la un factor de 8:1, cu o decomprimare ireproşabilă a imaginii originale.

II.6.3. Recunoaşterea caracterelor

Un domeniu important de utilizare a reţelelor neuronale îl reprezintă domeniul interpretării vizuale şi al clasificării simbolurilor.

Recunoaşterea scrisului de mână. Cercetători ai companiei Nestor Inc. din SUA, au dezvoltat un sistem de calcul neuronal care are ca şi dispozitiv de intrare a datelor o tabletă digitizoare, pe care se poate scrie cu ajutorul unui Light-Pen. Reţeaua neuronală a fost antrenată cu diferite scrisuri de mână, ea fiind capabilă să interpreteze un scris de mână oarecare cu o înaltă acuitate.

Există un mare număr de sisteme de recunoaştere optică a caracterelor, numite OCR (Optical Character Recognition). Ceea ce diferenţiază reţelele neuronale faţă de sistemele OCR tradiţionale este flexibilitatea. După învăţare, reţeaua neuronală este capabilă să recunoască o mare diversitate de scrieri şi să facă presupuneri pertinente relativ la caracterele confuze.

Cercetătorii companiei Nestor au construit o reţea neuronală pentru scrierea japoneză (Kanji). Prin folosirea reţelelor neuronale în acest domeniu, s-a făcut posibilă eliminarea dificultăţilor de a cuantifica elementele specifice ale unui limbaj.

Prelucrarea imaginilor. K. Fukushima [72], [73] a elaborat un sistem de calcul neuronal pentru recunoaşterea imaginilor, cu aplicabilitate practică în domeniul recunoaşterii caracterelor. Reţeaua neuronală construită, are la bază un sistem performant de recunoaştere a formelor, numit Neocognitron.

Neocognitronul este de fapt o reţea neuronală cu mai multe straturi ce simulează modul de prelucrare a imaginilor de către cortexul uman. Straturile ascunse succesive de neuroni ale Neocognitronului au rolul de a extrage trăsături definitorii ale imaginii fără a fi influenţate de orientare sau distorsiuni. La nivelul stratului de intrare formele sunt unic determinate, o dată cu propagarea informaţiei către stratul de ieşire, activându-se doar anumiţi neuroni, care corespund unor trăsături definitorii ale imaginii.

II.6.4. Probleme combinatoriale

Reţelele neuronale au fost folosite cu succes la rezolvarea problemelor NP-complete (Non Polynomial). Este cunoscut faptul că problemele combinatoriale NP-complete necesită timpi de calcul care cresc exponenţial cu numărul de date de intrare.

Ca un test (benchmark), celebra problemă a comis-voiajorului care trebuie să străbată un număr dat de oraşe, folosind drumul cel mai scurt, reprezintă un test de măsură a performanţelor unor reţele neuronale. Literatura de specialitate conţine un număr impresionant de soluţii ale acestei probleme, majoritatea bazate pe o arhitectură particulară de reţea neuronală, numită reţea neuronală de tip Hopfield.

Cercetătorii J. Hopfield şi D. Tank [101], au fost primii care au aplicat calculul neuronal în domeniul rezolvării problemelor combinatoriale NP-complete. Ei au construit o reţea neuronală pentru a rezolva problema comis voiajorului, ataşându-i o funcţie energetică dependentă de starea neuronilor constituenţi. Minimul funcţiei energetice, corespunde unei stări stabile a neuronilor, drumul minim fiind astfel regăsit.

H. Szu [191] a îmbunătăţit reţeaua neuronală construită de Hopfield şi Tank, utilizând o funcţie energetică care conduce la stări mai stabile şi prin urmare la soluţii mai performante.

II.6.5. Recunoaşterea formelor

Clasificarea formelor

După cum am arătat, în domeniul recunoaşterii formelor (pattern recognition), sistemele de calcul neuronal au performanţe superioare sistemelor expert sau sistemelor clasice de calcul [199]. Există o gamă foarte diversificată de aplicabilitate a sistemelor de calcul neuronal în acest domeniu. Unul din exemplele semnificative, îl reprezintă aplicarea reţelei neuronale de tipul BP (BackPropagation) în clasificarea ţintelor radar. R. Gorman şi T. Sejnowski [84] au construit o reţea neuronală tip BP cu două straturi; stratul de intrare conţine un număr de 60 de neuroni, corespunzând la cele 60 benzi de frecvenţă necesare detectării unei ţinte radar, stratul de ieşire al reţelei neuronale, conţine un număr de neuroni corespunzând la numărul de ţinte radar; stratul ascuns are un număr de 12 neuroni.

După faza de antrenament, reţeaua neuronală s-a comportat ca un operator radar supercalificat.

Control industrial

Rezultate foarte bune s-au obţinut aplicând reţelele neuronale tip BP la recunoaşterea imaginilor furnizate de camere video, pentru a conduce un robot. D. Glover [83] a folosit pentru digitalizarea imaginilor video un procesor optic Fourier, care lucrează în timp real. Reţeaua neuronală era constituită din 2 straturi: stratul ascuns cu un număr de 20-40 neuroni, iar stratul de ieşire un număr corespunzător de neuroni de comandă pentru robot. Aplicând această reţea neuronală în domeniul controlului industrial, s-au obţinut rezultate interesante.

În cadrul cercetării conduse de Glover, s-a pus în evidenţă pentru prima dată fenomenul de supra-antrenament (overtraining), adică faptul că prezentarea unui număr prea mare de exemple de antrenament poate duce la distrugerea datelor memorate până atunci. Acest lucru se explică prin faptul că reţeaua neuronală se auto-configurează iniţial în

concordanţă cu tendinţa statistică a datelor de antrenament, prezentarea unor noi date irelevante producând deviaţii de la tendinţa statistică generală.

Fenomenul de supra-antrenament este unul din principalele neajunsuri ale legilor de învăţare supervizate care încearcă să înveţe date eronate sau irelevante, implicând modificări semnificative asupra tăriilor sinaptice, faţă de ajustări minore ale tăriilor sinaptice provocate de datele corecte, care generează erori minime.

II.6.6. Prelucrarea semnalelor

Predicţie

După cum se ştie, problemele de predicţie pentru serii haotice sunt dificil de rezolvat dacă utilizăm metode convenţionale liniare sau polinomiale. Lapedes şi Farbes [125] au construit o reţea neuronală pentru predicţia unei serii haotice, reprezentând soluţiile numerice ale unei ecuaţii diferenţiale, cunoscută sub numele de ecuaţia Mackey-Glass [131]:

dx

dt

01

.

 

( )

x t

02

.

(

x t

)

1

x

10

(

t

)

unde reprezintă un factor de întârziere.

(2.9)

Ideea de bază constă în a antrena reţeaua neuronală cu o mulţime de date de forma:

x(t), x(t ), x(t 2),

, x(t (n 1))

(2.10)

iar ca date ţintă, date cunoscute de forma x(t T). Parametrul controlează haoticitatea rezultatelor numerice.

Reţeaua neuronală construită de Lapedes şi Farbes are trei straturi, 2 straturi ascunse, un strat de ieşire constituit dintr-un singur neuron liniar (cu funcţie de activare liniară). Ceea ce s-a constatat la această reţea neuronală este aparenta sa capabilitatea de a reprezenta în straturile ascunse legea de generare a unei astfel de serii haotice.

Modelarea sistemelor, filtrarea semnalelor

Aceeaşi autori, Lapedes şi Farbes, au obţinut rezultate interesante în domeniul modelării unor sisteme. Încercarea lor s-a bazat pe modelarea funcţiei corespunzătoare sistemului:

(

x t

)

dx  

dt

2

(2.11)

Reţeaua neuronală conţinea în stratul de intrare doi neuroni, corespunzând valorilor

x(t) şi x(t 0.001), iar stratul de ieşire un singur neuron corespunzând valorii dx . Reţeaua

dt

neuronală avea două straturi ascunse, fiecare strat având câte 10 neuroni. Învăţarea reţelei s-a făcut cu ajutorul unor date corespunzând unor semnale cu bandă unică limitată, ca o sumă de 20 de sinusoide. Deşi, învăţarea reţelei neuronale s-a făcut relativ la ecuaţia (2.11), ea a învăţat de fapt forma generală a mecanismului de modelare, comportându-se satisfăcător la semnale arbitrare prezentate la stratul de intrare.

Reţelele neuronale au fost folosite şi în aplicaţii de filtrare a semnalelor, cu scopul de a elimina zgomotul perturbator. S-au construit în acest fel reţele neuronale aplicate în domeniul

medicinii [148], pentru a elimina zgomotul produs de imperfecţiunea aparatelor de măsură EKG, EEG etc. Reţelele neuronale sunt folosite şi în domeniul telecomunicaţiilor, pentru a elimina zgomotul şi interferenţa semnalelor.

II.6.7. Modelare economică şi financiară

Modelarea sistemelor economice şi financiare cu scopul de a permite analize şi prognoze eficiente, este de o foarte mare importanţă. Determinarea unor elemente de tendinţă economico-financiară cum ar fi consum, preţ, inflaţie, volum de vânzări, necesar de aprovizionat etc., sunt în general greu de abordat datorită numărului mare de parametri şi a imprevizibilăţii variaţiei lor [48].

Reţelele neuronale au căpătat în acest domeniu o recunoaştere semnificativă. Mari companii, cum ar fi Boeing, Volvo, Philips, folosesc sisteme de calcul neuronal în domeniul managementului firmei [148].

II.6.8. Servo-control

Deosebit de dificilă este problema controlului şi conducerii unor sisteme complexe servo-mecanice (roboţi). Dificultatea constă în a găsi metode computaţionale acceptabile pentru a compensa variaţiile fizice din sistem [88]. Deşi uneori este posibil a construi formule matematice care să descrie erori provocate de variaţii fizice - erori provocate de alinierea axelor, deviaţii ale organelor în mişcare - două probleme sunt de luat în considerare:

Prima problemă: de cele mai multe ori este aproape imposibil să măsurăm cu acurateţe variaţiile fizice.

A doua problemă: complexitatea computaţională necesară pentru a rezolva problemele variaţiilor fizice poate fi nefezabilă din punct de vedere economic, necesitând o putere de calcul uriaşă şi echipamente speciale.

Cu toate acestea există numeroase modele de calcul neuronal care stau la baza conducerii unor roboţi. Un exemplu semnificativ este robotul comandat de o reţea neuronală folosit pentru conducerea unui vehicul. D. Pomerleau [160] a construit în acest scop o reţea neuronală cu două straturi. Stratul de intrare constă dintr-o imagine digitizată de 30x32 pixeli şi 8x32 pixeli de la un sistem video de proximitate. Stratul ascuns conţinea 29 de neuroni, iar stratul de ieşire 45 de neuroni dispuşi liniar. Neuronii din centrul stratului de ieşire corespundeau pentru direcţia înainte, cei din stânga şi dreapta pentru viraj stânga, respectiv dreapta.

După ce reţeaua neuronală a fost antrenată cu un număr de 1200 de imagini simulate, ea a fost capabilă să conducă un automobil cu o viteză de 25 km/h. Viteza limitată era datorată mai ales faptului că echipamentul de calcul utilizat pentru a implementa reţeaua neuronală, un microsistem Sun-3, nu avea viteză de calcul mare.

II.6.9. Teoria aproximării

Putem considera o reţea neuronală ca o implementare a unei reguli de calcul ce ne permite să obţinem un vector de ieşire m-dimensional, cunoscând vectorul de intrare n- dimensional corespunzător. Această regulă implementată de reţeaua neuronală corespunde de

. De fapt, în această carte vom prezenta rezultate care

dovedesc că reţelele neuronale sunt din multe puncte de vedere superioare metodelor de aproximare-interpolare polinomiale.

În aceste paragrafe am prezentat doar o parte a domeniului de aplicare a reţelelor neuronale, fără a avea pretenţia de a epuiza în totalitate posibilităţile de aplicare a calcului neuronal. După cum am mai menţionat, reţelele neuronale sunt modul de implementare a calculului neuronal, care este practic un instrument universal, cu avantaje şi dezavantaje faţă de metodele de calcul clasic sau cele bazate pe sistemele expert.

fapt unei clase de funcţii

f : R

n

R

m

II.7. Clasificare

Pentru a avea o imagine de ansamblu asupra modelelor de calcul neuronal construite până în prezent, vom prezenta o clasificare a re