Studiul Posibilitatilor de Implementare Hardware a Retelelor Neuronale Si Aplicatii

Cuprins

Introducere ………………………………………………………………………………………………….. 1

Cap. I Perceptronul pe un singur nivel …………………………………………………………. 3

1.1. Modelul de clasificare …………………………………………………………………….. 3

1.2. Funcțiile discriminant …………………………………………………………………….. 5

1.3. Mașini liniare și clasificarea după distanța minimă ……………………………….. 7

1.4. Conceptul de antrenament nonparametric ………………………………………….. 7

1.5. Algoritmul de clasificare și antrenare ………………………………………………… 8

1.6. Rețeaua de perceptroni de tip continuu pe un singur

nivel pentru clasificări liniar separabile ……………………………………………… 9

1.7. Rețeaua de perceptroni multicategorii pe un singur nivel …………………….. 10

Aplicație ………………………………………………………………………………………….. 13

Concluzii …………………………………………………………………………………………. 13

Cap. II Rețele multinivel cu propagare directă …………………………………………….. 14

2.1. Clasificarea formelor liniar neseparabile …………………………………………… 14

2.2. Regula Delta de învățare pentru nivelul cu mai mulți perceptroni …………. 15

2.3. Regula Delta generalizată ……………………………………………………………… 17

2.4. Antrenamentul prin propagarea înapoi a erorii ………………………………….. 18

2.5. Factorii de învățare ………………………………………………………………………. 18

2.6. Rețele nivelate expert și clasificatoare ……………………………………………… 19

2.7. Rețelele cu legături funcționale ………………………………………………………. 19

Aplicație ………………………………………………………………………………………….. 21

Concluzii …………………………………………………………………………………………. 21

Cap. III Rețele cu un singur nivel cu reacție …………………………………………………. 22

3.1. Caracteristici generale ………………………………………………………………….. 22

3.2. Concepte de bază ………………………………………………………………………… 22

3.3. Modelul Hopfield în timp discret ……………………………………………………. 23

3.4. Modelul Hopfield de tip gradient ……………………………………………………. 24

3.5. Exemple de soluții pentru problemele de optimizare ………………………….. 25

Aplicație ………………………………………………………………………………………….. 29

Concluzii …………………………………………………………………………………………. 30

Cap. IV Memorii asociative ……………………………………………………………………….. 31

4.1. Concepte de bază ………………………………………………………………………… 31

4.2. Asociatorul liniar …………………………………………………………………………. 33

4.3. Caracteristicile generale ale memoriilor asociative recurente ……………….. 34

4.4. Memorii asociative bidirecționale …………………………………………………… 36

Aplicație ………………………………………………………………………………………….. 38

Concluzii …………………………………………………………………………………………. 39

Capitolul V Rețele cu autoorganizare …………………………………………………………… 40

5.1. Rețeaua Hamming și rețeaua Maxnet ………………………………………………. 40

5.2. Învățarea nesupervizată prin gruparea în clase ………………………………….. 42

5.3. Rețelele cu propagare înainte (counterpropagation) …………………………… 44

5.4. Organizarea pe articole …………………………………………………………………. 45

5.5 Hărți de articole cu autoorganizare ………………………………………………….. 46

Aplicație ………………………………………………………………………………………….. 48

Concluzii …………………………………………………………………………………………. 51

Încheiere …………………………………………………………………………………………………… 52

Bibliografie ……………………………………………………………………………………………….. 55

Anexe

=== BIBLIO ===

Bibliografie

INTRODUCTION TO THE THEORY OF NEURAL COMPUTATION – John Hertz, Anders Krogh, Richard g. Palmer, Addison-Weslez Publishing Company.

INTRODUCTION TO ARTIFICIAL NEURAL SYSTEMS – Jacek m. Zurada, West Publishing Company.

TRANSACTION ON NEURAL NETWORKS – may 1993, volume 4, numbers 3 & 4, a publication of the IEEE Neural Networks Council

ARTIFICIAL NEURAL NETWORKS: PARADIGMS, APPLICATIONS AND HARDWARE IMPLEMENTATONS, edited by Edgar Sanchez-Sinencio and Clifford Lau, IEEE 1992, N.Y.

=== CAP1 ===

Cap.1. Perceptronul pe un singur nivel

1.1. Modelul de clasificare

Modelul uninivel al perceptronului este cel mai simplu caz de rețea cu propagare directă pe un singur nivel. Principala funcție a rețelei este de a categorisi un model de intrare. Conceptual, problema poate fi descrisă ca o transformare a unei funcții sau a unui set de funcții dintr-un spațiu de intrare într-un spațiu de ieșire, numit spațiu de clasificare. În general această transformare a datelor de intrare în clase este foarte complexă și ireversibilă.

Una din cele mai uzuale sarcini care poate fi îndeplinită de o rețea de elemente neliniare interconectate este clasificarea modelelor. Un model este o descriere cantitativă a unui obiect, evnimant sau fenomen. Modelul poate fi spațial (imagini video ale navelor, hărți, etc.) sau temporal (seismograme, cardiograme, fonograme).

Scopul unei clasificări este de a asigna o clasă prestabilită (categorie) unui obiect fizic, eveniment sau fenomen. Figura următoare arată diagrama bloc a unui sistem de recunoaștere și clasificare. Sistemul de clasificare constă dintr-un traductor de intrare ce transmite datele de intrare unui extractor de caracteristici. În mod uzual, intrările în extractor sînt seturi de vectori de date ce aparțin unei anumite categorii. Vectorii corespund valorilor măsurătorilor. Datale de la ieșirea traductor pot fi comprimate, menținînd performanțele de clasificare. Aceste date comprimate se numesc caracteristici. Extractorul de caracteristici realizează și reducerea dimensiunilor modelului. Dimensiunea spațiului caracteristicilor este mult mică decît dimensiunea spațiului modelului de intrare. Vectorul caracteristică reține numărul minim de date necesar unei probabilități mari de clasificare corectă.

Un exemplu de extragere și reducere a caracteristicilor este analiza vocalelor. Un filtru cu 16 canale produce un set de 16 vectori spectrali. Conținutul spectral al vocalei poate transformat într-un spațiu calitativ-perceptual bidimensional, legat de tonalitate și durată.

Componentele de intrare se reprezintă ca un vector x. Ieșirea sistemului de clasificare de obține prin implementarea funcției de decizie i0(x), funcție cu valori discrete.

i0=i0(x), (1.1)

unde x=[x1 x2 … xn]t

Răspunsurile reprezintă categoriile în care modelul de la intrare poate fi inclus.

Descrierea poate fi făcută și geometric într-un spațiu euclidian n-dimensional, numit spațiul caracteristicilor. În acest spațiu regiunile de decizie sînt separate prin suprafețe de decizie. Răspunsurile clasificărilor sînt numerele claselor. Modelele localizate pe suprafețele de decizie nu aparțin nici unei clase.

1.2. Funcțiile discriminant

Presupunînd că dimensiunea modelului de intrare este P iar numărul categoriilor este R, P este mult mai mare decît R. O componentă a unei clase trebuie să fie determinată prin comparație cu R funcții discriminant g1(x), g2(x), …, gR(x), calculate pentru modelul de intrare considerat. Funcțiile discriminant sînt scalare iar un model de intrare x aparține unei clase i dacă și numai dacă

gi(x) > gj(x), pentru i, j = 1, 2, …, R. (1.2)

Schema bloc a unui clasificator de modele este prezentată mai jos:

Pentru un anumit model, discriminatorul i calculează valoarea funcției discriminant gi(x). Selectorul de maxim implementează condiția (1.2) și selectează intrarea cea mai mare pentru care răspunsul este identic cu cel al clasei i.

Exemplificările se fac de obicei pe un model cu 2 clase. Modelul se numește dihotomizor (din greacă: dicha = doi, tomia = a tăia) iar condiția de clasificare se reduce practic la calcularea semnului funcției discriminant următoare:

g(x) = g1(x) – g2(x) (1.3)

Astfel, regula de clasificare poate fi rescrisă:

g(x) > 0 : clasa 1

g(x) < 0 : clasa 2 (1.4)

Implementarea condiției de evaluare este mai simplă decît cea a selectorului de maxim și se face cu o unitate logică threshold (threshold logic unit TLU). Blocul TLU poate fi considerat o versiune binară (discretă) a neuronului. Un TLU cu ponderi este considerat perceptron binar discret. Răspunsurile 1, respectiv -1, ale TLU pot fi interpretate ca indicînd clasele de apartenență. Elementul TLU implementează simplu funcția semn definită astfel:

-1, dacă g(x) < 0

i0 = sgn[g(x)] = nedefinit, dacă g(x) = 0 (1.5)

1, dacă g(x) > 0

În acest fel proiectarea clasificatorilor se bazează în întregime pe calculul limitelor suprafețelor de decizie ca derivate ale modelelor și aparteneței lor la clase.Capacitățile de decizie ale clasificatorilor sînt generate de modelele de antrenament prin învățare iterativă, antrenament sau algoritm. Pentru studiul unui clasificator antrenat se consideră că:

1. setul de modele de antrenament și clasificare este cunoscut iar antrenamentul este supervizat;

2. funcțiile discriminant au o formă liniară și în timpul procedurii de antrenament se modifică doar coeficienții lor.

1.3. Mașini liniare și clasificarea după distanța minimă

Un clasificator eficient (ca cel din figura anterioară) este descris de funcții discriminant care sînt funcții neliniare de intrare. Folosirea funcțiilor neliniare conduce la o topologie de rețea cu propagare directă de tip multinivel. Pentru perceptronul uninivel se consideră funcții discriminant liniare.

O schemă bloc a unui clasificator liniar este prezentată mai jos:

Mașina constă în R noduri de calcul scalar și un singur selector de maxim. În timpul clasificării, după calcularea tuturor funcțiilor discriminant gi(x) pentru modelul dat, blocul final al clasificatorului selectează discriminantul maxim și răspunde cu un număr de discriminant avînd cea mai mare valoare.

1.4. Conceptul de antrenament nonparametric

În această secțiune va fi examinat dihotomizorul definit mai sus, împreună cu antrenamentul rețelei. Vectorul șablon x1, x2, …, xp este numit secvența de antrenament. Răspunsul este furnizat de supervizor și specifică răspunsul pentru fiecare vector de intrare. Clasificatorul modifică parametrii de la intrare prin mijloace iterative. Rețeaua învață din experiență comparînd răspunsul țintă corect cu răspunsul actual. Structura clasificatorului este ajustată după fiecare răspuns incorect, bazîndu-se pe o valoare a erorii generate. Informația de eroare este folosită pentru a adapta ponderile perceptronului discret.

Schema unui dihotomozor liniar care folosește ca element de limitare hardware un bloc TLU este prezentat mai jos.

Dihotomizorul constă în n+1 intrări ponderate iar TLU funcționează ca un element binar de decizie. Este identic cu perceptronul binar bipolar. Intrarea în neuronul binar este suma ponderată a componentelor vectorului y de intrare.

1.5. Algoritmul de clasificare și antrenare

Pentru ilustrarea algoritmului de clasificare și antrenare pentru perceptronul cu valori discrete se utilizează schema următoare:

Algoritmul de antrenament pentru acest tip de perceptron (Single Discrete Perceptron Training Algorithm SDPTA) este prezentat succint mai jos:

Se dau P perechi de antrenament

{x1, d1, x2, d2, …, xP, dP},

unde xi este un vector (n x 1) iar di este un vector (1 x 1), cu valori i = 1, 2, …, P.

Vectorul de intrare sint de forma:

yi = [xi 1]t, pentru i = 1, 2, …, P.

În continuare k este numărul de pași de antrenament iar p este numărul de pași din cadrul unui ciclu de antrenament.

Pasul 1: Este aleasă constanta c > 0.

Pasul 2: Sînt inițializate ponderile w la valori aleatoare mici, unde w este vector (n + 1) x 1. Sînt inițializate contoarele k și p și eroarea E:

k 1, p 1, E 0.

Pasul 3: Începe ciclul de antrenament. Se aplică intrările și se urmăresc ieșirile:

y yp, d dp,

o sgn (wt y).

Pasul 4: Sînt actualizate ponderile:

w w + 1/2 c(d – o)y

Pasul 5: Este urmărit ciclul erorii:

E 1/2 (d – o)2 + E

Pasul 6: Dacă p < P atunci p p + 1, k k + 1 și se reia de la pasul 3; altfel se continuă cu pasul 7.

Pasul 7: Ciclul de antrenament este complet. Pentru E = 0 sesiunea de antrenament se termină. Sînt măsurate ponderile și contorul k.

Dacă E > 0 atunci E 0, p 1 și se introduc valori noi de antrenament reluînd de la pasul 3.

1.6. Rețeaua de perceptroni de tip continuu pe un singur nivel pentru clasificări liniar separabile

Se introduce conceptul de eroare în spațiul ponderilor multidimensionale. Astfel, elementul TLU cu ponderi va fi înlocuit cu un perceptron continuu. Această înlocuire vizează 2 obiective. Primul constă în dobîndirea unui control mai fin asupra procedurii de antrenament. Al doilea este facilitarea lucrului cu caracteristicile diferențiale, ca măsurarea gradientului erorii.

Antrenamentul unui perceptron continuu folosind minimizarea erorii pătratice folosește schema de mai jos:

Algoritmul de antrenament al unui perceptron continuu (Single Continuous Perceptron Training Algorithm SCPTA) este prezentat mai jos:

Se dau aceleași date ca la SDPTA.

Pasul 1: > 0 (constanta de învățare), = 1 (coeficient de pas), este aleasă Emax > 0.

Pasul 2: Sînt inițializate ponderile w la valori aleatoare mici, unde w este vector (n + 1) x 1. Sînt inițializate contoarele k și p și eroarea E:

k 1, p 1, E 0.

Pasul 3: Începe ciclul de antrenament. Se introduc intrările y și se urmăresc ieșirile:

y yp, d dp,

o f(wt y), cu f (net) = [2 / (1 + exp(-net))] – 1.

Pasul 4: Ponderile sînt actualizate:

w w + 1/2 (d – o)(1 – o2)y

Pașii 5 și 6 coincid cu cei de la SDPTA.

Pasul 7: Ciclul de antrenament este complet. Pentru E < Emax sesiunea de antrenament se termină. Sînt măsurate ponderile, contorul k și eroarea E.

Dacă E Emax atunci E 0, p 1 și se intră într-o nouă sesiune de antrenament reluîndu-se de la pasul 3.

1.7. Rețeaua de perceptroni multicategorii pe un singur nivel

În acesată secțiune se va prezenta un algoritm de minimizare a erorii unui proces de clasificare pe mai multe categorii. Aceasta se face în ipoteza în care oricare clasă este liniar separabilă de celelalte, echivalent cu existența a R funcții discriminant liniare, ca mai jos:

gi (x) > gj (x), pentru i, j = 1, 2, …, R și i j. (1.6)

Diagrama simplificată a unui astfel de neuron este ilustrată mai jos. Alături este prezentată funcția de răspuns a unui element threshold nenul al unui neuron de acest tip.

Se notează cu T valoarea de prag a elementului threshold și astfel ieșirea neuronului are valoarea:

> 0, pentru wt y >T

f(net) = (1.7)

< 0, pentru wt y < T

Un clasificator liniar pentru R categorii ce folosește R perceptroni discreți este ilustrat mai jos:

Algoritmul de antrenament al unui astfel de clasificator (R-Category Discrete Perceptron Training Algorithm RDPTA) este prezentat în continuare.

Se dau P perechi de antrenament

{x1, d1, x2, d2, …, xP, dP},

unde xi este un vector (n x 1) iar di este un vector (R x 1), cu valori i = 1, 2, …, P.

Vectorul de intrare sint de forma:

yi = [xi -1]t, pentru i = 1, 2, …, P.

În continuare k este numărul de pași de antrenament iar p este numărul de pași din cadrul unui ciclu de antrenament.

Pasul 1: Este aleasă constanta c > 0.

Pasul 2: Sînt inițializate ponderile W la valori aleatoare mici, unde W = [wij] este vector R x (n + 1). Sînt inițializate contoarele k și p și eroarea E:

k 1, p 1, E 0.

Pasul 3: Începe ciclul de antrenament. Se aplică intrările și se urmăresc ieșirile:

y yp, d dp,

o sgn (wti y), pentru i = 1, 2, …, R,

unde wi este linia numărul i din W.

Pasul 4: Sînt actualizate ponderile:

wi wi + 1/2 c(di – oi)y, pentru i = 1, 2, …, R.

Pasul 5: Este urmărit ciclul erorii:

E 1/2 (di – oi)2 + E, pentru i = 1, 2, …, R.

Pasul 6: Dacă p < P atunci p p + 1, k k + 1 și se reia de la pasul 3; altfel se continuă cu pasul 7.

Pasul 7: Ciclul de antrenament este complet. Pentru E = 0 sesiunea de antrenament se termină. Sînt măsurate ponderile și contorul k.

Dacă E > 0 atunci E 0, p 1 și se introduc valori noi de antrenament reluînd de la pasul 3.

Se observă că folosind un selector maxim, un clasificator pe ami multe categorii este convertit să folosească perceptroni cu structură discretă.

Structura unei rețele-clasificator pe R categorii ce folosește perceptroni cu structură continuă este prezentată în continuare:

Aplicație

Exemplul acesta ilustrează funcționarea unei rețele neuronale organizată ca un clasificator de modele cu 2 intrări și 3 ieșiri, care indică clasele de apartenență. Rețeaua trebuie să fie capabilă să identifice unul din cei 3 vectori model de la intrare.

Rețeaua este formată din 3 amplificatoare operaționale LF 411, fiecare folosind 4 rezistențe. Schema este ilustrată în anexa I (a). Detectorii 2 și 3 de modele necesită 2 ponderi negative și respectiv 2 ponderi pozitive, pe cînd detectorul 1 are nevoie de ponderi de semne diferite (una negativă și una pozitivă). Fiecare neuron detector are doar 2 intrări dar are 4 sau 5 rezistențe. Valorile rezistențelor de la intrare sau din reacție sînt trecute pe schema din anexa I (a).

Circuitul se comportă bine la simulare și testare. Implementarea lui fizică ridică probleme legate de dimensiunea unei plăci cu cîțiva neuroni similari și de căldura disipată atît de rezistențe cît și de amplificatoarele operaționale prin efectul Joule. O altă problemă este imposibilitatea modificării nedistructive a valorilor ponderilor (rezistențelor de intrare și de reacție). Asemenea rezistențe nu mai sînt ușor ajustabile sau controlabile. În consecință ele sînt folosite, ca întreaga schemă de altfel, doar pentru o singură aplicație.

Concluzii

În acest capitol au fost expuse succint bazele recunoașterii formelor (pattern recognition), ca și bazele clasificatorilor deterministici de forme. Clasificatorii antrenați folosesc procedura de minimizare a erorii dintre răspunsul dorit și cel obținut. Din aceasta derivă procedeul învățării supervizate.

Schema prezentată ca aplicație are doar valoare didactică. O implementare fizică nu satisface pretențiile legate de performanță și fiabilitate. Cu toate acestea, schema aceasta stă la baza multor rețele cu o structură mai complexă și cu un randament mai mare în funcționare. Mai sofisticate, rețelele realizate cu circuite integrate pe scară largă și foarte largă se bazează în funcționarea lor tot pe principiile simple ale rețelelor cu rezistențe și amplificatoare operaționale. De fapt conversia unei tensiuni de intrare în ponderi curenți este una din cele mai frecvente aplicații. O altă tehnică este conversia unei sume de curenți într-o tensiune răspuns proporțională cu o saturație neliniară.

=== CAP2 ===

Cap.2. Rețele multinivel cu propagare directă

Rețelele cu mai multe nivele (multinivel) sînt folosite de foarte mult timp în aplicații practice. Recentele dezvoltări legate de învățarea supervizată a acestor rețele le-a adus din nou în actualitate. Ele pot implementa mapări complexe de intrări/ieșiri sau suprafețe de decizie ce separă clasele de modele.

Cea mai importantă caracteristică a acestor rețele este că ele pot învăța o mapare de orice complexitate. Învățarea rețelei se bazează pe prezentări repetate de modele de antrenament, ca și în cazul rețelelor cu un singur nivel.

2.1. Clasificarea formelor liniar neseparabile

Se presupune că se dau două seturi de antrenament Y1 și Y2. Dacă nu există nici un vector w astfel încît:

yt w > 0 pentru fiecare y Y1

yt w < 0 pentru fiecare y Y2

atunci seturile de modele seturile de modele Y1 și Y2 sînt liniar neseparabile.

Spațiul modelelor în care acestea sînt liniar neseparabile poate fi transformat într-un spațiu imagine, în care o rețea cu două nivele poate clasifica modelele.

Se consideră inițial două seturi de modele Y1 și Y2 ce trebuie clasificate în două categorii. Exemplul este prezentat mai jos:

Se observă că spațiul x se poate împărți în trei suprafețe, astfel încît fiecare spațiu al modelelor să conțină doar modele aparținînd unei singure categorii.

Implementarea unei rețele ce rezolvă această aplicație este ilustrată în continuare:

Rezultatul mapării modelelor din figură este un cub în spațiul imagine o1, o2 și o3. În acest spațiu modelele din clasele 1 și 2 pot fi ușor separate de un plan cu ecuația o1 + o2 + o3 = 0. Ieșirea o4 și un perceptron discret din nivelul de ieșire, fără prag, avînd ca intrări o1, o2 și o3 pot furniza împărțirea corectă a modelelor în cele două clase, după cum urmează:

sgn(o1 + o2 + o3) > 0 : clasa 1

o4 =

sgn(o1 + o2 + o3) < 0 : clasa 2

Rezultă că procedura de antrenare, în cazul rețelelor pe mai multe nivele, trebuie să genereze imagini liniar separabile în spațiul imagine. Dacă parametrii modelelor și răspunsurile dorite sînt complet cunoscute, calculul ponderilor unei rețele cu două nivele realizat fără o experiență de cunoaștere anterioară.

2.2. Regula Delta de învățare pentru nivelul cu mai mulți perceptroni

Această secțiune tratează algoritmul aplicat rețelelor multinivel cu propagare directă. Algoritmul mai este cunoscut în literatura de specialitate și sub numele de algoritmul prin propagarea înapoi a erorii.

Pentru ilustrarea corespunzătoare a algoritmului, este prezentată schema unei rețele cu un singur nivel de neuroni cu structură continuă (răspuns neliniar).

Algoritmul de antrenare a unei rețele pentru mai multe categorii formată din perceptroni cu structură continuă este următorul:

Se dau P perechi de valori ale unui set de antrenament

{y1, d1, y2, d2, …, yP, dP}

unde yi este un vector de dimensiune (J x 1) iar di este de dimensiune

(K x 1), cu i = 1, 2, …, P.

De reținut că valoarea componentei numărul J din fiecare yi este -1 din momentul modificării valorilor vectorilor de intrare. Aici q indică numărul de pasi de antrenament iar p este contor din cadrul ciclului de antrenament.

Pasul 1: > 0 (constanta de învățare), este aleasă Emax > 0.

Pasul 2: Sînt inițializate ponderile W la valori aleatoare mici, unde W este vector K x J. Sînt inițializate contoarele q și p și eroarea E:

q 1, p 1, E 0.

Pasul 3: Începe ciclul de antrenament. Se introduc intrările y și se urmăresc ieșirile:

y yp, d dp,

o f(wtk y), cu k = 1, 2, …, K

unde wk este linia numărul k din W iar f (net) = [2 / (1 + exp(-net))] – 1.

Pasul 4: Ponderile sînt actualizate:

wk wk + 1/2 (dk – ok)(1 – ok2)y, cu k = 1, 2, …, K.

Pasul 5: Este calculată eroarea:

E 1/2 (dk – ok)2 + E, pentru k = 1, 2, …, K.

Pasul 6: Dacă p < P atunci p p + 1, q q +1 și se repetă de la pasul 3; altfel urmează pasul 7.

Pasul 7: Ciclul de antrenament este complet. Pentru E < Emax sesiunea de antrenament se termină. Sînt măsurate ponderile W, contorul q și eroarea E.

Dacă E > Emax atunci E 0, p 1 și se intră într-o nouă sesiune de antrenament reluîndu-se de la pasul 3.

2.3. Regula Delta generalizată

Pentru regula generalizată se consideră o arhitectură de rețea cu două nivele de neuroni procesori. Dacă se consideră și nivelul de noduri, rețeaua poate fi considerată ca avînd trei nivele. Schema unei astfel de structuri este prezentată mai jos:

Nivelele de neuroni ale căror ieșiri nu sînt direct accesibile se numesc nivele ascunse sau interne. În figura de ami sus există un singur nivel ascuns. Comparativ, regula Delta pentru ajustarea ponderilor nivelului de ieșire și regula Delta pentru ajustarea ponderilor nivelului ascuns sînt aproximativ la fel de performante. Diferența apare doar în ce privește locația ponderilor și a semnalelor de intrare. Această regulă propagă înapoi eroarea printr-un singur nivel.

2.4. Antrenamentul prin propagarea înapoi a erorii

Rețeaua prezentată înainte trebuie antrenată într-un mod supervizat. Vectorii model de antrenament z ar trebui aranjați în perechi cu vectorii răspuns doriți d furnizați de operatorul supervizor (profesor). Ca rezultat al acestei operații, este furnizat la ieșire vectorul o.

O rețea cu această structură poate rezolva probleme legate de clasificări de modele liniar neseparabile. Datorită dimensiunilor ei, poate fi folosită direct pentru a soluționa probleme SAU-EXCLUSIV (XOR) cu două variabile.

În timpul învățării rețelei folosind metoda mai sus amintită pot apare erori de antrenament. Presupunînd că rețeaua antrenată ca și clasificator, de obicei toate valorile dorite de la ieșire sînt setate pe 0 în afară de una singură, ce corespunde clasei căreia aparține modelul de la intrare. Această ieșire doriită este setată pe 1. În acest caz, eroarea de decizie reflectă mai bine decît eroarea de răspuns acuratețea clasificărilor rețelei neuronale.

2.5. Factorii de învățare

Algoritmul de învățare prin propagarea înapoi a erorii în care legăturile sinaptice (ponderile) își modifică sistematic valorile pentru ca răspunsul generat să fie cît mai aproape ca valoare de cel dorit poate fi considerat o problemă de optimizare. Esența algoritmului constă în evaluarea contribuției fiecărei ponderi la eroarea de la ieșire.

Cu toate că aparent algoritmul are o importanță majoră, implementarea lui poate aduce cîteva surprize. Dificultățile apar în abordările de optimizare multidimensionale. Una din probleme este că algoritmul de propagare înapoi a erorii poate produce doar un minim local al funcției erorii.

Dintre factorii care de obicei îmbunătățesc convergența antrenamentului este natura statistică a intrărilor și ieșirilor. În general ponderile sînt inițializate cu valori aleatoare mici. Inițializarea afectează puternic soluția finală. Dacă, spre exemplu, valorile de start ale ponderilor sînt egale iar rețeaua necesită prin structură valori inegale, antrenamentul poate să eșueze. De asemenea, învățarea poate eșua în condițiile stabilizării erorii.

Un alt factor de învățare important este constanta de învățare, care trebuie să fie suficient de mică pentru a nu genera erori mari dar și destul de mare pentru a nu mări numărul cicluri de învățare. Acest factor afectează direct modificarea valorilor ponderilor. Convergența rețelei depinde, de asemenea, de constanta de învățare.

Topologia (arhitectura) rețelei este un alt factor de învățare deosebit de important. Aceasta include mărimea vectorului de intrare și a acelui de ieșire, numărul de nivele, numărul de clase.

Numărul neuronilor ascunși afectează de asemenea învățarea. Problema nu are practic o soluție, numărul acestora depinzînd de felul aplicației pentru rezolvarea căreia este folosită rețeaua.

2.6. Rețele nivelate expert și clasificatoare

Rețelele pe mai multe nivele cu propagare directă sînt folosite într-o varietate de probleme de optimizare sau clasificare. Unul din avantajele majore în favoarea acestui tip de rețele este faptul că antrenamentul se poate realiza și fără cunoașterea amănunțită a modelului matematic al clasificării sau a recunoașterii formelor. Algoritmul de antrenament prin propagarea înapoi a erorii este un algoritm optim, care într-un timp scurt și cu puține resurse disponibile poate furniza o soluție acceptabilă la o problemă relativ complicată. Sînt necesare doar un set de valori inițiale ale ponderilor și o topologie adecvată problemei.

Dintre problemele cele mai frecvente care apar și se pretează implementărilor hardware se pot aminti aplicațiile bazate pe recunoașterea de caractere, sisteme expert într-un anumit domeniu, etc.

2.7. Rețelele cu legături funcționale

În cele prezentate mai sus, nivelul ascuns de neuroni furnizează un model adecvat al transformării de imagine iar nivelul de ieșire produce rezultatul final. O alternativă la aceste rețele multinivel cu nivele ascunse de neuroni este rețeaua cu legături funcționale. Acesta este o rețea cu un singur nivel capabilă să rezolve probleme legate de clasificări liniar neseparabile folosind o reprezentare extinsă a intrărilor.

Ideea acestei metode constă în găsirea unei reprezentări extinse adecvate a datelor de intrare. Datele de intrare adiționale folosite în schemă încorporează efecte de ordin mai înalt și măresc în mod artificial dimensiunea spațiului de intrare.

Diagrama bloc a unei astfel de rețele este prezentată în continuare:

Rețeaua folosește o reprezentare extinsă a modelelor de intrare compusă acum din J + H elemente. Termenii suplimentari se aplică la baza intrării. Astfel în rețea este introdusă în mod explicit informație suplimentară, reprezentarea intrărilor devine extinsă, ceea ce conduce la o separabilitate liniară în spațiul extins a modelelor de intrare ce prezentau altfel o neseparabilitate liniară în spațiul normal al intrărilor.

Luînd ca exemplu problemele SAU-EXCLUSIV (XOR) cu 2 și 3 intrări și prezentînd grafic comparativ numărul de iterații (numărul de pași de antrenament) necesari atingerii unei erori minime atît unei rețele cu mai multe nivele cît și unei rețele cu legături funcționale, rezultă următoarele grafice care arată superioritatea acestui ultim tip de rețea:

Topologic, rețeaua cu legături funcționale nu aparține tipului de rețea pe mai multe nivele. Ea are doar un singur nivel de neuroni. Dar, datorită proprietăților de clasificare intrinsece și a funcționării similare cu cea a rețelelor multinivel, poate fi încadrată în această categorie de rețele. Modelele liniar neseparabile necesită o reprezentare extinsă a intrărilor astfel încît clasificarea poate fi efectuată de un singur nivel de neuroni. Avantajul distinct al rețelelor cu legături funcționale este că antrenamentul este foarte simplu, comparativ cu cel al rețelelor pe mai multe nivele.

Aplicație

Schema prezentată este o rețea cu 3 nivele. Primul nivel cuprinde 2 neuroni cu cîte 2 intrări fiecare. Urmează un nivel intermediar care conține un neuron ascuns. Nivelul final, de ieșire, are doar un neuron. Neuronii sînt implementați, ca și detectorul de modele din capitolul 1, cu circuite amplificatoare operaționale LF 411. Modelul stă la baza unei rețele neuronale cu propagare înainte pe mai multe nivele controlată optic. Simularea realizată pentru acestă schemă folosește stimuli electrici. Ilustrarea schemei este realizată în anexa II (a).

Stimulii de intrare în schemă sînt semnale treaptă defazate cu 2s unul de celălalt. Semnalele de intrare, cît și cele de ieșire, sînt prezentate în anexa II (b).

Mai este prezentată funcționarea circuitului pentru un set de vectori de stimul puls cu o perioadă de 60ns și un factor de umplere de 20ns. Rezultatele se regăsesc ilustrate în anexa II (c).

Concluzii

Capitolul a descris pe scurt rețelele pe mai multe nivele cu propagare directă. Au fost prezentate succint algoritmii de antrenere Delta și Delta generalizat. Aceștia folosesc strategia minimizării erorii pătratice. Fiecare ajustare a valorilor ponderilor în cursul învățării decurge repede, algoritmii fiind performanți. Învățarea este strict legată de factorii de învățare, direcți sau indirecți. În ciuda alegerii de valori aleatoare mici pentru inițializarea ponderilor rețelei, tehnica propagării înapoi a erorii se bazează pe teoria aproximării stohastice. Aplicațiile de diagnosticare a rețelelor pe mai multe nivele au demonstrat fesabilitatea lor în domeniul clasificării caracterelor și al punerii în evidență a defectelor la motoare electrice sau cu combustibil. Alternativa la aceste rețele este de asemenea prezentată: rețelele cu legături funcționale, care necesită un antrenament bazat pe o formă simplificată a algoritmului Delta, ceea ce le face foarte accesibile.

=== CAP3 ===

Cap.3. Rețele cu un singur nivel cu reacție

3.1. Caracteristici generale

Rețelele prezentate în acest capitol sînt sisteme dinamice care evoluează în timp într-un spațiu de ieșire fie discret, fie continuu. Evoluția rețelei cu reacție se caracterizează prin multe grade de libertate, direcția spre care se îndreaptă în timpul antrenamentului fiind o stare stabilă – un minim local al energiei disipate.

Reacția apare în timpul antrenamentului de învățare a rețelei. Ajustarea ponderilor în timpul antrenamentului reduce gradat valoarea erorii de la ieșire. Reducerea valorii erorii în cadrul unui algoritm de învățare supervizată generează o reacție, nu spontană, ci forțată de supervizor.

Rețelele cu reacție sînt rețele neliniare. În structura lor pot fi folosiți neuroni cu funcție de activare continuă sau neuroni cu funcție de activare limitată hard. Pentru a accesa informația stocată în rețea se aplică la intrare un model și se inițializează ieșirea rețelei. Apoi se înlătură modelul de intrare și ieșirea forțează o intrare nouă prin liniile de reacție ce leagă ieșirea de intrare. Prima intrare nouă forțează prima ieșire nouă, si procesul continuă pînă nu se mai generează răspunsuri diferite și procesul se stabilizează.

Dacă operațiile se desfășoară în timp discret, rețeaua este numită recursivă. Pentru acest tip de rețea, procesul descris mai sus se efectuează în timp discret sincron sau asincron.

3.2. Concepte de bază

Ca și concept de bază pentru o rețea cu reacție se poate considera atractorul. Acesta este o stare spre care evoluează sinstemul în timp pornind de la niște condiții inițiale stabilite. Fiecare atractor are setul său de condiții inițiale care inițiază evoluția sistemului terminată în acel atractor. Setul de condiții inițiale ale sistemului corespunzătoare unui atractor se numește bazinul atractorului. Dacă atractorul este un singur punct în spațiul stărilor, el este numit punct fix. Un atractor poate consta într-o secvență periodică de stări, numindu-se în acest caz ciclu limită, sau poate avea o structură mai complicată.

Învățarea parametrilor unui sistem dinamic cum este rețeaua cu reacție depinde de modelul de rețea adoptat (topologia rețelei). Există o paletă largă de metode de învățare pentru acest tip de rețele. De obicei antrenamentul de învățare se face nesupervizat. Ajustarea parametrilor sistemului – funcții ale modelelor sau ale asociațiilor ce trebuie învățate – nu depinde de diferența dintre răspunsul dorit și cel furnizat de rețea în timpul fazei de învățare. Un dezavantaj al acestor rețele este capacitatea limitată de explicare a rezultatului. Soluția oferită de rețea depinde de multe ori de factori aleatori ce intervin în timpul procesului de învățare. Aceasta face greu de acceptat soluția dar nu reduce cu nimic performanțele de care este capabilă o astfel de rețea.

3.3. Modelul Hopfield în timp discret

Atenția acordată acestei clase de rețele este dată de proprietățile lor. Urmărind dezvoltarea teoretică a modelului, tehnologia microelectronică și cea optoelectronică a anilor '80 a făcut posibilă implementarea hard a acestor rețele.

Construită pe baza modelului lui Hopfield, o rețea de acest tip are structura următoare:

Ea constă din n neuroni avînd valorile de prag Ti. Intrarea de reacție a neuronului i este egală cu suma ponderată a ieșirilor neuronului vj, cu j = 1, 2, …, n. Legătura dintre ieșirea neuronului j și intrarea neuronului i se face prin intermediul ponderii wij. Astfel, intrarea totală într-un neuron i (notată neti) este o sumă dintre wijvi, ii și -Ti, pentru i, j = 1, 2, …n și i j.

Modelul discret Hopfield este folosit cu succes în reconstituirea formelor alterate ale caracterelor și în clasificarea modelelor incomplete.

3.4. Modelul Hopfield de tip gradient

Caracteristica principală a modelului gradient al lui Hopfield este că energia computațională descrește în timp în mod continuu. Timpul este o variabilă continuă în cazul rețelelor de tip gradient. Acest tip de rețea reprezintă o generalizare a rețelelor discutate în paragraful precedent. Pentru un spor foarte mare al neuronilor, rețelele în timp continuu se comportă similar cu cele în timp discret. În cazul limită ele se comportă identic.

Este specific rețeleor de tip gradient să fie convergente într-o stare stabilă de minim în spațiul stărilor.

Modelul care folosește componente electronice are următoarea structură:

Nodul de intrare al neuronului i are schema:

Neuronul poate fi implementat cu orice fel de amplificator operațional de tensiune în saturație. Rețeaua trebuie să fie simetrică (wij = wji, unde wij și wji sînt conductanțe). Conductanța dintre intrarea neuronului i și masă este gi. Ea are o valoare nenulă. Dacă se elimină, neuronul se consideră că nu absoarbe curent. Similar, Ci reprezintă capacitatea nenulă de intrare în neuronul i. Ea este responsabilă de caracterul dinamic al tranzițiilor modelului.

Punctele de energie minimă spre care evoluează rețeaua sînt atractori în spațiul stărilor. Reprezentînd minimele în cadrul unui cub n dimensional, minimele sînt cele căutate dacă se află cît mai aproape de vîrfurile cubului. Soluțiile furnizate de rețea depind de parametrii rețelei și de condițiile inițiale. Unele din soluții vor fi bune, altele eronate, uneori fiind greu de diferențiat caracterul lor. Această proprietate se aplică atît rețelelor în timp continuu, cît și celor în timp discret. Calculul răspunsului tranziție este destul de complicat și nu face obiectul acestui studiu.

3.5. Exemple de soluții pentru problemele de optimizare

Paragraful acesta are rolul de a pune într-o lumină nouă cele prezentate mai sus. Astfel, un prim exemplu îl constituie un convertor analog numeric ce convertește un semnal analogic multidimensional într-un semnal numeric 4-dimensional unipolar folosind criteriul erorii pătratice. Al doilea exemplu tratează clasica problemă a comis – voiajorului ce trebuie să efectueze un tur minim dar complet prin orașele date.

Rețeaua ce formează convertorul analog – numeric este cea prezentată în paragraful precedent. Se presupune că rețeaua trebuie să calculeze o sumă de N tensiuni analogice xk corespunzătoare coeficienților pondere ak. Este necesară o reprezentare a sumei de ieșire pe n biți, vi = 0, 1 cu i = 0, 1, …, n-1. Valoarea de la trebuie să fie aproximată de un vector cu n componente. Pentru a ilustra considerațiile teoretice, a fost realizată o simulare a modelului electronic al rețelei neuronale. Neuronii au fost implementați cu tranzistoare NMOS. Modelul este considerat în cazul a două dimensiuni, din rațiuni de complexitate a calcului.

Schema bloc și cea a rețelei S sînt prezentate în continuare.

– Rețeaua S –

Problema comis – voiajorului care trebuie să parcurgă o singură dată fiecare oraș din cadrul unui traseu este de asemenea o problemă de optimizare. Obiectivul este găsirea celui mai apropiat traseu prin n orașe astfel ca turul comis – voiajorului să fie minim.

Tipic, o problemă de optimizare de dimensiune n poate avea mai multe soluții. Astfel, una din soluții găsește minimul funcției de cost, alta al funcției eroare. Problemele de optimizare de acest tip se numesc probleme de optimizare combinațională. De obicei se împart în clase în conformitate cu timpul necesar rezolvării lor.

Dacă există un algoritm capabil să rezolve problema într-un timp proporțional cu mărimea n a problemei, problema se consideră a fi polinomială (P). PN-completă este o subclasă din cadrul clasei P. Problema comis – voiajorului este de tip polinomial complet nedeterministică (PN-completă). O asemenea problemă poate fi testată polinomial indiferent dacă soluția găsită este corectă sau nu. Practic, pentru a rezolva o problemă PN-completă este necesar un timp proporțional cu exp(n). Astfel, dificultatea soluționării problemei comis – voiajorului crește exponențial odată cu creșterea numărului de orașe din traseu.

Exemplul constă într-un tur cu 5 orașe, ca în figură. Distanța dintre orașe se consideră a fi constantă pentru un set dat de orașe ce trebuie vizitate. Numărul traseelor posibil de parcurs este n2 pentru n orașe.

Rețeaua ce poate rezolva această problemă poate fi construită folosind n2 neuroni de tip continuu unipolar. Ei sînt aranjați în formă de matrice de dimensiune (n x n), unde linia j din matrice corespunde numărului / numelui orașului yj iar coloana i corespunde poziției xi a orașului. Astfel, matricea are linii orașe și coloane poziții. Un exemplu de soluție este prezentat mai jos:

Figura reprezintă cel mai bun tur al celui ilustrat mai sus. Pentru că fiecare oraș nu poate fi vizitat decît o dată, matricea soluție are un singur 1 pe fiecare linie și un singur 1 pe fiecare coloană. Neuronii activați, cei cu valoarea 1 în matrice, indică o poziție particulară a unui oraș anume în cadrul turului parcurs de comis – voiajor. Astfel, numărul neuronilor activați este n din totalul de n2 neuroni din rețea. Soluția poate fi reprezentată într-un cub n2-dimensional [0, 1]. Domeniul vectorilor în care funcția de eroare este minimă reprezintă 2n x n colțuri ale unui astfel de cub n2-dimensional. Obiectivul este determinarea de ponderi și curenți care sînt coeficienți de formă pătratică ai funcției de energie. Trebuie selectat cel mai scurt traseu.

Problema a fost numeric testată folosind funcții de activare de tip continuu cu valorile: = 50, A=B=D=250, C=100 pentru 10<=n<=30.

Găsirea soluției devine critică pentru mai mult de 10 orașe.

Rețelele pe un singur nivel complet conectate pot rezolva probleme tehnice extrem de variate. Se aplică cu succes în domeniul traficului de comunicații care necesită multe noduri cu multe legături între ele. Soluția unei asemenea probleme trebuie să găsească cele mai bune posibilități de legături multiple între noduri astfel încît să minimizeze cît mai mult posibil pierderile și să evite blocajul traficului datorită aglomerării. Pierderi reprezintă întîrzierile sau alte inconveniente de trafic. Procedura de minimizare se bazează pe modificarea procedurii problemei comis – voiajorului.

O altă aplicație e dezvoltată pentru minimizarea numărului de conexiuni din cadrul unui cip. Modelarea și proiectarea se termină cu implementarea tranzițiilor din cadrul rețelei și acceptarea soluției propuse. În fiecare proces considerat a se desfășura conform acestei diagrame, soluția generată a fost corectă. Este cazul convertorului analog – numeric considerat mai înainte. Pentru probleme de optimizare mai dificile cum este cea a comis – voiajorului pentru un număr mare de orașe (peste 30) soluția oferită a fost bună dar nu optimă, din cauza prezenței a multe puncte de minim local în spațiul n – dimensional care îngreunează calculele evoluției tranzițiilor.

O altă limitare a rețelelor este capacitatea lor. Există o limită a numărului total de soluții corecte ce pot fi accesate la un moment dat. Acest număr nu poate fi stabilit exact odată cu fabricarea cipului de rețea, dar euristic se stabilește că acest număr reprezintă numai o mică parte din numărul total al neuronilor care formează rețeaua.

Procedura generală de rezolvare a problemei de optimizare este prezentată mai jos:

Aplicație

Schema prezentată și testată în acest capitol este o rețea simplă în timp continuu. În practică este un circuit de conversie analog numerică de tensiune. Modelul a fost propus de Tank și Hopfield în 1986.

O tensiune analogică x trebuie convertită într-un vector binar unipolar folosind o rețea cu reacție, formată din 2 neuroni. Calculele matricii ponderilor conduce la un model abstract cu rezistențe negative. Dificultatea implementării practice a condus la o schemă echivalentă în care rezistențele sînt pozitive dar neuronii implementați inițial cu porți neinversoare sînt realizați acum cu porți inversoare 7404. Schema convertorului este prezentată detaliat în anexa III (a).

Valorile condensatorilor au fost stabilite prin tatonări succesive. Rezistențele au valori mici datorită faptului că porțile nu absorb un curent mare (în simulare).

Semnalul de intrare este unul sinusoidal. Semnalele de ieșire pot fi vizualizate împreună cu semnalul de la intrare în anexa III (b).

Un set de stimuli diferit este prezentat în anexa III (c).

Concluzii

În capitolul acesta au fost prezentate bazele rețelelor neuronale pe un singur nivel cu reacție inversă. Au fost prezentate atît modelul în timp discret, cît și cel în timp continuu. Au fost ilustrate exemple reprezentative pentru această clasă de rețele.

Referitor la performanțele acestor rețele, problema rămîne deschisă. Principala dificultate pe care o întîmpină un proiectant de asemenea rețele este transformarea problemei de optimizare într-una de minimizare a funcției de energie.

O altă limitare în cadrul acestor rețele este legată de capacitatea lor. Ele pot stoca soluții și furniza ieșiri într-un număr limitat, imprecis determinat de la început.

=== CAP4 ===

Cap.4. Memorii asociative

Capitolul acesta prezintă un alt fel de sisteme dinamice, cu capacitate mare de reținere a informației. Va fi prezentată dinamica procesului de convergență în timp discret la aceste rețele.

4.1. Concepte de bază

O memorie asociativă eficientă poate stoca un număr foarte mare de seturi de modele. În timpul accesului, memoria este excitată cu un model cheie (sau argument de căutare), ce conține o portiune de informație despre un element anume din cadrul unui set de modele memorat. Acest element poate fi accesat doar în asociere cu modelul cheie prezent la intrare. Cu toate că există un număr mare de topologii ale memoriilor asociative, cele mai multe dintre ele folosesc modelul de rețele complet cuplate cu reacție inversă prezentat în capitolul anterior.

Memoriile asociative aparțin unei clase de rețele neuronale care învață folosind un algoritm de înregistrare adecvat. Ele dobîndesc o cunoaștere a priori iar matricea lor de conectivitate (ponderile) trebuie cel mai adesea formată înainte. Scrierea în memorie produce schimbări în conexiunile neurale. Citirea informației memorate poate fi considerată ca o transformare a semnalelor de intrare de către rețea.

O memorie ar trebui să aibă o mare capacitate de memorare și în același timp ar trebui ca modul de stocare a informației să fie deosebit de robust, astfel încît eventualele distrugeri locale ale structurii rețelei să nu conducă la o inaccesibilitate totală a informației stocate. O memorie ideală ar trebui să poată regenera modelele memorate în zona distrusă. O altă cerință a memoriilor este abilitatea de a elimina sau a adăuga asocieri pecare le cer schimbările cerințelor de stocare.

De obicei căutarea se face paralel. Scopul căutării este de a furniza ieșirii (complet sau incomplet) unul sau mai multe articole memorate care se potrivesc cu argumentul de căutare de la intrare. Se bănuie că memoria biologică funcționează după principiile memoriei asociative. Nici o locație de memorie nu are adresă. Stocarea este distribuită într-o arie mare și densă de neuroni interconectați.

Diagrama bloc a unei memorii asociative este următoarea:

Sistemul organizează vectorul de intrare x din spațiul modelelor într-un vector v din spațiul de ieșire efectuînd transformarea: v = M[x]. Operatorul M este unul de tip matrice neliniară, ce diferă de la o memorie la alta. Pentru un model dat de memorie, forma operatorului M este exprimată în termenii unor vectori-prototip ce trebuie memorați. Algoritmul se numește algoritm de memorare (înregistrare). Operatorul deseori exprimă forma neliniară de organizare a neuronilor.

Memoria are un astfel de prototip de vectori stocați în așa fel încît dacă este aplicată o intrare-cheie ieșirea produsă este asociată cu cheia. Presupunînd că sînt p perechi de asociații stocate definite ca

x(i) v(i), pentru i = 1, 2, …, p și v(i) x(i)

rețeaua este heterogenă. Dacă pentru același set de vectori v(i) = x(i), rețeaua este autoasociativă.

Adresarea memoriilor se poate face în două moduri: adresare prin adresă (memorii clasice) și adresare prin conținut (memoriile asociative). Adresarea prin adresă este modul clasic de acces la informația stocată în memorie. Adresarea prin conținut are următoarea schemă:

Memoriile asociative sînt implementate într-o serie de modele. Cele mai cunoscute sînt rețelele cu propagare directă, rețelele recursive autoasociative și rețelele recursive heteroasociative.

4.2. Asociatorul liniar

Memoriile asociative tradiționale sînt cu propagare directă de tip instantaneu. Sarcina pe care trebuie să o îndeplinească memoria asociativă este să învețe asocierea în cadrul a p perechi de vectori {x(i), v(i)}, pentru i = 1, 2, …, p. Pentru o memorie liniară, modelul de intrare x este organizat la ieșire printr-o simplă operație de înmulțire a matricilor:

v = W * x

unde x, v, și W sînt matrici cu dimensiunile (n x 1), (m x 1) și (m x n). Se produce astfel o liniarizare a răspunsului de ieșire. Schema bloc a unui asociator liniar este prezentată mai jos:

Rețelele asociative liniare auto- și heteroasociative sînt similare, într-un anume sens, cu memoriile asociative dinamice. În particular, ambele tipuri de memorii au același algoritm de înregistrare. Asociatorul liniar nu înlătură zgomotul care apare în semnalul de la intrare. Alte tipuri de memorii utilizează o operație de filtrare a zgomotului din semnalul de ieșire. Memoria recursivă heterogenă este un exemplu de astfel de tip de memorie.

4.3. Caracteristicile generale ale memoriilor asociative recurente

Eliminarea zgomotului din semnalul de ieșire printr-o operație de filtrare și reciclare a ieșirii către intrare în sensul îmbunătățirii asocierii. Procesul repetitiv de reciclare a ieșirii urmat de propagarea înainte prin rețea este produs de o rețea neurală recursivă. Această rețea este similară cu o memorie liniară asociativă, care are propagare directă, organizare neliniară a filtrării și este dinamică.

Un model de rețea Hopfield al unei memorii asociative este prezentat mai jos:

În modul asincron, doar un neuron este activat și-și schimbă starea iar toate ieșirile sînt întîrziate cu un timp produs de un element de întîrziere plasat în bucla de reacție. Neuronii prezenți în rețea îndeplinesc funcțiile de însumare a semnalelor, de filtrare a ieșirii și de realizare a întîrzierii.

Cele mai multe sisteme de calcul folosesc bistabilul ca element de bază pentru memorii și ca și element de numărare. O rețea bistabil se presupune că atinge și rămîne într-una din stările următoare: s(1) = [1 -1]t sau s(2) = [-1 1]t. Rezultă o matrice de ponderi cu valorile:

0 -1

W =

-1 0

Cu aceste valori și cunoscînd principiile fizice ale rețelei, implementarea rețelei cu bistabile arată ca în figura următoare:

Valorile ponderilor rezultă negative din calcule, rezistențele avînd w12 = w21 = -1, dificil de implementat. Un circuit echivalent se obține prin schimbarea semnului rezistențelor și prin transformarea neuronilor neinversori în neuroni inversori. Echivalența este validă doar pentru limitările fizice (hardware) și pentru conductanța nulă de la intrarea neuronilor.

Eficiența memoriilor recursive asociative apare pregnant doar în rețele de mare capacitate. O importanță mare o prezintă faptul că rețeaua este capabilă să furnizeze la ieșire o stare corectă memorată chiar dacă s-a aplicat o versiune incompletă sau cu zgomote a semnalului de intrare.

Algoritmul de stocare și acces a memoriilor recursive asociative este prezentat succint mai jos:

Se dau p vectori binari bipolari

{s(1), s(2), …, s(p)}, unde s(m) este o matrice (n x 1) pentru m = 1, 2, …, p. Vectorul de inițializare v0 este (n x 1).

Stocare

Pasul 1: Matricea ponderile W de dimensiune (n x n) este inițializată:

W 0, m 1

Pasul 2: Este stocat vectorul s(m) :

W s(m) s(m)t – I

Pasul 3: Dacă m < p atunci m m + 1 atunci se reia pasul 2, altfel se continuă cu pasul 4.

Pasul 4: Înregistrarea vectorilor este completă. Sînt generate ponderile W.

Accesul

Pasul 1: Contorul de ciclu este inițializat (k 1). Se inițializează contorul din cadrul ciclului i 1 și rețeaua v v0.

Pasul 2: Numerele întregi 1, 2, …, n sînt aranjate într-o secvență aleatoare 1, 2, …, n pentru acest ciclu. Accesul este mult simplificat dacă nu se implementează secvența de numere aleatoare. În acest caz pasul 2 dispare și 1 = 1, 2 = 2, …, n = n sau, simplu, i = i pentru fiecare ciclu nou.

Pasul 3: Neuronul i este activat prin calculul valorii vnewi (valoarea nouă),

n

neti = wij vj

j=1

vnewij = sgn (neti)

Pasul 4: Dacă i < n atunci i i + 1 și se repetă ciclul de la pasul 3, altfel se continuă cu pasul 5.

Pasul 5: Dacă vnewij = vi pentru i = 1, 2, …, n atunci nici o valoare nouă nu intervine în ciclu. În acest fel accesul este complet. Sînt generate la ieșire semnalele k, vnew1, vnew2, …, vnewn. Dacă nu, k k + 1 și se repetă ciclul de la pasul 2.

În general memoria autoasociativă Hopfield este un model de decodificator corector de eroare căruia dacă i se furnizează la intrare un model plus o eroare aleatoare, este capabil să producă la ieșire modelul original stocat.

4.4. Memorii asociative bidirecționale

Memoriile asociative bidirecționale sînt memorii heteroasociative, adresabile prin cuvînt, ce constau în două nivele. Ele folosesc atît propagarea înainte cît și propagarea înapoi a informației pentru a executa o căutare asociativă printre cuvintele memorate. Vectorii asociați memorați sînt p perechi de forma:

{(a(1), b(1) ), (a(2), b(2) ), …, (a(p), b(p) )}

Cînd neuronii rețelei sînt activați, rețeaua evoluează spre o stare de minim local de energie. Organizarea rețelei este pe două nivele, pentru a asigura dinamismul ei.

Modelul discret al unei asemenea rețele este următorul:

Se observă că topologia unei astfel de memorii bidirecționale este cît se poate de flexibilă, fapt care le face foarte fiabile la stocarea unui volum mare de informații. Performanțele unei memorii asociative bidirecționale sînt dependente de structura modelului stocat în memorie. O categorie aparte în cadrul memoriilor asociative este cea de memorii asociative multidirecționale.

Figura ilustrează legăturile dintre nivele și între neuronii componenți ai unui nivel cu cei ai altui nivel. Exemplul considerat tratează cazul unei memorii bidirecționale cu 5 nivele.

Aplicație

Aplicația prezentată în acest capitol este cea mai simplă dintre cele prezentate în lucrare. Este vorba de celula elementară de memorie, un bistabil format din 2 porți inversoare 7404 și 2 rezistențe de 1. Schema are 2 intrări și 2 ieșiri. Semnalele de intrare sînt semnale treaptă cu un defazaj de 200ns între ele. Mai este prezentat un set de semnale stimuli cu o perioadă de 400ns și un factor de umplere de 150ns. Soluția acestei scheme a fost adoptată din cauza limitărilor bibliotecilor de circuite ale programului SPICE.

Schema este cea mai simplă rețea neuronală organizată ca memorie asociativă recursivă și este prezentată în anexa IV (a). Cele mai multe calculatoare folosesc acest circuit bistabil ca element de bază în structura lor. Rețeaua constă din 2 inversoare dispuse în cascadă. Aplicînd la intrări semnalele amintite, după un timp se ajunge la o poziție de echilibru, cînd ieșirile sînt stabile. Pentru ambele seturi de vectori de intrare, graficele de timp aferente sînt ilustrate în anexele IV (b) și IV (c). În funcție de frecvența stimulilor de intrare și de factorul lor de umplere ieșirile pot avea diferite puncte de echilibru. Din calculele care conduc la stabilirea matricii ponderilor rezultă o rețea neuronală cu ponderi cu valoare negativă implementată cu porți neinversoare. Imposibilitatea realizării practice conduce la o soluție similară, adică neuroni realizați cu porți inversoare 7404 și rezistențe cu valoare pozitivă. Echivalența obținută se referă strict la domeniul implementării fizice. De fapt este vorba de transformarea unor intrări inhibitoare în intrări excitatoare, care într-o aplicație practică nu ar da rezultate echivalente.

Concluzii

Memoriile asociative studiate în acest capitol constituie o clasă de rețele neuronale capabile să implementeze o organizare asociativă complexă a spatiului vectorial al informației. Domeniul unei astfel de organizări este un set de vectori de memorie, avînd de obicei valori binare. Înregistrarea și învățarea se realizează cu ajutorul unor algoritmi folosiți la codificarea organizării cerute de intrări și ieșiri.

Se poate face o comparație între creierul uman și acest tip de memorii asociative bazate pe rețelele neuronale. Studiile biologice au estimat că numărul neuronilor din cortexul uman este de ordinul a 1011. Un cortex avînd conectate toate cele 1011 sinapse poate stoca 1011 modele, fiind o constantă de proporționalitate cu valoarea minimă estimativă 0.14. Fiecare model poate fi privit ca un vector de dimensiune 1011, necorelat cu alte modele din cortex. Rezultă un spațiu de memorie aparent de 1022 valori binare.

Din cauză că rețeaua corticală nu este complet conectată, aceste calcule nu sînt reale. Estimările neurobiologice afirmă că un neuron are 104 sinapse. Astfel, cortexul poate fi văzut ca un sistem cu 107 rețele elementare, fiecare avînd 104 neuroni conectați complet. Un asemenea sistem poate memora 104 modele a 104 biți fiecare. În total, capacitatea informațională este de 107 x 104 x 104 = 1015.

Criteriile care stau la baza proiectării unei memorii asociative hetero- sau autoasociative sînt:

capacitate mare;

imunitate mare la zgomote sau intrări incomplete;

existența cîtorva stări false (pseudomemorie);

lipsa unor cicluri limită de memorie (stări oscilatorii);

implementarea unui criteriu de vecinătate.

Memoriile asociative neurale pot fi utilizate cu succes într-o serie de aplicații foarte diverse: memorii adresabile prin conținut, procese de căutare și restituire, calcule optimizate, restaurări de imagini, recunoașteri de forme, clasificări și coduri corectoare. Alte aplicații includ memorarea de cuvinte și vorbirea artificială. În prelucrarea optică a semnalelor memoriile asociative sînt folosite pentru implementarea codurilor de filtrare, de organizare, de asociere, de deplasare și de proiectare.

=== CAP5 ===

Cap. 5. Rețele cu autoorganizare

Rețelele ce vor fi studiate în continuare constituie o combinație între tipurile de rețele prezentate pînă acum. Ceea ce le deosebește de restul rețelelor neuronale studiate este modul lor de învățare, bazat pe regula corelației familiare. Nu există reacție în procesul decizional. Rețeaua trebuie să descopere singură orice relație între datele de intrare. Scopul proiectării rețelei este translatarea relațiilor descoperite în semnale de ieșire.

O rețea antrenată fără profesor învață folosind criteriul potrivirii familiare. Acestă rețea poate produce un semnal de ieșire care arată cît de similar este modelul de la intrare cu cel prezent. Se compară modelul prezent cu cele "văzute" în trecut. O măsură a similarității folosită în procesul de învățare este produsul scalar dintre valorile ponderilor și valorile componentelor vectorului de intrare. O altă măsură a similarității este vecinătatea topologică a neuronilor ce se activează.

Ponderile unei astfel de rețele se modifică sensibil în timpul procesului de învățare nesupervizată. Această adaptare se numește autoorganizare. Rețelele antrenate în felul acesta reacționează atît la valorile de la intrare cît și la parametrii lor statistici. Intrările rare vor avea un impact mai mic asupra procesului de învățare al rețelei decît intrările care apar în mod frecvent. Învățarea nesupervizată poate părea imposibil de realizat. Răspunsurile rețelei la începutul antrenamentului de învățare sînt neplauzibile. Absența intrărilor impuse de profesor forțează rețeaua să învețe gradat care trăsături vor fi considerate în clasificare și în recunoaștere. În același timp unele dintre aceste caracteristici ot fi ignorate sau chiar suprimate. Învățarea nesupervizată poate fi implementată cu date de intrare redundante. Redundanța furnizează o cunoaștere asupra proprietăților modelelor de intrare. În absența unei ținte în timpul învățării, procesul se desfășoară ca o învățare competitivă. Nodul de ieșire cîștigător va fi activat la maximum, iar vecinii săi vor fi activați într-o măsură invers proporțională cu distanța pînă la nodul căștigător. În acest fel, ponderile cîștigătoare vor construi o istorie a ceea ce a fost în trecut (experiența rețelei).

5.1. Rețeaua Hamming și rețeaua Maxnet

În acest subcapitol va fi prezentat un clasificator de vectori binari bipolari pe 2 nivele. Este un clasificator bazat pe distanța minimă Hamming ce selectează dintre clasele stocate în memorie pe cea care este la cea mai mică distanță de intrarea incopletă sau cu zgomot. Selecția este realizată de rețeaua Hamming. Este o rețea cu propagare înainte și constituie primul nivel al clasificatorului. Rețeaua Hamming cu p-clase are p neuroni de ieșire. Cel mai puternic răspuns al unui neuron de ieșire indică distanța minimă dintre intrare și categoria în care poate fi inclusă data de la intrare. Al doilea nivel al clasificatorului este numit Maxnet și funcționează ca o rețea recursivă. Singura ei funție este de a elimina toate valorile ieșirilor în afară de cea cu activare maximă din primul nivel.

Diagrama bloc a unui clasificator de distanță Hamming minimă este:

Așa cum s-a arătat, cea mai importantă parte a unui clasificator Hamming de distanță minimă este rețeaua Hamming. Ea este responsabilă de potrivirea dintre vectorul de la intrare și vectorii stocați. Schema detaliată a unei rețele Hamming pentru vectori binari bipolari pe n biți ce reprezintă p clase și funcția de activare a neuronului sînt prezentate mai jos:

Rolul acestui nivel este să calculeze distanța Hamming minimă dintre vectorul de intrare și un vector prototip al fiecărei clase. Numărul nodului cu cel mai mare nivel de activare la ieșire indică numărul clasei față de care intrarea se află la o distanță Hamming minimă. Răspunsul rețelei Hamming termină clasificarea în care doar primul nivel al clasificatorului calculează valorile relevante de potrivire dintre intrare și clasele memorate. Clasificarea rețelei Hamming se realizează într-o manieră directă și foarte rapidă.

Rețeaua Maxnet trebuie implementată ca un al doilea nivel doar în cazul în care se dorește un răspuns inițial dominant al nodului. Din procesul recursiv al rețelei Maxnet, nodul cu răspuns dominant răspunde pozitiv în timp ce toate celelalte răspunsuri ale nodurilor rămîn pe zero. Rețeaua Maxnet are atît conexiuni excitatoare cît și conexiuni inhibatoare. Conexiunea excitatoare din cadrul rețelei este implementată sub forma unei singure bucle de reacție cu ponderea 1. Toate celelalte conexiuni ale acestei rețele cu propagare directă total cuplată sînt inhibitoare. Ele au coeficientul lateral de interacțiune – pentru fiecare ieșire cu valori între 0 și 1/p. Diagrama funcției de activare a neuronului de ieșire și schema unei rețele Maxnet pentru p clase sînt prezentate în continuare.

Rețeaua Maxnet reduce gradat toate excitațiile în afară de cea cu cea mai mare valoare de excitație. Singura valoare nenulă a răspunsului unui nod este a nodului cu valoarea cea mai mică a distanței Hamming față de o anumită clasă. Procesul se repetă pînă o singură valoare rămîne diferită de zero.

5.2. Învățarea nesupervizată prin gruparea în clase

Obiectivul învățării nesupervizate prin gruparea în clase este de a categorisi și de a grupa datele de intrare. Clasele trebuie mai întîi definite prin corelațiile dintre unele date de intrare. Pentru că rețeaua lucrează cu date neetichetate, gruparea trebuie urmată de o etichetare a grupurilor (ciorchinilor) cu nume sau numere ale categoriilor apropiate. Acest proces de definire a categoriilor de obiecte și de etichetare se numește calibrare.

Gruparea în ciorchine este înțeleasă ca o grupare de obiecte similare și o separare de toate celelate cu care nu sînt similare. Tehnica de grupare în ciorchine necesită o cunoaștere a priori a unui număr de clase. Măsurarea similarității pentru gruparea în ciorchine se face fie prin măsurarea distanței dintre ciorchini, fie prin normalizarea produsului scalar dintre ciorchini față de un punct de origine.

Unul din algoritmii folosiți este algoritmul "cîștigătorul ia tot" (Winner-Take-All Learning). Antrenamentul este realizat într-un fel nesupervizatiat rețeaua dezvoltă un proces de autoorganizare. În timpul procesului de antrenament, un singur vector, cel mai asemănător, este reținut, toți ceilalți fiind ignorați în scopul ajustării ponderilor. Nodul cîștigător este "recompensat" cu ajustarea ponderilor sale, în timp ce ponderile celorlalți neuroni rămîn nemodificate. Este imposibil de specificat la începutul algoritmului de învățare care neuroni vor fi activați de membrii unei clase. Acest algoritm constituie o tehnică competitivă comună și o învățare nesupervizată destul de simplă.

Rețeaua care este antrenată se numește rețea Kohonen. Structura unei astfel de rețele este prezentată în figura de mai jos:

Operatorul de transformare a intrarii în ieșire este o funcție continuă. Ponderile ajustate sînt îngroșate, pentru a ieși în evidență.

Ponderile sînt modificate proporțional cu numărul de evenimente care conduc la ajustarea ponderilor, rețeaua reacționînd și la probabilitatea de apariție a intrării. Rețeaua poate fi văzută ca un grup de rețele ce conțin fiecare vectori de antrenament cu probabilități apropiate de apariție la intrare. Odată ce un grup de rețele este etichetat, el se poate comporta ca un clasificator de grupuri într-o reprezentare locală.

O rețea antrenată cu acest algoritm de învățare răspunde aproape instantaneu la un acces la intrările sale. Înainte de organizarea unu-la-unu a vectorilor și a grupurilor, calibrarea se face într-un mediu supervizat. Calibrarea presupune că un profesor introduce la intrare o secvență de vectori care se potrivește cel mai bine și se etichetează nodurile la ieșire în funcție de răspunsul lor.

Este de preferat un set de vectori inițiali generat aleator. Autoorganizarea unei rețele care folosește un astfel de algoritm de antrenare suferă de cîteva limitări. Una dintre ele este faptul că nu poate prelucra modele liniar neseparabile. O altă limitare apare chiar la modele liniar separabile pentru care algoritmul nu funcționează eficient. Ponderile pot să conducă spre o zonă, dar să nu formeze acolo un grup adecvat de vectori. În acest caz, antrenamentul trebuie reînceput cu un nou set aleator ponderi. După faza de învățare, se poate încerca o ajustare mai fină a ponderilor modificînd constanta de învățare . Rezultă ponderi modificate fin în cadrul fiecărui ciorchine de vectori.

O altă problemă care poate apare este limitarea de separabilitate. Pentru a asigura separabilitatea grupurilor (ciorchinilor) cu un număr a priori necunoscut de ciorchini de antrenament, antrenamentul nesupervizat poate fi produs cu un număr de neuroni în exces, care să genereze o margine sigură de separabilitate.

5.3. Rețelele cu propagare înainte (counterpropagation)

Aceste rețele sînt formate din 2 nivele cu propagare înainte.

În versiune simplă, ele pot realiza o organizare vector la vector similară cu rețelele de memorii heteroasociative. Comparativ cu memoriile asociative biliniare, ele nu au reacție și nici element de întîrziere activat întimpul fazei de antrenament. Avantajul lor este că pot fi antrenate să realizeze o organizare asociativă mult mai repede decît rețelele tipice cu 2 nivele cu propagare înainte. Rețelele cu propagare înainte descrise aici sînt folosite în organizarea și asocierea rapidă a formelor, compresie de date și în clasificări. Aceste rețele combină două nivele de neuroni cu funcții și cu algoritm de antrenare diferiți.

Primul nivel al rețelei este nivelul Kohonen, care este antrenat în modul nesupervizat "cîștigătorul ia tot" descris înainte. Fiecare din neuronii nivelului Kohonen reprezintă o clasă de modele. Intrări similare aparținînd aceleiași clase activează același neuron din cadrul nivelului Kohonen. Acest prim nivel conține neuroni cu funcție continuă de activare în timpul învățării. În timpul accesului, neuronii răspund cu valori binare de 0 sau 1, activ pe 1 fiind doar neuronul care reprezintă clasa căutată.

Un asemenea răspuns poate fi generat ca un rezultat al unei inhibiții laterale din cadrul nivelului al doilea, numit nivelul Grossberg. Operația acestui nivel este de a scoate al ieșire valori de 1 sau -1 în funcție de valorile pozitive sau negative ale ponderilor de ieșire din primul nivel. Se poate implementa o organizare vectorială unu-la-unu a ponderilor de la intrarea în nivelul Grossberg. Învățarea acestui nivel se face supervizat și folosește nu un set de vectori, ci un set de perechi de vectori, cei de intrare și cei de ieșire. Constanta de învățare se notează cu și are inițial valori în jurul 0.1, reducîndu-se în timpul învățării.

Rețeaua prezentată este formată de fapt din 2 rețele ce pot fi antrenate simultan chiar dacă folosesc algoritmi diferiți de învățare. Acest tip de rețele pot fi folosite ca și aproximatori de funcții continue.

5.4. Organizarea pe articole

În acestă secțiune de capitol vor fi prezentate capacitățile rețelelor neuronale de a se organiza în jurul anumitor articole. Se acordă o atenție specială autoorganizărilor în forme geometrice regulate. Scopul acestei scurte prezentări este identificarea topologiilor rețelelor neuronale care pot învăța această formă de organizare fără supervizor (autoorganizare).

Folosind structura articolelor, nivelul planar de neuroni numit șir de articole ar putea produce vîrfuri distincte în spațiul articolelor cînd sînt excitați cu modelele originale.

Astfel, intrările de clase 1, 2 sau 3 pot rezulta vîrfuri de excitație separabile. În exemplul de mai sus s-a folosit organizarea unui spațiu bidimensional al modelelor într-un spațiu bidimensional al articolelor. După antrenament, o singură intrare excitatoare este organizată astfel încît să corespundă unui singur vîrf-răspuns din spațiul articolelor.

Este interesant de observat răspunsul unui șir planar de neuroni cu conexiuni laterale. Un nivel bidimensional de neuroni răspunde cu o "bulină de activitate" produsă la o locație unde intrarea are valoarea maximă. Centrul bulinei este centrul excitației neuronale. Răspunsul tipic al unui șir de modele este o zonă circulară de activitate a neuronilor.

Reducînd reacția pozitivă laterală a fiecărui neuron rezultă o zonă cu o rază mai mică (pentru o reacție pozitivă mai slabă) sau mai mare (pentru o reacție pozitivă mai puternică).

5.5 Hărți de articole cu autoorganizare

Învățarea în cadrul autoorganizării pe articole se rezumă la găsirea celei mai bune potriviri ale unui neuron care activează vecinii lui pentru a reacționa la aceeași intrare excitatoare. După învățare, fiecare intrare cauzează un răspuns localizat avînd o anumită poziție în șirul neuronilor ce reflectă caracteristicile articolelor dominante ale intrării.

Organizarea articolelor poate fi privită și ca o proiecție neliniară a spațiului modelelor de intrare într-un șir de neuroni ce reprezintă articolele. Proiecția face explicit geometrică relația topologică de vecinătate într-un spațiu de mică dimensiune al articolelor. Definirea topologică a vecinătății are următoarea structură:

Se pare că principalele condiții ale autoorganizării hărților Kohonen de articole sînt următoarele:

neuronii să fie supuși unui număr mare de intrări;

să fie afectate și modificate doar ponderile care conduc la o vecinătate din zona excitată de pe hartă;

Ajustarea ponderilor este proporțională cu nivelul de activare al fiecărui neuron din cadrul vecinătății.

În practică, vectorii intrare ai structurilor cu autoorganizare a articolelor sînt multidimensionali. În recunoașterea vorbirii, de exemplu, ei au dimensiunea 15. În timpul procesării inițiale a semnalului de vorbire, semnalul preluat de la microfon este convertit mai întîi într-un semnal spectral pe 15 canale cu ajutorul unei transformate Fourier rapide, convertind nivelul de frecvențe de la 200 Hz la 5kHz. Fiecare fonemă din vorbirea naturală tinde să ocupe un segment de dimensiune 15 în spațiul spectral al semnalului.

Este des raportată în practică situația cînd succesul unui antrenament al unei rețele cu autoorganizare a articolelor depinde de valorile inițiale ale ponderilor. Numărul pașilor de ajustare a ponderilor este destul de mare pentru că învățarea este un proces statistic. O regulă practică (nu teoretică) afirmă că numărul pașilor de antrenament este de 500 de ori mai mare decăt numărul neuronilor din șir. Un antrenament de 10.000 de pași nu este ieșit din comun din moment ce antrenamentul este doar o chestiune de calcul.

Aplicație

Aplicația prezentată în acest capitol este un sistem clasificator bazat pe o rețea Kohonen cu capacitate de prelucrare paralelă a semnalului. Blocurile funcționale ale clasificatorului includ 3 entități simple dar eficiente: o celulă adaptivă a ponderii cu memorare, o unitate de activare și un bloc de decizie "winner-take-all" (WTA). Ele sînt implementate cu ajutorul unui circuit de comutație, a unui comparator de sarcină și respectiv a unui amplificator multiport sensibil la sarcină. Toate componentele prezintă o foarte mică disipare de energie.

Diagrama bloc a rețelei Kohonen este prezentată mai jos:

Ea cuprinde 3 părți: matricea de sinapse, matricea WTA și buclele de reacție. O sinapsă este formată dintr-o celulă pondere adaptivă de memorare și o unitate de activare. Prima componentă stochează și actualizează valoarea ponderii bazîndu-se pe regula Kohonen, iar a doua componentă calculează gradul de potrivire între valoarea ponderii și valoarea de la intrare. Circuitul WTA selectează intrarea cu cel mai mare grad de potrivire, setează acel nod pe "1" logic și pune pe "0" toate celelalte. Buclele de reacție modifică valorile sinapselor și realizează învățarea competitivă. Regula Kohonen de învățare se poate exprima în felul următor:

W(t+1) = W(t) + (t) [X(t) – W(t) (t)]

unde t este variabila timp, (t) este rata de învățare, iar (t) este starea ieșirii (subunitară) corespunzînd unei linii la momentul t. Ponderea W se modifică în așa fel încît încearcă să urmărească intrarea X. Modificarea este data de semnalul de reacție (t). Odată selectat vectorul pondere, ieșirea corespondentă va fi "1" logic iar valorile ponderilor acestei linii sînt modificate conform regulii de învățare Kohonen. Valorile celorlalte ieșiri vor fi "0" logic iar ponderile lor rămîn neschimbate.

O altă funcție de bază a rețelei Kohonen este de a calcula similaritatea dintre un vector de intrare și vectorii pondere. În final este selectată similaritatea cea mai mare și este furnizat răspunsul de clasificare. Această funcție este realizată de circuitul WTA.

Clasificarea și învățarea se realizează după următoarele proceduri:

ponderile rețelei sînt inițializate cu valori aleatoare;

este aplicat un vector test la intrare, toți vectorii pondere sînt comparați cu acest vector în paralel și este calculat gradul de potrivire a fiecărei linii;

vectorul similar (fiecare bit corespunzător linii de sinapse) este trimis direct intrărilor WTA, unde linia cu cel mai mare grad de similaritate este selectată și setată logic pe "1";

ieșirile sînt trimise (prin buclele de reacție) la ponderile adaptive, pe care le actualizează conform regulii Kohonen.

Procesul continuă și ponderile sînt modificate cît timp intrarea se schimbă.

Un circuit adaptiv al ponderilor ar trebui să furnizeze o mică modificare a valorii W a ponderii, care să prezintă ambele alternanțe și să fie destul de simplă pentru a implementa paralelismul rețelei. În anexa V este prezentat un astfel de circuit. În schemă Cw este condensatorul ponderii, C1 este condensatorul parazit iar 1 și 2 sînt două semnale de tact nonoverlapping. Funcționarea circuitului este următoarea: cînd 1 trece pe "1" se încarcă C1 cu valoarea intrării X, sarcina lui fiind Q1 = X C1. Cînd 2 trece pe "1" sarcina se redistribuie pe cele 2 condensatoare. Presupunînd că tensiunea inițială a lui Cw este W(t), sarcina lui este Qw = W(t) Cw . Astfel, în conformitate cu legea conservării sarcinii electrice, tensiunea de echilibru de pe condensatorul pondere este:

W(k+1) = W(k) + [C1 / (C1+ Cw)] (X(k) – W(k)) 2

Constanta de învățare (t) este mică și poate fi aproximată de raportul C1/(C1+Cw) C1/Cw . Pentru o rată de învățare de 0.085 (valoare uzuală) am ales C1 = 0.1pF iar Cw = 1.18pF. Tranzistoarele sînt NMOS. Semnalele de tact, intrare și ieșire sînt prezentate în anexa V.

Unitatea de activare produce o măsură a similarității dintre pondere și intrare. Unitatea calculează analog distanța euclidiană și o reprezintă ca un pachet de sarcină în nodul de ieșire. Anexa V prezintă o implementare a unității de activare care cuprinde 8 tranzistoare NMOS. Tranzistorii M2 și M5 sînt folosiți pentru stocarea sarcinii, tensiunea din bază fiind fixă dar proporțională cu dimensiunea matricii WTA. Intrarea este excitată cu semnalul 1 iar ieșirea este autorizată de semnalul 2. Dacă W > X, tranzistorii M1, M2 și M3 contribuie la ieșire cu o cantitate de sarcină proporțională cu ( W-X ). Dacă X > W, tranzistorii M4, M5 și M6 au aceeași funcție. Semnalele de tact 1 și 2 au aceeași perioadă ca și cele din etajul celulei, cu diferența că 1 de la unitatea de activare este inversul lui 1 de la celulă. Semnalele de tact sînt tot nonoverlapping. Diagramele de timp ale intrării, ponderii, ieșirii si ale semnalelor de tact sînt prezenate în anexa V.2 (b).

În ciuda dimensiunii mici a schemei și a disipării scăzute de energie, metoda injectării de sarcină conduce la distorsiuni foarte mici ale semnalului de la ieșire. În plus, cantitatea de sarcină este invariantă la schimbarea tensiunii de prag, rezultînd o liniarizare bună a ieșirii. O altă proprietate a unității de activare este că reduce zgomotul.

Unitatea de activare este compatibilă cu etajul următor, WTA. Sarcina de ieșire a unității de activare se cuplează direct la WTA, ceea ce simplifică mult complexitatea problemei, fără a introduce un alt transfer de sarcină.

Matricea WTA implementată ca un amplificator multiport sensibil la sarcină este prezentată în anexa V. Cînd 2 trece logic pe "1", sarcina inițială a nodurilor de intrare se descarcă prin tranzistorii NMOS. Deoarece tranzistorii sînt cuplați matricial, nodul cu cea mai mare sarcină inițială va avea cea mai mică rată de descărcare. În timp, tensiunile tuturor nodurilor cu o sarcină mai mică vor coborî sub pragul tranzistoarelor NMOS, în timp ce tensiunea nodului cu cea mai mare sarcină va fi mai mare ca tensiunea de prag. Apoi toate nodurile sînt reîncărcate prin tranzistoare PMOS. Nodul a cărui tensiune este deasupra tensiunii de prag a tranzistoarelor sau nodul cu cea mai mare sarcină este încărcat de la tensiunea de alimentare în timp ce toate celelalte tranzistoare NMOS în legătură cu el sînt descărcate la masă. În acest fel se obține la ieșire o combinație binară cu un singur rang pe "1" logic, a cărui poziție în vector corespunde nodului cu cea mai mare sarcină.

Rezultatele experimentale sînt prezentate în anexele V. Semnalele de tact au o perioadă de 30 s și un factor de umplere de 1/4.

Semnalul de intrare în sinapse are o perioadă de 7 ms. Asta înseamnă că atunci cînd intrarea este la 5V sau la 1V, ponderile se modifică de 233 de ori. În timp ponderile se modifică cu aproape 1V, ceea ce înseamnă cam 4.3mV / ciclu de adaptare a ponderilor.

Pentru partea de activare, unul din semnalele de intrare W(t) se fixează la o valoarea minimă, iar celălalt, X(t), este un semnal sinusoidal. Ieșirea trebuie să aibă aceeași formă ca și X(t). Dacă una din intrări este fixată la o valoare cuprinsă între minim și maxim, de exemplu W = 3V, iar X(t) este o sinusoidă variind între 1..5V, doar pentru X(t) = W ieșirea este egală cu tensiunea de alimentare ("1" logic). Altfel ieșirea are o valoare mai mică decît tensiunea de alimentare și aceeași formă ca și X(t) pentru X(t) < W sau o formă inversată pentru X(t) > W. Ilustrarea rezultatelor experimentale se regăsește în anexele V.

Concluzii

Atenția în acest capitol s-a îndreptat spre rețelele care învață într-un mod nesupervizat bazat pe criteriul de proximitate. Cu excepția rețelei Hamming, toate celelalte reșele au învățat similaritatea dintre intrări sau din organizarea intrare / ieșire fără supervizor. Proximitate, sau măsura similarității, este înscrisă în algoritmul de învățare nesupervizată ce marchează diferențele dintre intrările similare și cele nesimilare. Capacitatea de diferențiere este dezvoltată progresiv în cadrul rețelelor bazate pe experiența din învățare.

Rețelele cu autoorganizare a articolelor pot fi aplicate la extracția articolelor ascunse din modelele de intrare multidimensionale. Intrările sînt organizate într-o linie sau un plan al unităților de ieșire astfel că relațiile de vecinătate sînt transferate din spațiul intrărilor în spațiul de ieșire al neuronilor. Aceasta este folositoare în special pentru detecția relațiilor ascunse care sînt dificil de grupat, organizat sau categorisit într-o manieră elegantă.

=== CONCL ===

Încheiere

Testarea funcțională a schemelor s-a realizat folosind programul SPICE al firmei MicroSim Corporation, versiunea 5.1 pentru mediul integrat Windows. Anexele conțin de fapt capturi video ale ferestrelor de simulare. Mașina pe care s-au realizat toate testele este un AMD 5×86 133mhz cu 8Mb RAM. Testarea a fost facilă pentru schemele mici, care conțineau pînă la 20 de componente, timpul și necesarul de resurse crescînd exponențial odată cu creșterea complexității schemei.

Am prezentat seturi paralele de vectori stimuli pentru aceeași schemă pentru a ilustra mai bine comportarea dinamică a schemelor. Inadvertențele care apar între modelul intuitiv și cel practic testat se datorează fie stimulilor, fie componentelor folosite.

Am întîmpinat greutăți în alegerea componentelor folosite la simulare, și după cîteva încercări le-am ales pe cele care corespundeau cel mai bine cerințelor schemelor. Valorile componentelor au fost stabilite prin ajustări succesive pînă la valori care să permită testarea în bune condiții și cu rezultate optime. În toate schemele există un compromis între complexitatea lor și necesarul de timp și resurse de calcul. Am optat pentru niște scheme mai simple pentru a ilustra doar principiul de implementare și funcționare a rețelelor neuronale. Modele mai complexe am prezentat în partea teoretică la nivel de schemă bloc, fără a detalia neuronii, elementele TLU, elementele de întîrziere sau buclele de reacție.

Pentru rețelele neuronale clasice, cum sînt perceptronul, rețeaua pe mai multe nivele, rețeaua cu reacție sau memoria asociativă, implementarea neuronului s-a făcut destul de ușor, folosind amplificatoare operaționale sau porți logice. Simplitatea elementelor constitutive ale schemelor a avut drept rezultat obținerea rapidă de date de ieșire care au putut fi interpretate ușor. O implementare mai amănunțită am încercat pentru o rețea Kohonen, folosind tranzistoare MOS cu canal p și n. Testarea blocurilor funcționale ale rețelei s-a realizat fără probleme deosebite. Am încercat o asamblare a părților componente ale rețelei Kohonen din aplicația finală într-un sistem cu o configurație minimă, care cuprinde o matrice (4×1) sinapse și o matrice WTA (4×4). Testarea schemei cu intrările și semnalele de tact prezentate anterior a durat 8 ore și jumătate, rezultînd un fisier de date de ieșire cu o dimensiune de 110 Mb. Datorită dimensiunii, nu poate fi încărcat de programul SPICE, pentru a se vizualiza rezultatele, fiind deci inutilizabil.

Concluziv, din simulările și testările efectuate și din bibliografia studiată rezultă că implementarea hardware a rețelelor neuronale este diversă și complexă. Circuitele folosite la implementare pot fi analogice sau numerice. Schemele conțin fie doar componente active analogice, fie componente active numerice, fie sînt o combinație ale acestor regimuri. Tehnologiile sînt diverse, cea mai folosită fiind totuși tehnologia MOS sau cea hibridă. În mare măsură implementarea hardware a rețelelor neuronale folosește o tehnică de avangardă din domeniul circuitelor integrate pe scară foarte largă. Spre exemplu, IEEE a realizat o implementare on-chip a rețelei Kohonen cu sinapse adaptive prezentată în capitolul 5. Dimensiunea rețelei este următoarea: matricea de sinapse are dimensiunea (12×10) iar matricea WTA are dimensiunea (10×8). Densitatea de împachetare este de 190 de sinapse pe mm2 în tehnologie CMOS standard de 2. Există de asemenea și implemenatări în tehnologie VLSI ale unor hărți de memorie în regim analog după modelul propus de T. Kohonen și S. Grossberg.

Un domeniu de vîrf în implementarea hardware îl reprezintă procesorul neural analogic. Testele efectuate în laboratoare specializate au demonstrat superioritatea netă a acestui tip de procesor în configurații de rețea matricială cu 1024 de procesoare față de rețele similare ce folosesc în implementare procesoare numerice standard. Superioritatea se manifestă în fiabilitate, viteză de calcul, energie consumată sau disipată cît și în puterea de calcul. Experimental, NASA folosește o rețea de calculatoare cu procesoare neurale pentru prelucrarea în timp real a imaginilor primite de la sondele spațiale lansate după 1993. De asemenea, firma constructoare de avioane Marcel Dassault din Franța experimentează pe un avion Rafale un procesor neural pentru controlul zborului fără pilot uman la viteze de peste 4 Mach. Aplicațiile procesoarelor neurale în domeniul militar sînt mult mai diverse și nu apar detaliate în lucrările de referință.

Firma Intel a lansat pe piață în 1991 procesorul neural ETANN 80170 specializat pentru aplicațiile în timp real. Aplicațiile includ recunoașterea scrisului de mînă și a vorbirii, diagnosticarea bolilor la sugari, controlul proceselor neliniare, miscarea robotică și recunoașterea tactilă. Toate aceste aplicații sînt pe scară largă iar unele chiar la nivel industrial. Antrenamentul procesorului se poate face "on-chip" sau "off-chip". Antrenamentul "on-chip" se face în mod clasic, prin rularea unor rutine care ajută rețeaua să învețe modelele pe care va trebui să le recunoască sau să le reconstituie. Antrenamentul "off-chip" se face folosind un calculator – gazdă. Procesorul are 64 de neuroni programabili și 10.240 de sinapse (ponderi) programabile în mod diferit față de neuroni. Fiecare neuron este capabil să calculeze o ieșire pentru 128 de ponderi de intrare variabile și 32 de ponderi fixe ca valoare. Procesorul folosește semnale modelate în curent, nu în tensiune.

O altă realizare de succes a fost realizarea de rețele neuronale reconfigurabile implementate hardware. Dimensiunea unei astfel de rețele ajunge la 32.000 de sinapse realizate în tehnologie CMOS cu un consum de energie sub 1W. Un ciclu de antrenament pentru o astfel de rețea durează 10ns. Suprafața cipului este de 2,25 cm2.

Performanțele rețelelor neuronale cu un antrenament de învățare stohastică le permite să fie utilizate cu succes în realizarea și simularea de modele comportamentale și de modele de psihologie cognitivă.

Încă de pe acum se prefigurează o largă răspîndire a cipurilor de rețele neuronale cu fotosinapse. Ponderile sinaptice de intrare sînt realizate folosind fotoconductori din siliciu amorf. În acest fel antrenamentul nu se mai realizează prin seturi de vectori binari injectați sub formă de curenți sau tensiuni, ci sînt generați de un fascicul laser. Puterea disipată este foarte mică. Deocamdată un astfel de cip se află sînt stadiul experimental.

Din exemplele prezentate pe care le-am găsit în bibliografie, implementarea hardware devine din ce în ce mai necesară pe măsură ce avantajele acestui tip de implementare privind învățarea și prelucrarea semnalelor devin evidente. Tehnologia semiconductorului analogic, dispozitivele cuplate în sarcină și implementările optice sînt tot atîtea direcții de dezvoltare ale implementărilor hardware ale rețelelor neuronale.

=== INTRO ===

Introducere

Studiul rețelelor neuronale este un domeniu foarte vast. Problemele care apar sînt extrem de diverse – de la optimizarea soluțiilor, recunoașterea scrisului și a vorbirii pînă la problemele legate de psihologia cognitivă. În literatura de specialitate există mii de volume care tratează în diverse feluri problemele specifice.

Majoritatea soluțiilor sînt generate cu ajutorul calculatorului prin simulări soft ale proceselor ce au loc în interiorul unei rețele neuronale. Această manieră de tratare este destul de facilă, flexibilă și deosebit de elegantă, realizîndu-se de obicei într-un limbaj de nivel înalt. Dezavantajul metodei constă în viteza de rezolvare a problemei, dependentă de complexitatea problemei și de resursele calculatorului. Diametral opus manierei de tratare soft se află tratarea hard a problemei. Soluțiile nu mai sînt generate cu ajutorul unor programe, ci cu ajutorul rețele neuronale realizate cu circuite integrate pe scară largă și foarte largă. Avantajele implementării hard sînt viteza sporită de lucru și costul scăzut. Dezavantajul este legat de flexibilitatea mică a soluțiilor.

Datorită exploziei informaționale din această perioadă, dezvoltarea tehnicii de calcul a luat un avînt deosebit de mare. Calculatorul a început să fie folosit din ce în ce mai eficient. Programele care apar sînt din ce în ce mai diverse și mai complexe dar nu elimină dezavantajul legat de viteza de lucru. Metoda de tratare hard a problemei a intrat, cel puțin aparent, într-un con de umbră. Rezultatele cercetărilor în acest domeniu sînt publicate în prestgioase reviste de specialitate dar accesul la informație este limitat datorită interesului mai mic pentru această manieră de implementare. Din cauza acestui fapt, lucrările publicate în domeniul hard au o circulație restrînsă la cercul specialiștilor.

Lucrarea mea de diplomă se dorește a fi un studiu al implementărilor hard uzuale ale rețelelor neuronale. Lucrarea nu tratează subiectul la un nivel înalt, constituindu-se mai mult într-un material didactic. Sînt prezentate succint principalele tipuri de rețele neuronale și variantele de implementare hard în tehnologie MOS. Datorită dificultăților materiale întimpinate pe parcurs, nu este prezentată nici o implementare fizică a unei rețele, funcționarea circuitelor fiind simulată cu ajutorul programului SPICE. Nu insist asupra algoritmilor de învățare și antrenare a rețelelor. Lucrarea prezintă schemele electronice, graficele caracteristicilor și ordinogramele. În finalul lucrării este prezentată la nivel de detaliu o rețea neuronală specifică unei aplicații de psihologie cognitivă realizată în modul propus de Tuevo Kohonen, cercetător în domeiul rețelelor neuronale de la Helsinky University of Technology, Laboratory of Computer & Information Science. Kohonen a propus un model de retea cu auto-organizare ce simulează mai bine funcționarea creierului uman. Modelul se pretează foarte bine tratării problemelor de psihologie cognitivă, motiv pentru care l-am adoptat pentru rezolvarea aplicației prezentate.

Similar Posts

  • Motor cu Aprindere Prin Comprimare

    Cuprins Notiuni introductive 3 Studiu de nivel 6 2. Calculul termic al motorului cu aprindere prin comprimare 8 2.1.Parametrii inițiali 8 2.2.Parametrii procesului de schimbare a gazelor: 9 2.3.Parametrii procesului de comprimare 10 2.4.Parametrii procesului de ardere 10 2.5.Parametrii procesului de destindere 12 2.6.Parametrii principali ai motorului 12 2.7.Dimensiunile fundamentale ale motorului 13 2.8.Diagrama indicată…

  • Programarea Microcontrollerului

    Cuprins Introducere Capitolul 1 – Considerente Teoretice 1.1 Interfața cu utilizatorul Capitolul 2 – Microcontrolerul 2.1 Diferențele dintre Microcontroler și Microprocesor 2.2 Memoria 2.2.1 Diferitele tipuri de memorii RAM 2.2.2 Diferitele tipuri de memorii ROM 2.2.3 Memoriile Hibrid 2.3 Regiștri prezenți în microcontrolerul PIC16F887 2.3.1 Registrul STATUS 2.3.2 Registrul OSCCON (Oscillator Control) 2.3.3 Registrul ANSELH…

  • Studiu Comparativ

    CONTENT Argumentation……………………………………………………………………………………..2 Introduction…………………………………………………….…………………………………..4 History of education in general……………………………………………………….……6 History of the British educational system…………………………………………….….11 History of the German educational system……………………………………………….13 A comparative analysis……………………………………………………………………..21 Structure………………………………………………………………………………….25 Main aspects……………………………………………………………………………..27 State education……………………………………………………………………….…..29 Private education……………………………………………………………………………31 Education to the age of 18……………………………………………………………….34 Higher education……………………………………………………………………………36 Other types of education……………………………………………………………………37 The main differences between the British and the German Educational Systems…………………………………………………………………………………..….40 Positive aspects………………………………………………………………….……….42…

  • Sistematica Zoologica a Broastelor

    1.1.SISTEMATICA ZOoLOGICĂ A BROAȘTELOR SUPeRCLASA TETRAPODE Tetrapodele sunt vertebratele care au patru membre (picioare, aripi, lopeți înotătoare etc.), de unde și denumirea de tetrapode (tetra=patru; pous, podos=picior). Ele sunt reprezentate prin clasele: amfibieni, reptile, păsări și mamifere. Clasa amfibieni sau batracieni Amfibienii sunt vertebratele tetrapode care ocupă un loc intermediar între pești și vertebratele tetrapode…

  • Sisteme de Sortare a Caroseriilor din Industria Auto Industria Auto

    PROIECT DE DISERTAȚIE Conducerea sistemelor de sortare a caroseriilor din industria auto Cuprins Figuri Tabele Cap 1. Introducere 1.1 Introducere în sistemele de conducere 1.2 Automatică 1.3 Strategii de control Cap 2. Automate programabile 2.1 Automate programabile. Definiții și caracteristici 2.2 Tipuri de automate programabile 2.3 Comparația automat programabil – alte sisteme de conducere 2.4…

  • Sisteme Si Controlorele Fuzzy

    Sisteme si controlerele Fuzzy Un sistem de control fuzzy este un sistem de control bazat pe logica unui sistem matematic Fuzzy care analizează valorile de intrare analogice în ceea ce privește variabilele logice care preiau valori continue între 0 și 1, în contrast cu logica clasică sau digitală, care funcționează pe valori discrete ale 1…