Curs de Inteligenta Artificiala, 2002
Transcription
Curs de Inteligenta Artificiala, 2002
i1 i2 w 2n w 1n in ... wn2 w n1 g1 g2 u1 u2 _ v1 Cn _ v2 v1 un C2 C1 _ gn ... vn v2 vn Despre autori ^Incep^and cu anul universitar 1992/1993, Razvan Andonie a predat un curs de Retele neurale la Universitatea "Transilvania", specializarile Electronica si calculatoare, Electrotehnica, Informatica. Acelasi curs l-a predat la Universitatea Texas din San Antonio, SUA, ^n anul universitar 1999/2000. Angel Cataron a facut parte din prima generatie de absolventi care au frecventat acest curs. ^In perioada 1997-1999, el a predat cursul de Retele neurale la Universitatea "Transilvania", specializarea Electronica si calculatoare. Pe l^anga aceasta, el este coordonatorul orelor de laborator pentru acest curs si este doctorand ^n domeniul retelelor neurale. Prefata Chiar daca acest material este suportul cursului de Retele neurale, de-a lungul timpului acest curs a ^nceput sa contina capitole noi, la interferenta retelelor neurale cu sistemele fuzzy si algoritmii genetici. Aceasta este ^n concordanta cu tendintele actuale ^n lume. De aceea, am preferat denumirea de inteligenta computationala. Inteligenta computationala, asa cum a fost denita de Bezdek1 , are ca obiectiv modelarea inteligentei biologice. Din acest punct de vedere, ea este similara domeniului numit inteligenta articiala. Spre deosebire de inteligenta articiala, care este bazata pe notiunea de cunostinta, inteligenta computationala este o modelare numerica a inteligentei biologice. Putem vorbi deci de trei tipuri de "inteligenta": biologica, articiala si computationala. Inteligenta computationala este formata din urmatoarele subdomenii: retele neurale, algoritmi genetici, programare evolutionara, sisteme fuzzy, viata articiala. ^In contextul inteligentei computationale, toate aceste subdomenii sunt legate de modelarea numerica a inteligentei biologice. Acest curs acopera majoritatea subdomeniilor inteligentei computationale. Fiecare capitol ofera, pe l^anga informatii teoretice, c^ate o sectiune de aplicatii, urmata de un set de exercitii, cele marcate prin (C) ind destinate implementarii pe calculator. Bezdek, J. "On the Relationship Between Neural Networks", Pattern Recognition and Intelligence, Int. J. Approximate Reasoning, 6, 85-107, 1992. 1 3 4 Cuprins 1 Preliminarii ^n calculul neural 9 1.1 Calculul neural: exemple . . . . . . . . . . . . . . . . . . . . . . . 10 1.2 Istoricul dezvoltarii retelelor neurale . . . . . . . . . . . . . . . . . 17 1.3 Viitorul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2 Concepte fundamentale 2.1 2.2 2.3 2.4 2.5 2.6 Neuronii biologici si modelele lor articiale Modelarea retelelor neurale . . . . . . . . . ^Invatare si adaptare . . . . . . . . . . . . . Reguli de ^nvatare . . . . . . . . . . . . . . Exemple . . . . . . . . . . . . . . . . . . . Exercitii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Clasicare . . . . . . . . . . . . . . . . . . . . Functii discriminant . . . . . . . . . . . . . . Clasicatori liniari . . . . . . . . . . . . . . . Perceptronul discret ca dihotomizator liniar . Perceptronul continuu ca dihotomizator liniar Teorema de convergenta a perceptronului . . . Retele monostrat de perceptroni . . . . . . . . Exemple . . . . . . . . . . . . . . . . . . . . . Exercitii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Perceptroni monostrat 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 4 Ret ele neurale feedforward multistrat 4.1 Clasicarea pattern-urilor liniar neseparabile . . . . . . . . . . . . . . . . . 4.2 Regula de ^nvatare delta . . . . . . . . . . 4.3 Regula delta generalizata . . . . . . . . . . 4.4 Algoritmul de instruire backpropagation . 4.5 Factori ai ^nvatarii . . . . . . . . . . . . . 4.6 Aproximatori universali . . . . . . . . . . . 4.7 Teorema lui Kolmogorov si retelele neurale 4.8 Aplicatii . . . . . . . . . . . . . . . . . . . 4.9 Exemple . . . . . . . . . . . . . . . . . . . 5 19 19 26 31 32 40 48 53 53 55 56 59 63 66 68 69 76 79 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 80 84 87 89 92 94 95 96 CUPRINS 6 4.10 Exercitii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 5 Ret ele neurale feedback monostrat 5.1 5.2 5.3 5.4 5.5 Retele Hopeld cu timp discret . . . Retele Hopeld cu timp continuu . . Aplicatie: problema comis-voiajorului Exemple . . . . . . . . . . . . . . . . Exercitii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Memorii asociative 6.1 6.2 6.3 6.4 6.5 6.6 Concepte de baza . . . . . . . . . . . . . . Asociatori liniari . . . . . . . . . . . . . . Memorii autoasociative recurente . . . . . Analiza performantei . . . . . . . . . . . . Memoria asociativa bidirectionala (MAB) Exercitii . . . . . . . . . . . . . . . . . . . 7 Ret ele neurale cu auto-organizare 7.1 7.2 7.3 7.4 Retelele Hamming si MAXNET . . . Instruirea nesupervizata a clusterelor Harti Kohonen . . . . . . . . . . . . Exercitii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 107 110 114 117 122 125 125 127 130 135 137 141 145 145 148 150 156 8 Ret ele neurale RBF 159 9 Ret ele neurale fuzzy 165 8.1 Functii radiale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 8.2 O tehnica de grupare (clustering) . . . . . . . . . . . . . . . . . . 162 8.3 Discutie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 9.1 Logica fuzzy . . . . . . . . . . . . . . . . . 9.1.1 De ce logica fuzzy? . . . . . . . . . 9.1.2 Logica fuzzy si cea conventionala . 9.2 Retele neurale fuzzy . . . . . . . . . . . . 9.2.1 Neuroni fuzzy . . . . . . . . . . . . 9.2.2 Structura unei RNF . . . . . . . . 9.2.3 Algoritmul de instruire a unei RNF 9.2.4 Analiza RNF . . . . . . . . . . . . 9.2.5 Rezultatele simularii . . . . . . . . 9.2.6 Concluzii . . . . . . . . . . . . . . 10 Algoritmi genetici 10.1 10.2 10.3 10.4 Introducere . . . . . . . Exemplu . . . . . . . . . Fundamente matematice Exercitii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 165 167 169 169 171 172 173 174 175 177 177 178 180 183 CUPRINS 11 Puterea si complexitatea de calcul 11.1 11.2 11.3 11.4 Masina Turing . . . . . . . . . . . . . Puterea de calcul a retelelor neurale . Reprezentarea functiilor booleene . . Complexitatea instruirii . . . . . . . 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Considerat ii epistemologice 12.1 Scopul unei retele neurale . . . . . . . . . . . . . . . . . 12.2 Functiile neurale biologice sunt localizate sau distribuite? 12.3 Este neliniaritatea esentiala ^n calculul neural? . . . . . . . . . . . . . . . . . . . . . . . 12.4 Deosebiri esentiale . . . . . . . . . . . . . . . . . . . . . 12.5 Cum pot programate calculatoarele neurale . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.6 Poate creierul sa se autoperceapa? . . . . . . . . . . . . . A Complemente matematice A.1 A.2 A.3 A.4 A.5 A.6 A.7 A.8 A.9 Vectori si matrici . . . . . . . . . . . . . Forme patratice . . . . . . . . . . . . . . Elemente de geometrie analitica . . . . . Operatia XOR . . . . . . . . . . . . . . . Iacobianul si hessianul . . . . . . . . . . Probleme de optimizare . . . . . . . . . Metoda lui Euler (metoda tangentei) . . Stabilitatea sistemelor dinamice neliniare Variabile aleatoare . . . . . . . . . . . . B Subiecte-tip pentru examen C Link-uri Bibliograe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 185 187 188 190 193 . . . . . 193 . . . . . 194 . . . . . 194 . . . . . 195 . . . . . 196 . . . . . 196 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 199 200 201 202 202 205 206 208 209 211 215 217 8 CUPRINS Capitolul 1 Preliminarii ^n calculul neural Calculul neural se efectueaza pe o retea densa de noduri si conexiuni. Aceste noduri lucreaza ^n mod colectiv si simultan si se numesc neuroni articiali, sau neuroni. Neuronii pot opera, de exemplu, ca sumatoare sau comparatoare. De obicei, neuronii lucreaza ^n paralel si sunt congurati ^n arhitecturi regulate. Astfel, ei pot organizati pe nivele ierarhice si se permit conexiuni feedback ^n cadrul unui nivel sau conexiuni feedback catre nivelele adiacente. Puterea ecarei conexiuni este exprimata printr-o valoare numerica numita pondere, care poate modicata. Domeniul retelelor neurale este cunoscut si sub denumiri similare: neurocalcul, conexionism, procesare paralela distribuita, sisteme adaptive, retele cu autoorganizare etc. Aceasta varietate indica de fapt tot at^atea perspective din care se studiaza retelele neurale. Retelele neurale functioneaza ca retele paralele distribuite. Caracteristica lor de baza este arhitectura. Unele retele sunt caracterizate de comportarea lor ^n timp, de dinamica lor. Retelele neurale difera ^ntre ele prin modul de ^nvatare: exista o varietate de reguli de ^nvatare care stabilesc c^and si cum se modica ponderile conexiunilor. ^In ne, retelele difera prin viteza si ecienta de ^nvatare. Spre deosebire de calculatoarele conventionale, care sunt programate sa efectueze anumite lucrari, majoritatea retelelor neurale trebuie sa e ^nvatate (sau instruite). Ele ^nvata noi asocieri, noi pattern-uri, noi dependente functionale. Dupa cum vom vedea mai t^arziu, faptul ca retelele ^nvata reguli si algoritmi ^nlocuieste programarea necesara ^n calculul conventional. Utilizatorii retelelor neurale nu specica un algoritm care sa e executat de catre un anumit neuron, cum s-ar ^nt^ampla pe o masina traditionala. ^In loc de aceasta, ei aleg o conguratie care li se pare cea mai buna arhitectura, specica toate caracteristicile neuronilor si ponderile initiale, apoi aleg modul de instruire pentru retea. ^In urmatoarea faza, sunt aplicate diferite date de intrare din care reteaua ^si extrage cunostinte, adica ^nvata. Ca rezultat, reteaua acumuleaza informatie care poate apoi utilizata. Calculul cu retele neurale se situeaza ^ntre inginerie si inteligenta articiala. Se folosesc tehnicile matematice ingineresti clasice, dar si metode euristice specice inteligentei articiale. 9 10 CAPITOLUL 1. PRELIMINARII ^IN CALCULUL NEURAL ^In acest sens vom raspunde la urmatoarele ^ntrebari: Cum poate instruita ecient o retea si cum se ^nvata ea? Ce modele de neuroni trebuie folosite? Care sunt cele mai adecvate arhitecturi pentru anumite clase de probleme? Care sunt cele mai bune metode pentru a extrage cunostintele acumulate ^ntr-o retea? Care sunt aplicatiile tipice pentru calculul neural si c^at de eciente sunt aceste aplicatii? Retelele neurale au atras atentia specialistilor din numeroase discipline. Neurobiologii sunt interesati ^n modelarea retelelor neurale biologice. Fizicienii sunt atrasi de analogiile dintre retelele neurale si sistemele dinamice neliniare pe care le studiaza. Matematicienii sunt fascinati de potentialul modelarii matematice aplicat ^n sistemele foarte mari si complexe. Inginerii ^n electronica si calculatoare aplica retelele neurale ^n procesarea semnalelor si construiesc pe baza retelelor neurale circuite integrate inteligente. Psihologii cauta ^n retelele neurale structurile prototip care modeleaza procesarea informatiei de catre om. ^In ne, informaticienii sunt interesati ^n posibilitatile de calcul ale retelelor masiv paralele ^n domeniile inteligentei articiale, teoriei calculabilitatii, modelarii si simularii etc. 1.1 Calculul neural: exemple Ne propunem sa dam c^ateva exemple de utilizare a retelelor neurale ^n rezolvarea unor probleme reale. Clasicatori si sisteme automate de orientare ^n spatiu Vom deni retelele neurale care raspund instantaneu datelor de intrare. Pentru ^nceput, vom analiza performantele unui simplu clasicator, apoi vom extinde aceasta problema. Fie P0 P1 : : : P7 opt puncte ^n spatiul tridimensional. Multimea consta din toate v^arfurile unui cub tridimensional: fP0(;1 ;1 ;1) P1(;1 ;1 1) P2(;1 1 ;1) P3(;1 1 1) P4 (1 ;1 1) P5(1 ;1 1) P6(1 1 ;1) P7(1 1 1)g Consideram doua clase de puncte: 1. puncte cu doua sau mai multe coordonate pozitive: P3, P5 , P6 , P7 2. restul de puncte. 1.1. CALCULUL NEURAL: EXEMPLE x1 1 1 x2 element comparator nod sumator + 1 11 Σ clasa sgn(.) suma ponderata ponderi x3 date de intrare Figura 1.1: Clasicator realizat cu o singura unitate. P1 P3 (-1,0,1) (0,-1,1) x 1 +x 2 +x 3 =0 P7 P5 P0 P4 P2 P6 Figura 1.2: Partitionarea spatiului cartezian. Pentru orice punct Pi(x1 x2 x3 ), i = 1 : : : 7, apartenenta la una dintre clasele de mai sus poate stabilita prin urmatorul calcul: ( clasa 1 sgn(x1 x2 x3) = ;11 pentru pentru clasa 2 Aceasta expresie descrie functia de decizie a unui clasicator. Nu este necesara o instruire a acestui clasicator. Reteaua neurala rezultata este extrem de simpla (g. 1.1). Am realizat clasicarea printr-o singura unitate, sau nod de calcul. Aceasta implementeaza ^nsumarea cu ponderile respective (1 ^n acest caz) si este urmata de o comparare cu prag. De fapt, se realizeaza o partitionare a spatiului cartezian tridimensional prin planul x1 + x2 + x3 = 0 (g. 1.2). 12 CAPITOLUL 1. PRELIMINARII ^IN CALCULUL NEURAL Punctele de deasupra planului fac parte din clasa 1, iar punctele de dedesupt din clasa 2. Problema pe care ne-o punem este daca o functie continua nu poate mai avantajoasa (g. 1.3). 1 f(Σ ) Σ -1 Figura 1.3: Functie continua de decizie. ^In acest caz, datele de iesire pot ^n intervalul dintre -1 si 1. Folosirea neuronilor cu caracteristici continue ofera posibilitati mult mai mari. Se obtine o granularitate (o ranare) mai mare a datelor de iesire. Neurologii folosesc electro-encefalograma (EEG) care preia pe mai multe canale impulsurile electrice ale creierului. Evaluarea EEG este dicila si de aceea se face de obicei de catre neurologi calicati. Pentru o monitorizare pe calculator, sa ne concentram pe un caz concret: detectarea unei iminente crize de epilepsie. Este nevoie de o prelucrare on-line a semnalelor EEG. ^In 1990, Eberhart si Dobbins au realizat detectarea semnalelor EEG pentru crizele de epilepsie folosind un clasicator neural. Datele sunt monitorizate prin patru canale de interes. Semnalele EEG sunt esantionate de 200 sau 250 ori pe secunda ^ntr-o fereastra de 240 ms. Aceasta are ca rezultat obtinerea a 48 sau 60 de esantioane de date pentru ecare canal. Aceste esantioane trebuie evaluate si sunt introduse ^ntr-o retea neurala de 40 de unitati interconectate, cu caracteristici continue. Un total de 41 de unitati aranjate pe trei nivele ierarhice proceseaza datele. Doua unitati de iesire sunt utilizate pentru identicarea v^arfurilor de semnal. Reteaua a fost elaborata de o echipa de ingineri si neurologi. Dupa ce a fost instruita, reteaua a dat rezultate excelente dovedindu-si utilitatea ^n spitale. Sa consideram un alt exemplu: proiectul ALVINN (Autonomous Land Vehicle In a Neural Network), raportat de Pomerleau (1989). Reteaua ALVINN preia imagini ale drumului printr-o camera si printr-un laser care detecteaza profunzimea obiectelor. La iesire este generata directia pe care trebuie sa circule autovehiculul pentru a urma drumul. Arhitectura retelei este cea din gura 1.4. 1.1. CALCULUL NEURAL: EXEMPLE 13 unitate de feedback pt. intensitatea drumului ... 45 unitati de directie ... 29 unitati ... imagine 30x32 (intrare) profunzime 8x32 (intrare) Figura 1.4: Arhitectura retelei ALVINN. Informatia video este o retina de 30x32 care sesizeaza ^n albastru (ofera cel mai bun contrast). Unitatea de feedback regleaza contrastul. Cele 1217 intrari conduc spre 29 unitati cu functie continua. Unitatea din mijlocul celor 45 de unitati de iesire arata c^at de puternica este tendinta de a merge ^nainte. Unitatile din st^anga-dreapta reprezinta tendintele de a o lua la st^anga-dreapta. Unitatile din extremitatile st^anga si dreapta corespund virajelor st^anga-dreapta c^at mai accentuate. ALVINN a fost instruit prin imagini sintetizate pe calculator. Performantele obtinute au fost comparabile cu caracteristicile celor mai bune sisteme traditionale de orientare prin vedere articiala. Capacitatea sistemului ALVINN de a pastra directia drumului nu a fost implementata prin programare (algoritm), ci se bazeaza pe cunostintele asimilate prin instruire. Dupa 1/2 ora de instruire, sistemul era capabil sa se orienteze singur pe drum. Altfel ar fost necesare luni de zile pentru dezvoltarea algoritmilor care sa recunoasca pattern-urile din imaginile preluate. S-au facut observatii interesante. Astfel, reteaua s-a comportat mai bine dupa ce a fost instruita sa refaca erori de conducere. Prin aceasta, reteaua si-a dezvoltat masurile de corectare a conducerii. Memorie simpla si restaurarea pattern-urilor Vom discuta acum despre retele neurale care raspund ^n timp datelor de intrare (un pattern ^n acest caz). Deoarece ele fac acest lucru ^ntr-un mod foarte caracteristic, prin reconstructia treptata a unui pattern memorat, vom numi aceste 14 CAPITOLUL 1. PRELIMINARII ^IN CALCULUL NEURAL retele memorii. Fie reteaua simpla din gura 1.5. -1 +1 1 + Σ1 unitatea 1 Σ2 unitatea 2 Σ3 unitatea 3 sgn(.) sgn(.) o1 o2 -1 -1 -1 + sgn(.) o3 Figura 1.5: Retea memorie. Reteaua consta din trei unitati care calculeaza valorile functiei signum, trei noduri de^nsumare si sase ponderi care pot 1. Semnalele care trec prin ponderi sunt ^nmultite cu valoarea ponderilor. Presupunem ca reteaua este initializata la iesire cu o1 = o2 = o3 = 1 (cazul 1, tab. 1.1). C^and se permite retelei sa calculeze, intrarile la unitatile 1 si 2 sunt 0, ^n timp ce la unitatea 3 este -2. Ca rezultat, o1 si o2 nu se modica, deoarece sgn(0) nu este denit, ^n timp ce o3 devine -1. Urmeaza cazul 2, care este o iesire nala deoarece nu se mai poate modica. Cazurile 3 si 4 sunt alte exemple de tranzitii posibile. Observam ca si cazurile 3 si 4 duc apoi la cazul 2, oper^and c^ate o singura modicare. Iata cum se reprezinta geometric aceste actualizari efectuate de reteaua de tip memorie descrisa. Se vede ca P6(1 1 ;1) este iesirea stabila a memoriei. C^and o singura componenta a vectorului de initializare binar (o1, o2, o3 ) difera de P6, reteaua corecteaza aceasta componenta. Iesirea este apoi mentinuta constanta. Daca P6 reprezinta descrierea corecta a unui pattern, iar P4, P7 , P2 variante distorsionate ale lui P6, memoria are capacitatea de a restaura variantele distorsionate asimil^andu-le cu P6 (g. 1.6). Acest concept de memorie poate extins cu usurinta la lumea reala a aplicatiilor. Probleme de optimizare Retelele neurale pot aplicate cu succes pentru rezolvarea unor probleme de optimizare. 1.1. CALCULUL NEURAL: EXEMPLE 15 Tabelul 1.1: Exemple de tranzitii ale retelei tip memorie. X ^nseamna sgn(0), iar iesirile ^ncadrate sunt cele care se modica. Cazul Nr. unitatii Iesirea actuala 1 1 1 2 1 3 1 1 1 2 2 1 3 -1 1 -1 3 2 1 3 -1 1 1 4 2 -1 3 -1 sgn() Iesirea urmatoare 0 X 1 0 X 1 -2 -1 -1 2 1 1 2 1 -1 -2 -1 -1 2 1 1 0 X 1 0 X -1 0 X 1 1 2 1 0 X -1 Sa presupunem ca valoarea analogica x, 0 x 3 5 trebuie digitizata ^ntr-un numar binar v1 v0, (v1 v0 2 f0 1g), astfel inc^at x 2v1 + v0 : Exista, evident, patru posibilitati: 00, 01, 10, 11. O retea similara cu memoria din exemplul precedent poate rezolva aceasta conversie (g. 1.7). Reteaua consta din doua unitati cu caracteristici continue, ecare cu raspuns ^n intervalul dintre 0 si 1. La cele doua unitati, retelei i se mai adauga un numar de elemente de interconectare pe care nu le specicam. Conversia corespunde minimizarii erorii de conversie A/D, unde eroarea este (x ; 2v1 ; v0)2 , ^n prezenta restrictiei v0 v1 2 f0 1g. Aceasta problema de minimizare este rezolvabila de catre o anumita clasa de retele neurale. Caracteristic acestei clase este ca se minimizeaza asa numita functie de energie pe parcursul calculului. Proprietatea de minimizare a energiei este de importanta foarte mare si se formuleaza astfel: reteaua ^si cauta singura energia ei minima si se stabilizeaza acolo. O serie de probleme de optimizare se transpun direct ^n minimizarea functiei de energie a unei retele neurale. Minimizarea energiei de catre retea poate considerata analoga minimizarii erorii de conversie A/D. Clasa de retele neurale exemplicata prin conversia A/D este utilizabila si pentru probleme de optimizare combinatorica ^n care complexitatea este exponentiala sau, mai rau, ^n ordinul lui n!. ^In aceste probleme, este important sa se reduca ordinul timpului de cautare. Retelele neurale ofera si ^n acest sens o alternativa. 16 CAPITOLUL 1. PRELIMINARII ^IN CALCULUL NEURAL P3 P1 P7 P5 cazul 1 P0 P2 cazul 3 P4 cazul 4 P6 cazul 2 Figura 1.6: Actualizarile efectuate de reteaua de tip memorie. Detectarea gruparilor si a trasaturilor O clasa importanta de retele neurale pot utilizate pentru detectarea gruparilor de date. Aceste retele sunt calate pe anumite aspecte de similaritate ^n datele evaluate. De exemplu, se poate sa m interesati ^n a grupa anumite rezultate de masurare ^n scopul eliminarii erorilor sistematice care pot aparea ^n timpul masurarii. Deoarece zgomotul este aleator, el nu formeaza grupari, ci doar perturba formarea gruparilor reale de date. Detectarea gruparilor si trasaturilor prezinta importante proprietati de autoorganizare care sunt legate de inteligenta articiala si teoria informatiei. Retelele din aceasta clasa au ^n general arhitecturi simple, dar subtilitatile apar ^n timpul procesului de autoorganizare. Detectarea trasaturilor se raporteaza la reducerea dimensionalitatii datelor. De exemplu, semnalul vorbirii consta din 15 canale de frecventa audio. Fonemele sunt deci descrise ^ntr-un spatiu 15-dimensional. Problema este ca nu putem reprezenta astfel fonemele, deoarece capacitatea noastra de vizualizare se reduce la trei dimensiuni. Utiliz^and o retea neurala, este posibil sa reprezentam spectrul 15-dimensional al vorbirii ^ntr-un tablou ^n plan. Secventa fonemelor unui cuv^ant formeaza o traiectorie specica ^n plan. Aceste harti fonotopice pot foarte utile ^n construirea masinilor de scris fonetice, ^n ^nvatarea vorbirii si pentru terapie. RETELELOR NEURALE 1.2. ISTORICUL DEZVOLTARII 17 unitatea 0 v0 intrare analogica x iesire digitala retea de interconectare unitatea 1 v1 Figura 1.7: Diagrama bloc a unui convertor A/D pe doi biti. 1.2 Istoricul dezvoltarii retelelor neurale McCulloch si Pitts (1943) au propus primul model pentru neuron. Acest model include toate elementele pentru a efectua operatii logice, dar la acel nivel tehnologic era imposibil de implementat. Donald Hebb (1949) a propus un model de ^nvatare pentru a actualiza conexiunile neuronului, cunoscut acum ca regula hebbiana de ^nvatare. El a formulat ideea ca informatia poate memorata ^n conexiuni. Primele neurocalculatoare au fost construite ^n anii '50 (Minsky, 1954). Ele ^si adaptau automat conexiunile. ^In 1958, Frank Rosenblatt a inventat un element neural numit perceptron. Era conceput ca o masina instruibila capabila sa ^nvete sa clasice anumite pattern-uri prin modicarea conexiunilor la elementele comparatoare. La ^nceputul anilor '60, a fost propus ADALINE (ADAptive LINEar combiner), un dispozitiv bazat pe regula de ^nvatare Windrow-Ho (Bernard Windrow, Marcian Ho). Regula minimiza eroarea patratica ^nsumata pe parcursul instruirii. Aplicatiile erau de recunoasterea formelor, control adaptiv si previziunea vremii. ^In ciuda entuziasmului anilor '60, masinile existente nu permiteau abordarea unor probleme complexe. Pe de alta parte, nici schemele de ^nvatare nu erau sucient de dezvoltate. S-a intrat astfel ^ntr-o perioada de stagnare a carei cauze erau de fapt cunoscute. Episodul nal al acestei ere a fost lucrarea lui Minsky si Papert1 , care a demonstrat limitele retelelor bazate pe perceptroni. ^In acest timp, majoritatea cercetatorilor se ^ndreptau spre alte domenii. Domeniul retelelor neurale (care facea la acea vreme parte din cibernetica) parea ^nchis. ^In schimb se dezvolta 1 Minsky, M., S. Papert "Perceptrons". Cambridge, MA, MIT Press, 1969. 18 CAPITOLUL 1. PRELIMINARII ^IN CALCULUL NEURAL promitator domeniul inteligentei articiale, prelu^and si sarcini pe care retelele neurale nu puteau sa le rezolve la acel stadiu. ^In perioada 1965-1984, c^ativa cercetatori au reusit sa dezvolte totusi cercetarile. Kunihiko Fukushima a denit o clasa de retele neurale numite neocognitroni (1980). Neocognitronul modeleaza recunoasterea vizuala a formelor prin emularea imaginilor de pe retina si procesarea lor folosind neuroni ierarhizati pe doua nivele. Cercetarile ^n domeniul memoriilor asociative au evoluat ^n Finlanda (Teuvo Kohonen) si SUA (James Anderson). Stephen Grossberg si Gail Carpenter au introdus c^ateva arhitecturi de retele neurale si au dezvoltat teoria retelelor adaptive prin rezonanta, ART. Era renasterii a ^nceput odata cu introducerea arhitecturii recurente pentru memoriile asociative (John Hopeld, 1982). O alta revitalizare a domeniului provine din lucrarile lui James McClelland si David Rumelhart (1986). ^Incep^and cu anii 1986-1987, s-au initiat multe programe de cercetare si interesul a devenit extrem de mare. Au aparut aplicatii complexe. Au fost fabricate chip-uri VLSI de retele neurale. Cu toate ca domeniul calculului neural are o istorie interesanta, el este ^nca la ^nceputul dezvoltarii sale. 1.3 Viitorul Datorita denumirii, domeniul retelelor neurale este supus unei supraestimari populiste. Este tentant pentru om sa-si imagineze o masina care sa e asemeni lui. Terminologia antropomorfa trebuie privita cu multa retinere. Putem aproape siguri ca retelele neurale nu vor ^nlocui calculatoarele clasice. Aceasta, deoarece calculatoarele clasice sunt foarte ieftine si eciente pentru efectuarea calculelor numerice (procesari de text, CAD, procesari de date). Sunt ^nsa domenii ^ntregi ^n care retelele neurale devin mai avantajoase. Cele mai interesante aplicatii sunt cele care presupun inferenta de tip uman si perceperea vorbirii si a imaginilor. Aceste aplicatii nu pot dec^at partial rezolvate pe calculatoare clasice. Este de asteptat ca retelele neurale sa e aplicate ^n procesarea semnalelor si sisteme expert. Retelele neurale nu vor ^nlocui aplicatiile de inteligenta articiala de pe calculatoarele clasice, ci vor oferi o tehnologie complementara. Neurocalculatoarele actuale sunt de multe ori calculatoare conventionale care executa software de simulare a retelelor neurale. Alte neurocalculatoare folosesc deja componente (placi, chip-uri) dedicate. Cele mai interesante sunt, desigur, chip-urile VLSI care implementeaza retele neurale. Fabricarea acestor chip-uri este deja actuala. ^In 1986, AT&T a fabricat primul circuit integrat de memorie neurala. Capitolul 2 Concepte fundamentale Exista doua posibilitati de a deni retelele neurale. La o extrema, retelele neurale sunt o clasa de algoritmi matematici, deoarece o retea poate privita ^n esenta ca o notatie graca pentru o clasa larga de algoritmi. La cealalta extrema, retelele neurale emuleaza retelele neurale biologice din organismele vii. ^In lumina cunostintelor limitate pe care le avem ^n prezent asupra retelelor neurale biologice, cea mai plauzibila denitie se apropie mai mult de cea algoritmica. Retelele neurale sunt ^n mod cert inspirate din biologie, dar exista mari diferente ^ntre retelele neurale articiale si cele naturale. Nu exista ^nca modele care sa concureze cu succes performantele creierului uman. De fapt si cunostintele noastre despre functionarea creierului sunt extrem de limitate. Creierul ram^ane mai cur^and o metafora pentru retelele neurale dezvoltate p^ana acum. Cu toate ca analogia dintre retelele neurale articiale si cele naturale este vaga, vom ^ncepe totusi prin a mentiona modelul neuronului biologic. Vom deni apoi neuronul articial si retelele neurale articiale elementare. ^In ne, vom discuta formele de baza ale procesarii ^n retele neurale articiale, cu un accent deosebit pe procesele de ^nvatare. 2.1 Neuronii biologici si modelele lor articiale Creierul uman consta din aproximativ 1011 neuroni. Ei comunica printr-o retea de conexiuni formate din axoni si sinapse, av^and o densitate de aproximativ 104 sinapse/neuron. Ipoteza cea mai recenta privind modelarea sistemului nervos natural este ca neuronii comunica ^ntre ei prin impulsuri electrice. Totodata, neuronii opereaza ^ntr-un mediu chimic. Creierul poate considerat o retea densa de conexiuni electrice conditionate ^n mare masura de procese biochimice. Reteaua neurala are o structura elaborata, cu interconexiuni foarte complexe. Intrarea ^n retea este asigurata de catre receptorii senzoriali. Receptorii furnizeaza stimuli at^at din partea corpului c^at si din partea organelor senzoriale care preiau stimulii lumii exterioare. Stimulii au forma impulsurilor electrice care conduc informatia ^n reteaua de neuroni. Ca rezultat al procesarii informatiei ^n sistemul nervos central, efectorii sunt controlati si dau raspunsuri sub forma diferitelor 19 CAPITOLUL 2. CONCEPTE FUNDAMENTALE 20 actiuni. Avem deci un sistem const^and din receptori, reteaua neurala si efectori, care controleaza organismul si actiunile sale. Fluxul informational este descris ^n gura 2.1. Corp Sistemul nervos central Receptori feedback intern Efectori Organe senzoriale Organe motor feedback extern Figura 2.1: Fluxul informational ^n sistemul nervos. Neuronul biologic Neuronul este celula nervoasa si are trei componente: - soma - corpul celulei - axonul - bra lunga care serveste ca linie de comunicatie - dendritele Dendritele formeaza un arbore de bre ne ^n jurul corpului neuronului. Dendritele receptioneaza informatia de la alti neuroni prin axonii acestora. Axonul este o conexiune cilindrica lunga care^n partea nala devine arborescenta. Fiecare ramura are o terminatie care aproape atinge dendritele neuronilor vecini. Sinapsa este interfata prin care neuronul ^si introduce semnalul catre dendrita altui neuron. Semnalele care ajung la o sinapsa plec^and de la dendritele neuronului respectiv sunt impulsuri electrice (g. 2.2). Transmisia interneuronala este uneori electrica dar de obicei este efectuata prin eliberarea de transmitatori chimici la sinapse. Astfel, terminatia axonului genereaza substanta chimica, care afecteaza neuronul receptor. Neuronul receptor e genereaza un impuls catre axonul sau, e nu produce nici un raspuns. Neuronul este capabil sa raspunda totalului intrarilor sale agregate ^ntr-un scurt interval de timp numit perioada de latenta. Raspunsul neuronului este generat daca totalul potentialului membranei sale atinge un anumit nivel. Membrana poate considerata ca o ^nvelitoare care agrega magnitudinea semnalelor 2.1. NEURONII BIOLOGICI SI MODELELE LOR ARTIFICIALE 21 axoni venind de la alti neuroni soma dendrite impulsul din partea corpului neuronului sinapsa dendrita altui neuron Figura 2.2: Modelul neuronului biologic. care intra pe parcursul unei anumite durate de timp. Neuronul genereaza un impuls-raspuns si ^l transmite axonului sau numai daca conditiile necesare sunt ^ndeplinite. Impulsurile care intra ^n neuron pot excitatoare { daca cauzeaza generarea de catre neuron a unui impuls, sau inhibitoare { daca ^mpiedica generarea unui astfel de impuls. O conditie mai precisa pentru ca neuronul sa genereze un impuls este ca excitatia sa depaseasca inhibitia cu o valoare de aproximativ 40 mV, numita pragul neuronului. Deoarece o conexiune sinaptica produce reactia de excitatie sau de inhibitie a neuronului receptor, este practic sa atasam ponderile 1 acestor conexiuni. Neuronul genereaza un impuls atunci c^and suma ponderilor impulsurilor receptate depa se ste valoarea pragului pe parcursul perioadei de ^nsumare latenta. Procesarea ^n retelele neurale biologice este complexa si mai putin structurata dec^at calculul digital. Spre deosebire de cazul calculului digital, impulsurile neurale nu sunt sincronizate ^n timp. O caracteristica importanta a neuronului biologic este ca semnalele generate nu difera ^n magnitudine. Cu alte cuvinte, informatia transmisa ^ntre celulele nervoase este sub forma semnalelor binare. Dupa transmiterea unui impuls, axonul ram^ane pentru un timp ^ntr-o staree de neexcitabilitate completa, acest interval numindu-se perioada refractara. Putem diviza timpul ^n intervale consecutive, ecare de durata perioadei refractare. Aceasta ne permite o descriere discreta a comportarii neuronului. De exemplu, putem preciza care neuroni vor genera impulsuri la momentul k + 1 baz^andu-ne pe conditiile de excitatie de la momentul k. Neuronul va excitat la un anumit moment dat, daca numarul sinapselor excitate excitatoare depa se ste numarul sinapselor excitate inhibitoare la momentul precedent cu cel put in numarul T , unde T este valoarea pragului neuronului. Intervalele de timp pot luate de ordinul milisecundelor. Perioada refractara nu este ^nsa uniforma: depinde de tipul de neuroni si de modul ^n care sunt ei conectati. Avem deci o retea densa de neuroni interconectati care genereaza semnale asincrone. Semnalele sunt transmise apoi catre neuronii vecini dar sunt CAPITOLUL 2. CONCEPTE FUNDAMENTALE 22 si retransmise (feedback) neuronilor generatori. Aceasta discutie este o simplicare foarte mare din punct de vedere neurobiologic. Retelele neurale articiale sunt mult mai simple dec^at corespondentul lor natural. Sa examinam un model de neuron articial cu semnicatie istorica. Modelul neural McCulloch-Pitts Este prima denitie formala a unui neuron articial (1943). w1 w2 x1 x2 o T wn xn w =-1 sau +1 i i=1,2,...,n Figura 2.3: Neuronul McCulloch-Pitts. Intrarile xki i = 1 2 : : : n sunt 0 sau 1, ^n functie de absenta sau prezenta impulsului la momentul k (g 2.3). Semnalul de iesire al neuronului este o. Regula dupa care neuronul genereaza un semnal este: ( Pn w xk T 1 dac a = 0 daca Pin=1 wixik < T i=1 i i wi = 1 pentru o sinapsa excitatoare si wi = ;1 pentru o sinapsa inhibitoare. Cu toate ca este foarte simplu, acest model are un remarcabil potential computational. Poate realiza operatiile logice NOT, OR si AND. Dupa cum stim, orice functie logica de mai multe variabile poate implementata utiliz^and sau NOT si OR, sau NOT si AND. De exemplu, functiile NOR si NAND pot implementate prin retele de neuroni conform modelelor din gura 2.4. ok+1 x1 -1 T=0 1 x2 -1 T=0 1 x3 -1 T=0 1 T=1 o x1 1 x2 1 x3 1 NAND Figura 2.4: Functiile NOR si NAND. T=1 -1 NOR T=0 o 2.1. NEURONII BIOLOGICI SI MODELELE LOR ARTIFICIALE 23 Neuronul McCulloch-Pitts are o ^nt^arziere cu durata de o unitate. Aceasta proprietate permite construirea circuitelor digitale secventiale. Notam pentru ^nceput ca un singur neuron, cu o singura intrare x, cu ponderea si valoarea de prag unitare, calculeaza ok+1 = xk . Un astfel de neuron se comporta ca un registru simplu, capabil sa retina intrarea pentru un interval de timp de o unitate. O celula de memorie se construieste ca ^n gura 2.5. 1 1 intrare excitatoare T=1 ok+1 =x k -1 intrare inhibitoare Figura 2.5: Celula de memorie. Dupa ce s-a initializat celula, astfel ^nc^at sa genereze sau sa nu genereze un semnal, aceasta valoare de iesire este sustinuta indenit, ^n absenta unor intrari. Hardware-ul unui calculator digital de orice complexitate poate obtinut prin utilizarea unei retele neurale constituite din blocuri elementare pentru operatii logice si pentru memorie. Ne intereseaza, ^nsa altceva: care este puterea de calcul a retelelor neurale tin^and cont de capacitatea lor de a ^nvata. Vom reveni asupra acestor aspecte mai t^arziu. Modelarea unui neuron general Modelul neural McCulloch-Pitts este elegant si are o expresie matematica precisa. El opereaza ^nsa c^ateva simplicari drastice. Astfel, permite doar stari binare (0 si 1), presupune ca timpul este discret si presupune sincronismul operatiilor tuturor neuronilor. De asemenea, ponderile si pragurile sunt presupuse xe. ^In continuare, vom prezenta generalizari ale modelului McCulloch-Pitts, care vor de altfel modelele noastre operationale. Fiecare model neural consta dintr-un element de procesare cu conexiuni sinaptice de intrare si cu o singura iesire. Intrarile si iesirile sunt unidirectionale. Denim modelul unui neuron general ca in gura 2.6 sau o = f (wtx) n X o = f ( wixi) i=1 unde w este vectorul de ponderi denit astfel: w = "w1w2 : : : wn]t CAPITOLUL 2. CONCEPTE FUNDAMENTALE 24 x1 x2 w1 w2 conexiuni sinaptice f(wtx) xn o nod(unitate) de procesare wn ponderi multiplicative Figura 2.6: Modelul unui neuron general. iar x este vectorul de intrari: x = "x1 x2 : : : xn ]t: Toti vectorii din acest curs sunt vectori coloana, iar indicele t noteaza o transpunere. Functia f (wtx) este functia de activare. Domeniul ei de denitie este multimea valorilor de activare, net, a unui model neural: net = wtx: De aceea, folosim si notatia f (net). Variabila net este analogul potentialului membranei neuronului biologic. Convenim ca exista n ; 1 conexiuni sinaptice si ca xn = ;1, wn = T . Uneori vom extrage explicit pragul T ca parametru separat. De acum ^ncolo, vom ^ntelege prin neuroni { modele de neuroni, iar prin retele neurale { retele neurale articiale compuse din modele de neuroni. Functii de activare tipice sunt: - bipolara continua: f (net) = 1+exp2; net ; 1 > 0 ( >0 - bipolara binara: f (net) = sgn(net) = ;11 net net < 0 Se observa ca pentru ! 1, functia bipolara continua devine bipolar binara. Functiile unipolare sunt: - unipolara continua: f (net) = 1+exp1; net ( >0 - unipolara binara: f (net) = 10 net net < 0 Pentru ! 1, functiile continue devin functii discrete. Cele doua functii continue se numesc si caracteristici sigmoidale. Majoritatea neuronilor utilizeaza functii de activare bipolare. Desigur, functiile de activare pot denite si altfel. 2.1. NEURONII BIOLOGICI SI MODELELE LOR ARTIFICIALE f(net) λ=5 1 -1 λ=0,5 λ=1 net 1 0 f(net) λ=5 1 -1 25 λ=1 1 0 net -1 Figura 2.7: Functii de activare continue bipolara si unipolara. Daca functia de activare este bipolara binara, putem folosi reprezentarea din gura 2.8 a unui perceptron binar, iar pentru functia bipolara continua putem folosi reprezentarea din gura 2.9 a unui perceptron continuu. x1 x2 w1 w2 + xn net 1 o(w,x) -1 sumator wn net comparator cu prag neuron Figura 2.8: Perceptron binar. Perceptronul discret a fost introdus de Rosenblatt (1958) si a fost prima masina instruibila. Iesirile neuronilor pot discrete (binare) sau continue. Pentru un strat de m neuroni, valorile lor de iesire o1 , o2 , : : :, om pot date de: o = "o1 o2 : : : om ]: Domeniul de denitie al vectorilor o este un spatiu m-dimensional denit pentru cazul continuu astfel: (;1 1)m fo 2 <m oi 2 (;1 1)g pentru cazul bipolar sau (0 1)m fo 2 <m oi 2 (0 1)g pentru cazul unipolar: Domeniul lui o este interiorul unui cub m-dimensional. CAPITOLUL 2. CONCEPTE FUNDAMENTALE 26 f(net)= x1 x2 2 -1 −λ 1+e net o(w,x) f(net) xn neuron Figura 2.9: Perceptron continuu. Pentru cazul discret, avem: f;1 1gm fo 2 <m oi 2 f;1 1gg pentru cazul bipolar sau f0 1gm fo 2 <m oi 2 f0 1gg pentru cazul unipolar: Domeniul lui o este format din v^arfurile unui cub m-dimensional. Un vector poate avea deci 2m valori. 2.2 Modelarea retelelor neurale Cunosc^and acum denitia modelului unui neuron general, putem deni o retea neurala ca o interconectare de neuroni astfel ^nc^at iesirea ecarui neuron este conectata, via ponderi, cu toti neuronii, inclusiv cu neuronul respectiv. Retea feedforward Sa consideram o arhitectura feedforward de m neuroni care receptioneaza n intrari (g. 2.10). Pentru acest model denim o = "o1o2 : : : om ]t si x = "x1 x2 : : : xn ]t: Ponderea wij caracterizeaza al i-lea neuron cu a j -a intrare. Valoarea de activare pentru al i-lea neuron este atunci: neti = n X j =1 wij xj i = 1 2 : : : m: Fie wi = "wi1wi2 : : : win]t , atunci: neti = witx oi = f (witx) i = 1 2 : : : m: 2.2. MODELAREA RETELELOR NEURALE 27 1 w11 x1 2 x2 o1 o2 wm1 ... ... w2n xn wmn m om Figura 2.10: Retea neurala feedforward. Denim operatorul matricial neliniar ; pentru care: o = ;(Wx) unde W este matricea ponderilor (matricea conexiunilor): 2 6 W = 6664 iar w11 w12 : : : w1n 3 w21 w22 : : : w2n 777 ... 75 wm1 wm2 : : : wmn 2 f () 0 : : : 0 3 66 0 f () : : : 0 77 77 : ;"] = 66 .. 4 . 5 0 : : : 0 f () Functiile f () sunt functii neliniare de activare. Vectorii x, o sunt numiti si pattern-uri de intrare, respectiv de iesire. Transformarea unui pattern de intrare ^ntr-un pattern de iesire are loc fara ^nt^arziere, instantaneu. De aceea, spunem ca o astfel de retea este de tip feedforward. Avem (g. 2.11): o(t) = ;"Wx(t)] x(t) Γ[Wx] o(t) Figura 2.11: Diagrama bloc a unei retele neurale feedforward. CAPITOLUL 2. CONCEPTE FUNDAMENTALE 28 Reteaua feedforward este caracterizata prin lipsa de feedback. O retea feedforward poate conectata ^n cascada pentru a forma o retea pe mai multe straturi. ^Intr-o astfel de retea, iesirea unui strat este intrarea urmatorului strat. Retea feedback O retea feedback se poate obtine dintr-o retea feedforward prin conectarea iesirilor neuronilor cu propriile intrari (g. 2.12). Δ Δ o1(t) w11 x 1 (0) x 2 (0) x n(0) w21 1 o1(t+ Δ ) 2 o2(t+ Δ ) n o n (t+ Δ ) w1n o2(t) on(t) wnn Δ Figura 2.12: Retea neurala feedback. Perioada de timp % este analoga perioadei refractare a modelului neuronului biologic. Avem (g. 2.13): o(t + %) = ;"Wo(t)]: x(0) retea instantanee Γ[Wo(t)] o(t+Δ) intarziere Δ Figura 2.13: Diagrama bloc a retelei neurale feedback. Intrarea x(t) este folosita doar pentru a initializa aceasta retea, astfel ^nc^at o(0) = x(0). Intrarea este apoi ^ndepartata si, pentru t > 0, sistemul devine autonom. 2.2. MODELAREA RETELELOR NEURALE 29 Consider^and timpul ca o variabila discreta si decidem sa observam functionarea retelei la momentele % 2% 3% : : :, sistemul este cu timp discret. Conventional, putem considera ca pasul timpului este unitar. Atunci, notam: ok+1 = ;(Wok ) pentru k = 1 2 : : : Aceasta retea este recurenta deoarece raspunsul ei la momentul k + 1 depinde de ^ntregul istoric al retelei ^ncep^and cu momentul k = 0: o1 = ;"Wx0] o2 = ;"W;"Wx0]] ::: ok+1 = ;"W;": : : ;"Wx0 ] : : :]]: Retelele recurente opereaza de obicei cu o reprezentare discreta a datelor si folosesc neuroni cu o functie de activare discreta. Un sistem av^and intrari cu timp discret si o reprezentare discreta a datelor se numeste un automat. Deci, retelele neurale recurente din aceasta categorie pot considerate niste automate. Numim o1 o2 : : : stari ale retelei la momentele 1, 2,... si ecuatiile de mai sus oglindesc secventa tranzitiilor starilor. O stare de echilibru se numeste si atractor. Un atractor consta dintr-o singur h a stare,itsau dintr-un numar limitat de stari. ^In capitolul 1 am vazut ca o = 1 1 ;1 este un atractor. Secventa de stari ale unei retele recurente este ^n general nedeterminista. O retea cu timp continuu se obtine ^nlocuind elementele de ^nt^arziere discrete cu elemente continue. Fie, de exemplu, reteaua feedback cu timp continuu din gura 2.14. + + v1 R C - v2 Figura 2.14: Retea feedback cu timp continuu. Ea este o retea electrica const^and dintr-o rezistenta si un condensator, unde v1 este tensiunea la intrare, iar v2 este tensiunea la iesire. De fapt, retelele electrice sunt utilizate frecvent pentru a modela calculele efectuate de o retea neurala. Retelele electrice poseda &exibilitatea de a modela toate fenomenele liniare si neliniare ^nt^alnite ^n acest curs. Din aceasta cauza, retelele electrice reprezinta modele zice functionale ale retelelor neurale. Din legea lui Kircho obtinem: v1 ; v2 = C dv2 ) R dt CAPITOLUL 2. CONCEPTE FUNDAMENTALE 30 dv2 + v2 = v1 : dt RC RC De aici, obtinem: (2.1) %t v ; v %v2 = C 1R 2 care reprezinta modicarea tensiunii v2 ^n intervalul %t. tensiunea tensiunea v1 v1 v2 v2 t 0 t 0 t0 (a) (b) Figura 2.15: Raspunsul ^n timp (a) la un impuls si (b) la o tensiune de intrare de tip unda armonica al retelei cu timp continuu din gura anterioara. De obicei, retelele cu timp continuu folosesc neuroni cu functii de activare continue. ^In gura 2.16 avem o conexiune sinaptica bazata pe circuitul electric descris ^n gura 2.14. net j j Rij net i Ci i oi Figura 2.16: Conexiune sinaptica. oj ARE SI ADAPTARE 2.3. ^INVAT 31 Rezistenta Rij serveste ca pondere de la iesirea neuronului j catre intrarea neuronului i. Ecuatia 2.1 poate discretizata astfel: netki +1 ; netki 1 (ok ; netk ): =R C j i %t ij i De aici: %t netki +1 = netki + R C (okj ; netki ): ij i O retea de mai multi neuroni de acest tip are, din punct de vedere dinamic, o comportare complexa. 2.3 ^Invatare si adaptare ^In general, ^nvatarea este schimbarea comportamentului datorita experientei. La om si animale procesul de ^nvatare nu poate observat direct, ci presupunem ca a avut loc observ^and modicarile de comportament. La retelele neurale, procesul de ^nvatare este mai direct: putem observa ecare pas al ^nvatarii ca o relatie distincta de tip cauza-efect. Un cadru general pentru procesul de ^nvatare la retele neurale este dat de teoria aproximarii. ^Invatarea ca aproximare Teoria aproximarii se refera la aproximarea unei functii continue de mai multe variabile h(x) printr-o alta functie H (w x), unde x = "x1 x2 : : : xn]t este vectorul de intrare si w = "w1 w2 : : : wm]t este vectorul parametrilor (ponderilor). Scopul ^nvatarii este sa se gaseasca w pentru care se obtine cea mai buna aproximare a lui h(x), av^and la dispozitie o multime de exemple, fxg, folosite pentru ^nvatare. O problema importanta este alegerea functiei H (w x), aceasta numindu-se problema reprezentarii. Dupa alegerea lui H (w x), se aplica algoritmul de ^nvatare al retelei pentru gasirea parametrilor optimi w : "H (w x) h(x)] "H (w x) h(x)] unde este o metrica (o distanta). Retelele feedback sunt sisteme dinamice. De aceea, ^nvatarea ^n acest caz se refera la ^nvatarea starilor de echilibru. ^Invatarea supervizata si ^nvatarea nesupervizata Majoritatea retelelor neurale pe care le discutam ^nvata incremental, pas cu pas. Daca ponderile retelei sunt ajustate printr-un singur pas, atunci informatia feedback produsa de retea nu mai este necesara si vorbim de o ^nvatare de tip batch, adica "la gramada". CAPITOLUL 2. CONCEPTE FUNDAMENTALE 32 retea adaptiva W x ρ[d,o] o generator de distanta semnal de invatare d Figura 2.17: ^Invatare supervizata. Ne referim ^n continuare la ^nvatarea incrementala, ^n care conceptul de feedback are un rol central. ^In ^nvatarea supervizata (g. 2.17), presupunem ca la ecare moment c^and se aplica intrarea, raspunsul d al sistemului este dat de catre instructor (un factor uman). x retea adaptiva o W Figura 2.18: ^Invatare nesupervizata. ^Invatarea nesupervizata (g. 2.18) se foloseste de multe ori, de exemplu, la clustering (g. 2.19), atunci c^and informatia a priori este minima. 2.4 Reguli de ^nvatare Sa studiem procesul de instruire a vectorului wi de ponderi, av^and componentele wij (unde wij este ponderea conexiunii celei de-a j -a intrari cu cel de-al i-lea neuron) (g. 2.20). Fie urmatoarea regula generala de ^nvatare: Vectorul wi = "wi1 wi2 : : : win]t creste proportional cu produsul intrarii x si a semnalului de ^nvatare r. Semnalul r este in general o functie de wi , x si, daca este cazul, di: r = r(wi x di): Incrementul lui wi produs la momentul t este: %wi (t) = cr"wi(t) x(t) di(t)]x(t) unde c este constanta de ^nvatare, pozitiva, care determina rata ^nvatarii. Atunci: wi(t + 1) = wi(t) + cr"wi(t) x(t) di(t)]x(t): ARE 2.4. REGULI DE ^INVAT 33 x2 x2 x1 0 x1 0 (a) (b) Figura 2.19: (a) Pattern-uri bidimensionale care formeaza doua clustere. (b) Aparent, nu se disting mai multe clustere si nu stim c^ate sunt. ^In acest caz ^nvatarea nesupervizata nu este indicata. x1 ... wi1 x2 wi2 xn win x neuronul i oi Δwi X r generator de semnal de învãtare di c Figura 2.20: Modelul instruirii ^n cazul ^nvatarii supervizate. Pentru cazul discret: wik+1 = wik + cr(wik xki dki )xk : Pentru cazul continuu: dwi(t) = crx(t): dt Vom studia ^n continuare ^nvatarea cu timp discret (pas cu pas). Se presupune ca ponderile sunt initializate convenabil, ^nainte ca procesul de ^nvatare sa ^nceapa. Regula de ^nvatare a lui Hebb (1949) Aceasta regula particularizeaza semnalul de ^nvatare astfel: r = f (witx) adica semnalul de ^nvatare este chiar iesirea neuronului. Atunci: %wi = cf (witx)x CAPITOLUL 2. CONCEPTE FUNDAMENTALE 34 %wij = cf (witx)xj = coixj pentru j = 1 2 : : : n: Este necesar ca, initial, ponderile sa aiba valori aleatoare mici. ^Invatarea dupa regula lui Hebb este de tip feedforward si nesupervizata. Este implementata urmatoarea idee: "Daca celula A excita ^n mod repetat celula B, fac^and-o sa genereze un impuls, atunci are loc un proces de crestere (schimbare metabolica) ^ntr-una sau ^n ambele celule, astfel ^nc^at ecienta excitarii lui B de catre A creste." Cu alte cuvinte, pattern-urile de intrare mai frecvente vor avea si in&uenta cea mai mare asupra ponderilor conexiunilor. Regula de ^nvatare a perceptronului (Rosenblatt, 1958) Semnalul de ^nvatare pentru aceasta regula este: r = di ; oi unde oi = sgn(witx) si di este raspunsul dorit (pentru cazul bipolar, 1) (g. 2.21). x1 ... wi1 x2 wi2 + win xn net i Δwi x oi comparator - X d i -o i + + di c Figura 2.21: Regula de ^nvatare a perceptronului. Avem: %wi = c"di ; sgn(witx)]x %wij = c"di ; sgn(witx)]xj pentru j = 1 2 : : : n: Sa observam ca aceasta regula este aplicabila doar pentru situatia c^and functia de activare este binara. Are loc o ajustare a ponderilor daca si numai daca oi este incorect. Deoarece raspunsul dorit poate 1 sau -1, avem: %wi = 2cx daca di = 1 si sgn(witx) = ;1 %wi = ;2cx daca di = ;1 si sgn(witx) = 1 Daca di = sgn(witx), se observa ca %wi = 0. Regula de ^nvatare a perceptronului este importanta pentru ^nvatarea supervizata a retelelor neurale. Ponderile sunt initializate cu orice valoare. ARE 2.4. REGULI DE ^INVAT 35 Regula de ^nvatare delta (McClelland, Rummelhart, 1986) Este valabila pentru functii de activare continue si pentru ^nvatarea supervizata. Semnalul de ^nvatare pentru aceasta regula (g. 2.22) este numit delta si este dat de r = "di ; f (witx)]f 0(witx): x1 wi1 wi2 ... x2 win xn f’(net i) Δwi x oi f(net i) - X X d i -o i + di + c Figura 2.22: Regula de ^nvatare delta. Aceasta regula se deduce din conditia de cea mai mica eroare patratica dintre oi si di. Fie E eroarea patratica: E = 12 (di ; oi )2 ceea ce este echivalent cu E = 21 "di ; f (witx)]2 : De aici, rE = ;(di ; oi)f 0(witx)x: Componentele gradientului erorii sunt: @E = ;(d ; o )f 0(wtx)x pentru j = 1 2 : : : n i i j i @wij si reprezinta panta pe directia wij . Alegem termenul %wij astfel ^nc^at sa e proportional cu panta negativa (deci sa minimizam pe E ) si obtinem: %wij = (di ; oi)f 0(neti)xj j = 1 2 : : : n %wi = (di ; oi)f 0(neti)x (2.2) %wi = ;rE unde este o constanta pozitiva. CAPITOLUL 2. CONCEPTE FUNDAMENTALE 36 Presupun^and ca semnalul de ^nvatare este r = "di ; f (witx)]f 0(witx) obtinem: %wi = c(di ; oi)f 0(neti)x ceea ce este identic cu 2.4, c si ind constante arbitrare. Regula delta este de fapt o transpunere a regulii de ^nvatare a perceptronului discret la cazul perceptronului continuu. Ponderile pot initializate cu orice valoare. Regula de ^nvatare Windrow-Ho (1962) Aceasta regula este aplicabila pentru ^nvatarea supervizata. Este independenta de functia de activare folosita deoarece minimizeaza eroarea patratica dintre raspunsul dorit di si valoarea de activare a neuronului neti = witx. Semnalul de ^nvatare este r = di ; witx: Atunci, %wi = c(di ; witx)x %wij = c(di ; witx)xj j = 1 2 : : : n: Aceasta regula poate considerata un caz special al regulii delta: presupunem f (witx) = wit x, adica functia de activare este functia identica f (net) = net si obtinem f 0(net) = 1. Ponderile pot initializate oricum. Regula corelatiei Substituind r = di ^n regula generala de ^nvatare obtinem regula corelatiei: %wi = cdix %wij = cdixj j = 1 2 : : : n: De obicei, regula corelatiei se aplica ^n retele de memorie cu neuroni cu functie de activare binara. Se poate interpreta ca un caz particular al regulii lui Hebb ^n care functia de activare este binara si oi = di. Totusi, ^nvatarea hebbiana este nesupervizata, ^n timp ce regula corelatiei se aplica la ^nvatarea supervizata. Ca si ^n cazul ^nvatarii hebbiene, este necesar ca ponderile sa e initializate cu valori apropiate de 0. ARE 2.4. REGULI DE ^INVAT 37 Regula "c^astigatorul ia tot" Aceasta regula difera mult de regulile prezentate p^ana acum. Poate explicata pe o multime de neuroni si este un exemplu de ^nvatare competitiva folosita ^n instruirea nesupervizata. ^In general, aceasta regula se foloseste pentru ^nvatarea proprietatilor statistice ale intrarilor. ^Invatarea se bazeaza pe premiza ca unul din neuroni, e el neuronul m, are raspunsul maxim pentru intrarea x. Acest neuron este c^astigatorul (g. 2.23). o1 ... x1 wm1 ... w11 om xj neuronul castigator ... ... wmn xn wpn op Figura 2.23: Regula de ^nvatare c^astigatorul ia tot. Ca rezultat, wm = "wm1 wm2 : : : wmn]t este singurul vector ajustat: %wm = (x ; wm ) %wmj = (xj ; wmj ) pentru j = 1 2 : : : n unde > 0 este o constanta de^nvatare mica. Criteriul de alegere a c^astigatorului este: wmt x = i=1max (wtx): 2:::p i Numai ponderile neuronului c^astigator se modica. Dupa ajustare, wm va estima si mai bine pattern-ul x. Ponderile se initializeaza cu valori aleatoare si sunt normalizate. ^In general, scade pe parcursul procesului de ^nvatare. Paradigme ale ^nvatarii ^n retele neurale 1. Autoasociere. O multime de pattern-uri este prezentata ^n mod repetat si sistemul memoreaza aceste pattern-uri. Apoi, un pattern similar cu unul din pattern-urile memorate este prezentat. Sarcina este de a regasi pattern-ul originar. CAPITOLUL 2. CONCEPTE FUNDAMENTALE 38 Tabelul 2.1: Comparatie ^ntre calculul conventional si calculul neural din punct de vedere al etapelor care trebuie parcurse. Calcul convent ional Rezolvarea unei probleme Formularea algoritmului Calcul neural Achizitionarea cunostintelor Calcul Programare Selectarea unei arhitecturi si denirea multimii de exemple reprezentative Instruire Sarcina Memorarea datelor Aritmetic, precizie mare ROM, RAM memorii binare Precizie mica, aplicatii neliniare Ponderi ale conexiunilor av^and ^n general valori continue 2. Heteroasociere. Este o varianta a autoasocierii. O multime de perechi de pattern-uri este prezentata ^n mod repetat. Paradigmele autoasocierii si heteroasocierii sunt tipice memoriilor asociative. 3. Clasicare. Paradigma clasicarii poate considerata o varianta a autoasocierii. ^In acest caz avem o multime xata de categorii ^n care trebuie clasicate pattern-urile de intrare. ^In perioada instruirii, sistemului i se prezinta pattern-uri din secventa de instruire precizand categoriile din care fac parte. Scopul este de a ^nvata corect clasicarea, astfel ^nc^at, ulterior, orice pattern de intrare (eventual perturbat fata de pattern-urile din secventa de instruire) sa e clasicat corect. Aceasta este paradigma tipica pentru algoritmul perceptronului si instruirea prin propagarea ^n urma a erorii ^n retelele feedforward multistrat. Instruirea este supervizata. Instruirea este mai buna daca ^n secventa de instruire apar si pattern-uri perturbate (spre deosebire de paradigma autoasocierii). 4. Detectare de regularitati (clustering). Sistemul trebuie sa descopere caracteristici (trasaturi) comune ^ntr-o multime de pattern-uri. Nu exista categorii a priori de pattern-uri. Sistemul trebuie sa-si construiasca singur categoriile. Instruirea este nesupervizata. Numarul clusterelor poate , sau poate nu , cunoscut a priori. Ponderile init iale 0 oricare oricare oricare 0 aleatoare normalizate Ajustarea %wij coixj j = 1 2 : : : n c"di ; sgn(witx)]xj j = 1 2 : : : n c(di ; oi)f 0(neti )xj j = 1 2 : : : n c(di ; witx)xj j = 1 2 : : : n cdixj j = 1 2 : : : n %wmj = (xj ; wmj ) j = 1 2 : : : n Hebb perceptron delta Windrow-Ho corelatie c^astigatorul ia tot nesuperv. superv. superv. superv. superv. nesuperv. Tipul ^nva tarii oricare binar continuu oricare oricare continuu Caracteristicile neuronilor Tabelul 2.2: Principalele reguli de instruire. Constantele c si sunt pozitive. Regula de ^nva tare neuron neuron neuron neuron neuron strat de neuroni Neuron sau strat ARE 2.4. REGULI DE ^INVAT 39 CAPITOLUL 2. CONCEPTE FUNDAMENTALE 40 2.5 Exemple 1. Exemplu de retea feedforward pe doua straturi cu functie de activare bipolara neuronul 1 + comparator 1 + comparator 2 + comparator 3 + comparator 4 o1 o2 + o3 comparator 5 o5 o4 -1 iesire strat 1 intrare strat 1 intrare strat 2 iesire strat 2 Figura 2.24: Retea feedforward pe doua straturi. Pentru stratul 1: o = ; "Wx] h o = ; o1 o2 o3 o4 h i x = x1 x2 ;1 t it 2 1 6 W1 = 664 ;10 0 13 0 ;2 777 1 05 0 ;1 ;3 Pentru stratul 2: h o = "o5 ] x = o1 o2 o3 o4 ;1 it h it W2 = 1 1 1 1 3 5 Raspunsurile primului strat se calculeaza astfel: h i o = sgn(x1 ; 1) sgn(;x1 + 2) sgn(x2 ) sgn(;x2 + 3) t Raspunsul pentru al doilea strat este: o5 = sgn(o1 + o2 + o3 + o4 ; 3 5): Observam ca o5 = +1 daca si numai daca o1 = o2 = o3 = o4 = 1. Rezulta ca aceasta retea este o aplicatie a spatiului bidimensional x1 x2 ^n punctele 1. 2.5. EXEMPLE 41 x2 3 portiunea pt. care o1 ,o2,o3,o4 sunt +1 2 1 x1 0 1 3 2 Figura 2.25: Reprezentare ^n spatiul bidimensional. Sa presupunem acum ca avem aceeasi arhitectura, dar ca neuronii au caracteristici sigmoidale. Obtinem: 2 66 66 6 o = 666 66 64 2 1+e(1;x1 ) 2 1+e(x1 ;2) 2 1+e(;x2 ) 2 1+e(x2 ;3) ;1 3 77 ; 1 777 77 ; 1 7777 5 ;1 o5 = 1 + e(35;o 2;o ;o ;o ) ; 1: 1 2 3 4 Aplicatia spatiului bidimensional x1 x2 ^ntr-un segment al axei reale este ^n acest caz mai complicata. 2. Exemplu de retea recurenta Starile retelei sunt v^arfurile unui cub 4-dimensional: f;1 1g4. Trecerea dintro stare in alta se face de-a lungul unei muchii a hipercubului, deci doua stari succesive difera doar printr-o componenta. Avem: 1 1 ;1 3 0 1 ;1 777 1 0 ;1 5 ;1 ;1 ;1 0 2 0 6 W = 664 11 h it Presupun^and x0 = 1 1 1 ;1 , obtinem h i h o1 = sgn(3) sgn(3) sgn(3) sgn(;3) t = 1 1 1 ;1 it CAPITOLUL 2. CONCEPTE FUNDAMENTALE 42 Δ ponderea=+1 ponderea=-1 Δ x01 + comparator 1 x02 + comparator 2 x03 + comparator 3 x04 + comparator 4 o1k+1 ok+1 2 ok+1 3 o4k+1 Δ Δ Figura 2.26: Retea neurala recurenta. h it si deci 1 1 1 ;1 este o stare de echilibru. Tot o stare de echilibru este si h i ;1 ;1 ;1 1 t . h it Presupun^and x0 = 1 1 1 1 , obtinem: h i o1 = sgn(1) sgn(1) sgn(1) sgn(;3) t : h i h i Are deci loc tranzitia 1 1 1 1 ! 1 1 1 ;1 si se ajunge la cea mai apropiata stare de echilibru. Vericati singuri ce se int^ampla c^and x0 ia alte valori: h it h it h i x0 = 1 1 ;1 ;1 x0 = 1 ;1 1 ;1 x0 = ;1 1 1 ;1 t : 3. Exemplu de retea feedback cu timp continuu Fie reteaua din gura 2.27 unde oi = f (neti) i = 1 2, iar f este functia de activare continua bipolara. ^In aceasta gura, R12 si R21 sunt ponderi negative, ^nt^arzierile sunt realizate de dispozitivul RC , iar rezistentele R modeleaza curentul absorbit de neuroni. 2.5. EXEMPLE 43 net 1 R C1 R21 R12 o2 2 net 2 R o1 1 C2 Figura 2.27: Retea electrica a doi neuroni. Obtinem: 8 C dnet = o ;net ; net > < 1 dt R R : > : C2 dnet = o ;net ; net 2 1 1 1 12 Discretizam: dt 2 1 R21 2 R 2 8 k+1 k t k netk > < net1 = net1 + R C (o2 ; netk1 ) ; RC %t : > netk : netk2+1 t k k k = net2 + R C (o1 ; net2 ) ; RC %t 1 12 1 21 2 1 2 2 Presupunem ca C1 = C2, R12 = R21 < 0 pentru aceasta retea. Presupunem ca circuit a fost initializat prin ^ncarcarea condensatoarelor (cu o01 , o02 , nu neaparat egale). Reteaua ^si cauta unul din cele doua puncte de echilibru (g. 2.28). Simularea retelei se face pe calculator prin ecuatiile date. 4. Exemplu de ^nvatare hebbiana ^In gura 2.29, avem intrarea: si ponderile initiale: 2x 66 x12 x = 64 x3 x4 h 3 77 75 i w1 = 1 ;1 0 0 5 t : CAPITOLUL 2. CONCEPTE FUNDAMENTALE 44 o2 1 x o1 1 -1 x -1 Figura 2.28: Modul ^n care reteaua ^si gaseste cele doua puncte de echilibru. Presupunem ca aceasta retea este instruita folosind multimea de vectori de intrare: 2 1 3 2 1 3 2 0 3 6 7 6 7 6 7 x1 = 664 1; 25 775 x2 = 664 ;;02 5 775 x3 = 664 ;11 775 : 0 ;1 5 1 5 Consideram c = 1. Presupunem pentru ^nceput ca avem neuroni bipolari binari: f (net) = sgn(net). x1 x2 o x3 x4 Figura 2.29: Retea neurala pentru ^nvatarea hebbiana. Pasul 1. Se aplica x1. 2 1 3 7 h i6 net1 = w1t x1 = 1 ;1 0 0 5 664 1; 25 775 = 3 0 2.5. EXEMPLE 45 w2 = w1 + sgn(net1 )x1 = w1 + x1 Pasul 2. Se aplica x2. 2 1 3 2 1 3 2 2 3 6 7 6 7 6 7 w2 = 664 ;01 775 + 664 1; 25 775 = 664 1; 35 775 : 0 5 0 0 5 2 1 3 7 h i6 net2 = w2tx2 = 2 ;3 1 5 0 5 664 ;;02 5 775 = ;0 25 ;1 5 2 1 3 6 7 w3 = w2 + sgn(net2 )x2 = w2 ; x2 = 664 ;32 55 775 : Pasul 3. Se aplica x3. 2 net3 = w3tx3 = ;3 2 1 3 6 7 w4 = w3 + sgn(net3 )x2 = w3 ; x3 = 664 ;43 55 775 : 0 5 Sa presupunem acum ca functia de activare este continua si bipolara. Luam = 1 si pornim din nou de la w1. Pasul 1. Se aplica x1. 2 1 905 3 6 81 77 f (net1 ) = 0 905 w1 = 664 ;12357 75 0 5 Pasul 2. Se aplica x2. 2 1 828 3 6 772 77 f (net2) = ;0 077 w2 = 664 ;12 512 75 0 616 Pasul 3. Se aplica x3. 2 1 828 3 6 7 77 75 : f (net3 ) = ;0 932 w3 = 664 ;2344 ;0 783 Se observa ca pentru functia de activare continua se obtin ^n general rezultate ^n aceeasi directie, valorile ind ^nsa mai diferentiate. CAPITOLUL 2. CONCEPTE FUNDAMENTALE 46 5. Exemplu de ^nvatare prin regula perceptronului Consideram urmatorii vectori de intrare: 2 1 3 2 0 3 2 6 7 6 7 6 x1 = 664 ;02 775 x2 = 664 ;10 55 775 x3 = 664 ;1 ;1 ;1 3 1 0 5 ;1 77 75 2 1 3 7 6 w1 = 664 ;01 775 0 5 si c = 0 1. Raspunsurile dorite de catre supervizor pentru x1 , x2 , x3 sunt -1, -1 si, respectiv, 1. Pasul 1. Se aplica x1. 2 1 3 h i6 7 net1 = w1t x1 = 1 ;1 0 0 5 664 ;02 775 = 2 5: ;1 Deoarece ;1 6= sgn(2 5), are loc o corectie a ponderilor: 2 1 3 2 1 3 2 0 8 3 6 7 6 7 6 7 w2 = w1 + 0 1(;1 ; 1)x1 = 664 ;01 775 ; 0 2 664 ;02 775 = 664 ;00 6 775 : 0 5 ;1 0 7 Pasul 2. Se aplica x2. 2 0 8 3 7 h i6 net2 = w2t x2 = 0 1 5 ;0 5 ;1 664 ;00 6 775 = ;1 6: 0 7 Deoarece ;1 = sgn(;1 6), nu se aplica nici o corectie. Pasul 3. Se aplica x3. 2 0 8 3 7 h i6 net3 = w3t x3 = ;1 1 0 5 ;1 664 ;00 6 775 = ;2 1: 0 7 Deoarece 1 6= sgn(;2 1), se aplica o corectie: 2 0 6 3 7 6 w4 = w3 + 0 1(1 + 1)3 = 664 ;00 14 775 : 0 5 2.5. EXEMPLE 47 Nu este o simpla coincidenta faptul ca ultima componenta a vectorilor x1, x2 , x3 este invariabila. ^Invatarea prin regula perceptronului necesita ca o componenta a vectorului de intrare sa e xata (nu neaparat la valoarea -1). Daca reciclam din nou vectorii x1 , x2 , x3 la intrare, erorile vor mai mici, deci reteaua a "^nvatat". De exemplu, daca dupa ce am aplicat o data x1 , x2 , x3 mai aplicam o data x1 , obtinem net4 = 0 9, deci raspunsul este mai bun dec^at net1 = 2 5. Un contraexemplu important: " # x1 = 11 " x2 = ;;11 # d1 = 1 d2 = 1 : Trebuie ca w1 + w2 > 0 si w1 + w2 < 0, ceea ce este imposibil. Fie acum: 2 3 2 3 1 ;1 7 6 7 6 y1 = 4 1 5 y2 = 4 ;1 5 d1 = 1 d2 = 1 : ;1 ;1 ^In acest caz trebuie ca w1 + w2 > w3 si w1 + w2 < ;w3 . Acest sistem are solutii, evident, de exemplu w1 = 1, w2 = 1, w3 = ;3. Ce am facut de fapt? Deoarece este evident ca x1 si x2 nu pot ^nvatati ^n mod supervizat, am considerat vectorii extinsi y1 si y2 care se obtin din x1 si x2 prin adaugarea unei componente constante, ;1. Am vazut ca pentru y1 si y2 exista w1 si w2 astfel ^nc^at perceptronul sa ^nvete corect. Puteti acum folosi regula perceptronului pentru a ^nvata y1 si y2. ^Incercati sa explicati din punct de vedere geometric care este diferenta dintre a ^nvata x1 si x2 fata de a ^nvata y1 si y2. 6. Exemplu de ^nvatare prin regula delta Folosim aceiasi vectori ca ^n exemplul precedent: 2 1 3 2 0 3 2 ;1 3 2 1 3 6 7 6 7 6 7 6 7 x1 = 664 ;02 775 x2 = 664 ;10 55 775 x3 = 664 01 5 775 w1 = 664 ;01 775 ;1 ;1 ;1 0 5 La fel, raspunsurile dorite sunt -1, -1, 1, iar c = 0 2. Se demonstreaza mai t^arziu ca: f 0(net) = 12 (1 ; o2 ) daca f este functia de activare bipolara continua. Consideram = 1. Pasul 1. Se aplica x1. net1 = w1t x1 = 2 5 o1 = f (net1 ) = 0 848 CAPITOLUL 2. CONCEPTE FUNDAMENTALE 48 f 0(net1 ) = 12 "1 ; (o1 )2] = 0 14 2 0 974 3 6 7 w2 = c(;1 ; o1)f 0(net1 )x1 + w1 = 664 ;00948 775 : 0 526 Pasul 2. Se aplica x2. net2 = w2tx2 = ;1 948 o2 = f (net2) = ;0 75 f 0(net2 ) = 12 "1 ; (o2)2 ] = 0 218 2 0 974 3 6 956 77 w3 = c(;1 ; o2)f 0(net2 )x2 + w2 = 664 ;00 002 75 : 0 531 Pasul 3. Se aplica x3. net3 = w3t x3 = ;2 46 o3 = f (net3 ) = ;0 842 f 0(net3 ) = 12 "1 ; (o3)2 ] = 0 145 2 0 974 3 6 929 77 w4 = c(;1 ; o3)f 0(net3 )x3 + w3 = 664 ;00 016 75 : 0 505 Metoda necesita de obicei valori mici pentru c. 2.6 Exercitii 1. Folositi neuronul McCulloch-Pitts pentru a elabora retele care implementeaza urmatoarele functii logice: (a) ok+1 = xk1 ok2 o03k , unde x03k este complementul lui xk3 . Se va folosi un neuron. (b) ok+2 = x01k xk2 x03k . Se vor folosi doi neuroni ^n cascada. (c) ok+2 = xk1 xk2 . Se vor folosi doi neuroni ^n cascada. 2. Aratati ca retelele neurale din gura 2.30 sunt echivalente (implementeaza aceeasi functie). Se presupune ca: ( 0 : f (net) = 01 net net > 0 2.6. EXERCITII x1 49 1 1/2 f(net) 1 1 1 -1 x2 + 3/2 1 + + -1 f(net) f(net) o 1/2 -1 1 x1 -1 -1 x2 1/2 1 1 + f(net) -1 2 + f(net) o 1/2 -1 Figura 2.30: Exemplu de retele neurale echivalente. 3. Reteaua din gura 2.31 este un convertor A/D si poate utilizata pentru codicarea unei valori continue x ^ntr-un cod binar unipolar pe 4 biti o3 o2 o1 o0 ). Analizati reteaua si gasiti pentru ce valori ale lui x se obtin codicarile (0 0 0 0) : : : (1 1 1 1). Presupuneti ;1 x 16 si ca ( 0 f (net) = 10 net net > 0 : 4. Reteaua din gura 2.32 foloseste neuroni cu functie de activare bipolara continua ( = 1). S-a masurat ca o1 = 0 28 o2 = ;0 73. Gasiti vectorul de intrare x = "x1 x2 ]t care a fost aplicat. 5. Reteaua din gura 2.33 cu functie de activare bipolara continua este proiectata pentru a atribui vectorilor x1, x2, x3 clusterele 1 sau 2. Numarul cluster-ului este identic cu numarul neuronului care produce cel mai mare raspuns. Determinati din ce clustere fac parte vectorii: " # " # " # 0 866 ; 0 985 0 342 x1 = 0 5 x2 = ;0 174 x3 = ;0 94 : 6. (C) Reteaua din gura 2.34 foloseste neuroni cu functie de activare bipolara continua ( = 5) si implementeaza o aplicatie de la planul (x1 x2) la segmentul jo1j < 1. Simulati functionarea retelei si tabulati functia o1 (x1 x2 ) pentru jx1 j < 2 5 si jx2 j < 2 5. 7. ^Invatare hebbiana pentru un neuron care este instruit cu: " # " # " # " # " # 1 0 2 1 1 x1 = ;2 x2 = 1 x3 = 3 x4 = ;1 w = ;11 CAPITOLUL 2. CONCEPTE FUNDAMENTALE 50 -1 0,5 1 + f(net) o0 -1 -2 1,5 1 + o1 f(net) -1 1 -4 -4 3,5 + o2 f(net) -1 1 -8 -8 7,5 + -8 o3 f(net) x Figura 2.31: Convertor A/D. -1 1 o1 2 -1 x1 x2 f(net) -1/2 1/2 f(net) 3/4 o2 Figura 2.32: Retea neurala care foloseste neuroni cu functie de activare bipolara continua. si c = 1. Gasiti ponderile nale pentru cazul c^and functia de activare este (a) bipolara binara (b) bipolara continua, = 1. 8. (C) Implementati^nvatarea unui neuron prin regula perceptronului folosind: 2 3 1 0 2 3 1 2 3 0 2 0 0 w1 = 64 1 75 B@ x1 = 64 1 75 d1 = ;1 CA B@ x2 = 64 ;1 75 d2 = 1 CA 0 ;1 ;1 Repetati secventa de instruire (x1 d1 ), (x2 d2 ) p^ana c^and se obtin raspunsurile corecte. Listati valorile netk obtinute. 2.6. EXERCITII 51 -0,966 x1 o1 f(net) -0,259 0,906 x2 0,423 o2 f(net) Figura 2.33: Retea neurala care implementeaza un clasicator. x1 1 f(net) -1 -1 f(net) -1 -1 x2 1 o1 f(net) 1 1 -1 Figura 2.34: Retea neurala care implementeaza o aplicatie de la un plan la o dreapta. 9. (C) Instruiti prin regula delta un neuron folosind = 1, c = 0 25 si 2 3 0 2 3 1 0 2 3 1 1 2 1 w1 = 64 0 75 B@ x1 = 64 0 75 d1 = ;1 CA B@ x2 = 64 ;2 75 d2 = 1 CA ;1 ;1 Se va folosi f 0(net) = 21 (1 ; o2 ). Repetati secventa de instruire (x1 d1), (x2 d2) si studiati comportarea. 1 10. (C) Folositi aceleasi date ca si ^n problema precedenta, aplic^and regula Windrow-Ho. Repetati secventa de instruire. 11. (C) Elaborati un program pentru analiza retelelor feedforward cu doua straturi. Parametrii de intrare sunt: - tipul functiei de activare - , daca este cazul - marimea retelei - vectorii de intrare pentru testarea retelei 12. (C) Implementati algoritmii de ^nvatare pentru un neuron cu cel mult sase intrari. Parametrii de intrare sunt: CAPITOLUL 2. CONCEPTE FUNDAMENTALE 52 - regula (Hebb, perceptron, delta, Windrow-Ho) functia de activare (daca este cazul) datele pentru instruire numarul de pasi pentru instruire (se pot repeta datele). Capitolul 3 Clasicatori pe baza de perceptroni monostrat ^In acest capitol vom formula fundamentele retelelor neurale instruibile, folosite ^n procese de decizie. Functia principala a unui sistem de decizie este luarea deciziilor ^n ceea ce priveste clasa din care face parte pattern-ul de intrare considerat. Arhitecturile discutate ^n acest capitol sunt de tip feedforward, neuronii ind dispusi pe un singur strat. 3.1 Clasicare Una dintre cele mai importante categorii de probleme care poate efectuata de o retea neurala este clasicarea pattern-urilor. Un pattern este descrierea cantitativa a unui obiect, eveniment sau fenomen. Clasicarea se poate referi at^at la pattern-uri spatiale c^at si temporale (ex.: imagini video de vapoare, harti meteo, amprente, caractere, semnale acustice, electrocardiograme etc.). Scopul clasicarii pattern-urilor este de a atribui un obiect zic, eveniment sau fenomen unei clase specicate ^n prealabil. Un sistem de clasicare arata ca ^n gura 3.1. masuratori x1 x2 traductor date extragerea trasaturi clasificator trasaturilor ... clasificator clasa clasa i 0 (x)=1 sau 2 sau ... sau R xn pattern-ul x Figura 3.1: Sistem de clasicare. Trasaturile sunt date comprimate obtinute prin reducerea dimensionalitatii. 53 CAPITOLUL 3. PERCEPTRONI MONOSTRAT 54 ....... 1 2 3 4 5 6 7 8 9 10 x i=0 1112 ....... xi =1 de unde putem2extrage vectorul: 3 x 66 x12 77 x = 664 .. 775 . xn f(t) f(tn) f(t1) f(t2) t t1 t2 tn de unde putem2 extrage3 vectorul: f (t ) 66 f (t12 ) 77 x = 664 .. 775 . f (tn) Figura 3.2: Exemple de codicare. De exemplu, din imaginile receptionate de pe satelitul LANDSAT, sunt necesare doar c^ateva din componentele spectrale. Retelele neurale pot utilizate at^at pentru clasicare c^at si pentru extragerea trasaturilor. ^In continuare, vom reprezenta componentele de intrare ale unui clasicator ca un vector x (g. 3.2). Clasicarea este obtinuta prin implementarea unei functii de decizie i0 , unde i0 (x) 2 f1 2 : : :Rg. Atunci c^and pattern-urile de intrare nu sunt identice cu pattern-urile folosite pentru instruirea clasicatorului, procesul de clasicare se numeste recunoastere. Clasicarea poate descrisa de multe ori ^n termeni geometrici. Orice pattern poate reprezentat printr-un punct ^n spatiul euclidian n-dimensional En numit spatiul pattern-urilor. Un clasicator aplica multimi de puncte din En ^ntr-unul din numerele 1 2 : : : R. Multimile care contin pattern-urile din clasele 1 2 : : : R le vom nota cu H1 H2 : : : HR , respectiv. ^In gura 3.3, n = 2, R = 4 si i0 = j pentru orice x2 Hj , j = 1 2 3 4. Regiunile Hi sunt regiuni de decizie separate^ntre ele prin suprafete de decizie. Presupunem ca pattern-urile de pe suprafetele de decizie nu apartin nici unei clase. ^In spatiul n-dimensional, suprafetele de decizie sunt hipersuprafete (n ; 1) dimensionale. 3.2. FUNCTII DISCRIMINANT 55 x2 H1 (-10,10) H3 (20,10) (4,6) H4 H2 x1 0 H1 Figura 3.3: Regiuni de decizie. 3.2 Functii discriminant Presupunem ca avem o multime nita de pattern-uri n-dimensionale x1 , x2 : : :, xP si cunoastem clasicarea dorita pentru ecare dintre ele. Presupunem ca avem functiile discriminant g1, g2, ..., gR astfel ^nc^at x face parte din clasa i daca si numai daca gi(x) > gj (x) pentru j = 1 2 : : : R si i 6= j: Valorile gi(x) si gj (x) sunt scalare. Conform relatiei de mai sus, ^n regiunea Hi, gi(x) este maxim (g. 3.4). g1(x) 1 g2(x) ... 1 Selector 2 de maxim R clasa i0 ... 2 x pattern gR(x) R Figura 3.4: Clasicator. Daca x se a&a pe suprafata de decizie dintre Hi si Hj , atunci gi(x) ; gj (x) = 0: Pentru cazul c^and R = 2, clasicatorul se numeste dihotomizator. Acest cuv^ant provine din alaturarea cuvintelor grecesti dicha (^n doua) si tomia (taietura). ^In cazul dihotomizatorului, regula de clasicare devine: g(x) > 0: clasa 1 g(x) < 0: clasa 2 CAPITOLUL 3. PERCEPTRONI MONOSTRAT 56 unde g(x) = g1(x) ; g2(x). Functia 8 > g(x) < 0 < ;1 i0 = sgn"g(x)] = > nedenit g(x) = 0 : +1 g(x) > 0 implementeaza un dihotomizator (g. 3.5). Problema gasirii functiilor discriminant este esentiala. Ele pot liniare sau neliniare. pattern x discriminator g(x) comparator g(x) discriminant clasa i0 Figura 3.5: Dihotomizator. Ne vom concentra asupra clasicatorilor ale caror functii discriminant se obtin prin ^nvatare iterativa, cu ajutorul pattern-urilor de instruire. Presupunem ca: 1. Multimea pattern-urilor de instruire si clasicarea lor sunt cunoscute, deci ^nvatarea este supervizata. 2. Functiile discriminant sunt liniare si doar coecientii lor sunt ajustati pe parcursul procesului de ^nvatare. 3.3 Clasicatori liniari Vom discuta ^n detaliu functiile discriminant liniare. ^In acest caz, suprafetele de decizie sunt hiperplane. Consideram initial ca R = 2. Centrii P1 , P2 ale clusterelor care formeaza cele doua clase sunt vectorii x1 si x2 , respectiv (g. 3.6). Punctele prototip P1 si P2 pot interpretate ca centrii de greutate ale clusterelor respective. Vom prefera ca hiperplanul de decizie sa contina mijlocul segmentului care conecteaza P1 si P2 si sa e perpendicular pe vectorul x1 ; x2 . Ecuatia hiperplanului de decizie este atunci: g(x) = (x1 ; x2 )tx + 12 kx2 k2 ; kx1k2 : ^In general, ecuatia lui g(x) este de forma: w1x1 + w2x2 + : : : + wnxn + wn+1 = 0 sau: wtx + wn+1 = 0 sau: " w wn+1 #t " # x = 0 1 3.3. CLASIFICATORI LINIARI 57 x2 g(x)>0 x1-x2 1_ clasa 1 P1 x1 | 1 g(x x1 P2 x2 )=0 -1 | 3 2 izie dec la erp hip e nd clasa 2 Figura 3.6: Separarea a doua clase printr-un hiperplan de decizie. 2 66 unde: w = 66 4 w1 w2 ... wn 3 77 77 5 este vectorul ponderilor. ^In cazul precedent, w = x1 ; x2 wn+1 = 12 kx2 k2 ; kx1k2 : Deci, daca punctele prototip P1 si P2 sunt cunoscute, se deduce si g(x). Functiile discriminant liniare pot folosite si daca avem mai mult dec^at doua clase. Daca avem R clase, doua c^ate doua separabile, atunci vor p^ana la R(R2;1) hiperplane de decizie. Sa presupunem ca folosim criteriul distantei minime pentru a clasica patternuri si ca avem R clase. Fiecare clasa este reprezentata de un punct prototip P1 P2 : : : PR reprezentat de un vector x1 : : : xR. Distanta euclidiana dintre un pattern de intrare x si pattern-ul prototip xi este q kx ; xi k = (x ; xi )t(x ; xi ): Clasicatorul calculeaza distantele dintre x si xi , i = 1 2 : : : R, aleg^and apoi clasa pentru care distanta este minima. Avem: kx ; xi k2 = xt x ; 2xtix + xtixi i = 1 2 : : : R: De fapt, cautam xi pentru care se obtine max(xtix ; 12 xti xi ). Putem lua atunci: gi(x) = xti x ; 12 xti xi i = 1 2 : : : R: CAPITOLUL 3. PERCEPTRONI MONOSTRAT 58 Functia discriminant are forma gi(x) = witx + win+1 i = 1 2 : : : R unde: wi = xi win+1 = ; 1 xtixi i = 1 2 : : : R: 2 Clasicatorii care folosesc criteriul distantei minime pot considerati clasicatori liniari si ei se numesc uneori masini liniare. Un clasicator liniar arata ca ^n gura 3.7. w 11 w12 ... 1 w1,n+1 + g 1(x) 1 w1 selector de maxim ... x pattern i0 raspuns w R1 ... w + g R(x) R 1 R,n+1 wR ponderi discriminanti Figura 3.7: Clasicator liniar. Sa observam ca suprafata de decizie Sij dintre regiunile contigue (alaturate, vecine) Hi si Hj este un hiperplan: gi(x) ; gj (x) = 0 Daca denim: obtinem: sau: witx + win+1 ; wjt x ; wjn+1 = 0: " # y = x1 gi(y) = wit y: Sa presupunem ca avem o multime H de pattern-uri pe care o ^mpartim ^n submultimile H1 H2 : : : HR . Daca o masina liniara poate clasica pattern-urile din Hi ca fac^and parte din clasa i, pentru i = 1 2 : : : R, atunci multimile Hi sunt liniar separabile. Mai formal, daca exista R functii liniare pentru care: gi(x) > gj (x) pt. x 2 Hi i = 1 2 : : : R j = 1 2 : : : R i 6= j 3.4. PERCEPTRONUL DISCRET CA DIHOTOMIZATOR LINIAR 59 x1 1 _ x2 | 1 0 Figura 3.8: Pattern-uri neseparabile liniar. atunci multimile Hi sunt liniar separabile. ^In gura 3.8 avem un exemplu de pattern-uri liniar neseparabile care pot modelate prin functia de paritate unipolara XOR(x1 x2 ) = x1 x2 unde este operatorul OR exclusiv. 3.4 Utilizarea perceptronului discret ^n instruirea unui dihotomizator liniar Am vazut ^n sectiunea precedenta cum se pot determina coecientii discriminantilor liniari (ponderile) din informatia a priori asupra pattern-urilor si a apartenentei lor la diferite clase. ^In aceasta sectiune, ponderile se vor obtine printr-un proces de ^nvatare. Pattern-urile de instruire x1 x2 : : : xP sunt prezentate masinii liniare (g. 3.9) ^mpreuna cu raspunsurile corecte. Aceasta secventa de pattern-uri se numeste secventa de instruire. Raspunsul este dat de catre supervizor, iar clasicatorul ^si modica parametrii pe baza ^nvatarii iterative supervizate. w1 y1=x 1 yn=xn yn+1=1 comparator w2 ... y2=x2 wn + g(y) i0 =1 sau -1 o=i0 wn+1 d-o - + + d Figura 3.9: Masina liniara. Fie R = 2, deci analizam cazul unui dihotomizator (foloseste doua clase). CAPITOLUL 3. PERCEPTRONI MONOSTRAT 60 Suprafata de decizie ^n spatiul En are ecuatia: wtx + wn+1 = 0 sau: wty = 0 y 2 En+1: Aceasta ecuatie descrie un hiperplan care trece prin origine si este perpendicular pe vectorul y, iar y este ^ndreptat catre semispatiul pentru care wty > 0, deci catre semispatiul unde se a&a clasa 1. ^In gura 3.10 este dat un exemplu ^n care pattern-urile y1, y2 ,...,y5 sunt deplasate de la origine, ^n paralel, de-a lungul hiperplanelor lor de decizie. Este umbrita regiunea din spatiul ponderilor care satisface conditia de separabilitate liniara a claselor 1 si 2. w2 pattern-ul 2 (clasa 2) y1 5 pattern-ul 4 (clasa 1) pattern-ul 3 (clasa 2) w w ty1 >0 pattern-ul 1 (clasa 1) y4 w1 4 y5 1 y2 pattern-ul 5 (clasa 2) y3 3 2 Figura 3.10: Reprezentarea unor suprafete de decizie ^n spatiul ponderilor. Sa presupunem acum ca ponderile initiale sunt w1. Discutam despre patternul y1 din clasa 1. Conform gurii 3.11, y1 nu este clasicat corect, deoarece w1ty1 < 0. Ajustam vectorul w astfel ^nc^at wty1 sa creasca c^at mai rapid, deci ^n directia gradientului. Gradientul este: rw (wty1) = y1: Deci, atunci c^and pattern-ul y1 este clasicat gresit, vom ajusta ponderile astfel: w0 = w1 + cy1 3.4. PERCEPTRONUL DISCRET CA DIHOTOMIZATOR LINIAR 61 w2 w ty1 >0 w ty1 =0 w ty1 <0 (clasa 1) y1 w1 w1 Figura 3.11: Ajustarea ponderilor pentru un pattern din clasa 1. unde c > 0 este incrementul de corectie. Repet^and ajustarea de c^ateva ori, indiferent de valoarea lui c, ajungem cu ponderile ^n regiunea corecta, unde wty1 > 0. Sa presupunem ca ponderile initiale sunt w1. De data aceasta, discutam despre pattern-ul y1 din clasa 2 (g. 3.12). ^In acest caz, y1 nu este clasicat corect, deoarece w1ty1 > 0. Descrestem c^at mai rapid pe wty1 , deci ^n directia gradientului negativ: w0 = w1 ; cy1: Procedura de instruire supervizata este, asadar: w0 = w1 cy1 unde "+" este valabil c^and se clasica gresit un pattern din clasa 1, iar "-" este valabil c^and se clasica gresit un pattern din clasa 2. Atunci c^and pattern-ul este clasicat corect, nu se face nici o corectie. Procedura se repeta iterativ pentru toate pattern-urile de instruire. Vom vedea ca aceasta formula este aceeasi cu regula de ^nvatare a perceptronului discret (sectiunea 3.8). Sa rezumam clasicarea pattern-urilor liniar separabile apartin^and la doar doua clase. Se cauta un vector w astfel ^nc^at: wty > 0 pentru x 2 H1 : wty < 0 pentru x 2 H2 Perceptronul se instruieste pornind cu un vector al ponderilor care este ales arbitrar si cu un increment de corectie ales, de asemenea, arbitrar. Se ajunge la un vector w = wk , k0 ind numarul iteratiilor necesare pentru instruire. ^In continuare, w = wk = wk +1 = : : : : Se poate demonstra urmatoarea teorema: 0 0 0 62 CAPITOLUL 3. PERCEPTRONI MONOSTRAT w2 w1 w ty1 >0 w ty1 =0 w ty1 <0 (clasa 2) y1 w1 Figura 3.12: Ajustarea ponderilor pentru un pattern din clasa 2. Teorema de convergent a a perceptronului. Un clasicator pen- tru doua clase liniar separabile de pattern-uri este ^ntotdeauna instruibil ^ntr-un numar nit de iteratii. Vom discuta mai detaliat aceasta teorema ^n sectiunea urmatoare. Valoarea lui k0 depinde de incrementul de corectie si de secventa de patternuri utilizate pentru instruire. Regula w0 = w1 cy1 devine ^n cazul instruirii percepronului discret: wk+1 = wk + 2c (dk ; ok )yk unde k este numarul iteratiei, ok este iesirea actuala iar dk reprezinta iesirea dorita pentru vectorul yk aplicat la intrare. Daca dk = ok , nu se ajusteaza wk . Daca dk = 1 si ok = ;1, atunci: wk+1 = wk + cyk : Daca dk = ;1 si ok = 1, atunci: wk+1 = wk ; cyk : Algoritmul de instruire a unui perceptron discret care poate folosit apoi ca dihotomizator liniar este urmatorul: Se dau P perechi (x1 d1 ), (x2 d2),...,(xP dP ), unde xi este un hvector deit n elemente, i = 1 2 : : : P . Se deneste vectorul y1 = xi 1 , i = 1 2 : : : P . 1. Se alege c > 0. 3.5. PERCEPTRONUL CONTINUU CA DIHOTOMIZATOR LINIAR 63 2. Se initializeaza vectorul w de n + 1 elemente cu valori aleatoare si mici. Se fac urmatoarele initializari: k 1, i 1 si E 0. 3. y yi , d di , o sgn(wt y): 4. w w + 12 c(d ; o)y: 5. Se calculeaza eroarea patratica cumulata: E E + 21 (d ; o)2: 6. if i < P then i i + 1, k k + 1, go to 3. 7. if E > 0 then E 0, i 1, go to 3. else "s-a terminat instruirea", write w, k. 3.5 Utilizarea perceptronului continuu ^n instruirea unui dihotomizator liniar Utilizarea perceptronului continuu are doua avantaje: 1. Un control mai n asupra procedurii de instruire. 2. Se lucreaza cu caracteristici diferentiabile ale comparatorului, ceea ce permite calcularea gradientului erorii. ... y1 =x1 o yn =xn yn+1 =1 E generator de eroare d Figura 3.13: Modelul folosit la instruirea unui perceptron continuu folosit ca dihotomizator liniar. Problema modicarii ponderilor se rezolva foarte elegant prin minimizarea functiei care masoara eroarea de clasicare, iar aceasta minimizare se realizeaza prin folosirea gradientului (g. 3.13). Se porneste de la un vector w arbitrar si se calculeaza rE (w), gradientul functiei eroare curente. Urmatoarea valoare a lui w este obtinuta ^ndrept^andu-ne ^n directia gradientului negativ de-a lungul suprafetei multidimensionale a erorii. Directia gradientului negativ este cea a descresterii cea mai rapide. Luam deci: wk+1 = wk ; rE (wk ) 64 CAPITOLUL 3. PERCEPTRONI MONOSTRAT unde este constanta de ^nvatare, o valoare pozitiva. Eroarea de clasicare care trebuie minimizata este: Ek = 21 (dk ; ok )2 h i2 = 12 dk ; f (wktyk ) : Obtinem (pentru simplicarea scrierii, omitem temporar indicii k): rE (w) = ;(d ; o)f 0(net)y unde net = wty, sau: @E = ;(d ; o)f 0(net)y i = 1 2 : : : n + 1 i @wi care este, de fapt, regula delta de ^nvatare pentru perceptronul continuu. Daca functia de activare este f (net) = 1 + 2e;net ; 1 ^n care luam = 1, atunci ;net f 0(net) = (1 +2ee;net )2 : Aplicam identitatea 2e;net = 1 (1 ; o2) (1 + e;net)2 2 care se verica lu^and o = f (net) si obtinem: rE (w) = ; 12 (d ; o)(1 ; o2 )y: Rezulta: wk+1 = wk + 12 (dk ; ok )(1 ; ok 2)yk : Aceasta regula corecteaza ponderile ^n aceeasi directie ca si regula wk+1 = wk + 2c (dk ; ok )yk din cazul perceptronului discret. Difera marimea vectorului de corectie a ponderilor. Ambele reguli implica adunarea sau scaderea unei fractiuni din y. Diferenta 2 k esent iala este prezenta factorului moderator 1 ; o . Acest factor este 0 < 1 ; 2 k o < 1. Atunci c^and raspunsurile sunt eronate, avem urmatoarea proprietate: pentru net apropiat de 0, factorul de corectie este mai mare dec^at daca net este departe de 0. Aceasta contribuie la stabilitatea procesului de ^nvatare. 3.5. PERCEPTRONUL CONTINUU CA DIHOTOMIZATOR LINIAR 65 O alta diferenta semnicativa este ca algoritmul pe baza perceptronului discret duce ^ntotdeauna la o solutie (daca solutia exista). Acest lucru nu este garantat ^n cazul perceptronului continuu pentru orice valoare a lui . Deoarece valorile ponderilor se modica de la un pas la altul, nu mergem de fapt exact ^n directia lui ;rE (w). Pentru mic, putem considera ca mergem ^n aceasta directie. Pentru o valoare a lui sucient de mica, se ajunge la un w care ^l minimizeaza pe E (w). Nu avem o teorema a perceptronului de tip continuu care sa garanteze convergenta catre o solutie. Algoritmul de instruire a unui perceptron continuu pentru utilizarea sa ca dihotomizator liniar este urmatorul: Se dau P perechi (x1 d1), (x2 d2),...,(xP dP ), unde xi este un vector dei n elemente, i = 1 2 : : : P . Se deneste vectorul y1 = h xi 1 t , i = 1 2 : : : P . 1. Se aleg > 0, = 1 si Emax > 0. 2. Se initializeaza vectorul w de n + 1 elemente cu valori aleatoare si mici. Se fac urmatoarele initializari: k 1, i 1 si E 0. 3. y yi, d di , o f (wt y), care este functia de activare continua. 4. w w + 12 (d ; o)(1 ; o2 )y: 5. Se calculeaza eroarea patratica cumulata: E E + 21 (d ; o)2: 6. if i < P then i i + 1, k k + 1, go to 3. 7. if E Emax then E 0, i 1, go to 3. else "s-a terminat instruirea", write w, k, E . ^In acest capitol am presupus p^ana acum ca yn+1 = +1. Fie acum un dihotomizator bazat pe perceptron, ^n care yn+1 = ;1 (g. 3.14). w1 ... y1 =x1 yn =xn yn+1 =1 f(net) wn wn+1 Figura 3.14: Perceptron instruit ca dihotomizator. Ca urmare a procesului de instruire, obtinem acelasi rezultat, doar semnul lui wn+1 se inverseaza. Putem lua deci yn+1 = +1 sau yn+1 = ;1. CAPITOLUL 3. PERCEPTRONI MONOSTRAT 66 Sa presupunem, ^n cazul dihotomizatorului bazat pe perceptronul continuu, ca luam yn+1 = ;1. Atunci: net = wt x ; wn+1: Luam T = wn+1. Avem: ( f (net) > 0 pentru wtx > T : f (net) < 0 pentru wtx < T Functia de activare f cu argumentul wtx este cea din gura 3.15. f(net) 1_ net T=wn+1 -1 Figura 3.15: Functia de activare folosita de un perceptron instruit ca dihotomizator. Procesul de instruire accepta pentru yn+1 orice valoare constanta. Lu^and ^nsa yn+1 = ;1, wn+1 devine egal cu pragul T al neuronului. De acum ^ncolo, vom considera yn+1 = ;1 si wn+1 = T , ^n cazul ^n care nu specicam altfel. 3.6 Mai multe despre teorema de convergenta a perceptronului Vom discuta ^n aceasta sectiune mai ^n detaliu acest important rezultat teoretic. Sa ne reamintim enuntul teoremei: T1. Un clasicator pentru doua clase liniar separabile de pattern-uri este ^ntotdeauna instruibil ^ntr-un numar nit de iteratii. Iteratiile se refera la relatia: wk+1 = wk + 2c (dk ; ok )yk 3.6. TEOREMA DE CONVERGENTA A PERCEPTRONULUI 67 adica, daca: dk 6= ok ) wk+1 = wk cyk : O alta varianta a acestei teoreme este cea formulata de Rosenblatt (1957) si de Minsky si Papert (1969): T2. Daca pattern-urile de intrare sunt din f;1 0 +1gn, atunci un perceptron ^nvata ^ntr-un numar nit de pasi sa clasice corect pattern-urile, presupun^and ca acestea sunt liniar separabile. Trebuie sa notam ca: 1. Ponderile initiale pot numere reale oarecare. 2. Nu ^l putem determina pe k0 deoarece depinde de w , unde w este un vector solutie pentru ponderi. Deci ar trebui sa ^l cunoastem a priori pe w pentru a determina numarul de iteratii. De asemenea, k0 depinde de w1. Ne punem acum problema ce se ^nt^ampla c^and aplicam algoritmul perceptronului asupra a doua clase de pattern-uri care nu sunt liniar separabile. Se poate demonstra urmatoarea teorema: T3. Pentru o secventa nita de pattern-uri de instruire cu n componente din f;1 0 +1gn, algoritmul de instruire a perceptronului va executa, ^ntr-un numar nit de pasi, exact una dintre urmatoarele doua variante: 1. Produce un vector al ponderilor pentru care perceptronul clasica corect toate pattern-urile de instruire, daca si numai daca aceste pattern-uri sunt liniar separabile. 2. Paraseste si reviziteaza un vector al ponderilor, daca si numai daca pattern-urile de instruire nu sunt liniar separabile. Se pot face acum urmatoarele observatii: 1. Rezulta astfel o procedura de testare a liniar separabilitatii. 2. Nu se cunoaste o limita superioara pentru c^at ar dura acest test. ^In nal, se poate demonstra urmatoarea teorema: T4. Daca pattern-urile de instruire au componente reale, algoritmul de instruire a perceptronului poate sa nu convearga catre o solutie, chiar daca pattern-urile sunt liniar separabile (constanta de ^nvatare ind oarecare). Cu alte cuvinte, atunci c^and pattern-urile de instruire au componente reale oarecare, alegerea unei constante de ^nvatare adecvate devine critica si aceasta constanta nu mai poate un numar real pozitiv oarecare. 68 CAPITOLUL 3. PERCEPTRONI MONOSTRAT 3.7 Instruirea unui clasicator liniar prin utilizarea unei retele monostrat de perceptroni Fie R > 2 clase doua c^ate doua liniar separabile. Exista deci R functii discriminant liniare astfel ^nc^at: gi(x) > gj (x) pentru i j = 1 2 : : : R i 6= j 8x 2 Hi: Denim vectorul ponderilor h i wq = wq1 wq2 : : : wqn+1 t : Sa presupunem ca un pattern y este prezentat unui clasicator liniar. Daca wity > wjt y, j = 1 2 : : : R, i =6 j , clasicarea este corecta si w1 0 = w1 w2 0 = w2 ... wR 0 = wR sunt valorile ajustate ale vectorilor ponderilor. Daca avem wity wmt y pentru un m 6= i, atunci: wi0 = wi + cy wm 0 = wm ; cy wk 0 = wk pentru k = 1 2 : : : R k 6= i m sau: wij 0 = wij + cyj pentru j = 1 2 : : : n + 1 wmj 0 = wmj + cyj pentru j = 1 2 : : : n + 1 wkj 0 = wkj pentru k = 1 2 : : : R k 6= i m j = 1 2 : : : n + 1 Acest clasicator are la iesire un selector de maxim. Sa ^ncercam acum sa ^nlocuim selectorul de maxim dintr-un clasicator liniar cu R perceptroni discreti (g. 3.16). Daca x 2 Hi, trebuie ca oi = 1 si oj = ;1 pentru j = 1 2 : : : R si j 6= i. Eliminam astfel selectorul de maxim. Ajustarea ponderilor se face astfel: k wik+1 = wik + c2 dki ; oki yk pentru i = 1 2 : : : R: Aceasta este regula de instruire a clasicatorului bazat pe o retea de perceptroni discreti. ^In relatia de mai sus, di si oi se refera la al i-lea perceptron. Teorema perceptronului se poate generalizaa si demonstra si pentru cazul cu R > 2 clase doua c^ate doua liniar separabile. Algoritmul de instruire a unei retele monostrat de perceptroni folosita ca si clasicator liniar este urmatorul: 3.8. EXEMPLE 69 ... ... x -1 w11 w12 w1,n+1 w21 w22 w2,n+1 comparator 1 + comparator 2 + comparator R o1 o2 ... + ... wR1 wR2 wR,n+1 oR Figura 3.16: Clasicator liniar cu R clase. Se dau perechile (x1 d1),... ,(xP dP ), unde xi este un h vector idet R elemente si i = 1 2 : : : P . Se denesc vectorii yi = xi ;1 , i = 1 2 : : : P . 1. Se alege c > 0, ca ^n cazul perceptronului discret. 2. Se initializeaza matricea W de R (n + 1) cu valori aleatoare si mici. Se initializeaza k 1, p 1 si E 0. 3. y yp, d dP , oi sgn(wity), pentru i = 1 2 : : : R, unde wi este linia i din matricea W. 4. wi wi + 12 c(di ; oi )y, pentru i = 1 2 : : : R, unde i reprezinta elementul al i-lea din vectorul d. 5. E 12 (di ; oi )2 + E , i = 1 2 : : : R. 6. if i < P then i i + 1, p p + 1, go to 3. 7. if E Emax then E 0, i 1, go to 3. else "s-a terminat instruirea", write w, k, E . Putem folosi si o retea de perceptroni de tip continuu (g. 3.17). ^In acest caz, ajustarea ponderilor se face astfel: wik+1 = wik + 12 (dki ; oki ) 1 ; oki 2 yk pentru i = 1 2 : : : R: Asupra acestei formule si a retelei de perceptroni de tip continuu vom discuta pe larg ^n capitolul urmator. 3.8 Exemple Exemplu de construire a unui clasicator liniar Avem urmatoarele pattern-uri (3.18): " # " # " # 10 2 x1 = 2 x2 = ;5 x3 = ;55 CAPITOLUL 3. PERCEPTRONI MONOSTRAT 70 ... o1 ... x -1 w11 w12 w1,n+1 ... wR1 wR2 wR,n+1 oR Figura 3.17: Retea de perceptroni de tip continuu. cu n = 2 si R = 3. Folosim formula wi = xi win+1 = ; 12 xti xi i = 1 2 : : : R: si obtinem ponderile: 2 3 2 3 2 3 10 2 ; 5 w1 = 64 2 75 w2 = 64 ;5 75 w3 = 64 5 75 : ;52 ;14 5 ;25 Din formula: gi(x) = witx + wii+1 i = 1 2 : : : R obtinem functiile discriminant g1(x) = 10x1 + 2x2 ; 52 g2(x) = 2x1 ; x2 ; 14 5 g3(x) = ;5x1 + 5x2 ; 25: Din wit x + win+1 ; wjt x ; wjn+1 = 0 sau din gi(x) ; gj (x) = 0, obtinem: S12 : 8x1 + 7x2 ; 37 5 = 0 S13 : ;15x1 + 3x2 + 27 = 0 S23 : ;7x1 + 10x2 ; 10 5 = 0: 3.8. EXEMPLE 71 x2 S13 P3 (-5,5) H1 H3 S 123 P1 (10,2) x1 S23 S12 P2 (2,-5) H2 Figura 3.18: Suprafetele de decizie pentru un clasicator liniar. S123 = (2 337 2 686). Exemplu de instruire a unui dihotomizator cu ajutorul unui perceptron discret Avem urmatoarele patru pattern-uri si raspunsuri dorite pentru ecare dintre ele: Clasa 1: x1 = 1 x3 = 3 d1 = d3 = 1 Clasa 2: x2 = ;0 5 x4 = ;2 d2 = d4 = ;1: Pattern-urile extinse sunt: " # " # " # " # 1 ; 0 5 3 y1 = 1 y2 = 1 y3 = 1 y4 = ;12 : h it Fie ponderile initiale w1 = ;2 5 1 75 alese arbitrar. Regula w0 = w cy devine ^n cazul perceptronului: h i %wk = c dk ; sgn(wktyk ) yk : 2 Alegem c = 1. Pasul 1. Aplicam y1 h i " 1 #! o1 = sgn ;2 5 1 75 1 = ;1 d1 ; o1 ="2 # ; 1 5 2 1 w = w + y1 = 2 75 : CAPITOLUL 3. PERCEPTRONI MONOSTRAT 72 x1 x2 1 x1 x2 1 x1 x2 1 10 2 g1(x) + 1 -52 2 -5 + -14,5 g2(x) i 0 =1 sau 2 sau 3 selector 2 de maxim -5 5 + g3(x) 3 -25 Figura 3.19: Clasicatorul liniar care implementeaza regiunile de decizie din gura 3.18. w1 y1 =x1 comparator + net w2 y2 =1 - d-o + + d Figura 3.20: Perceptron discret folosit ca un clasicator instruibil. Pasul 2. Aplicam y2 o2 = sgn h ;1 5 2 75 i " ;0 5 #! 1 =1 d2 ; o2 = ;2 " # ; 1 3 2 w = w + y2 = 1 75 : Pasul 3. Aplicam y3 o3 = ;1 d3 ; o3 = 2 " # 2 4 3 w = w + y3 = 2 75 : Pasul 4. Aplicam y4 . Dupa citirea lui y4 , nu se modica ponderile. Reciclam secventa y1, ..., y4 deoarece nu stim daca perceptronul a reusit sa ^nvete sa clasice corect. 3.8. EXEMPLE 73 Pasul 5. Aplicam y1 w5 = w4 : Pasul 6. Aplicam y2 w6 = w5 : Pasul 7. Aplicam y3 h i w7 = 2 5 1 75 t : Pasul 8. Aplicam y4 w8 = w7 : Reciclam din nou si obtinem: h w10 = w9 = w8 = w7 i w11 = 3 0 75 care sunt ponderile nale: Exemplu de instruire a unui dihotomizator liniar cu ajutorul unui perceptron continuu Reluam exemplul din cazul discret. Valoarea erorii la pasul k este: 2 Ek = 21 dk ; 1 + e2;netk ; 1 unde netk = wkty. Lu^and yk = yk , pentru k = 1 2 3 4, obtinem: 2 2 1 E1 (w) = 2 1 ; 1 + e;(w +w ) ; 1 : Consideram = 1 si obtinem: 2 E1 (w) = : w "1 + e +w ]2 La urmatorii pasi obtinem: 2 E2(w) = "1 + e05w ;w ]2 2 E3 (w) = "1 + e3w +w ]2 2 E4(w) = : "1 + exp(2w1 ; w2)]2 Luam = 0 5 si facem calculele conform algoritmului. Deoarece o nu poate niciodata 1, vom lua de obicei pentru d valorile -0,9 si 0,9. 1 1 2 2 1 1 2 2 CAPITOLUL 3. PERCEPTRONI MONOSTRAT 74 Exemplu de instruire a unui clasicator reprezentat ca retea de perceptroni discreti Reluam clasicatorul liniar (R = 3) construit deja pe baza distantei minime. Sunt usor de calculat valorile functiilor discriminant ^n x1 , x2 si x3: x1 x2 x3 g1(x) 52 -42 -92 g2(x) -4,5 14,5 -49,5 g3(x) -65 -60 25 Raspunsurile maxime se obtin, desigur, pe diagonala. Construim (nu prin instruire) reteaua de perceptroni corespunzatoare acestui clasicator (g. 3.21). 10 2 x1 x2 -5 2 5 50 -1 -5 12,5 23 + comparator 1 o1 + comparator 2 o2 comparator R oR + Figura 3.21: Retea de perceptroni. Ar trebui sa avem w13 = 52, w23 = 14 5 si w33 = 25 ca valori de prag. Putem scadea aceste praguri cu 2 fara ca sa modicam raspunsurile clasicatorului. Vom construi acum direct clasicatorul prin instruirea retelei de perceptroni. Alegem aleator vectorii initiali: 2 3 2 3 2 3 1 0 1 6 7 6 7 6 1 1 1 w1 = 4 ;2 5 w2 = 4 ;1 5 w3 = 4 3 75 : 0 2 ;1 Fie c = 1. Cu "*" marcam raspunsurile incorecte. Pasul 1. (y1) 2 3 6 10 7 sgn 1 ;2 0 4 2 5 = 1 2 ;1 3 10 sgn 0 ;1 2 64 2 75 = ;1 2 ;1 3 10 sgn 1 3 ;1 64 2 75 = 1 ;1 3.8. EXEMPLE 75 2 3 2 3 2 3 1 10 ;9 w12 = w11 w22 = w21 w32 = 64 3 75 ; 64 2 75 = 64 1 75 : ;1 Pasul 2. (y2) ;1 0 2 3 6 2 7 sgn 1 ;2 0 4 ;5 5 = 1 2 ;1 3 2 sgn 0 ;1 2 64 ;5 57 = 1 2 ;1 3 2 sgn ;9 1 0 64 ;5 75 = ;1 ;1 2 3 2 3 2 3 1 2 ;1 7 6 7 6 7 6 3 w1 = 4 2 5 ; 4 ;5 5 = 4 3 5 w23 = w22 w33 = w32: ;1 0 Pasul 3. (y3) 1 sgn (w13t y3) = 1 sgn (w23t y3) = ;1 sgn (w33t y3) = 1 2 3 4 w14 = 64 ;2 75 w24 = w23 w34 = w33: 2 Se ^ncheie primul ciclu, apoi reluam secventa etc. Se modica doar ponderile primului perceptron. 2 3 2 3 2 3 5 2 7 w15 = w14 w16 = 64 3 75 w17 = 64 ;2 75 w18 = w17 w19 = 64 3 75 : 3 4 5 Obtinem o retea de perceptroni pentru care: o1 = sgn(5x1 + 3x2 ; 5) o2 = sgn(;x2 ; 2) o3 = sgn(;9x1 + x2 ): S-au produs regiuni deh indecizie (^in g 3.22, sunt zonele umbrite). De exemt plu, pentru Q avem o = 1 1 ;1 : Pe de alta parte, pattern-uri ca acest Q nu au fost utilizate la instruire. CAPITOLUL 3. PERCEPTRONI MONOSTRAT 76 x2 5x1 +3x2 -5=0 -9x 1+x 2=0 P3 (-5,5) o=[+1 -1 -1] o=[-1 -1 +1] t t P 1 (10,2) x1 -x 2 -2=0 Q o=[+1 +1 -1]t P2 (2,-5) o=[-1 +1 -1] t Figura 3.22: Regiuni de indecizie. 3.9 Exercitii 1. (C) Implementati algoritmul de instruire ah unui dihotomizator cu ajutorul it unui perceptron discret lu^and c = 1, w = 0 0 0 0 si h it h it h it clasa 1, x: h 0 8 0 5 0 i h 0 9 0 7 0 3 i h 1 0 8 0 5 i t t t 0 2 0 1 1 3 0 2 0 7 0 8 : clasa 2, x: 0 0 2 0 3 ^Incercati si alte valori pentru c. 1 2 3 1 2 3 4 5 6 4 5 6 7 8 9 7 8 9 [ 1 0 0 1 0 0 1 1 1 ] Figura 3.23: Caracterele tiparite L si I folosite al instruirea unui dihotomizator. 3.9. EXERCITII 77 2. (C) Implementati algoritmul de instruire a unui dihotomizator cu ajutorul unui perceptron continuu ^n conditiile problemei precedente. ^Incercati diferite valori pentru constanta de ^nvatare. 3. Prin algoritmul de instruire a unui clasicator liniar cu trei clase reprezentat printr-o retea de trei perceptroni discreti, s-a ajuns ca ^n trei pasi sa se termine instruirea. Se considera c = 1. h i Pasul 1. (x1). Se ajusteaza w11 = w21 = w31 = 0 0 0 t . Pasul 2. (x2). Se ajusteaza w32. Pasul 3. (x3). Se ajusteaza w23. ^In nal, h i h i h i w14 = 1 3 ;1 t w24 = 5 ;1 ;2 t w34 = 1 ;1 2 t : Gasiti pattern-urile x1 , x2 si x3. 4. (C) Implementati algoritmul de instruire a unui clasicator liniar reprezentat ca retea de perceptroni discreti folosind c = 1 si urmatoarele pattern-uri de instruire: h it i0 = 1 pentru x: h 1 0 0 i t i0 = 2 pentru x: h 1 0 1 i t i0 = 3 pentru x: h 1 1 0 i t i0 = 4 pentru x: 0 0 0 h it 1 1 0 h it 1 1 1 h it 0 1 1 h it 0 0 1 : Reprezentati suprafetele de decizie rezultate. 5. Proiectati si instruiti un clasicator pentru caracterele tiparite L si I (g. 3.23). Folositi un perceptron discret. Ce se ^nt^ampla daca literele sunt distorsionate? Rezultat: Apare indecizia. Ar trebui sa instruim perceptronul si cu aceste litere distorsionate. 78 CAPITOLUL 3. PERCEPTRONI MONOSTRAT Capitolul 4 Retele neurale feedforward multistrat Pentru pattern-uri de instruire care nu sunt liniar separabile, reteaua neurala introdusa ^n capitolul 3 trebuie modicata. Modicarea se poate face astfel: - e prin utilizarea unor functii discriminant neliniare (de ex. liniare pe portiuni) - e printr-o retea multistrat. Alegem ultima varianta. ^In acest caz, ecare strat este compus dintr-o retea care se bazeaza pe conceptul de functie discriminant liniara. Retelele multistrat pot implementa suprafete de decizie arbitrare. ^In completare la capitolul 3, se pot rezolva astfel multe alte aplicatii: aproximarea functiilor, recunoasterea caracterelor scrise, recunoasterea vorbirii, sisteme expert, generarea traiectoriilor etc. Retelele neurale multistrat sunt ^n prezent cele mai rasp^andite arhitecturi. ^In acest capitol, vom studia retelele neurale multistrat instruibile. 4.1 Clasicarea pattern-urilor liniar neseparabile Fie doua multimi de pattern-uri Y1 si Y2. Daca nu exista un vector w al ponderilor astfel ^nc^at: yt w > 0 pentru orice y 2 Y1 yt w < 0 pentru orice y 2 Y2 atunci Y1 si Y2 sunt liniar neseparabile. Vom presupune ca pattern-urile din Y1 si Y2 sunt vectori mariti cu o componenta. Sa presupunem pentru ^nceput ca doua multimi de pattern-uri H1 si H2 trebuie clasicate ^n doua categorii (g. 4.1). Aceasta clasicare se poate implementa ca ^n gura 4.2. 79 80 CAPITOLUL 4. RETELE NEURALE FEEDFORWARD MULTISTRAT clasa 1 clasa 2 3 D C E A 1 B 2 Figura 4.1: Doua multimi de pattern-uri care trebuie clasicate ^n doua categorii. Fiecare dintre cele sapte compartimente (inclusiv A,...,E) sunt aplicate ^ntrunul din v^arfurile cubului, ^n spatiul o1o2 o3 (spatiul o). Se observa ca ^n spatiul imagine o, pattern-urile din cele doua clase sunt usor separabile printr-un plan, de exemplu prin planul o1 + o2 + o3 = 0. Perceptronul cu intrarile o1, o2, o3 este un dihotomizator liniar: ( o1 + o2 + o3) > 0 : clasa 1 o4 = sgn( sgn(o1 + o2 + o3) < 0 : clasa 2 : 4.2 Regula de ^nvatare delta pentru o retea de neuroni monostrat Fie o retea monostrat de perceptroni de tip continuu (g. 4.3) ^n care daca yJ = ;1, atunci wkJ , k = 1 2 : : : K sunt chiar valorile pragurilor celor K neuroni. ^In aceasta retea, o = ; "Wy], unde: 2 66 y = 66 4 y1 y2 ... yJ 3 2o 77 66 o12 77 o = 66 .. 5 4 . oK 3 2 w w ::: w 3 1J 77 66 w1121 : :12: 77 77 W = 66 .. 77 5 4 . 5 wK 1 : : : wKJ ARE DELTA 4.2. REGULA DE ^INVAT 81 o3 (-1,-1, 1) + comparator 1 o1 + comparator 2 o2 + comparator 3 o3 x 1 A (-1, 0, 1) C (-1, 1, 1) (1,-1, 1) B o4 comparator 4 + (1, 1, 1) (-1, 1, 0) (1,-1, 0) 0 transformare pattern-imagine imagine liniar separabila -1 D (-1,-1,-1) o2 (-1, 1,-1) (1,-1,-1) (1, 1,-1) E o1 (b) (a) Figura 4.2: (a) Clasicator monostrat (b) Reprezentarea pattern-urilor din gura 4.1 ^n spatiul imagine o. 1 w11 y1 ... ... wK1 wkj yj ok ... ... yJ o1 wk1 K wKJ oK Figura 4.3: Retea monostrat de perceptorni de tip continuu. Prin denitie, 2 f () 0 : : : 0 3 66 0 f () : : : 0 77 77 : ;"] = 66 ... 4 5 0 0 : : : f () 3 d1 7 ... 7 : 5 dK este raspunsul dorit. Generalizam expresia erorii: K 2 X 1 Ep = 2 dpk ; opk = 12 kdp ; opk2 k=1 2 d = 664 82 CAPITOLUL 4. RETELE NEURALE FEEDFORWARD MULTISTRAT pentru un pattern p, p = 1 2 : : : P , unde dp este raspunsul dorit, iar op raspunsul retelei pentru pattern-ul p: 2 3 2 3 d o p1 p1 dp = 664 ... 775 op = 664 ... 775 : dpK opK Pentru simplitate, sa presupunem ca yJ = ;1 si wkJ = Tk pentru k = 1 2 : : : K unde Tk sunt praguri. Ca si ^n cazul unui singur perceptron, calculam @E %wkj = ; @w kj deci pe directia gradientului negativ al erorii, unde pentru simplitate am omis indicele lui E . Avem: ok = f (netk ) netk = PJj=1 wkj yj pentru k = 1 2 : : : K: Semnalul de eroare pentru al k-lea neuron este: @E : ok = ; @net k Acest semnal l-am numit si semnal de ^nvatare. Avem: @E = @E @netk = ; y ok j @wkj @netk @wkj deoarece @netk = y : j @w kj Putem scrie: %wkj = ok yj Calculam: Dar si Obtinem: pentru k = 1 2 : : : K j = 1 2 : : : J: @E @ok ok = ; @o k @netk @ok f 0k (netk ) = @net k @E = ;(d ; o ): k k @ok ok = (dk ; ok )f 0k (netk ) pentru k = 1 2 : : : K: ARE DELTA 4.2. REGULA DE ^INVAT 83 Formula de ajustare a ponderilor este atunci: %wkj = (dk ; ok )f 0k (netk )yj si este identica cu regula de ^nvatare delta pentru un singur perceptron. Pentru functia de activare continua unipolara, obtinem ;net ;net f 0(net) = (1 +e e;net)2 = 1 + 1e;net 1 +1 +e e;net; 1 = o(1 ; o): ^In acest caz, avem: ok = (dk ; ok )ok (1 ; ok ): ^In cazul bipolar, am aratat ^n capitolul 3 ca: f 0(net) = 12 (1 ; o2 ) si deci: ok = 21 (dk ; ok )(1 ; o2k ): ^In concluzie, actualizarea ponderilor se face pentru k = 1 2 : : : K , j = 1 2 : : : J astfel: w0kj = wkj + (dk ; ok )ok (1 ; ok )yj pentru ok = 1 + e1;netk si w0kj = wkj + 12 (dk ; ok )(1 ; o2k )yj pentru ! 1 ok = 2 1 + e;netk ; 1 : 2 ^In general, putem scrie W0 = W + o yt unde 2 3 66 oo12 77 o = 66 .. 77 : 4 . 5 oK Algoritmul de instruire a unei retele monostrat de perceptroni de tip continuu prin regula delta este urmatorul: Se dau perechile (y1 d1 ), (y2 d2 ),...,(yP dP ), unde yi este un vector de J elemente, di este un vector de K elemente, iar componenta J a vectorului yi, i = 1 2 : : : P , este ;1. 84 CAPITOLUL 4. RETELE NEURALE FEEDFORWARD MULTISTRAT 1. Se aleg > 0 si Emax > 0. 2. Se initializeaza matricea W de K J elemente cu valori aleatoare si mici. Se initializeaza: p 1, q 1 si E 0. 3. y yp , d dp, ok f (wkt y) pentru k = 1 2 : : : K , unde wk este linia k din W. 4. Se actualizeaza ponderile conform regulii wk wk + 21 (dk ; ok )(1 ; o2k )y pentru k = 1 2 : : : K ^n cazul bipolar si conform regulii wk wk + (dk ; ok )ok (1 ; ok )y pentru k = 1 2 : : : K ^n cazul unipolar. 5. Se calculeaza eroarea patratica cumulata: E E + 12 (dk ; ok )2 k = 1 2 : : : K: 6. if p < P then p p + 1, q q + 1, go to 3. 7. if E Emax then E 0, p 1, go to 3. else "s-a terminat instruirea", write W, q , E . 4.3 Regula delta generalizata Vom generaliza acum regula delta de ^nvatare pentru retele feedforward multistrat. Consideram pentru aceasta o retea de neuroni cu doua straturi (g. 4.4). Straturile de neuroni ale caror iesiri nu sunt direct accesibile se numesc straturi interne sau straturi ascunse. Pentru stratul ascuns avem: %vji = ; @E j = 1 2 : : : J i = 1 2 : : : I @vji @E = @E @netj @vji @netj @vji %vji = yj zi unde yj este semnalul de eroare pentru stratul ascuns av^and iesirea y. Vom scrie @E j = 1 2 : : : J yj = ; @net j si atunci @E @yj yj = ; @y @net j j 4.3. REGULA DELTA GENERALIZATA z1 y1 v 11 w11 v 11 1 wk1 ... o1 yj v ji wkj ... zi 85 ... ok w K1 yJ-1 K v J-1,I zI = -1 ... zI-1 oK w KJ v JI yJ = -1 Figura 4.4: Retea neurala feedforward cu un strat ascuns. unde Dar K ! @E = @ 1 X 2 @yj @yj 2 k=1 fdk ; f "netk (y)]g : @yj f 0i(netj ) = @net j K @ (f "net (y)]) @E = ; X ( d k ; ok ) k @yj @yj k=1 K X k = ; (dk ; ok )f 0(netk ) @net @y = ; deoarece Atunci: k=1 K X k=1 j ok wkj ok = (dk ; ok )f 0(netk ) J X netk = wkj yj : j =1 yj = f 0j (netj ) K X k=1 ok wkj j = 1 2 : : : J X %vji = f 0j (netj )zi ok wkj K k=1 j = 1 2 : : : J i = 1 2 : : : I: 86 CAPITOLUL 4. RETELE NEURALE FEEDFORWARD MULTISTRAT Ultima relatie este regula delta generalizata. Aceasta regula se poate rescrie ^n felul urmator: v0ji = vji + f 0j (netj )zi sau, matriceal: unde K X k=1 ok wkj j = 1 2 : : : J i = 1 2 : : : I V0 = V + y zt 2 66 z..1 z=4 . zI 3 2 77 6 5 V = 64 v11 ... vJ 1 ^In aceasta relatie, yj = f 0j (netj ) sau 3 2 v1I 7 y ... 7 y = 66 ... 5 4 vJI yJ ::: ... ::: 1 K X k=1 3 77 5: ok wkj y = wjt of 0 y unde wj este coloana j din W, iar 2 0 3 66 f ..y 77 0 f y = 4 . 5: f 0yJ 1 Pentru cazul unipolar, folosim f 0yj = yj (1 ; yj ), iar pentru cazul bipolar avem f 0yj = 12 (1 ; yj2). Compar^and regulile de actualizare a ponderilor: pentru stratul de iesire: W0 = W + oyt pentru stratul ascuns: V0 = V + y zt se observa ca diferenta semnicativa este indicele care localizeaza stratul si modul ^n care se calculeaza vectorul semnalului de eroare : h it o = h o : : : oK i ok = (dk ; ok )f 0ok (netk ) t y = y : : : yJ yj = wjt o f 0yj (netj ): 1 1 Se observa ca wjt o este produsul scalar al semnalelor de eroare provenind de la stratul urmator. Regula delta generalizata propaga eroarea cu c^ate un strat ^n urma. Vom formaliza ^n continuare aceasta metoda de instruire pentru o retea neurala multistrat. 4.4. ALGORITMUL DE INSTRUIRE BACKPROPAGATION 87 4.4 Instruirea unei retele neurale multistrat prin propagarea ^n urma a erorii ^In general, o retea neurala multistrat aplica vectorul de intrare z ^n vectorul de iesire o astfel: o = N "z] unde N este un operator compus neliniar matricial. Pentru reteaua cu un strat ascuns avem: o = ;"W;"Vz]]: ^In acest caz, trebuie sa ajustam matricile V si W astfel ^nc^at eroarea kd ; ok2 sa e minima. Algoritmul de instruire a unei retele neurale multistrat prin propagarea ^n urma a erorii (error backpropagation) este: Se dau perechile (z1 d1 ), (z2 d2 ),...,(zP dP ), unde zi este un vector de I elemente, ziI = ;1 si i = 1 2 : : : P . Se determina marimea stratului ascuns. Acesta va avea iesirile y, unde y este un vector de J elemente, iar yJ = ;1. Iesirile o din retea sunt vectori de K elemente. 1. Se aleg > 0 si Emax > 0. Se initializeaza matricea W de K J si matricea V de J I elemente cu valori aleatoare, mici. Se initializeaza p 1, q 1 si E 0. 2. Se initializeaza z zp d dp yj f (vjt z) pentru j = 1 2 : : : J unde vj este un vector coloana reprezent^and linia j din V, ok f (wkt y) pentru k = 1 2 : : : K unde wk este un vector coloana reprezent^and linia k din W. 3. Se calculeaza eroarea patratica cumulata: E E + 21 (dk ; ok )2 k = 1 2 : : : K: 4. Se calculeaza semnalele de eroare pentru cazul bipolar: ok = 12 (dk ; ok )(1 ; o2k ) k = 1 2 : : : K K X 1 2 yj = 2 (1 ; yj ) ok wkj j = 1 2 : : : J k=1 88 CAPITOLUL 4. RETELE NEURALE FEEDFORWARD MULTISTRAT respectiv, pentru cazul unipolar: ok = (dk ; ok )(1 ; ok )ok k = 1 2 : : : K yj = yj (1 ; yj ) K X k=1 ok wkj j = 1 2 : : : J: 5. Se ajusteaza ponderile stratului de iesire: wkj wkj + ok yj k = 1 2 : : : K j = 1 2 : : : J: 6. Se ajusteaza ponderile stratului ascuns: vji vji + yj zi j = 1 2 : : : J i = 1 2 : : : I: 7. 8. p < P then p p + 1, q q + 1, go to 2. if E Emax then E 0, p 1, go to 2. if else "s-a terminat instruirea", write W, V, q, E . ^In algoritmul de instruire prin propagarea ^n urma a erorii, ^n loc de %wkjn+1 = ok yj putem lua %vjin+1 = yj zi %wkjn+1 = ok yj + %wkjn %vjin+1 = yj zi + %vjin unde este o constanta numita momentum. Prin regula delta, nu ne deplasam de fapt ^n directia gradientului negativ al erorii, deoarece ponderile se modica la ecare pas. Pot aparea oscilatii daca este mare. Daca este mic, oscilatiile sunt neglijabile, dar rata ^nvatarii este prea mica. Termenul ^n care apare ltreaza oscilatiile. De obicei, se ia = 0 9 si se poate mari . Daca = 0, ajungem la acelasi rezultat, dar trebuie sa folosim o valoare mai mica pentru . Instruirea poate dura ^nsa mai mult. Algoritmul de instruire prin propagarea ^n urma a erorii face o serie de deplasari ^n sensul gradientilor negativi ai valorilor individuale pe care le ia Ep, adica pentru un pattern, si nu ^n sensul gradientului negativ al lui E . Acest lucru se ^nt^ampla deoarece nu este innit de mic. Din acest motiv, ^n anumite cazuri, dupa citirea lui zp, se poate ca E sa creasca! Eroarea referitoare doar la zp scade ^nsa, sau ram^ane zero. ^In general, functia de activare bipolara duce la rezultate mai bune dec^at functia unipolara. ^In cazul discret, intrarea xa este ceruta de teorema perceptronului, permit^and crearea de hiperplane de separatie care nu trec prin origine. La regula delta ARII 4.5. FACTORI AI ^INVAT 89 generalizata, intrarea xa este recomandata nu de o teorema, ci de ideea obtinerii unei aproximari mai &exibile. Eroarea cumulata este: P X K X 1 (dpk ; opk )2 : E=2 p=1 k=1 Aceasta eroare poate foarte mare daca P si K sunt mari. De aceea, este mai adecvat sa folosim: v u P X K uX 1 Em = PK t (dpk ; opk )2 p=1 k=1 adica eroarea medie normalizata. Atunci c^and reteaua este instruita ca si clasicator, ne intereseaza doar eroarea de decizie: Ner Ed = PK unde Ner este numarul total de erori de clasicare. De obicei, iesirile dorite sunt 0, cu exceptia uneia care este 1 si corespunde clasei din care face parte patternul respectiv. O retea multistrat poate transformata ^ntr-un clasicator, dupa instruire, prin ^nlocuirea perceptronilor de tip continuu cu perceptroni discreti. Clasicarea este o forma importanta a calculului neural, ^nsa ea limiteaza potentialul de calcul al unei retele, deoarece foloseste raspunsul binar. O retea multistrat poate utilizata si pentru aproximarea functiilor. 4.5 Factori ai ^nvatarii Algoritmul de instruire prin propagarea ^n urma a erorii poate interpretat ca o problema de optimizare: se minimizeaza eroarea medie cumulata Em , merg^and pe directia gradientului negativ. O dicultate tipica ar ca prin acest algoritm se poate sa obtinem doar un minim local pentru functia eroare. Prin faptul ca impunem o valoare minima acceptabila pentru Em , putem controla acest lucru. Se poate ^nsa sa nu avem o convergenta a algoritmului, daca ne ^ndreptam spre un minim local ^n loc de a ne ^ndrepta spre un minim global. Este de fapt un algoritm de tip greedy. Totusi, problema minimelor locale nu este o problema majora a acestui algoritm. Aceasta deoarece algoritmul are o natura stohastica: exista o anumita randomizare ^n instruire. Cu c^at reteaua este mai mare, cu at^at mai bine va functiona instruirea. Natura stohastica este data at^at de ponderile initiale, c^at si de pattern-urile de instruire. Chiar c^and pattern-urile de instruire au o natura determinista, adaugarea unui zgomot cu medie zero poate duce al ^mbunatatirea ecientei instruirii. Instruirea functioneaza cel mai bine ^n conditii de randomizare. De aceea, ponderile initiale se aleg cu valori aleatoare, iar pattern-urile de instruire este bine sa e ^ntr-o secventa aleatoare. 90 CAPITOLUL 4. RETELE NEURALE FEEDFORWARD MULTISTRAT Sa studiem acum efectul lui asupra lui f 0(net) (g. 4.5). Avem ;net f 0(net) = (12+ee;net )2 pentru functia de activare continua bipolara. f’(net, λ ) λ=1 λ=2 λ=0,5 net Figura 4.5: Efectul lui asupra lui f (net). 0 Deoarece ponderile sunt ajustate proportional cu f 0(net), ^nseamna ca ponderile corespunzatoare neuronilor pentru care net = 0 se modica cel mai mult. Ponderile neuronilor cu raspunsuri incerte sunt cele mai afectate. Deoarece semnalele de eroare ok si yj sunt de asemenea proportionale cu f 0(net), rezulta ca, componentele erorii care se propaga ^n urma sunt mari doar pentru neuronii cu raspunsuri incerte. Se observa ca, pentru o constanta de ^nvatare xata, ajustarea ponderilor este proportionala cu . Folosirea functiilor de activare cu valoare mare pentru are acelasi efect cu utilizarea unei constante de ^nvatare mari. De aceea, este recomandabil sa pastram = 1 si sa controlam viteza de ^nvatare doar prin . Valoarea optima pentru constanta de ^nvatare depinde de problema de rezolvat. O valoare mare pentru duce al viteza mai mare de ^nvatare, dar se poate ca astfel sa trecem de solutie. O valoare mai mica pentru duce la o ranare (pasi mai mici) care ^nsa ^nseamna si pasi mai multi, deci timp de procesare mai ^ndelungat. ^In concluzie, trebuie ales ^n mod experimental pentru ecare problema. Cel mai bine, se porneste cu av^and valoare mica si se ^ncearca marirea acestui parametru pentru a mari viteza algoritmului. S-a observat ca ^n general valorile pentru sunt ^ntre 10;3 si 10. Una dintre cele mai importante probleme este alegerea arhitecturii retelei. Sa presupunem ca avem un singur strat ascuns de J neuroni, ca stratul de iesire are K neuroni si ca avem I noduri de intrare ^n retea. Evident, I este dependent de problema de rezolvat, deci ^l consideram xat. Cum ^i alegem pe J si pe K ? Daca reteaua functioneaza ca un clasicator, K poate egal cu numarul de clase. Dar K poate considerat si log2 C , unde C este numarul claselor, daca folosim o reprezentare binara a claselor. De exemplu, pentru 2 neuroni de iesire putem avea clasele 0, 1, 2, 3, corespunzatoare iesirilor 00, 01, 10, 11. Numarul ARII 4.5. FACTORI AI ^INVAT 91 de neuroni de iesire pentru un clasicator cu C clase poate deci un ^ntreg ^ntre log2 C si C . Pe de alta parte, comprimarea stratului de iesire sub C neuroni poate afecta perioada de instruire si robustetea retelei nale. De aceea, ^n cazul unui clasicator, se ia de obicei K = C . Alegerea lui J este ^nca o problema ^n studiu. Retelele cu un singur strat ascuns pot forma regiuni arbitrare de decizie pentru pattern-uri n-dimensionale. Sa presupunem ca avem o colectie de pattern-uri n-dimensionale liniar separabile ^n M regiuni disjuncte apartin^and ecare la una dintre cele R clase, R M . Evident, trebuie ca numarul de pattern-uri de instruire, P , sa e mai mare sau cel mult egal cu M . Cu c^at P=M este mai mare, cu at^at instruirea este mai na. Mirchandini si Cao 1 au aratat care este numarul maxim de regiuni liniar separabile folosind J neuroni: n J ! X k unde J k ! k=0 = 0 pentru k > J . 1 2 2-clasa 1 1,3,5,7-clasa 2 4,6-clasa 3 3 4 6 5 7 Figura 4.6: Regiuni disjuncte care apartin la trei clase. ^In exemplul nostru (g. 4.6), avem n = 2 si M = 7. Deci, ! ! ! J + J + J = 1 + J + J 2 7: 0 1 2 2 2 De aici, rezulta o estimare pentru marimea stratului ascuns: J = 3. Daca avem n J , atunci numarul maxim de regiuni este ! ! ! J + J + : : : J = 2J 0 1 J si de aici ^l obtimem pe J . Mirchandini, G., W. Cao "On Hidden Nodes in Neural Nets". IEEE Trans. Circuits and Systems, 36, 1989, 661-664. 1 92 CAPITOLUL 4. RETELE NEURALE FEEDFORWARD MULTISTRAT 4.6 Retele feedforward multistrat folosite ca aproximatori universali Ne propunem sa aproximam functia continua h(x) cu functia treapta H (w x) (g. 4.7). h(x) H(w,x) h(x) H(w,x) h1 h2 x a x1 x2 xp b { 0 Δx Figura 4.7: Aproximarea functiei h(x) cu functia treapta H (w x). Presupunem ca se cunosc P esantioane, adica valorile functiei h(x) ^n punctele x1 , x2 ,..., xP . Presupunem ca a i = 1 2 : : : P: xi+1 ; xi = %x = b ; P Denim functia 8 >0 pentru x < 0 < (x) = 12 sgn(x) + 12 = > nedenit pentru x = 0 : :1 pentru x > 0 Scriem atunci: % x % x H (w x) = hi" x ; xi + 2 ; x ; xi ; 2 ] i=1 unde hi = h(xi ). P X 4.6. APROXIMATORI UNIVERSALI 93 Putem scrie: x ; xi + %2x ; x ; xi ; %2x = 1 sgn x ; x + %x ; 1 sgn x ; x ; %x : i i 2 2 2 2 Acest termen este o fereastra de ^naltime unitara si latime %x (g. 4.8). implementare cu perceptroni de tip discret 1- implementare cu perceptroni de tip continuu x x −Δ x 2 0 ___________ i x i ___________ x i +Δ x 2 Figura 4.8: Fereastra de ^naltime unitara si latime x. Fereastra se poate implementa ca ^n gura 4.9. x 1 + -1 comparator 1 1/2 −Δx ____ 2 xi + 1 -1 -1 +Δ x ____ 2 + comparator 2 o -1/2 Figura 4.9: Retea neurala care implementeaza fereastra de ^naltime unitara si latime x. O retea cu 2P perceptroni discreti poate implementa functia H (w x). Pentru un termen, reteaua se poate descrie ca ^n gura 4.10. ^In general, o functie h(x), unde x este un vector, poate aproximata printr-o retea neurala cu un singur strat ascuns. ^In ce masura reteaua este instruibila (de pilda, prin regula delta generalizata), ram^ane o problema deschisa. Fara a demonstra, vom mentiona doua importante proprietati: 1. O retea feedforward cu un singur strat ascuns poate aproxima oric^at de bine orice functie neliniara continua. 2. O retea feedforward cu un singur strat ascuns poate implementa o functie booleana arbitrara. 94 CAPITOLUL 4. RETELE NEURALE FEEDFORWARD MULTISTRAT x 1 + 1 xi - -1 Δx xi + _______ 2 Δx _______ x comparator 1 + 1/2 + 2 + + -1/2 comparator 2 1 o + -1 o 2 (b) (a) Figura 4.10: Implementare folosind (a) perceptroni de tip discret si (b) perceptroni de tip continuu cu c^at este mai mare, cu at^at mai mult forma ferestrei se apropie de cea rectangulara. 4.7 Teorema lui Kolmogorov si retelele neurale ^In loc de a aproxima o functie continua, ne punem acum problema reprezentarii ei exacte printr-o retea neurala. ^In 1900, David Hilbert a formulat urmatoarea ipoteza: o functie continua de mai multe variabile nu este ^n mod necesar decompozabila ^ntr-o suprapunere de functii continue de un numar mai mic de variabile. Aceasta presupunere a fost contrazisa ^n 1957 de Kolmogorov printr-o teorema a carei aplicatii au aparut abia acum, ^n contextul retelelor neurale. Teorema lui Kolmogorov arma ca orice functie f continua denita pe un cub n-dimensional este reprezentabila astfel: f (x1 : : : xn) = X 2n+1 q=1 0n 1 X 'q @ pq (xp)A p=1 unde 'q , q = 1 : : : 2n + 1 si pq , p = 1 : : : n sunt functii continue de o singura variabila. 1 x1 x2 2 y1 2 y2 ... ... ... xn 1 m ym 2n+1 Figura 4.11: Retea neurala care implementeaza o functie oarecare f . Interpretarea neurala este urmatoarea: T1 (Hecht-Nielsen, 1986). Fie f : "0 1]n <n ! <m, f (x) = y, o functie continua oarecare. Atunci, f poate implementata exact 4.8. APLICATII 95 de catre o retea neurala feedforward cu un singur strat ascuns av^and arhitectura din gura 4.11. Denim acum functiile de activare pentru aceasta arhitectura. Fie zk iesirea din neuronul ascuns k. Avem: zk = n X j =1 k (xj + k") + k unde este o constanta reala, este o functie monoton crescatoare, independenta de f , " este o constanta rationala 0 < " , unde este o constanta pozitiva arbitrar aleasa. Iesirile yi se calculeaza astfel: yi = X 2n+1 k=1 gi(zk ) unde functiile gi, i = 1 : : : m sunt reale si continue, depinz^and de f si ". Aceasta teorema nu ne spune cum sa obtinem functia sau constanta ". Este o teorema existentiala. Ea se poate extinde pentru orice functii continue pe un compact (multime ^nchisa si marginita). Acest rezultat a fost primul pas. Cybenco (1989) a aratat ca orice functie continua denita pe un compact din <n poate aproximata oric^at de bine de o retea feedforward cun un singur strat ascuns folosind functii de activare sigmoidale. Uneori se pot obtine aproximari mai compacte folosind mai multe straturi ascunse. Sprecher (1996) a gasit algoritmul de constructie a functiei (din teorema lui Hecht-Nielsen), astfel ^nc^at este monoton crescatoare, independent de f si n. 4.8 Aplicatii Retelele feedforward multistrat pot aplicate cu succes la multe probleme de clasicare si de recunoastere. Pentru aceasta, nu este necesar sa e cunoscut un model formal pentru clasicare sau recunoastere. Este sucient sa utilizam o arhitectura potrivita si o multime sucienta de pattern-uri de instruire, apoi aplicam algoritmul de instruire prin propagarea^n urma a erorii. Solutia se obtine deci prin experimentare si simulare, nu printr-o abordare formala riguroasa. Cu toate ca nu este foarte clar ce constituie o multime adecvata de patternuri de instruire, sunt raportate o serie de aplicatii ^n recunoasterea vorbirii, a semnalelor sonore etc. Sa notam ca iesirile cu mai mult de doua valori pentru un neuron pot modela incertitudinea. Modul conventional de a construi un sistem expert necesita un expert uman care sa formuleze regulile cu ajutorul carora sa e analizate datele de intrare. Numarul acestor reguli poate foarte mare. Pe de alta parte, de 96 CAPITOLUL 4. RETELE NEURALE FEEDFORWARD MULTISTRAT 1 1 1 2 2 ... K ... ... I J simptome neuroni ascunsi boli Figura 4.12: Sistem expert conexionist pentru diagnoza medicala. multe ori este dicil de formulat aceste reguli. Deoarece retelele neurale pot instruite fara ca ele sa ^ncapsuleze cunostintele ^n reguli, sa vedem ^n ce masura ele pot aplicate ca o alternativa la sistmele expert conventionale. Retelele neurale pentru diagnosticare, defectoscopie, predictie, recunoasterea formelor rezolva ^n esenta probleme de clasicare, asociere si generalizare. Aceste retele pot achizitiona cunostinte fara sa extraga reguli de tip IF-THEN de la un expert uman. Dupa instruire, ele pot functiona ca sisteme expert. Ceea ce va lipsi este explicarea: un sistem expert neural nu poate explica utilizatorului rationamentul deciziilor luate. Numim aceste sistem expert sisteme expert conexioniste. Atunci c^and o retea instruita este testata cu un pattern substantial diferit de cele folosite pentru instruire, raspunsul obtinut se presupune ca rezolva o problema de generalizare. Exemple tipice de generalizare sunt diagnosticarea si predictia. Figura 4.12 descrie functionarea unui sistem expert conexionist pentru diagnostic medical. ^Intr-un sistem expert conventional, o dicultate este formularea si introducerea regulilor de catre expertul uman. Sistemul expert conexionist poate ^nvata din diagnosticul curent care a fost acceptat. O atentie speciala trebuie data alegerii lui J . Daca J este prea mic, apar dicultati de aplicare a celor I intrari ^n cele K iesiri. Daca J este prea mare, creste inutil timpul de instruire si de diagnosticare si ponderile sunt dicil de estimat corect. O serie de aplicatii folosesc pattern-uri temporale care se obtin prin esantionarea unor semnale de tip continuu (g. 4.13). 4.9 Exemple Exemplu de construire a unui clasicator multistrat pentru pattern-uri liniar neseparabile Fie functia de decizie XOR: 4.9. EXEMPLE 97 Δ x(t- Δ) x(t- n Δ ) Δ x2 x1 x0 x(t- 2Δ) Δ ... x(t) xn strat ascuns ... strat de iesire ... Figura 4.13: Retea neurala cu ^nt^arziere cu un singur canal de achizitie. x1 0 0 1 1 x2 iesirea 0 1 1 -1 0 -1 1 1 Punctele av^and coordonatele x1 si x2 de mai sus sunt notate cu A, B, C, D. x2 clasa 1 clasa 2 o=[-1 -1] o=[1 -1] r1 o2 1 t B 1 t D 2 C x1 C r3 1/2 A o1 1 o=[-1 1] t r2 - -1 A,D (a) B o3 = 0 (b) Figura 4.14: Suprafete de decizie ^n problema XOR. Alegem: 1 : ;2x1 + x2 ; 12 = 0 2 : x1 ; x2 ; 12 = 0 98 CAPITOLUL 4. RETELE NEURALE FEEDFORWARD MULTISTRAT ^n mod arbitrar (g. 4.14a). Pentru aceste linii, vectorii normali unitari sunt: h it r1 = p15 h ;2 1 i t r2 = p12 1 ;1 : x1 -2 + 1 x2 o1 1 1 -1 + 1 + 1/2 -1 comparator 1 comparator 2 o2 comparator 3 o3 1 -1 1/2 -1 Figura 4.15: Reteaua neurala care implementeaza problema XOR. Reteaua neurala din gura 4.15 implementeaza aceste suprafete de decizie prin intermediul stratului ascuns. Pentru acestea, avem: o1 = sgn ;2x1 + x2 ; 21 o2 = sgn x1 ; x2 ; 12 : Arbitrar, se alege linia de decizie (g. 4.14b) o1 + o2 + 1 = 0 si atunci o3 = sgn(o1 + o2 + 1): Reteaua neurala implementata aici clasica pattern-urile A, B, C, D astfel: Simbol x1 x2 o1 o2 o1 + o2 = 1 o3 clasa A 0 0 -1 -1 -1 2 B 0 1 +1 -1 + +1 1 C 1 0 -1 +1 + +1 1 D 1 1 -1 -1 -1 2 Exemplu de instruire prin propagarea ^n urma a erorii Presupunem ca avem o retea cu trei neuroni cu un strat ascuns (g. 4.16). Neuronii 1,2 si 3 sunt ctivi si ne simplica notatia. Presupunem ca ponderile au fost initializate si ca o1 si o2 sunt calculate conform unui pattern de intrare. Calculam o3, o4 , o5 si apoi: 5 = (d5 ; o5 )o5(1 ; o5 ) 5 X 0 3 = f (net3 ) k wk3 = o3(1 ; o3)5 w53 k=5 4.9. EXEMPLE 99 o0 = -1 0 3 o1 5 1 o5 4 2 o2 Figura 4.16: Retea neurala multistrat. Functiile de activare sunt unipolare. 4 %w50 %w53 %w54 = = = = o4 (1 ; o4 )5w54 ;5 5 o3 5 o4: Apoi: %w30 = ;3 %w40 = ;4 %w31 = 3o1 %w41 = 4 o1 %w32 = 3o2 %w42 = 4 o2: Putem astfel sa construim prin instruire un clasicator multistrat pentru patternurile liniar neseparabile din exemplul precedent (problema XOR cu doua variabile). Denim matricile: h W = w50 w53 w54 i " # w 30 w31 w32 V = w40 w41 w42 : Pentru = 0 1 se ajunge dupa instruire la: h i " # W = ;3 967 ;8 160 ;5 376 3 854 4 281 V = ;61 169 269 ;4 674 ;4 578 : Dorim ca reteaua sa functioneze ca un clasicator cu iesiri binare. ^Inlocuim neuronii de tip continuu cu neuroni binari si pastram ponderile pe care le-am calculat pentru cazul continuu. Exemplu de alegere a marimii stratului ascuns ^In gura 4.17 avem un clasicator pentru problema XOR cu n = 2. Presupun^and J n, obtinem pentru J = 2 numarul maxim de regiuni 22 = 4. 100 CAPITOLUL 4. RETELE NEURALE FEEDFORWARD MULTISTRAT x2 -1/2 -1 -1/2 -3/2 1 1 o 1 x1 3 -1 1 2 1 1 x2 x1 0 Figura 4.17: Problema XOR pentru n = 2. x3 1/2 -1 3/2 1 x1 1 -2 1 o 2 1 1 x1 -x 2 0 1 x2 1 Figura 4.18: Problema XOR pentru n = 3. Sa consideram acum aceeasi problema pentru n = 3 (g. 4.18), unde x3 = x1 x2 . Lu^and n = 3 si M = 2 obtinem J = 1. Am rezolvat deci aceeasi problema, dar cu mai putini neuroni. 4.10 Exercitii 1. Pattern-urile liniar neseparabile " # x1 = 13 " x6 = 22 5 # " # x2 = 33 " x7 = ;02 # " # " # " # x3 = 12 x4 = 22 x5 = 32 x8 = 10 x9 = 30 x10 = 50 " # " # " # 4.10. EXERCITII 101 trebuie clasicate astfel: clasa 1: x4 x6 x7 x8 x9 clasa 2: restul. Elaborati o retea neurala de perceptroni discreti cu un strat ascuns care sa functioneze ca un clasicator. Nu instruiti reteaua de neuroni, ci folositi metoda din primul exemplu. 2. Fie prototipurile ^n forma extinsa 2 3 2 3 2 3 2 3 3 4 4 5 6 7 6 7 6 7 6 x1 = 4 1 5 x2 = 4 0 5 x3 = 4 ;1 5 x4 = 4 2 75 1 1 1 1 1 1 1 1 2 3 2 3 2 3 2 3 5 3 2 1 x5 = 64 3 75 x6 = 64 3 75 x7 = 64 0 75 x8 = 64 1 75 : O masina multistrat cu doi perceptroni discreti bipolari ^n stratul ascuns si un singur perceptron discret bipolar de iesire trebuie sa clasice prototipurile astfel ^nc^at: clasa 1: x1 x2 x3 clasa 2: restul : (a) Vericati daca vectorii pondere 2 3 2 3 2 0 w1 = 64 1 75 w2 = 64 1 75 5 ;2 asigura separarea liniara a pattern-urilor (primul strat). (b) Completati elaborarea clasicatorului folosind rezultatul anterior si calculati ponderile perceptronului de iesire. 3. Demonstrati ca, pentru n = 2, numarul J al neuronilor stratului ascuns necesari pentru partitionarea prin hiperplane ^n M regiuni este p J = 12 8M ; 7 ; 1 : 4. Fie problema clasicarii ^n doua clase a unor pattern-uri planare (n = 2) rezolvata printr-o arhitectura de retea neurala cu J = 8 si K = 2. Determinati o margine inferioara pentru P , care este numarul vectorilor de instruire. Indicatie: Acest numar este egal cu numarul regiunilor separabile, M. 102 CAPITOLUL 4. RETELE NEURALE FEEDFORWARD MULTISTRAT z1 o1 1 1 -2 0 3 z2 -2 2 1 0 -1 1 -1 o2 3 -1 Figura 4.19: Retea neurala multistrat pentru exercitiul 5. 5. Reteaua din gura 4.19, daca a fost instruita corect, trebuie sa raspunda cu o1 = 0 95 si o2 = 0 05 la pattern-ul de intrare 2 3 2 3 64 zz12 75 = 64 13 75 : ;1 ;1 Ponderile au fost initializate ca ^n gura. Se alege = 1, iar neuronii folosesc functia de activare f (net) = 1 + 1e;net : Analizati un pas al algoritmului de instruire prin propagarea ^n urma a erorii realiz^and urmatoarele operatii: (a) (b) (c) (d) (e) (f) Gasiti matricile ponderilor, V, W. Calculati netj , y, netk , o. Calculati f 0(netj ) si f 0(netk ). Calculati o si y . Calculati %V si %W. Gasiti noile valori pentru V si W. 6. (C) Implementati algoritmul de instruire prin propagarea ^n urma a erorii pentru I , J , K si selectabile si un singur strat ascuns. Folositi perceptroni bipolari de tip continuu. 7. (C) Elaborati clasicatorul pentru literele A, I si O denite ca ^n gura 4.20, cu ajutorul programului de la exercitiul 6. Presupuneti doua tipuri de reprezentari interne: 4.10. EXERCITII 103 Figura 4.20: Literele A, I si O pentru exercitiul 7. (a) n = 16, P = 3, I = 17, J = 9, K = 3 si clasa A: x1 = " 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 ]t clasa I: x2 = " 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 ]t clasa O: x3 = " 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 ]t (b) n = 2, P = 16, I = 3, J = 9, K = 3 si clasa A, O: clasa A, I, O: clasa A, O: clasa A, O: clasa A, O: clasa I: clasa A, O: clasa A, O: clasa A, I: clasa A: clasa A, O: clasa A, O: clasa I, O: clasa O: clasa A, O: x1 = " 1 x1 = " 1 x1 = " 1 x1 = " 1 x1 = " 2 x1 = " 2 x1 = " 2 x1 = " 3 x1 = " 3 x1 = " 3 x1 = " 3 x1 = " 4 x1 = " 4 x1 = " 4 x1 = " 4 1 ]t 2 ]t 3 ]t 4 ]t 1 ]t 2 ]t 4 ]t 1 ]t 2 ]t 3 ]t 4 ]t 1 ]t 2 ]t 3 ]t 4 ]t ^Incercati diferite valori pentru . Evaluati numarul de cicluri de instruire pentru ambele arhitecturi. Iesirile trebuie sa e: pentru A: " 1 ;1 ;1 ] pentru I: " ;1 1 ;1 ] pentru O: " ;1 ;1 1 ]: 8. (C) Elaborati o retea pentru pattern-urile liniar neseparabile din gura 4.21 folosind programul scris la exercitiul 6. (a) Selectati un numar potrivit de neuroni ^n stratul ascuns. Folositi K = 104 CAPITOLUL 4. RETELE NEURALE FEEDFORWARD MULTISTRAT x1 1- clasa 1 clasa 2 clasa 3 3/4 - 1/2 - 1/4 - 0 | 1/4 | 1/2 | 3/4 | 1 x2 Figura 4.21: Pattern-uri neseparabile pentru exercitiul 8. 3, astfel ^nc^at iesirile sa e: pentru clasa 1: " 1 ;1 ;1 ]t pentru clasa 2: " ;1 1 ;1 ]t pentru clasa 3: " ;1 ;1 1 ]t (b) Instruiti reteaua pentru vectorii din gura si diferite valori pentru . 9. (C) Fie h(x) = 0 8 sin x ;1 x 1 si aproximarea ei printr-o retea neurala o(x). Construiti o retea de perceptroni bipolari de tip continuu cu un strat ascuns care aproximeaza h(x) prin o(x). 10. (C) Realizati un sistem expert conexionist care sa va ajute la planicarea timpului vostru liber. ^In functie de factorii de circumstanta, sistemul expert va va spune ce activitate sa alegelti. Activitatile posibile sunt: (a) vizita (b) sport (c) lm (d) somn (e) cumparaturi Factorii care determina alegerea activitatii sunt: 4.10. EXERCITII 105 (a) resursele nanciare disponibile (b) starea vremii (c) durata de timp care poate afectata (d) existenta unui prieten care poate vizitat (e) starea de oboseala (f) necesitatea de a face cumparaturi (g) ultima activitate facuta ^n timpul liber (h) existenta unui lm bun Sistemul va realizat ca o retea de perceptroni. Propuneti o secventa de 20 de perechi de forma (activitati, factori de decizie) ca secventa de instruire, cu cel putin 2 perechi pentru ecare activitate din lista. Codicati intrarile ca variabile mixte (continue si binare) din intervalul "0 1] si atribuiti 0 intrarilor care nu au importanta. Instruiti sistemul si, apoi, testati-l cu date de intrare diferite de cele folosite pentru instruire. 11. (C) Scrieti un program care implementeaza o retea de perceptroni capabila sa clasice cifrele 0{9 ^n categoriile par { impar. Pentru instruirea retelei, folositi o secventa de instruire ^n care caracterele sunt codicate ca matrici binare de 5 3 pixeli. Dupa instruire, utilizati reteaua pentru clasicarea pattern-urilor perturbate. 106 CAPITOLUL 4. RETELE NEURALE FEEDFORWARD MULTISTRAT Capitolul 5 Retele neurale feedback monostrat Retelele neurale pe care le vom studia ^n acest capitol sunt sisteme dinamice care evolueaza ^n timp, ^ntr-un spatiu discret sau continuu. Evolutia unei astfel de retele este, asa cum vom vedea, disipativ, ^n sensul ca are tendinta de scadere a energiei. Tranzitia ^ntr-o retea neurala dinamica este catre o solutie asimptotic stabila care este un minim local al unei functii a energiei disipate. Retelele discutate^n acest capitol se bazeaza ^n special pe lucrarile lui Hopeld (1984, 1985, 1986). Sa mentionam c^ateva concepte fundamentale ale sistemelor dinamice. Am vazut ca un atractor este o stare catre care sistemul evolueaza ^n timp pornind de la anumite conditii initiale. Multimea acestor conditii formeaza bazinul de atractie al atractorului. Daca atractorul este un punct unic ^n spatiul starilor, atunci el este un punct x. Un atractor poate ^nsa consta si dintr-o secventa de stari, caz ^n care se numeste ciclu limita. O retea de acest tip este capabila sa tolereze anumite distorsiuni ale vectorilor de initializare si sa le elimine. 5.1 Fundamentele matematice ale retelelor Hopeld cu timp discret Acest tip de retele au proprietati foarte interesante. Utiliz^and tehnologii microelectronice si optoelectronice, s-au fabricat microsisteme care se bazeaza pe aceste retele. Conform postulatelor lui Hopeld, o retea feedback monostrat este de forma celei din gura 5.1. Aceasta retea consta din n neuroni cu pragurile T1,...,Tn . Pentru ecare neuron se calculeaza: neti = n X j =1 j 6=i wij vj + ii ; Ti pentru i = 1 2 : : : n 107 108 CAPITOLUL 5. RETELE NEURALE FEEDBACK MONOSTRAT v1 w21 -1 T1 i1 1 w12 -1 i2 v2 T2 v2 ... ... wn1 2 v1 wn2 w2n vn in -1 n Tn vn Figura 5.1: Retea feedback monostrat. unde ii este intrarea externa a neuronului i. Vectorial, putem scrie: neti = wit + ii ; Ti pentru i = 1 2 : : : n unde 2 3 2 3 w i1 66 .. 77 66 v..1 77 wi = 4 . 5 v = 4 . 5 : win vn Putem, de asemenea, sa rescriem relatia de mai sus astfel: net = Wv + i ; T unde 2 3 2 3 2 3 net i 1 1 66 .. 77 66 .. 77 66 T..1 77 net = 4 . 5 i = 4 . 5 T = 4 . 5 netn in Tn 2 t 3 2 0 w12 : : : w1n 3 66 w.. 1 77 666 w21 0 : : : w2n 777 W = 4 . 5 = 64 .. .. . . . .. 75 : . . . wnt wn1 wn2 : : : 0 ^In acest model, matricea W este simetrica. Sa presupunem pentru moment ca functia de activare este sgn(). Atunci: 8 > < vi ram^ane neschimbat daca neti = 0 v ;1 daca net < 0 (5.1) > : vi1 +1 daca netii > 0 Adica: vik+1 = sgn(witvk + ii ; Ti) i = 1 2 : : : n k = 0 1 : : : 5.1. RETELE HOPFIELD CU TIMP DISCRET 109 Regula se aplica asincron, adica pentru c^ate o singura valoare a lui i la un moment dat. Se porneste de la v0. Pentru k = 1, avem n actualizari. Pentru ^nceput se actualizeaza vi1, unde numarul neuronului i este aleator. Pentru ceilalti neuroni, iesirile ram^an aceleasi. Se calculeaza apoi vj1, j 6= i, j aleator etc., p^ana se completeaza v1 . Apoi se calculeaza v2 etc. Acest algoritm particular de actualizare a ponderilor este cunoscut ca o recursivitate stohastica asincrona a retelelor Hopeld. Trebuie sa facem distinctie ^ntre algoritmul asincron si cel sincron (paralel) descris de formula: vk+1 = ;"Wvk + i ; T] k = 0 1 : : : Conform acestei formule, toti neuronii ^si pot modica simultan iesirile. ^In algoritmul asincron, dupa ce se calculeaza vik+1, aceasta valoare ia locul lui vik particip^and la calculul celorlalte componente din vk+1. Procesul continua p^ana se calculeaza toate valorile din vk+1. Pentru ecare k = 1 2 : : :, avem n actualizari aleatoare individuale, la nivel de neuron. Algoritmul se opreste c^and vk+1 = vk . Reprezent^and vectorul de iesire ^n f;1 1gn, acesta se misca dintr-un v^arf al cubului n-dimensional ^ntr-un v^arf adiacent, p^ana c^and se stabilizeaza ^ntr-unul din v^arfuri. Pozitia nala a lui vk , pentru k ! 1, este determinata de ponderile initiale, pragurile initiale, intrari, v0, dar si de ordinea tranzitiilor. Urmatoarele probleme sunt deschise: daca sistemul are atractori si daca sistemul se stabilizeaza. Pentru a evalua proprietatea de stabilitate, vom deni functia energiei computationale: E = ; 12 vt Wv ; itv + Ttv care este o forma patratica. Adica: n X n n n X X X wij vivj ; ii vi + Tivi: E = ; 21 i=1 j =1 i=1 i=1 i6=j Fie vik+1 ; vik = %vi , adica presupunem ca nodul i s-a modicat la momentul k. Modicarea este asincrona, deci se refera doar la neuronul i. Calculam rE = ;Wv ; it + Tt ^n care am tinut cont ca W este simetrica. Incrementul energiei este %E = rE t %v unde 2 0 3 66 .. 77 6 . 7 %v = 666 %vi 777 : 64 ... 75 0 110 CAPITOLUL 5. RETELE NEURALE FEEDBACK MONOSTRAT Atunci: %E = (;0witv ; ii + Ti)%vi 1 n X %E = ; @ wij vj + ii ; TiA %vi pentru i 6= j j =1 ;neti %vi %E = Pentru functia de activare sgn(), din relatia 5.1 avem: daca neti < 0 ) %vi 0 daca neti > 0 ) %vi 0 daca net1 = 0 ) %vi = 0: Adica, avem mereu neti %vi 0 si %E 0. Aceasta ^nseamna ca energia retelei poate doar sa scada sau sa ram^ana constanta. Presupun^and ca neti 6= 0, atunci %E = 0 daca si numai daca %vi = 0. Cu alte cuvinte, E scade strict daca si numai daca %vi 6= 0 si E ram^ane constanta daca si numai daca %vi = 0. Daca neti = 0, atunci %vi = 0, deci %E = 0. Pentru o stare stabila, adica pentru un atractor,^n cazul unei scheme asincrone avem: vk+1 = klim sgn(Wvk + i ; T): !1 Am aratat ca energia este necrescatoare. Ea este, ^n mod evident, si marginita, ceea ce ^nseamna ca E ^si atinge minimul. Daca algoritmul de actualizare a ponderilor este sincron, se poate ^nt^ampla ca algoritmul sa cicleze ^ntre doua pattern-uri complementare. Acest lucru este ilustrat de exemplul de mai jos. " # h i W = ;01 ;01 v0 = ;1 ;1 t " #" # " # " # 0 ; 1 ; 1 sgn(1) 1 v = ; ;1 0 ;1 = sgn(1) = 11 " # 2 v = ;;11 etc. Vom vedea ca pattern-urile complementare corespund unor nivele identice ale energiei. 5.2 Fundamentele matematice ale retelelor Hopeld cu timp continuu Retelele feedback monostrat cu timp continuu se numesc si retele de tip gradient. O retea de tip gradient converge catre unul dintre minimele stabile din spatiul 5.2. RETELE HOPFIELD CU TIMP CONTINUU 111 starilor. Evolutia sistemului este ^n directia generala a gradientului negativ al functiei de energie. Cautarea unui minim energetic corespunde cautarii unei solutii pentru o problema de optimizare. Retelele de tip gradient sunt exemple de sisteme neliniare, dinamice si asimptotic stabile. i1 i2 w 2n w 1n in ... wn2 w n1 g1 g2 u1 u2 _ v1 un Cn _ v2 v1 ... C2 C1 _ gn vn v2 vn Figura 5.2: Retea neurala de tip gradient care foloseste componente electrice. Vom exemplica un model de retea neurala de tip gradient prin folosirea unor componente electrice (g. 5.2). Pentru a pastra notatia originala a lui Hopeld, tensiunile ui sunt de fapt neti . Ponderile wij sunt conductante. Iesirile inversate v(i sunt folosite pentru a modela conductante negative, adica inhibitorii. Avem: wij = wji si wii = 0 pentru i j = 1 : : : n: Neuronii pot interpretati ca amplicatori: curentul prin conductanta gi este amplicat de neuronul i (g. 5.3). Ci i = 1 : : : n sunt capacitati. Folosind acest model de neuron, putem scrie legea lui Kirchho: 1 0 n n X C BX dui ii + wij vj ; ui B @ wij + giCA = Ci dt : j =1 j 6=i j =1 j 6=i (5.2) Partea st^anga a acestei ecuatii reprezinta curentul total care intra ^n condensatorul de capacitate Ci. Notam conductanta totala care este conectata la in- 112 CAPITOLUL 5. RETELE NEURALE FEEDBACK MONOSTRAT ii wi1 v1 ui ... (v1 -u i)w i1 win -g iu vn g i Ci f(u i ) vi _ du Ci i dt i (vn -u i )w in Figura 5.3: Modelul unui neuron. trarea neuronului i cu Gi = Atunci, ecuatia 5.2 se poate scrie: ii + Fie matricile: h n X j =1 n X j =1 wij + gi: i wij vj ; uiGi = Ci du dt : i h i C = diag C1 C2 : : : Cn G = diag G1 G2 : : : Gn 2 u(t) = 664 3 2 3 2 3 u1(t) 7 v i1 1 (t) ... 7 v(t) = 66 ... 77 i = 66 ... 77 5 4 5 4 5 un(t) vn(t) in unde u(t) este vectorul starilor, iar v(t) reprezinta vectorul iesirilor. Avem: 8 du(t) > < C dt = Wv(t) ; Gu(t) + i ecuatia starilor > : v(t) = f (u(t)) ecuatia iesirilor Sa studiem stabilitatea sistemului descris de aceste ecuatii. Functia energiei care ne permite sa analizam modelul continuu este: Z vi n X E (v) = ; 12 vt Wv ; itv + Gi fi;1(z)dz 0 i=1 unde fi;1(z) este inversa functiei de activare fi. Aceasta formula contine termenul Tt v din functia energiei discrete ; 21 vtWv ; itv + Tt v 5.2. RETELE HOPFIELD CU TIMP CONTINUU 113 ^n termenul al doilea, iar ultimul termen este specic cazului continuu si dispare pentru ! 1. Avem: d G Z vi f ;1(z)dz = G u i i dvi i 0 i rE (v) = ;Wv ; i + Gu: Atunci: ! dE "v(t)] = rE t (v) v_ = (;Wv ; i + Gu)t v_ = ; C du t dv dt dt dt ! 2 X ;1 i = ; Ci dfidv(vi) dv dt i i deoarece dui = dfi;1(vi) dvi : dt dvi dt u=f -1 (v) -1 | +1 | Figura 5.4: Inversa functiei de activare. ^In gura 5.4, functia fi;1 este monoton crescatoare, deci dfi;1 (vi ) dvi > 0. Atunci: dE < 0 pentru dv 6= 0 si dt dt dE > 0 pentru dv = 0: dt dt Am gasit o functie Liapunov a sistemului, deci sistemul este asimptotic stabil. Functia E este marginita ^n spatiul iesirilor, deci tinde catre un minim. Modicarile ^n timp nu sunt exact pe directia gradientului functiei de energie (adica pe directia scaderii c^at mai rapide a energiei). Reteaua de tip gradient, ^n cazul ^n care spatiul iesirilor este marginit, converge catre unul dintre minimele lui E (v), deci catre o stare stabila. Acest minim este ^n interiorul hipercubului iesirilor. Daca ! 1, atunci minimul este ^ntr-un v^arf al hipercubului. 114 CAPITOLUL 5. RETELE NEURALE FEEDBACK MONOSTRAT Faptul ca sistemul este asimptotic stabil ^n spatiul iesirilor este echivalent cu faptul ca sistemul este asimptotic stabil ^n spatiul starilor u. Aceasta, deoarece ecuatia v(t) = f (u(t)) este monotona. 5.3 Aplicatie: problema comis-voiajorului Vom da o solutie a problemei comis-voiajorului pentru n orase folosind retele de tip gradient (Hopeld, Tank, 1985). Problema este NP-completa. Reprezent^and problema sub forma unui graf cu n v^arfuri, trebuie sa gasim ciclul de lungime minima care trece prin toate v^arfurile. Numarul de astfel de cicluri care trebuie evaluate este (n;21)! . Se poate elabora o retea neurala de n2 neuroni unipolari de tip continuu care sa rezolve aceasta problema. Aranjam neuronii ^ntr-un tablou de n n elemente. Tabloul este reprezentat ^n gura 5.5, ^n care Poz. reprezinta pozitia ^n ciclu. Poz. 2 A Poz. 1 Poz. 3 D E B C Poz. 4 Poz. 5 Figura 5.5: Reprezentarea cu ajutorul unui graf a problemei comis-voiajorului. Fie orasele A, B,..., E si e acest ciclu. ^Il reprezentam prin tabelul 5.1, unde vxi este iesirea neuronului corespunzator orasului x si pozitiei i ^n ciclu. A B orasul C D E 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 2 3 pozitia 0 1 0 0 0 4 0 0 1 0 0 5 Tabelul 5.1: Reprezentarea ciclului din gura 5.5. Pentru un ciclu care viziteaza toate v^arfurile, tabloul trebuie sa aiba un singur 1 pe ecare coloana si un singur 1 pe ecare linie. Pozitionam neuronii ^n acest tablou de n n elemente, ^n ecare element pun^and un neuron. Vom avea exact n 5.3. APLICATIE: PROBLEMA COMIS-VOIAJORULUI 115 neuroni activi pentru solutie. Presupunem pentru o valoare mare, deci energia este trunchiata: n X n n X X E = ; 12 wxiyj vxivyj ; ixivxi xi=1 yj =1 xi=1 unde wxiyj este ponderea de la neuronul yj la neuronul xi. Observam ca domeniul vectorilor v unde se minimizeaza functia E este format din cele 2n v^arfuri ale hipercubului n2 -dimensional "0 1]. Scopul optimizarii este selectarea circuitelor minime. Trebuie sa avem obligatoriu c^ate un neuron activ pe linie si pe coloana. ^In plus, trebuie sa eliminam solutiile triviale, pentru care avem, ^n tablou, linii sau coloane nule. Sa exprimam aceste conditii de optimizare folosind patru functii de energie, ecare ^ndeplinind un rol separat. n X n X X E1 = A vxivxj : 2 x=1 i=1 j =1 j 6=i Produsul vxi vxj se refera la acelasi oras, x. Relatia n X n X i=1 j =1 j 6=i vxivxj = 0 se ^ndeplineste daca cel mult un vxi = 1 iar restul sunt 0, adica daca orasul x apare cel mult o singura data pe circuit. E1 = 0 ^nseamna ca ecare oras este vizitat cel mult o data. Daca E1 > 0, atunci exista orase vizitate de mai multe ori. n X n X n X E2 = B vxivyi: i=1 x=1 y=1 y6=x E2 = 0 ^nseamna ca ecare pozitie din ciclu are cel mult un singur oras asociat ei. Daca E2 > 0, atunci exista mai multe orase vizitate simultan. Observam ca E1 si E2 sunt, de asemenea, nule pentru solutii triviale ^n care avem linii sau coloane ^n tablou care nu contin nici un 1. De aceea, mai introducem: X !2 n X n E3 = C vxi ; n x=1 i=1 pentru a ne asigura ca nu avem o solutie triviala, deci o solutie cu mai putin de n de 1 ^n tablou. E3 = 0 ^nseamna ca avem exact n de 1 ^n tablou. Deci E1 + E2 + E3 are minimul 0 pentru toate matricile care au exact un 1 pe ecare linie si pe ecare coloana. Dorim sa minimizam lungimea ciclului. Notam cu dxy distanta dintre x si y si dxy = dyx. Lungimea ciclului este: n X n X n 1X 2 x=1 y=1 i=1 dxy vxi(vyi+1 + vyi;1 ) 116 CAPITOLUL 5. RETELE NEURALE FEEDBACK MONOSTRAT dar vom folosi urmatoarea functie de energie: E4 = D n X n X n X x=1 y=1 i=1 y6=x dxy vxi(vyi+1 + vyi;1 ) unde vxn+1 = vx1 si vx0 = vxn. Dorim sa minimizam E1 + E2 + E3 + E4 . Prin identicarea termenilor acestei sume cu cei din E , obtinem: wxiyj = ;2Axy (1 ; ij ) ; 2Bij (1 ; xy ) ; 2C ; 2Ddxy (ji+1 + ji;1) unde ij este simbolul lui Kronecker (ij = 0 pentru i 6= j , ii = 1). Constantele pozitive A, B , C , D sunt selectate euristic pentru a construi o suma convenabila a termenilor E1 ,..., E4. Ele dau ponderea ecaruia dintre acesti termeni. Obtinem, de asemenea: ixi = 2Cn: Am generat reteaua. Mai trebuie acum sa gasim solutia prin simularea functionarii ei. Din formula generala a ecuatiei starilor: ! n X i Ci du = i wij vj ; uiGi i+ dt j =1 obtinem: n n X duxi = ; uxi ; 2A X vxj ; 2B vyi dt y=1 j =1 0 n nj6=i 1 y6=x n XX X ;2C @ vxj ; nA ; 2D dxy (vyi+1 + vyi;1) x=1 j =1 y=1 y6=x unde este o constanta a timpului. S-au luat = 1, = 50, A = B = D = 250, C = 100, 10 n 30 si s-a rezolvat numeric acest sistem de ecuatii. Nu se ajunge neaparat la solutia optima. Pentru n = 10, 50% din teste au produs cele mai scurte cicluri din 181440 de solutii posibile. Pentru valori mari ale lui n apar, ^nsa, dicultati. Aceasta duce la ^ntrebarea fundamentala daca retelele neurale sunt mai adecvate dec^at calculatoarele clasice pentru rezolvarea problemelor nedeterminist polinomiale. S-a demonstrat (Bruck, Goodman, 1988) ca nu exista nici o retea de marime polinomiala ^n n care sa rezolve problema comis-voiajorului cu o precizie dorita. Aceasta, at^ata timp c^at NP 6= P! Problema comis-voiajorului ilustreaza utilizarea retelelor Hopeld^n probleme de optimizare. S-au obtinut rezultate ^n probleme de alocare a resurselor, planicarea lucrarilor, optimizarea tracului, optimizarea conexiunilor ^n circuitele integrate (1990), programare liniara si neliniara. 5.4. EXEMPLE 117 ^In concluzie, putem spune ca una dintre limitarile retelelor Hopeld este faptul ca ajungem de multe ori la un minim local si nu global. Aceasta se datoreaza formei complexe a functiei E (v). Una din dicultati este si traducerea problemei de optimizare ^ntr-o problema de minimizare a energiei. Singurele forme ale functiei de energie care se cunosc sunt cele date de Hopeld. Daca este mare, se poate lua energia trunchiata. Daca intrarile externe sunt nule, dispare si al doilea termen. Schema de rezolvare a unei probleme de optimizare folosind retele feed-back monostrat este cea din gura 5.6. problema de optimizare functia energiei generale E (v) E (W,i,v) E (W,i,v)=E (v) se calculeaza W,i se construieste reteaua sau se elaboreaza algoritmul de simulare se initializeaza reteaua cu conditii initial neutre se implementeaza tranzitiile dinamice punct de echilibru care este solutie STOP Figura 5.6: Modul de rezolvare a unei probleme de optimizare folosind retele feedback monostrat. 5.4 Exemple Retea Hopeld cu timp discret Fie: 2 0 6 W = 664 11 1 0 1 ;1 ;1 1 1 0 ;1 ;1 3 ;1 777 : ;1 5 0 118 CAPITOLUL 5. RETELE NEURALE FEEDBACK MONOSTRAT Presupunem pragurile si intrarile externe zero. Calculam: 2v 3 h i 66 v12 77 1 E (v) = ; 2 v1 v2 v3 v4 W 64 v 75 3 v4 = ;v1 (v2 + v3 ; v4) ; v2 (v3 ; v4 ) + v3v4 : h it Calcul^and expresia pentru toate v^arfurile hipercubului: ;1 ;1 ;1 ;1 ,..., h it 1 1 1 1 se ajunge la nivelele de energie -6, 0, 2. Tranzitiile au loc pe muchiile hipercubului, hde la un v^arf la iun alth v^arf cu energie maii scazuta. Minimul t t este atins ^n v^arfurile 1 1 1 ;1 si ;1 ;1 ;1 1 , unde avem stari stabile. Tranzitiile au loc asincron. De aceea, o tranzitie este doar de-a lungul unei singure muchii (se poate modica cel mult o componenta). Daca tranzitiile au loc sincron, atunci ele nu minimizeaz a energiai si nu tind h t catre o stare stabila. De exemplu, pornind din v0 = 1 ;1 1 1 , ajungem la: 2 0 1 1 ;1 3 2 1 3 76 7 h i 6 v1 = ; Wv0 = ; 664 11 01 10 ;;11 775 664 ;11 775 ;1 ;1 ;1 0 1 2 sgn(;1) 3 2 ;1 3 6 sgn(1) 77 66 1 77 = 664 sgn( ;1) 75 = 64 ;1 75 : sgn(;1) ;1 Tranzitia nu mai este de-a lungul unei muchii. Se calculeaza ca v2 = v0 deci oscileaza ^ntre v0 si v1. ^In v0 si v1 energia este 2. Spre deosebire de tranzitiile sincrone, tranzitiile asincrone duc ^ntotdeauna h la unul dintrei minimele energetice. Daca la tranzitiile asincrone pornim de la ;1 1 1 1 si scadem energia, atunci evolutia se poate desfasura ca ^n gura 5.7. Minimul la care ajungem depinde de ordinea de actualizare a componentelor. Retea de tip gradient Vom elabora un convertor A/D (Tank, Hopeld, 1986) pe 2 biti. Presupunem ca f (ui) este continua unipolara. Se poate arata ca o functie energiei totale aleasa convenabil poate : ! 2 1 1 X X 1 1 i E = 2 x ; vi 2 ; 2 22i vi(vi ; 1): i=0 i=0 5.4. EXEMPLE 119 [-1 1 1 1] (E = 2) [1 1 1 1] [-1 -1 1 1] (E = 0) (E = 0) [-1 -1 -1 1] [1 1 1 -1] (E = -6) (E = -6) Figura 5.7: Variante de evolutie a starilor pentru o serie de tranzitii asincrone. 2 Dorim sa minimizam pe E , ceea ce implica minimizarea lui 12 x ; P1i=0 vi2i care este eroarea A/D, unde v0 + 2v1 este valoarea zecimala a vech de conversie it torului binar v1 v0 si corespunde valorii analogice x. Calcul^and, ajungem la: 1 X 1 1 X X E = 21 x2 + 12 2i+j vivj + 22i;1 ; 2ix vi: i=0 j =0 j 6=i i=0 Pentru x xat, 12 x2 este o constanta, deci irelevanta atunci c^and minimizam pe E . Expresia energiei ^n reteaua Hopeld este: ; 21 1 X 1 X i=0 j =0 wij vi vj 1 X i=0 ii vi: Ultimul termen dispare deoarece minimele sunt ^n v^arfurile hipercubului. Prin identicarea termenilor din cele doua expresii, ajungem la: w01 = w10 = ;2 i0 = x ; 12 i1 = 2x ; 2 Convertorul rezultat este un caz special al unei retele de tip gradient (g. 5.8). Avem: 0 C0 du = x ; 1 + (;2)v1 ; u0(;2 + g0) dt 2 du C1 dt1 = 2x ; 2 + (;2)v0 ; u1(;2 + g1) care sunt ecuatiile starilor. De exemplu, putem presupune ca folosim o tensiune de referinta av^and valoarea de -1V (g. 5.9). 120 CAPITOLUL 5. RETELE NEURALE FEEDBACK MONOSTRAT x- _12 2x-2 i0 u1 u0 Ω -2 -2 g0 Ω g1 i1 C1 C0 1 v1 0 v0 Figura 5.8: Convertor A/D pe doi biti implementat printr-o retea de tip gradient. Ecuatiile starilor devin: 1 + 2(v ; u (2 + g ) 0 C0 du = x ; 1 0 0 dt 2 1 C1 du dt = 2x ; 2 + 2(v0 ; u1(2 + g1): Conditia wij 0 asigura realizabilitatea retelei folosind rezistente de valoare Rij = w1ij . ^Inlocuind ponderile si valorile curentilor externi ^n expresia energiei, obtinem pentru valori mari ale lui : E = 2v0 v1 + v20 + 2v1 ; x(v0 + 2v1 ): (5.3) Reprezent^and grac functia E , obtinem: - Pentru x = 0, punctul stationar este punct de minim: v0 = v1 = 0 - Pentru x = 1, punctul stationar este punct de minim: v0 = 1, v1 = 0 - Pentru x = 1 25 punctele stationare sunt: punctul de minim dorit v0 = 1, v1 = 0, dar si punctul de minim nedorit v0 = 0, v1 = 1, precum si un punct sa, undeva ^n interiorul patratului: 0 < v0 < 1, 0 < v1 < 1. ^In loc sa rezolvam sistemul de ecuatii diferentiale, oare nu putem cauta minimele lui E ? 5.4. EXEMPLE 121 _1 2Ω i1 + − -1V g1 2Ω 1Ω + − i0 -1V xV u1 g0 u0 2 Ω Ω 2 − + _1 2Ω C1 C0 1 0 _ v1 _ v0 Figura 5.9: Convertor A/D pe doi biti implementat printr-o retea de tip gradient si care foloseste o tensiune de referinta de 1V. Din relatia 5.3 obtinem: " 1 rE (v) = 22vv01 ++22 ;;2xx " # 0 2 2 H = r E (v) = 2 0 : # Observam : det H11 = 0" # 0 2 det H22 = 2 0 = ;4: Matricea H nu este pozitiv sau negativ denita. E nu are deci minim sau maxim, daca nu consider a2m alte restrictii. Impunem restrictia ca spatiul de iesire sa e patratul 0 1 . Atunci, minimele lui E sunt situate ^n v^arfurile patratului, daca aceste minime exista. Se poate demonstra acest lucru pentru ! 1. Daca v este o solutie pentru rE (v) = 0 si se a&a ^n interiorul patratului, atunci este un punct sa. Rezulta ca pentru a gasi solutia avem doua posibilitati: 1. Rezolvarea numerica a sistemului de ecuatii diferentiale 2. Simularea retelei printr-un program de simulare a circuitelor electronice, de exemplu SPICE. CAPITOLUL 5. RETELE NEURALE FEEDBACK MONOSTRAT 122 u1 -2 v1 Ω R1 u2 C2 -2 Ω C1 f1 f2 v2 R2 Figura 5.10: Reteaua neurala propusa pentru exercitiul 2. 5.5 Exercitii 1. Simulati ^n SPICE convertorul A/D. Generalizati-l pentru patru biti. 2. Pentru reteaua neurala din gura 5.10, cu mare, gasiti: Ecuatiile starilor Ponderile (conductantele) W Functia energiei E (v) trunchiata rE (v). u1 C1 Ω f1 R1 1 u2 f2 C2 _ v1 1 Ω (a) (b) (c) (d) R2 _ v2 1A Figura 5.11: Reteaua neurala propusa pentru exercitiul 3. 5.5. EXERCITII 123 3. Pentru reteaua neurala din gura 5.11, cu mare, gasiti: (a) (b) (c) (d) (e) Ecuatiile starilor Ponderile (conductantele) W Vectorul i al intrarilor externe Functia energiei E (v) trunchiata rE (v). 4. Fie o retea neurala cu trei neuroni, a carei functie de energie trunchiata este: E (v) = v12 ; v22 + v32 ; 2v1 v3 ; v1 v3 + 4v1 + 12: Gasiti: (a) rE (v) (b) r2 E (v) (c) Minimele, maximele si punctele sa ale lui E (v), atunci c^and nu avem alte restrictii. 1 5 v1 -5 5 -15 2 -5 -15 3 v2 v3 Figura 5.12: Reteaua neurala propusa pentru exercitiul 5. 5. Fie reteaua neurala din gura 5.12, cu mare. Evalu^and functia de energie trunchiata, gasiti minimele, maximele si punctele sa^n " ;1 1 ]3. Calculati apoi valorile energiei ^n toate v^arfurile cubului. 6. O retea neurala este descrisa de ecuatiile: ( dui = 1 Pn w v ; u G + i i i i j =1 ij j dt Ci vi = f (ui) Rezolvati numeric acest sistem. pentru i = 1 2 : : : n : 124 CAPITOLUL 5. RETELE NEURALE FEEDBACK MONOSTRAT Indicatie: Alegem, de exemplu, o metoda foarte simpla, cea a lui Euler: 8 k+1 P > < ui = uki + h C1i nj=1 wij vjk ; uki Gi + ii pentru i = 1 : : : n unde h = tk+1 ; tk > : vik = f (uki) 7. Implementati metoda din exercitiul 6 pentru problema convertorului A/D pe doi biti si gasiti v(t) (iesirea stabila) pentru: C0 = C1 = 1F g0 = g1 = 1+;1 x = 0 vi = f (ui) = 1 + e1;10ui i = 0 1 Testati programul pentru: v0 = " 0 25 0 25 ]t v 0 = " 0 5 0 5 ] t v0 = " 0 75 0 75 ]t: 8. (C) Proiectati o memorie Hopeld recurenta autoasociativa care sa memoreze ca prototipuri caracterele A, I si O, codicate ca matrici binare de 7 5 pixeli. Implementati algoritmul de regasire si simulati convergenta asincrona a memoriei catre ecare din prototipurile memorate, folosind ca pattern-uri cheie caracterele A, I si O, perturbate. Capitolul 6 Memorii asociative ^In capitolul precedent, ne-am concentrat ^n special pe rezolvarea unor probleme de optimizare. ^In acest capitol, vom interpreta evolutia unui sistem dinamic ca o miscare a unui pattern de intrare catre un alt pattern care este memorat si se numeste prototip sau memorie stocata. Retelele neurale din aceasta clasa se numesc memorii asociative. O memorie asociativa ecienta poate stoca un mare numar de pattern-uri. Pe parcursul apelului, memoria este excitata cu un pattern cheie (numit si argument al cautarii) care contine o portiune de informatie despre un anumit pattern dintro multime de pattern-uri memorate. Acest prototip anume poate regasit prin asocierea pattern-ului cheie si a informatiei memorate. S-au elaborat mai multe modele de memorii asociative. Ne vom concentra asupra retelelor feedback din capitolul precedent, dar vom discuta si arhitecturi feedforward de memorie. ^In general, memoriile asociative achizitioneaza informatie a priori. Scrierea ^n memorie provoaca modicari ale conexiunilor dintre neuroni. Nu exista adrese, toata informatia din memorie este distribuita spatial ^n retea. Care sunt cerintele pentru o astfel de memorie? Ea trebuie sa aiba o capacitate mare de stocare a prototipurilor. Ea trebuie sa e robusta, astfel ^nc^at o distrugere locala a structurii sa nu provoace caderea ^ntregului sistem. ^In plus, o astfel de memorie trebuie sa e capabila de a adauga/elimina asociatii, pe masura ce se modica cerintele de stocare. Memoriile asociative permit de obicei cautarea paralela. Scopul cautarii este de a extrage unul sau toate pattern-urile care se potrivesc cu pattern-ul cheie. Se presupune ca memoria biologica opereaza conform principiilor unei memorii asociative: nu exista locatii de memorie cu adrese stocarea este distribuita ^ntr-o retea densa de neuroni interconectati. 6.1 Concepte de baza Diagrama bloc a unei memorii asociative este reprezentata ^n gura 6.1. 125 CAPITOLUL 6. MEMORII ASOCIATIVE 126 x1 v1 x2 v2 ... ... M vn xn Figura 6.1: Diagrama bloc a unei memorii asociative. ^In aceasta gura, x este vectorul intrarilor, v este vectorul iesirilor, x 2 <n, v 2 <m si v = M "x], unde M este un operator neliniar matricial specic ecarui tip de memorie. Structura lui M re&ecta o paradigma specica. Pentru memorii dinamice, M implica si variabila timp. Pentru un model de memorie dat, forma operatorului M este exprimata de obicei ^n functie de vectorii prototip care trebuie stocati. Algoritmul care permite calcularea lui M se numeste algoritm de ^nregistrare sau stocare. De obicei, neuronii sunt asezati pe unul sau doua straturi. Maparea v = M "x] este numita regasire. Notam prototipurile cu un indice superior ^n paranteza. Sa presupunem ca ^n memorie sunt stocati anumiti vectori prototip, astfel ^nc^at, daca se aplica un pattern cheie, iesirea produsa de memorie si asociata cheii este raspunsul memoriei. Presupun^and ca exista p perechi de asocieri stocate: x(i) ! v(i) pentru i = 1 : : : p si v(i) 6= x(i) pentru i = 1 : : : p atunci reteaua este o memorie heteroasociativa. Daca aplicatia este de forma: x(i) ! v(i)v i =x i pentru i = 1 : : : p ( ) ( ) atunci memoria este autoasociativa. ^In memoria heteroasociativa, asocierile se fac ^ntre multimile ordonate de vectori fx(1) x(2) : : : x(p) g si fv(1) v(2) : : : v(p)g. Memoriile autoasociative asociaza vectori din cadrul unei singure multimi care este fx(1) x(2) : : : x(p)g. Evident, proiectarea unui vector x(i) ^n el^nsusi nu are nici o semnicatie. O aplicatie mai realista a unei mapari autoasociative este asocierea unui pattern cheie perturbat cu prototipul sau stocat ^n memorie. Spre deosebire de memoriile calculatoarelor, care sunt adresabile prin adresa, memoriile asociative sunt adresabile prin continut. Prin retele neurale se pot realiza memorii statice (instantanee, nerecurente) si memorii dinamice (recurente). Memoria din gura 6.2 este una statica realizata 6.2. ASOCIATORI LINIARI 127 x0 v0 M1 Figura 6.2: Memorie statica realizata printr-o retea feedforward. x0 vk+1 M2 xk Δ Figura 6.3: Memorie dinamica autoasociativa realizata printr-o retea recurenta. printr-o retea feedforward si v0 = M1 "x0 ] care reprezinta un sistem de ecuatii algebrice neliniare. ^In gura 6.3 este o memorie dinamica autoasociativa realizata printr-o retea recurenta pentru care vk+1 = M2 "x0 vk ], reprezent^and un sistem de ecuatii diferentiale neliniare. Un exemplu de memorie dinamica este reteaua Hopeld ^n care vk+1 = M2 "vk ] adica ^n care avem un v0 , dar nu avem intrari externe (g. 6.4). x0 vk+2 M xk Δ Δ M’ xk+1 vk+1 Figura 6.4: Memorie dinamica heteroasociativa. 6.2 Asociatori liniari Memoriile asociative traditionale sunt de tip instantaneu, feedforward. Pentru memoria asociativa liniara avem: v = Wx 128 CAPITOLUL 6. MEMORII ASOCIATIVE unde x este pattern-ul de intrare, iar v pattern-ul de iesire. Nu apar neuroni. Daca totusi introducem formal neuroni, atunci avem: v = M1 "Wx] unde M1 "] este un operator matricial liniar unitate. Avem un strat de neuroni de iesire pentru care v1 = f (neti) = neti: Sa presupunem ca dorim sa stocam^n acest asociator liniar p. Se dau perechile de vectori fs(i) f (i) g, i = 1 : : : p. Vectorii s reprezinta stimulii, iar vectorii f sunt raspunsurile fortate. Avem: h i h i s(i) = s(1i) : : : s(ni) t f (i) = f1(i) : : : fm(i) t : Practic, s(i) pot pattern-uri iar f (i) informatii asupra apartenentei lor la o clasa, sau imagini ale lor. Obiectivul asociatorului liniar este sa implementeze maparea v = Wx sub forma f (i) + (i) = Ws(i) sau, folosind simbolul de mapare s(i) ! f (i) + (i) pentru i = 1 2 : : : p astfel ^nc^at vectorul zgomot (i) sa e minimizat. Problema se poate pune si astfel: pentru un numar mare de observatii, sa se gaseasca W care minimizeaza Pi k(i)k. Este o problema tipica de statistica matematica si nu o vom aborda aici. Dorim sa gasim W care permite stocarea ecienta a datelor ^n memorie. Aplicam regula de ^nvatare hebbiana pentru a instrui asociatorul: wij 0 = wij + fi sj pentru i = 1 2 : : : m j = 1 2 : : : n unde vectorii f si s trebuie sa e membrii ai perechii de asociere. W0 = W + fst Initializ^and ponderile din W cu zero, avem: W0 = f (i) s(i)t : Acesta este primul pas al instruirii. Avem p perechi de ^nvatat, deci: X W0 = f (i) s(i)t p i=1 6.2. ASOCIATORI LINIARI 129 W0 = FSt unde W0 este o matrice de corelatie m n si h i F = f (1) f (2) : : : f (p) h i S = s(1) s(2) : : : s(p) : Sa presupunem ca, dupa instruire, aplicam vectorul cheie s(j) . Atunci: v = X p ! f (i) s(i)t s(j) i=1 (1) (1)t (j ) = f s s + : : : + f (p) s(p)t s(j) : Ideal ar sa avem v = f (j) . Aceasta se ^nt^ampla daca s(i)t s(j) = 0 pentru i 6= j s(j)t s(j) = 1: Deci, multimea de vectori ortonormali fs(1) : : : s(p)g asigura maparea perfecta. Ortonormalitatea este o conditie supusa intrarilor si ea nu este ^ntotdeauna respectata. Sa presupunem ca s(j)0 este s(j) perturbat: s(j)0 = s(j) + %(j) unde termenul perturbatie %(j) se poate presupune statistic independent de s(j) . Pentru cazul c^and vectorii stocati ^n memorie sunt ortonormali, avem: v = f s s +f s % + (j ) (j )t (j ) = f + (j ) p X (j ) (j )t i=1 i6=j (j ) p X (i) i=1 i6=j f s(i)t %(j) f (i) s(i)t %(j) : Am tinut cont si de faptul ca %(j) este statistic independent de s(j) , deci pot considerati ortogonali, adica: s(j)t %(j) = ks(j)t kk%(j)kcos = 0: Observam ca raspunsul memoriei este asocierea dorita f (j) , plus o componenta aditiva datorata perturbatiei %(j) . Aceasta componenta contine ^n paranteza aproape toti termenii lui W ponderati de %(j) . Chiar si ^n cazul ^n care vectorii memorati sunt ortonormali, la f (j) se adauga un zgomot foarte mare. Metoda este inecienta pentru a regasi un pattern perturbat. CAPITOLUL 6. MEMORII ASOCIATIVE 130 ^In nal, sa notam o proprietate interesanta a asociatorului liniar ^n cazul autoasociativ. ^In acest caz, reteaua este un autocorelator. Luam f (i) = s(i) si obtinem matricea de autocorelatie W0: W0 = p X i=1 s(i) s(i)t = SSt tin^and cont de faptul ca W0 este simetrica. Sa notam ^nsa ca W0 nu are diagonala egala cu zero.0 Presupun^and s(1) : : : s(p) ortonormali, pentru vectorul de intrare perturbat s(j) obtinem: X v = s(j) + s(i) s(i)t %(j) i=1 i6=j = s(j) + (p ; 1)%(j) unde termenul %(j) apare amplicat de p ; 1 ori! Asociatorii liniari si autoasociatorii pot folositi si atunci c^and vectorii s(1) , ..., s(p) sunt liniar independenti (o conditie mai slaba dec^at ortogonalitatea). Kohonen a aratat ca, ^n acest caz, avem: W = F(St S);1St : Acest W minimizeaza eroarea patratica dintre f (j) si v(j). Deoarece vectorii prototip nu sunt ^n general liniar independenti, nici aceasta metoda nu poate aplicata oric^and. ^In plus, apare problema zgomotului. ^In concluzie, asociatorii liniari nu sunt ^n general utilizabili ^n practica. 6.3 Concepte de baza ale memoriilor autoasociative recurente O astfel de memorie este ^n esenta o retea feedback monostrat cu timp discret de tip Hopeld (g. 6.5). Recursivitatea este stohastic asincrona. Fiecare feedback se produce cu o ^nt^arziere %. Neuronii sunt alcatuiti dintr-un sumator si un comparator si sunt bipolari discreti. Iesirile sunt ^n multimea f;1 1gn. Presupunem ca ii = Ti = 0, pentru i = 1 2 : : : n. Algoritmul de regasire 0 1 n X vik+1 = sgn @ wij vjk A j =1 Presupun^and ca pornim din v0 si ca se alege ^n mod aleator secventa m, p, q de neuroni, avem: Prima actualizare: v1 = " v10 v20 : : : vm1 : : : vp0 : : : vq0 : : : vn0 ]t A doua actualizare: v2 = " v10 v20 : : : vm1 : : : vp2 : : : vq0 : : : vn0 ]t A treia actualizare: v3 = " v10 v20 : : : vm1 : : : vp2 : : : vq3 : : : vn0 ]t 6.3. MEMORII AUTOASOCIATIVE RECURENTE 1 w12 v1k 131 ... wn1 wn2 n ... vnk ... w1n w21 2 w2n v2k Figura 6.5: Memorie Hopeld autoasociativa. Avem: E (v) = ; 12 vtWv: Am vazut ca energia este necrescatoare si reteaua se stabilizeaza ^ntr-unul din minimele locale energetice. Fie ;v complementul vectorului v. Se observa ca E (v) = E (;v). Deci, un minim pentru E (v) are aceeasi valoare cu un minim pentru E (;v). Cu alte cuvinte, tranzitiile memoriei se pot termina ^n aceeasi masura at^at ^n v, c^at si ^n ;v. Factorul decisiv care determina convergenta este similaritatea dintre v0 si v, respectiv ;v. Algoritmul de stocare Fie s(1) , ..., s(p) prototipurile bipolar binare care trebuie stocate. Algoritmul de stocare pentru calcularea matricii ponderilor este: W= sau p X m=1 s(m) s(m)t ; pI wij = (1 ; ij ) p X m=1 s(im) s(jm) unde ij = 0 pentru i 6= j , ii = 1 si I este matricea unitate. Matricea W este foarte similara cu matricea de autocorelatie obtinuta prin ^nvatare hebbiana ^n cazul asociatorului liniar autoasociativ. Diferenta este ca wii = 0. Sistemul nu memoreaza vectorul s(m) , ci doar ponderile wij care reprezinta corelatii ^ntre componentele acestui vector. Oric^and se pot adauga noi autoasocieri aditionale la memoria existenta, prin incrementarea ponderilor existente. Oric^and se pot elimina autoasociatori prin decrementarea ponderilor existente. Regula de stocare este invarianta la ordinea ^n care sunt stocate prototipurile. CAPITOLUL 6. MEMORII ASOCIATIVE 132 Daca avem vectorii unipolari s(1) , ..., s(m) , algoritmul de stocare trebuie modicat astfel ^nc^at o componenta -1 sa ^nlocuiasca elementul 0 ^n vectorul unipolar originar: wij = (1 ; ij ) p X (2s(im) ; 1)(2s(jm) ; 1): m=1 Sa observam ca regula de0 stocare este invarianta la operatia de complementare binara. Stoc^and vectorul s (m) , complementar lui s(m) , obtinem: wij 0 = (1 ; ij ) p X m=1 (2s0(im) ; 1)(2s0(jm) ; 1): Substituind s0 (im) = 1 ; s(im) , obtinem wij 0 = wij . Cu alte cuvinte, este indiferent daca stocam un pattern sau complementul sau binar. Algoritmul de stocare si regasire pentru o memorie autoasociativa recurenta este urmatorul: Se dau vectorii binar bipolari s(1) , ..., s(p) de c^ate n componente. Vectorul initial (care se cere regasit) este v0 , tot de n componente. Stocarea 1. Se initializeaza W 0, m 1, unde W este matricea n n a ponderilor. 2. Se stocheaza s(m) : W W + s(m) s(m)t ; I: 3. if m < p then m m + 1, go to 2. Regasirea 1. Se initializeaza k 1, v v0, unde k este un contor de ciclu. 2. Se initializeaza i 1, contorul de actualizare ^n ciclu. Se obtine o permutare aleatoare a ^ntregilor 1 : : : n: 1 : : : n. actualizare FALSE . 3. Este actualizat neuronul i, daca este cazul: P n neti = j=1 wi j vj , vnew sgn (neti ) if vi 6= vnew then actualizare TRUE , vi vnew. 4. if i < n then i i + 1, goto 3. 5. if actualizare = FALSE then fnu a avut loc nici o actualizare ^n acest ciclu, regasirea se terminag display k v else k k + 1, goto 2. 6.3. MEMORII AUTOASOCIATIVE RECURENTE 133 Consideratii asupra modului de functionare Memoria autoasociativa Hopeld este referita de multe ori ca un decodor corector de erori. Memoria lucreaza cel mai bine cu valori mari ale lui n. Sa presupunem ca n are o valoare mare. Presupunem ca pattern-ul s(m0 ) este unul din cele p pattern-uri stocate. Acest pattern este acum la intrarea memoriei. Pentru neuronul i avem: n X 0 neti = wij s(jm ) : Aplic^and formula: si, neglij^and pentru j =1 wij = (1 ; ij ) p X s(im) s(jm) m=1 moment termenul 1 ; ij , obtinem: p n X X 0 neti = s(im) s(jm) s(jm ) j =1 m=1 p n X (m) X (m) (m0 ) = si sj sj : m=1 j =1 Daca vectorii s(m) si s(m0 ) sunt statistic independenti, atunci termenul n X j =1 0 s(jm) s(jm ) (6.1) (m) (m0 ) este ^n medie zero. De altfel, aceast a sum a este produsul scalar s s . Daca s(m) si s(m0 ) sunt0 ortogonali, deci statistic independenti, acest produs devine zero. Daca s(m) si s(m ) sunt ^ntr-o anumita masura identici, atunci termenul 6.1 devine (m) (m0 ) pozitiv. Daca s = s 0 , atunci termenul 6.1 este n. Deci, daca s(m) = s(m ) pentru un anumit 1 m p, atunci neti (6.2) = s(im ) n pentru i = 1 2 : : : n: 0 neti are acelasi semn ca si s(im ) , pentru i = 1 : : : n. ^In concluzie, vectorul s(m0 ) este stabil si nu se mai poate modica. Vom da acum o explicatie intuitiva a faptului ca pattern-urile perturbate pot refacute. Sa presupunem ca vectorul de la intrare este o versiune perturbata a prototipului s(m0 ) care este stocat ^n memorie, iar perturbatia afecteaza doar o mica parte a componentelor (majoritatea componentelor sunt neperturbate). ^In acest caz, ^n 6.2 multiplicatorul n va avea o valoare ceva mai mica, egala cu num0arul de componente identice dintre s(m0 ) si vectorul de intrare. Semnul lui s(im ) se propaga asupra lui neti. Componentele0 perturbate sunt actualizate, una c^ate una, cu valorile lor neperturbate din s(m ). Evident, este necesar ca majoritatea componentelor vectorului initial sa e neperturbate si ca n sa e mare. Componentele perturbate se conformeaza deci dorintei majoritatii. 0 CAPITOLUL 6. MEMORII ASOCIATIVE 134 Aceasta explica intuitiv cum un pattern perturbat poate asociat celui mai apropiat prototip stocat. Discutia este ^nsa valabila doar pentru valori mari ale lui n. Sa presupunem acum ca prototipurile stocate sunt ortogonale. Avem: net = X p ! ; pI s(m0 ) : s s (m) (m)t m=1 Deoarece s(i)t s(j) = 0 pentru i 6= j si s(i)t s(j) = n, obtinem net = (n ; p)s(m0 ) : Daca n > p, rezulta ca s(m0 ) este stabil. Functia de energie este: E (v) = ; 12 vtWv X ! p 1 t (m) (m)t s s v + 21 vt pIv: = ;2v m=1 Pentru ecare prototip stocat s(m0 ) avem: p 0 X s(m )t s(m) s(m)t s(m0 ) + 21 s(m0 )t pIs(m0 ) E (s(m0 ) ) = ; 12 m=1 1 = ; 2 (n2 ; pn): Memoria are o stare de echilibru la ecare prototip s(m0 ) , iar energia are valoarea ei minima ; 12 (n2 ; pn) ^n aceste stari. Pentru cazul mai general, c^and prototipurile nu sunt mutual ortogonale, energia nu mai este ^n mod necesar minimizata pentru ecare prototip, iar prototipurile nu mai sunt ^n mod necesar stari de echilibru. ^In acest caz, avem: net = ns(m0 ) ; ps(m0 ) + = (n ; p)s(m0 ) + p X m=1 m6=m0 p X m=1 m6=m0 s(m) s(m)t s(m0 ) s(m) s(m)t s(m0 ) : Fata de situatia anterioara, apare suplimentar ultimul temen: p X m=1 m6=m0 s(m) s(m)t s(m0 ) : Acesta poate interpretat ca un vector zgomot. Cu c^at (n ; p) este mai mare, cu at^at scade importanta zgomotului si prototipurile devin stari de echilibru. 6.4. ANALIZA PERFORMANTEI 135 6.4 Analiza performantei memoriilor autoasociative recurente ^In aceasta sectiune, vom stabili relatii ^ntre marimea n a memoriei si numarul de pattern-uri distincte care pot refacute ^n mod ecient. Aceasta depinde si de gradul de similaritate dintre vectorul cheie si cel mai apropiat prototip, precum si de gradul de similaritate dintre prototipuri. Pentru a masura "similaritatea", vom folosi distanta Hamming. De fapt, ea este proportionala cu "disimilaritatea". Pentru vectorii bipolari de n componente x si y, avem: n X 1 DH(x y) = 2 jxi ; yij: i=1 Aceasta ^nseamna ca DH(x y) reprezinta numarul de pozitii ^n care difera bitii. Prin actualizarea asincrona, la ecare pas se modica vectorul de iesire cu DH = 1. Fie, de exemplu: s(1) = " ;1 ;1 1 1 ]t s(2) = " ;1 1 1 ;1 ]t Construim: Pornind din 2 0 0 ;2 0 3 7 6 W = 664 ;02 00 00 ;02 775 : 0 ;2 0 0 v0 = " ;1 1 ;1 1 ]t obtinem, prin actualizari asincrone ascendente: v1 = " 1 ;1 ;1 1 ]t v2 = " 1 ;1 ;1 1 ]t = v3 = : : : Actualizarile au fost astfel descrise pas cu pas. Convergenta este catre ;s(2) si nu catre s(1) sau s(2) . Avem: DH v0 s(1) = DH v0 s(2) = 2 deci v0 nu este atras catre s(1) sau s(2) . Fie acum: v0 = " ;1 1 1 1 ]t: Avem: DH v0 s(1) = DH v0 s(2) = 1: 136 CAPITOLUL 6. MEMORII ASOCIATIVE Prin actualizari asincrone ascendente, obtinem: v1 = v0 v2 = " ;1 ;1 1 1 ]t = v3 = : : : = s(1) Pe de alta parte ^nsa, daca actualizarile sunt ^n ordine descendenta, obtinem s(2) . Pentru acest exemplu, avem p=n = 2=4, deci memoria este supra^ncarcata si sensibila la perturbatii. De aceea, refacerea pattern-urilor perturbate nu este ^ntotdeauna ecienta. Se observa si ca nu putem evita stocarea complementelor pattern-urilor stocate. ^In astfel de memorii, pot exista stari stabile care nu reprezinta pattern-uri memorate. De asemenea, convergenta nu este neaparat catre cel mai apropiat pattern memorat (apropiere masurata prin DH). Aceste doua deciente devin deranjante atunci c^and memoria este supra^ncarcata, deci c^and p=n este mare. Capacitatea memoriei autoasociative recurente Vom mentiona aici rezultatele obtinute de McEliece et al.1. Un vector stare vk al unei memorii este stabil daca h i vk+1 = ; Wvk = vk : Aceasta denitie nu este legata de tipul de actualizare: sincron sau asincron. Fie raza de atractie denita astfel: orice vector la o DH mai mica dec^at n (distanta de atractie) de starea stabila v este eventual atras de v. Am vazut ca distanta de atractie este ^ntre 1 si n=2, deci este ^ntre 1=n si 1=2. Pentru ca sistemul sa functioneze ca o memorie, impunem ca ecare vector memorat s(m) sa e stabil. Mai putin restrictiv este sa cerem sa existe un vector stabil la o distanta mica de s(m) , "n, pentru toate cele p pattern-uri memorate. Capacitatea asimptotica a unei memorii autoasociative cu n neuroni este: 2 c = (14;ln)n n : Daca p < c, atunci toate cele p pattern-uri stocate, sunt stabile cu probabilitatea aproape 1. Oricum ar valoarea 0 < < 1=2, capacitatea unei memorii Hopeld este deci ^ntre: n=(4 ln n) < c < n=(2 ln n) unde c depinde de fapt de toleranta la eroare, adica de . ^In loc de 2n pattern-uri, putem stoca doar c pattern-uri! Studiul lui McEliece et al. releva prezenta unor atractori ^n care nu au fost memorate pattern-uri acestia au ^n general bazinele de atractie mai mici dec^at cele ale pattern-urilor stocate. Chiar daca numarul pattern-urilor ce pot stocate ^ntr-o memorie Hopeld este destul de mic, aceste memorii au o serie de aplicatii ^n procesarea vorbirii, baze de date, prelucrarea imaginilor. McElice, R.J, Posner, E.C., Rodemich, E.R., Vankatesh, S.V. "The Capacity of the Hopeld Associative Memory". IEEE Trans. on Information Theory, 33, 1987, 461-482. 1 6.5. MEMORIA ASOCIATIVA BIDIRECTIONALA (MAB) 137 6.5 Memoria asociativa bidirectionala (MAB) MAB (g. 6.6) este o memorie heteroasociativa adresabila prin continut const^and din doua straturi (Kosko, 1987, 1988). W 2 2 ... 1 ... 1 n m stratul A W t stratul B Figura 6.6: Memorie asociativa bidirectionala. Fie p perechi de pattern-uri memorate: f a(1) b(1) a(2) b(2) : : : a(p) b(p) g Presupunem ca avem vectorul b la intrarea ^n stratul A al memoriei. Presupunem ca neuronii sunt binari bipolari: a0 = ;"Wb] adica: 0m 1 X ai 0 = sgn @ wij bj A i = 1 : : : n: j =1 Procesarea are loc sincron. Urmeaza: h b0 = ; Wta0 bj 0 = sgn i X n i=1 wij a0 i ! j = 1 : : : m: Apoi: a00 = ; h"Wb0] i b00 = ; Wta00 etc. CAPITOLUL 6. MEMORII ASOCIATIVE 138 Procesul continua p^ana c^and a si b nu se mai modica. ^In mod ideal, procesul se stabilizeaza ^ntr-o pereche a(i) b(i) din multimea perechilor memorate. Putem opera asemanator pentru cazul unipolar. Presupunem ca straturile sunt activate alternativ. Stabilitatea unei astfel de retele nu este afectata de procesarea sincrona ca ^n cazul memoriilor Hopeld, deoarece oricum cele doua straturi lucreaza asincron. De aceea, se prefera procesarea sincrona, convergenta ind mai rapida dec^at ^n cazul ^n care am folosi procesarea asincrona. Daca W este patrata si simetrica, atunci W = Wt si avem de fapt o memorie autoasociativa cu un singur strat. Stocarea are loc conform regulii hebbiene: p X W = m=1 p X wij = m=1 a(m) b(m)t a(im) b(jm) : Presupun^and ca unul din pattern-urile stocate, a(m0 ), este prezentat la intrare, obtinem: b = ; "X p 2m=1 b a (m) (m)t 6 = ; 64nb(m0 ) + p X m=1 m6=m0 (m0 ) a # 3 b(m) a(m)t a(m0 )775 : Ultimul termen din relatia anterioara, pe care ^l notam cu: = p X m=1 m6=m0 b(m) a(m)t a(m0 ) reprezinta zgomotul. Sa presupunem pentru moment0 ca pattern-urile a(1) : : : a(p) sunt ortogonale. Atunci, = 0 si se obtine b = b(m ) dintr-un singur pas. Dac a pattern-ul de intrare este o versiune perturbata a lui a(m0 ) , stabilizarea 0 la b(m ) nu mai este iminenta si depinde de mai multi factori: DH dintre vectorul cheie si prototipuri, ortogonalitatea sau DH dintre vectorii b(1) : : : b(p) etc. Consideratii asupra stabilitatii C^and memoria MAB ajunge la o stare de echilibru, astfel ^nc^at a(k) ! b(k+1) ! a(k+2) = a(k) , spunem ca ea este bidirectional stabila. Fie functia de energie: E (a b) = ; 12 at Wb ; 21 btWta = ;at Wb: 6.5. MEMORIA ASOCIATIVA BIDIRECTIONALA (MAB) 139 Vom evalua modicarile energiei pentru un pas: 8 > 0 %ai = < 0 i=1:::n > : 0 8 > 0 %bj = < 0 j =1:::n > : 0 m w b >0 pentru P j =1 ij j P pentru Pmj=1 wij bj = 0 pentru mj=1 wij bj < 0 n w a >0 pentru P i=1 ij j P pentru Pni=1 wij aj = 0 pentru ni=1 wij aj < 0 (6.3) Calculam: raE (a b) = ;Wb rbE (a b) = ;Wt a: Modicarile de energie cauzate de catre modicarea unei singure componente sunt: 0m 1 X %Eai (a b) = ; @ wij bj A %ai pentru i = 1 : : : n j =1 X ! n %Ebj (a b) = ; wij ai %bj pentru j = 1 : : : m: i=1 Rezulta ca %E 0, daca tinem cont si de 6.3. Deoarece E este inferior marginita, adica: n X m X E (a b) ; jwij j i=1 j =1 rezulta ca memoria converge catre un punct stabil care este un minim local pentru functia de energie. Deci, memoria este bidirectional stabila. Sa observam ca nu este important daca procesarea^ntr-un strat se face sincron sau asincron. Kosko (1988) a aratat (euristic) ca numarul maxim de perechi, p, care pot stocate si regasite cu succes, este min(n m). O masura mai stricta a capacitatii este: q p = min(n m): Observat ii 1. Formula de stocare a perechilor de pattern-uri nu garanteaza ca acestea corespund unor minime locale. 2. Am vazut ca, daca pattern-urile stocate sunt ortogonale, atunci zgomotul este zero si toate pattern-urile stocate pot , ^n mod garantat, recuperate printr-un pas (daca nu sunt perturbate). Wang (1990) a propus cresterea ctiva a pattern-urilor de instruire pentru a obtine o ortogonalizare a lor. CAPITOLUL 6. MEMORII ASOCIATIVE 140 Perechile a(i) a(j) si b(i) b(j) sunt fara zgomot, unde i j = 1 : : : p, daca: HD a(i) a(j) = n 2 (i) (j) m HD b b = 2 acestea ind conditiile de ortogonalitate ^ntre a(i) si a(j) , respectiv b(i) si b(j) . Daca avem aceasta situatie, atunci recuperarea datelor este imediata si fara erori (daca nu sunt perturbate). Prin cresterea vectorilor a(i) si b(i) , i = 1 : : : p, cu componente aditionale obtinem aceasta ortogonalitate la nivel de perechi. Prin aceasta tehnica se ^mbunatateste si capacitatea MAB de a corecta erori. Utilizarea MAB pentru pattern-uri temporale n o Fie secventa S = s(1) s(2) : : : s(p) de vectori n-dimensionali bipolari binari reprezent^and tranzitiile starilor (pattern-uri temporale). Reteaua MAB este capabila sa memoreze secventa S , astfel ^nc^at: h i s(i+1) = ; Ws(i) unde i este modulo p + 1. Pornind de la starea initiala x(0)^n vecinatatea lui s(i) , secventa S este apelata ca un ciclu de tranzitii ale starilor. Acest model este numit memorie asociativa temporala. Pentru stocarea secventei, astfel ^nc^at s(1) sa e asociat cu s(2) , s(2) cu s(3) , ..., s(p) cu s(1) , procedam astfel: W= pX ;1 i=1 s(i+1) s(i)t + s(1) s(p)t sau, daca indicele este modulo p + 1: W= Av^and straturile A si B, avem: p X i=1 s(i+1) s(i)t : a = ;"Wb] b = ;"Wa]: Daca secventa s(1) : : : s(p) este aplicata la intrarea ^n stratul A, avem: k ns z }| + { a = ; "(|s(2) s(1)t + : : : + s(k+1){zs(k)t + : : : + s(1) s(p)t )} s(k) ] : ( +1) W 6.6. EXERCITII 141 Termenul = p X i=1 i6=k s(i+1) s(i)t s(k) este zgomotul, unde indicele de ^nsumare este modulo p + 1. Daca vectorii din S sunt ortogonali, atunci = 0 si a = s(k+1) , dintr-un singur pas. Asadar, daca la intrare avem s(k) , obtinem ^n mod circular: s(k+1) ! s(k+2) ! : : : ! s(p) ! : : : Daca vectorii din S nu sunt ortogonali, presupun^and ^nsa ca ei sunt stocati la o DH << n, ^n general ne putem astepta sa obtinem totusi secventa corecta S daca aplicam s(k). Aceasta memorie poate stoca cel mult k secvente de lungimi p1 p2 : : : pk , unde: k X p = pi p < n: i=1 6.6 Exercitii 1. Asociatorul liniar trebuie sa asocieze urmatoarele perechi de vectori: s(1) = h s(2) = h s(3) = (a) (b) (c) (d) h 1 2 1 2 1 2 ; 65 1 2 1 6 1 6 1 2 1 2 1 6 1 6 ; 65 it ! f (1) = " 0 1 0 ]t it ! f (2) = " 1 0 1 ]t it (3) t ! f =" 0 0 0 ] Vericati daca vectorii s(1) , s(2) , s(3) sunt ortonormali. Calculati matricea ponderilor. Vericati asocierea produsa de retea pentru unul din vectorii s(i) . Perturbati s(i) d^andu-i unei componente valoarea 0 si calculati vectorul rezultat perturbat. 2. Asociatorul liniar din gura 6.7 a fost instruit sa asocieze vectorilor de intrare: h s(1) = h s(2) = h s(3) = i p13 p13 p13 t p12 p16 0 ; p12 ; p26 it i p16 t vectorii f (1) , f (2) , f (3) . Gasiti matricea W si vectorii f (1) , f (2) , f (3) care sunt codicati ^n retea. CAPITOLUL 6. MEMORII ASOCIATIVE 142 x1 1/6 1/2+1/6 + v1 -2/6 x2 -2/6 + v2 1/6 -1/2+1/6 x3 Figura 6.7: Asociatorul liniar propus pentru exercitiul 2. 3. Autoasociatorul liniar trebuie sa asocieze versiuni perturbate ale vectorilor s1 , s2, s3 cu prototipurile lor neperturbate din problema 1. Calculati matricea W. 4. Urmatorii vectori trebuie stocati ^ntr-o memorie autoasociativa recurenta: s(1) = " 1 1 1 1 1 ]t s(2) = " 1 ;1 ;1 1 ;1 ]t s(3) = " ;1 1 1 1 1 ]t (a) Calculati matricea W. (b) Aplicati la intrare vectorul v0 = " 1 ;1 ;1 1 1 ]t si folositi actu- alizarea asincrona ascendenta. (c) Aplicati v0 prin actualizare asincrona descendenta. (d) Comentati daca memoria Hopeld ofera o solutie optima din punct de vedere al DH. (Atentie, memoria este supra^ncarcata. Luati sgn(0) = 1 ^n aceasta problema). 5. O memorie asociativa temporala trebuie sa stocheze urmatoarea secventa: s(1) = " 1 ;1 ;1 1 ;1 ]t s(2) = " ;1 1 1 ;1 ;1 ]t s(3) = " ;1 1 1 1 ;1 ]t Calculati W si vericati regasirea pattern-urilor. ^Incercati sa introduceti la intrare pattern-uri perturbate. 6. (C) Proiectati o memorie heteroasociativa bidirectioanla care asociaza caracterele (A, C), (I, I) si (O, T). Reprezentati caracterele A, I, O ca matrici 6.6. EXERCITII 143 binare de 5 3 pixeli, iar caracterele C, I, T ca matrici binare de 3 3 pixeli. Vericati memoria folosind la intrare pattern-uri neperturbate si pattern-uri perturbate. 144 CAPITOLUL 6. MEMORII ASOCIATIVE Capitolul 7 Retele neurale cu auto-organizare ^In acest capitol ne vom concentra pe retele neurale care trebuie sa descopere singure relatiile interesante din cadrul pattern-urilor de intrare, deci nu vom folosi instruirea supervizata. Obiectivul nostru este sa exploram algoritmii de instruire nesupervizata ai retelelor neurale, retele care au astfel capacitatea de auto-organizare, adica de adaptare. 7.1 Retelele Hamming si MAXNET Vom considera un clasicator cu doua straturi pentru vectori binari bipolari (g. 7.1). [ x1... x n] t Retea Hamming MAXNET t [ y1k+1... yk+1 p ] Δ Figura 7.1: Clasicator cu doua straturi pentru vectori binari. Prima parte este o retea Hamming, detaliata ^n gura 7.2. Fie s(m) , m = 1 : : : p, vectorul prototip pentru clasa m. Presupunem ca avem pentru ecare clasa un vector prototip si, corespunzator, un neuron. Fie x vectorul de intrare. Folosim produsul scalar al vectorilor ca o masura de matching (potrivire) ^ntre acesti vectori. Ideea este sa luam: h i wm = wm1 : : : wmn t pentru m = 1 : : : p si sa avem xt wm maxim c^and x = s(m) . Deoarece vectorii sunt binari bipolari, produsul xt s(m) reprezinta numarul de pozitii ^n care x si s(m) difera. Numarul 145 CAPITOLUL 7. RETELE NEURALE CU AUTO-ORGANIZARE 146 n/2 1 f(net ) y1 w11 1 1 1 w1n ... ... n/2 wp1 n 1 net yp wpn n 0 p a) b) Figura 7.2: a) Reteaua Hamming b) Functia de activare a neuronilor retelei Hamming. Zonele ^n care f (net) < 0 si f (net) > 1 sunt inactive pentru ca 0 net n. de pozit ii(m^)n care acesti doi vectori difera este ^nsa chiar distanta Hamming, DH x s , prin denitie. Atunci: | {z } xt s(m) = n ; DH x s(m) ;DH x s(m) : nr. de pozitii ^n care sunt egali Obtinem: Luam: 1 xt s(m) = n ; DH x s(m) : 2 2 2 (1) 66 s1(2) WH = 12 666 s1 4 (p) s1 3 : : : s(1) n 7 : : : s(2) n 7 77 ... 75 : : : s(np) unde factorul 21 folosese la scalare. La intrarea ^n nodul m, m = 1 : : : p avem: netm = 21 xt s(m) + n2 = n ; DH x s(m) : Se observa ca am adaugat termenul n2 . Luam f (netm ) = n1 netm , m = 1 : : : p. Deoarece 0 netm n, avem 0 f (netm ) 1, m = 1 : : : p. Avem: 1. Daca x = s(m) , atunci DH = x s(m) = 0 si netm = n, deci f (netm ) = 1. 7.1. RETELELE HAMMING SI MAXNET 147 2. Daca x este complementul lui s(m) , atunci DH x s(m) = n, netm = 0 si f (netm ) = 0. ^In general, numarul neuronului cu cea mai mare iesire indica numarul clasei careia ^i este atribuit x, din punct de vedere al DH. Reteaua Hamming este, evident, de tip feedforward. Reteaua MAXNET (g. 7.3) este recurenta si are rolul de a transforma iesirile din reteaua Hamming, astfel ^nc^at toate aceste iesiri sa devina 0, cu exceptia celei maxime. Δ Δ y1k y1k+1 1 −ε −ε −ε 1 −ε y2k −ε −ε 1 ypk y2k+1 ypk+1 Δ Figura 7.3: Reteaua MAXNET. Matricea ponderilor retelei MAXNET este matricea p p: 2 1 ;" ;" : : : ;" 3 6 ;" 1 ;" : : : ;" 77 WM = 6664 .. ... 775 ... . ;" ::: 1 unde 0 < " < 1=p, " ind coecientul de interactie laterala. Lu^and (g. 7.4): f (net) = ( 0 net < 0 net net 0 h i y(k+1) = ; WM yk si presupun^and 0 yi0 1, i = 1 : : : p, valorile de init ializare, obtinem urmatorul proces: 148 CAPITOLUL 7. RETELE NEURALE CU AUTO-ORGANIZARE f(net ) 1 net 0 1 Figura 7.4: Functia de activare a neuronilor retelei MAXNET. Zona ^n care avem net > 1 este inactiva. La ecare recurenta, ecare componenta a vectorului y(k+1) scade p^ana devine 0. Componentele lui y(k+1) devin 0 ^n ordinea inversa a marimii lor. Procesul se stabilizeaza c^and o singura componenta (cea maxima) ram^ane nenula. Aceasta componenta scade cel mai lent. Pe masura ce sunt anulate componente, descresterea este mai lenta. Sa comparam aceasta retea cu asociatorul Hopeld. Presupunem ca trebuie sa clasicam ^n 5 clase posibile un vector cu 50 de componente. 1. Reteaua Hamming necesita 255 de conexiuni pentru cei 5 neuroni. 2. Reteaua Hopeld necesita 2450 de conexiuni pentru cei 50 de neuroni. ^In plus, capacitatea de stocare este limitata. Reteaua Hamming pare mai ecienta. Totusi, ea nu regaseste pattern-ul prototip, ci doar indicele clasei din care face parte pattern-ul de intrare. Deci, reteaua Hamming nu poate restaura un pattern perturbat, ci gaseste doar distanta minima a acestui pattern fata de prototipuri. Reteaua Hamming este un clasicator propriu-zis, nu o memorie autoasociativa. 7.2 Instruirea nesupervizata a clusterelor Clustering ^nseamna gruparea pattern-urilor similare si separarea celor nesimilare. Exista tehnici clasice de clustering: k-means, ISODATA etc, dar noi ne vom concentra pe metodele conexioniste. 7.2. INSTRUIREA NESUPERVIZATA A CLUSTERELOR 149 Instruirea c^astigatorul ia tot Presupunem ca avem secventa de instruire fx1 : : : xN g care reprezinta p clustere. Pentru reteaua Kohonen (g. 7.5), despre care vom discuta ^n continuare, avem: y = ;" Wx] 2 wt 3 2 3 w i1 66 w12t 77 W = 664 .. 775 unde wi = 664 ... 775 i = 1 : : : p . win wt p y1 2 ... wmn ... wm1 wm2 ym ... ... 1 n yp Figura 7.5: Reteaua Kohonen. Algoritmul de instruire este de tip c^astigatorul ia tot. Vectorii wi, i = 1 : : : p sunt variabili si trebuie ^nvatati. ^Inainte de instruire, se normalizeaza vectorii ponderilor: w^ i = wi : i = 1 : : : p: kwik Se calculeaza indicele m pentru care: kx ; w^ mk = i=1min fkx ; w^ i kg :::p unde x este vectorul de intrare. Deoarece: kx ; w^ mk = xt x ; 2w^ mt x ; 1 avem: w^ mt x = i=1 max (w^ tx): :::p i 1=2 Neuronul al m-lea, cu cea mai mare valoare pentru intrare este declarat c^astigator. ^In general, avem: t cos = kxxkkxxi k : i 150 CAPITOLUL 7. RETELE NEURALE CU AUTO-ORGANIZARE ^In loc de kx ; xi k, putem folosi cos ca si criteriu de similaritate ^ntre x si xi, astfel ^nc^at x este "mai aproape" de xi daca este mai mic. Este necesar ^nsa sa normalizam vectorii x si xi, pentru ca altfel criteriul nu mai functioneaza: se poate ca kx ; xik sa e mare, dar sa e mic. Reducem acum kx ; wm k ^n directia gradientului negativ al distantei: rwm kx ; wm k2 = ;2(x ; wm) %w^ m0 = (x ; w^ m) unde este de obicei ^ntre 0,1 si 0,7. Celelalte ponderi nu se schimba. Avem atunci: ( k+1 k k w^ m = w^ m + x ; w^ mk : w^ ik+1 = w^ ik i 6= m Procesul continua pentru un nou pattern x. Parametrul se reduce monoton si instruirea ^ncetineste pe parcurs. Vectorul modicat w^ mk+1 este normalizat si intra ^n pasul urmator. ^In nal, ecare w^ i va reprezenta centrul de greutate al unei regiuni de decizie, deci a unui cluster. Functiile de activare ale neuronilor nu au relevanta, dar ^n general sunt de tip continuu. Obtinem ^n nal un clasicator ^n care pattern-ul de intrare x este asociat gruparii m, unde ym = max(y1 : : : yp). Dupa instruire, reteaua Kohonen poate folosita ca si clasicator. Pentru aceasta, trebuie sa o calibram supervizat: se aleg p reprezentanti ai celor p clustere si se aplica, etichet^and corespunzator cele p noduri cu iesirile respective. Astfel, etichetam de fapt clusterele. Ponderile initiale sunt luate, ^n general, ^n mod aleator, astfel ^nc^at sa acopere uniform spatiul pattern-urilor. Reteaua Kohonen are limitari legate de arhitectura monostrat: nu poate manipula ecient pattern-uri liniar neseparabile. Chiar si pentru pattern-uri liniar separabile, ponderile pot sa se blocheze ^n regiuni izolate, fara sa formeze clusterele adecvate. ^In astfel de situatii, se reinitializeaza ponderile cu valori noi, sau se adauga zgomot la vectorii pondere ^n timpul instruirii. Daca numarul gruparilor este a priori necunoscut, se ia un p sucient de mare. Pe parcursul instruirii, unii neuroni se vor comporta haotic, ponderile catre ei nestabiliz^andu-se. Acesti neuroni nu reprezinta clustere, deci pot omisi ^n faza de utilizare a retelei. 7.3 Harti Kohonen Centrii anumitor activitati (vorbire, vedere, auz, functii motoare) sunt localizati ^n anumite arii specice ale cortexului. Mai mult, aceste arii prezinta o ordonare logica a functionalitatii lor. Putem da ca exemplu, harta tonotopica a regiunilor auditive, unde neuronii vecini raspund unor frecvente similare ale sunetului, de la frecvente ^nalte la frecvente joase. Un alt exemplu este harta somatotopica. I KOHONEN 7.3. HART 151 Astfel de regiuni, cum este harta tonotopica, se numesc harti de trasaturi ordonate (ordered feature maps). Vom studia ^n aceasta sectiune mecanismul prin care aceste harti de trasaturi ordonate se pot dezvolta natural. Cortexul este o suprafata de 2-4 mm grosime, av^and aproximativ 1m2 si const^and din 6 straturi de neuroni de tip si densitate variabile. El are forma pe care o cunoastem pentru a maximiza densitatea ^n craniu. Vom studia un model al cortexului care este o suprafata bidimensionala de elemente de procesare. Vectorii de intrare vor proiectati, prin reducerea dimensionalitatii, pe aceasta suprafata, mentin^andu-se ^nsa ordinea ^ntre ei. Aceasta suprafata este o harta care conserva topologia datelor de intrare (topology preserving map). O astfel de harta este o harta cu auto-organizare si este instruita nesupervizat. Neuronii biologici de pe suprafata mentionata au conexiuni laterale a caror tarie depinde de distanta dintre neuronii respectivi (g. 7.6). puterea conexiunii γ 0 distanta laterala de la al i-lea neuron Figura 7.6: "Palaria mexicana" descrie puterea conexiunii laterale a neuronilor biologici. ^In vecinatatea cu raza de 50-100 m, conexiunile sunt excitatoare. Deci, auto-feedback-ul ecarui neuron este pozitiv, exprimat de coecientul > 0 (g. 7.7). Aria excitatoare este ^nconjurata de un inel de conexiuni mai slabe, inhibitoare, cu raza de 200-500m. Autoorganizarea unei astfel de harti poate exemplicata pe un model liniar de 10 neuroni, reprezent^and o sectiune arbitrara a unei harti bidimensionale (g. 7.8). Calculam: 0 1 yi(t + 1) = f @xi(t + 1) + k X 0 k=;k0 yi+k (t)k A : Semnalele y(t) sunt ^nt^arziate cu o unitate ^nainte de a deveni feedback-uri. 152 CAPITOLUL 7. RETELE NEURALE CU AUTO-ORGANIZARE γ x i-1 i-1 γ xi yi i γ x i+1 i+1 Figura 7.7: Modelarea interactiunilor dintre neuronii biologici. Coecientii de feedback, k , depind de distanta dintre neuroni. Lu^and: xi (t) = 085 sin3 (i17+3) i = 1 : : : 10 > < 0 net 0 f (net) = > net 0 < net < 2 : 2 net 2 b = 0 4 c = 0 2 se obtin iesirile din gura 7.9. Un algoritm de proiectie a trasaturilor converteste un pattern de dimensiune arbitrara ^n raspunsurile unui tablou unidimensional sau bidimensional de neuroni. Rezultatele urmatoare apartin lui Kohonen (1990). Presupunem ca vectorii de intrare, cu un numar arbitrar, dar xat, de componente, sunt proiectati pe un tablou de neuroni av^and o topologie hexagonala (g. 7.10). ^In aceasta gura, m este neuronul c^astigator, iar Nm(t1 ) este vecinatatea lui m la momentul t1 . Dupa instruire, ecare intrare x produce un raspuns ^n retea, pozitia locala a raspunsului ind semnicativa: ea re&ecta caracteristica trasaturii dominante a lui x. Aceasta proiectie a trasaturilor este o proiectie neliniara a spatiului patternurilor pe tabloul neuronilor. Proiectia face ca relatiile de vecinatate topologica sa expliciteze relatiile de ordine dintre datele de intrare, aceste relatii din urma ind, ^nsa, ^ntr-un spatiu de dimensiune mult mai mare. Sa vedem cum are loc instruirea. Intrarea x este aplicata simultan tuturor neuronilor. Fie kx ; wm k = min fkx ; wikg i I KOHONEN 7.3. HART 153 γk y10 y2 y1 b -3 -2 ... x1 x2 2 x10 3 k 1 -1 -c distanta b) a) Figura 7.8: a) Sectiune arbitrara a unei harti bidimensionale b) Feedback-ul lateral. unde wi este vectorul ponderilor catre neuronul i. Daca neuronul m este c^astigator, deci raspunde maxim pentru x, aceasta antreneaza, ca ^n exemplul precedent, neuronii vecini. Nu avem un neuron c^astigator, ci o vecinatate Nm c^astigatoare. Se ajusteaza doar ponderile catre neuronii din Nm . Raza lui Nm trebuie sa scada pe masura ce instruirea progreseaza: Nm (t1) > Nm (t2 ) > Nm(t3 ) : : : pentru t1 < t2 < t3 : : : Se ^ncepe cu o raza foarte mare si se termina cu vecinatatea care include doar neuronul c^astigator. Mecanismul interactiilor laterale, tip "palarie mexicana", este ^ncadrat ^n denitia acestor vecinatati locale si a modului de adaptare a ponderilor. Adaptarea ponderilor pentru hartile cu auto-organizare se face astfel: %wi = (Ni t) "x(t) ; wi(t)] pentru i 2 Nm(t) unde 0 < (Ni t) < 1 este constanta de ^nvatare. De exemplu, Kohonen a folosit: (Ni t) = (t) e ;kri ;rm k 2 (t) unde rm este vectorul pozitiei neuronului m, ri este vectorul pozitiei neuronului i, iar (t) si (t) sunt functii descrescatoare ^n timp. Ca rezultat al instruirii ponderilor, se obtine o harta de neuroni ^n care ponderile codica functiile de densitate p(x) ale probabilitatilor pattern-urilor de instruire. Raspunsul neuronilor unei arii se^ntareste daca apar mai multe patternuri similare corespunzatoare acelei arii. Fie de exemplu 32 de vectori 5-dimensionali diferiti, etichetati cu A, ..., 6 (tab. 7.1). 154 CAPITOLUL 7. RETELE NEURALE CU AUTO-ORGANIZARE iesirea y i 2 15 pasi 4 pasi 0 pasi 1/2 1 3 8 10 i = nr. neuronului Figura 7.9: Evolutia iesirilor celor 10 neuroni. Nm (t 1 ) Nm (t 2 ) m Figura 7.10: Tablou de neuroni av^and o topologie hexagonala. Proiectia se face pe un tablou de 70 de neuroni, conectati ecare prin 5 ponderi cu componentele x1 : : : x5. Tabloul se instruieste folosind cei 36 de vectori selectati ^n ordine aleatoare. Dupa 10000 de pasi de instruire, ponderile se stabilizeaza si reteaua obtinuta este calibrata. Calibrarea se face prin etichetare supervizata. De exemplu, av^and vectorul B la intrare, observam unde apare raspunsul maxim ^n tabloul de neuroni si etichetam acel neuron cu B. Obtinem harta din g. 7.11. 32 de neuroni vor etichetati si 38 nu. Inspectam similaritatile dintre vectorii de instruire. Reprezentam vectorii ca v^arfuri ^ntr-un graf. Fiecarei muchii ^i atasam distanta dintre cele doua pattern-uri corespunzatoare v^arfurilor. De exemplu, distanta dintre A si C este egala cu: kA ; C k = 2: Construim ^n continuare arborele partial de lungime minima (g. 7.12). Se I KOHONEN 7.3. HART x1 x2 x3 x4 x5 A 1 0 0 0 0 B 2 0 0 0 0 C 3 0 0 0 0 D 4 0 0 0 0 E 5 0 0 0 0 F 3 1 0 0 0 GH 3 3 2 3 0 0 0 0 0 0 I 3 4 0 0 0 155 J 3 5 0 0 0 K 3 3 1 0 0 L 3 3 2 0 0 MN 3 3 3 3 3 4 0 0 0 0 OP 3 3 3 3 5 6 0 0 0 0 Q 3 3 7 0 0 R 3 3 8 0 0 S 3 3 3 1 0 T 3 3 3 2 0 U 3 3 3 3 0 V 3 3 3 4 0 WX 3 3 3 3 6 6 1 2 0 0 Y 3 3 6 3 0 Z 3 3 6 4 0 1 3 3 6 2 1 2 3 3 6 2 2 3 3 3 6 2 3 4 3 3 6 2 4 5 3 3 6 2 5 6 3 3 6 2 6 Tabelul 7.1: Vectori 5-dimensionali. B C D E * Q R * Y Z A * * * * P * * X * * F * N O * W * * 1 * G * M * * * * 2 * H K L * T U * 3 * * * I * * * * * * 4 * * J * S * * V * 5 6 Figura 7.11: Harta obtinuta ^n urma instruirii. poate observa ca harta trasaturilor produsa prin auto-organizare are aceeasi structura ca si acest arbore. ^Inseamna ca am reusit sa pastram topologia dintr-un spatiu 5-dimensional ^ntr-un plan. Distanta dintre vectorii xi si xj din spatiul pattern-urilor: v u 5 uX kxi ; xj k = t (xik ; xjk )2 k=1 se mentine si ^n spatiul trasaturilor, unde devine o simpla distanta ^n plan. Algoritmul de instruire tine cont at^at de relatiile topologice dintre datele de intrare c^at si de istoricul datelor de intrare, adica de frecventa de aparitie a pattern-urilor similare sau identice. Acest algoritm are numeroase aplicatii ^n controlul robotilor, recunoasterea vorbirii etc. Un exemplu celebru este masina de scris fonetica (Kohonen, 1988), folosita ^n recunoasterea vorbirii. La intrare avem un vector 15-dimensional. Semnalul vocal este convertit prin FFT ^n semnal ^n frecventa acoperind pe 15 canale frecventele dintre 200Hz si 5kHz. Fiecare fonem tinde sa ocupe un segment al spectrului 15-dimensional Fourier. Cu toate ca spectrele unor foneme diferite se suprapun partial, un tablou de neuroni este capabil, dupa instruire, sa extraga trasaturile fonemelor si sa le proiecteze pe o harta plana. Reteaua neurala a fost instruita cu semnale spectrale generate la ecare 9,83 ms de vorbirea continua. Esantioanele spectrului FFT au fost folosite ^n ordinea lor naturala Dupa instruire, anumiti neuroni devin sensibili la spectrul diferitelor foneme (g. 7.13). Harta a fost calibrata folosind foneme standard. Majoritatea celulelor au 156 CAPITOLUL 7. RETELE NEURALE CU AUTO-ORGANIZARE A B C D E F G H K L M N O P Q I S W J T X U Y V Z 1 R 2 3 4 5 6 Figura 7.12: Arborele partial de lungime minima construit pe baza distantelor dintre vectori. a a a a o o o ah a a r h h oe h ... r ... ... Figura 7.13: Harta fonemelor dupa instruire (^n limba nlandeza). ^nvatat un singur fonem. Exista c^ateva celule care indica raspunsul a doua foneme diferite, necesit^and o discriminare suplimentara. Pe aceasta harta, un cuv^ant genereaza o traiectorie. 7.4 Exercitii 1. (C) Proiectati reteaua Hammimg si reteaua MAXNET asociata care realizeaza clasicarea optima a vectorilor binari bipolari care reprezinta caracterele A, I si O din problema 7, capitolul 4 ^n termenii distantei Hamming minime. 2. (C) Implementati algoritmul de instruire c^astigatorul ia tot pentru gruparea caracterelor C, I si T afectate de zgomot, ^n mod similar reprezentarii folosite ^n problema anterioara. Presupuneti ca aceste caractere afectate de 7.4. EXERCITII 157 zgomot au DH=1 fata de prototipurile neafectate de zgomot. Calculati vectorii nali de ponderi wC , wI si wT . ^In timpul operatiei de testare, calculati raspunsurile f (netC ), f (netI ) si f (netT ) ecarui neuron cu functie de activare unipolar continua. Intrarile sunt vectori bipolari binari obtinuti din literele reprezentate matriceal. Folositi = 1. 3. (C) Fie multimea de pattern-uri 213 213 213 203 213 6 7 6 7 6 7 6 7 6 7 x1 = 664 00 775 x2 = 664 10 775 x3 = 664 11 775 x4 = 664 10 775 x5 = 664 11 775 : 0 0 0 0 1 Implementati harta Kohonen pentru a proiecta acesti vectori pe o retea de 5 5 neuroni. Folositi vecinatati hexagonale. Descresteti pe de la 0,5 la 0,004 pentru primii 1000 de pasi, apoi descresteti-l de la 0,04 la 0 pentru urmatorii 9000 de pasi. Descresteti raza vecinatatii de la 2 la 0 pe parcursul primilor 1000 de pasi. Calibrati apoi harta si desenati arborele partial de lungime minima produs pe harta pentru intrarile x1 , x2 , x3, x4, x5 . 158 CAPITOLUL 7. RETELE NEURALE CU AUTO-ORGANIZARE Capitolul 8 Retele neurale cu functie de activare radiala Aceste retele neurale au un timp de instruire mult mai rapid dec^at retelele neurale feedforward cu propagare ^n urma a erorii, evit^and si problema minimului local. Dezavantajul este ca, dupa instruire, necesita un timp de calcul mai mare ^n exploatare. ^In 1990 s-a demostrat ca aceste retele sunt aproximatori universali, ca si retelele feedforward cu functie de activare continua. Aceasta ^nseamna ca pot aproxima orice functie continua, oric^at de bine. O astfel de retea este o retea feedforward ^n care functia de activare este o functie de tip gaussiana. Deoarece gaussiana este simetric radiala, vom numi aceste retele "cu functie de activare radiala". Gaussiana nu este ^nsa dec^at o functie particulara de acest tip. Spre deosebire de retelele feedforward, ponderile conexiunilor catre straturile ascunse nu sunt initializate aleator. Ele sunt initializate cu valorile care produc raspunsul dorit. 8.1 Functii radiale Fie cazul unei singure intrari ^ntr-un neuron ascuns (g. 8.1). h(x) x u σ h(x) 1 −σ x u +σ Figura 8.1: Neuron cu functie de activare radiala. 159 CAPITOLUL 8. RETELE NEURALE RBF 160 Pentru neuronii de acest tip, avem: ;(x;u)2 h(x) = e h(u) = 1 unde este un parametru, iar u este o pondere. h(x) scade foarte rapid daca x este diferit de u. De aceasta data nu mai exista analogia cu potentialul membranei, cum este cazul functiei de activare de forma f (xt w). De aceea, retelele de acest tip se numesc "radial basis function neural networks". Ponderile nu se mai ^nmultesc cu intrarile. Le vom numi totusi astfel, fara a crea confuzie. Iesirea h(x) are un raspuns semnicativ doar pentru un interval de valori ale lui x, acest interval ind domeniul receptiv al neuronului. Marimea acestui domeniu este determinata de . Prin analogie cu distributia normala, u poate valoarea medie, iar 2 dispersia functiei de activare a neuronului. Forma generala a unei retele neurale bazata pe acest tip de neuron este cea din gura 8.2. 2 2 x1 u 11 σ2 x2 ... xp h1 w11 σ1 u mp strat de intrari Σ Σ y1 y2 y1 /s out 1 y2 /s out 2 yn /s out n h2 σm Σ hm yn wnm strat de normalizari Σ strat ascuns s strat de iesiri Figura 8.2: Retea neurala cu functie de activare radiala. Avem: unde: hi = e t ; (x;ui2)(2x;ui ) i x = " x1 : : : xp ]t i este parametrul pentru al i-lea neuron ascuns si ui = " ui1 : : : uim ]t este vectorul ponderilor dintre intrari si al i-lea neuron ascuns. Fiecarui pattern ^nvatat ^i corespunde un neuron ascuns. 8.1. FUNCTII RADIALE 161 ^In stratul de iesire se calculeaza: yj = m X i=1 hiwji iar pe ultimul strat, cel al normalizarilor, se calculeaza iesirile nale: s = n X j =1 yi yj outi = s : Aceste din urma normalizari sunt optionale. Domeniul receptiv al celui de-al i-lea neuron ascuns este determinat de centrul sau, ui , si de marimea sa, data de i . La neuronii studiati p^ana acum, acest domeniu era determinat de conexiunile neurale, nu de forma functiei de activare. Se pot folosi si alte functii de activare. Esential este ca ele sa tinda rapid catre zero atunci c^and distanta dintre vectorii x si u creste, iar raspunsul maxim sa ^l aiba c^and x = u. Reteaua trebuie instruita prin xarea parametrilor i si a ponderilor de tip u si w. Instruirea se face ^n doua faze. La ^nceput se atribuie valori pentru ui si i , i = 1 : : : m. Apoi, se instruieste matricea W prin ^nvatare supervizata. Fixarea centrilor domeniilor receptive Trebuie sa xam centrii domeniilor receptive. Fixarea ponderilor ui se poate face ^n mai multe feluri. Putem atribui ecarui vector din secventa de instruire c^ate un neuron ascuns, cu centrul corespunzator. Deoarece vectorii sunt, ^n general, dispusi ^n grupari (clustere), aceasta metoda duce la un numar prea mare de neuroni ascunsi. Mai bine este sa gasim centrul ecarui cluster de vectori din secventa de instruire si sa atribuim ecarui astfel de centru c^ate un neuron ascuns. Fixarea diametrelor domeniilor receptive Diametrul domeniului receptiv, determinat de valoarea lui , poate avea un efect foarte profund asupra retelei. Obiectivul este sa acoperim spatiul pattern-urilor de intrare, c^at mai uniform, cu domenii receptive. Daca distanta dintre centrii domeniilor receptive nu este uniforma, este necesar ca ecare neuron ascuns sa aiba o valoare specica pentru . Daca centrii domeniilor receptive sunt la distanta mare, atunci trebuie sa e sucient de mare pentru a acoperi golurile daca centrii sunt apropiati, atunci neuronii respectivi trebuie sa aiba mic. Aceasta este ca o egalizare de histograma, procedeu cunoscut ^n procesarea imaginilor. De exemplu, putem xa astfel: 1. Pentru ecare neuron ascuns, gaseste distanta medie dintre centrul sau, ui si centrii celor N vecini ai sai cei mai apropiati. 2. Atribuie aceasta valoare lui i CAPITOLUL 8. RETELE NEURALE RBF 162 Instruirea matricii W 1. Se aplica vectorul x la intrare, unde x este din secventa de instruire. 2. Se calculeaza iesirile h din stratul ascuns. 3. Se calculeaza iesirile y si se compara cu vectorul t al iesirilor dorite. Se ajusteaza W astfel: wij (k + 1) = wij (k) + (ti ; yi)xj unde este coecientul de ^nvatare. De obicei << 1, iar aceasta este de fapt regule Windrow-Ho. Se pot folosi si alte reguli, de exemplu regula perceptronului. 4. Repeta 1-3 pentru ecare pattern de instruire. 5. Repeta 1-4 p^ana c^and eroarea este sucient de mica. Deoarece domeniile receptive sunt limitate, ajustarile apar destul de rar, ceea ce conduce la o viteza mare. Algoritmul de instruire a lui W se refera la un singur strat, iar pattern-urile corespunzatoare neuronilor din stratul ascuns sunt liniar separabile, deoarece ecare clasa este formata dintr-un pattern. Rezulta ca algoritmul de instruire a lui W converge catre minimul global, conform teoremei perceptronului. Practic, convergenta este de aproximativ 1000 de ori mai rapida dec^at ^n cazul instruirii prin propagarea ^n urma a erorii. 8.2 O tehnica de grupare (clustering) Am vazut ca este avantajos sa obtinem c^ate un reprezentant pentru ecare cluster si sa instruim apoi reteaua doar cu acesti reprezentanti. Putem pondera reprezentantii cu numarul de pattern-uri pe care ^i reprezinta: Pn m h w yj = Pi=1n mi ih ji i=1 i i unde mi este numarul de pattern-uri din clusterul i. Iata o tehnica de clustering (Specht, 1991) simpla si ecienta. Se deneste o raza r. Primul pattern de instruire devine centrul primului cluster. Fiecare pattern din secventa de instruire este considerat pe r^and. Daca distanta dintre pattern-ul considerat si cel mai apropiat cluster este mai mica sau egala dec^at r, atunci pattern-ul este atribuit acelui cluster daca distanta este mai mare dec^at r, pattern-ul devine primul membru al unui nou cluster. Procedeul de clustering este folositor atunci c^and exista un exces de instruire cu date care formeaza clustere dense. 8.3. DISCUTIE 163 8.3 Discutie Retelele cu functie de activare radiala sunt foarte rapide la instruire, dar lente la utilizare. Procedeul de clustering poate util. Foarte importanta este alegerea corecta a lui . 164 CAPITOLUL 8. RETELE NEURALE RBF Capitolul 9 Retele neurale fuzzy 9.1 Logica fuzzy 9.1.1 De ce logica fuzzy? ^In 1985, Hitachi a instalat ^n Japonia un metrou controlat prin logica fuzzy. Trenurile accelereaza mai rapid si uniform, economisind 10% energie comparativ cu solutia conventionala. ^In Vest, interesul este ceva mai mic. Explicatia este probabil si traditia logicii aristotelice binare care spune ca ceva exista sau nu exista. Filosoa si religia orientale se bazeaza pe principiul ca ceva exista si, ^n acelasi timp, nu exista, de exemplu YIN si YANG. Atunci c^and nu au putut converti binar o informatie conform principiului true/false, occidentalii au apelat la statistica. Astfel, probabilitatea ca o masina sa e lenta sau rapida se exprima printr-un numar ^ntre 0 si 1. Logica fuzzy produce acelasi rezultat, etichet^and masinile ^n functie de viteza cu numere ^ntre 0 si 1. Aceasta a produs o mare confuzie, ne^nteleg^andu-se diferenta dintre cele doua demersuri. Vom vedea ^nsa ca diferenta este fundamentala. Initiatorul logicii fuzzy este, paradoxal, un occidental: Zadeh ^n 1965. Controlere fuzzy Sistemele fuzzy au fost folosite foarte des ^n controlere. Aceste controlere sunt usor de proiectat, uneori ^n c^ateva ore. Performantele lor sunt mai bune dec^at ^n cazul controlerelor clasice. Proiectarea unui sistem fuzzy nu necesita cunostinte de logica fuzzy. Vom demonstra aceasta proiect^and un controler fuzzy pentru un lift. Primul pas ^n proiectarea unui sistem fuzzy este sa decidem asupra unei multimi de reguli fuzzy. ^In cazul nostru, ele sunt: 1. Daca liftul se ridica lent si pozitia sa este departe de pozitia dorita, atunci mareste viteza. 165 166 CAPITOLUL 9. RETELE NEURALE FUZZY 2. Daca liftul se ridica cu o viteza medie si este aproape de pozitia dorita, atunci micsoreaza viteza. Exprimam acelasi lucru prin reguli IF-THEN: 1. IF viteza este SP (small positive) AND pozitia este LN (large negative) THEN tensiunea motorului este LP (large positive). 2. IF viteza este MP (medium positive) AND pozitia este SN (small negative) THEN tensiunea motorului este SP (small positive). Sarcina controlerului fuzzy este sa proceseze aceste doua reguli, eventual si altele, dupa ce a determinat pozitia si acceleratia. O regula are doua parti: partea antecedenta si cea consecventa. Partea antecedenta poate contine mai multe clauze legate prin AND, OR si NOT. O clauza este, de exemplu "viteza este SP". Clauzele pot descompuse ^n variabile si adjective. De exemplu, variabile sunt "viteza" si "pozitia", iar adjective sunt SP, LN si LP. Gradul ^n care o regula este relevanta ^ntr-o situatie masurata este acelasi cu gradul ^n care antecedentul regulii este adevarat ^n sens fuzzy. Valoarea de adevar fuzzy a unui antecedent depinde de valoarea de adevar fuzzy a ecarei clauze ale sale si de operatiile logice care leaga aceste clauze. ^In logica fuzzy, ecarui adjectiv (cum este si SP) i se atribuie o functie de apartenenta. Valoarea functiei de apartenenta este ^ntre 0 si 1. Data ind valoarea unei variabile, functia de apartenenta este folosita pentru a calcula valoarea de adevar a acelei variabile. Exemplu: Un barbat de 1,60 m ^n mod cert nu este "^nalt", deci functia de apartenenta la multimea barbatilor ^nalti a acestuia are valoarea 0. Pentru 1,75m avem o valoare ^ntre 0 si 1. Folosind functiile de apartenenta fuzzy, ecarei clauze dintr-un antecedent i se poate atribui o valoare de adevar fuzzy. Mai trebuie acum sa atribuim o valoare de adevar ^ntregului antecedent. Exemplu: Functia de apartenenta a vitezei la SP are valoarea 0,6 si functia de apartenenta a pozitiei la LN are valoarea 0,8, deci valoarea de adevar a ^ntregului antecedent este 0,6 pentru ca se considera valoarea minima. Pasul nal consta ^n combinarea valorilor de iesire pentru cele doua reguli. Acest proces se numeste defuzzicare. La acest proces, nu exista un consens asupra modului de operare. Tipul de defuzzicare ilustrat ^n gura 9.1 se numeste defuzzicare min-max. ^Intr-un sistem fuzzy, toate regulile actioneaza simultan asupra iesirii. La iesire avem tensiunea corespunzatoare centrului de greutate al sumei regiunilor 9.1. LOGICA FUZZY viteza (functia de apartenenta) SP 167 pozitie (functia de apartenenta) LN 0,8 tensiunea motorului (functia de apartenenta) LP 0 0 0 MP 0,6 SN regula 1 SP 0,3 0 0 0,1 m/s viteza (intrare) -10 m pozitia (intrare) 0,2 0 regula 2 suma tensiunilor (se ia max.) centrul de greutate x 0 iesire (tensiunea motorului) Figura 9.1: Defuzzicare min-max. hasurate. Trebue sa facem observatia ca forma functiei de apartenenta este data de proiectant. De obicei se alege o functie triunghiulara sau trapezoidala. Logica fuzzy generalizeaza logica binara, permit^and valori reale ^ntre 0 si 1. 9.1.2 Logica fuzzy, logica conventionala si teoria multimilor Ca si teoria multimilor, logica fuzzy se ocupa de conceptul apartenentei la o multime. ^In teoria clasica a multimilor, un element poate sau nu poate sa apartina unei multimi, ceea ce este nenatural. Exemplu: Un barbat de 1,80 m poate avea un grad de apartenenta de 0,6 la multimea barbatilor ^nalti. Aceasta ^nseamna si ca acest barbat are un grad de apartenenta de 0,4 la multimea barbatilor care "nu sunt ^nalti". Acest barbat apartine deci simultan celor doua multimi complementare, ceea ce ar imposibil ^n teoria conventionala. Logica conventionala deneste o functie de apartenenta la o multime A astfel: fA (x) 2 f0 1g, unde 0 ^nseamna x 62 A, iar 1 ^nseamna x 2 A. ^In logica fuzzy, functia de apartenenta devine: fA (x) 2 "0 1]. Ideea de a vedea o multime ca o functie capabila sa deneasca grade de apartenenta sta la baza teoriei multimilor fuzzy. Evident, este nevoie de o noua matematica, cea introdusa de Zadeh. 168 CAPITOLUL 9. RETELE NEURALE FUZZY Logica conventionala si logica fuzzy Logica conventionala foloseste AND, OR si NOT. Orice relatie poate descrisa prin combinarea acestor operatori. Functiile logice fuzzy opereaza asupra unor valori de adevar ^n "0 1]. Pentru valorile 0 si 1, o astfel de functie trebuie sa dea acelasi rezultat ca si ^n logica conventionala. Evident, exista o innitate de functii care sa satisfaca aceste cerinte. Trebuie alese cele mai avantajoase. Functia AND poate implementata astfel: and(X Y ) = min(X Y ) unde X Y 2 "0 1]. Functia OR: or(X Y ) = max(X Y ). Functia NOT: not(X ) = 1 ; X . Teoria clasica si fuzzy a multimilor Fie mA (x) valoarea functiei de apartenenta a punctului x la multimea A si mB (x) valoarea functiei de apartenenta a punctului x la multimea B. Denim: mA\B (x) = min"mA (x) mB (x)]: Este o denitie compatibila cu denitia functiei AND. Este relatia pe care am folosit-o ^n exemplul cu controlerul. Similar: mAB (x) = max"mA mB ] mAc (x) = 1 ; mA (x) unde Ac este complementul lui A. Ca exercitiu, calculati intersectia si reuniunea multimilor A si Ac. Multimi fuzzy si paradoxuri logice Bertrand Russell a dat urmatorul paradox al barbierului: ^Intr-un oras exista un barbier care barbiereste pe oricine nu se barbiereste singur. Problema este daca barbierul se barbiereste singur. Apare o contradictie logica, un paradox. Daca propozitia P :"se barbiereste singur" are valoarea de adevarat, truth(P ), atunci truth(P ) = truth(notP ), deoarece barbierul se barbiereste si, ^n acelasi timp, nu se barbiereste singur. Folosind complementul fuzzy, truth(notP ) = 1 ; truth(P ): Atunci, deci truth(P ) = 1 ; truth(P ) truth(P ) = 0 5: 9.2. RETELE NEURALE FUZZY 169 ^In logica fuzzy, propozitiile pot avea valori de adevarat oriunde ^ntre 0 si 1, deci paradoxul lui Russell nu mai exista. Desigur, elimin^and toate restrictiile asupra imaginatiei, putem practic explica orice. De exemplu, sa consideram superstitiile popoarelor primitive care explica fenomenele naturale cu ajutorul entitatilor supranaturale. Logicienii conventionali acuza teoreticienii fuzzy de "constructie articala". Teoriile matematice trebuie ^nsa judecate prin consistenta, frumusetea si utilitatea lor. Teoria fuzzy satisface toate aceste cerinte. Observatii matematice Fie X o multime oarecare. Fie fA : X ! "0 1] o functie. Functia fA deneste o multime fuzzy (^n X ), adica multimea A = f(x fA (x)jx 2 Xg. Functia fA este functia de apartenenta la multimea A. Apare un abuz de limbaj^ntre "multimea" fuzzy A si "functia" de apartenenta la A. Acest abuz se datoreaza faptului ca denim o multime prin gradul de apartenenta la aceasta multime, nu prin enumerarea multimii, cum suntem obisnuiti. 9.2 Retele neurale fuzzy 9.2.1 Neuroni fuzzy Un neuron non-fuzzy are N intrari ponderate si o iesire. Iesirea se calculeaza astfel: X ! N y=f wixi ; T i=1 unde f este functia de activare, ^n general neliniara. Un neuron fuzzy (NF) (g. 9.2) are N intrari ponderate si M iesiri. intrari x1 x2 ponderi iesiri y1 w1 g1 g2 w2 ... xN gM wN T Figura 9.2: Neuronul fuzzy. ... f ... h y2 yM 170 CAPITOLUL 9. RETELE NEURALE FUZZY Toate intrarile si ponderile sunt valori reale, iar iesirile sunt valori reale ^n intervalul "0,1]. Fiecare iesire poate asociata gradului de apartenenta (^n sensul fuzzy), adica exprima ^n ce masura pattern-ul cu intrarile fx1 x2 : : : xN g apartine unei multimi fuzzy. Avem: z = h(w1x1 w2x2 : : : wN xN ) unde z este intrarea ^n NF, iar h este functia de agregare, s = f (z ; T ) unde s este starea NF, f este functia de activare, iar T este pragul, yj = gj (s) j = 1 : : : M unde gj , j = 1 : : : M sunt functiile de iesire ale NF reprezent^and gradele de apartenenta ale lui fx1 : : : xN g la cele M multimi fuzzy. ^In general, ponderile, pragul si functiile de iesire sunt modicabile ^n timpul procesului de instruire. Functia de agregare si functia de activare sunt xe. Se pot deni multe tipuri de NF prin schimbarea functiilor f si h. Denim acum patru tipuri de NF. 1. un NF de intrare este un NF folosit ^n stratul de intrare a unei RNF (retele de neuroni fuzzy), av^and doar o singura intrare x, astfel ^nc^at z = x. 2. un MAX-NF are functia de agregare: z = maxi=1:::N (wixi): 3. un MIN-NF are functia de agregare: z = mini=1:::N (wixi ): 4. un COMP-NF (NF competitiv) are pragul variabil si o singura iesire, astfel ^nc^at: ( as<T y = g(s ; T ) = 01 dac daca s T T = t(c1 c2 : : : cK ) unde s este starea NF, t este functia prag, iar ck , k = 1 : : : K sunt variabile competitive ale NF. 9.2. RETELE NEURALE FUZZY 171 9.2.2 Structura unei RNF RNF propusa1 este pe patru straturi. Primul strat, de intrare, foloseste neuroni fuzzy de intrare. Presupun^and ca dorim sa recunoastem caractere, ecare NF din acest strat corespunde unui pixel din pattern-ul de intrare. Daca ecare pattern de intrare are N1 N2 pixeli, atunci primul strat are N1 N2 NF de intrare. Pentru al (i j )-lea NF de intrare din primul strat avem: 1] s1] ij = zij = xij pentru i = 1 : : : N1 j = 1 : : : N2 s1] 1] yij = P ij pentru i = 1 : : : N1 j = 1 : : : N2 vmax unde xij este valoarea pixelului (i j ), xij 0, iar Pvmax este valoarea maxima a pixelilor pentru toate pattern-urile de intrare. Al doilea strat consta din N1 N2 MAX-NF. Acest al doilea strat realizeaza fuzzicarea pattern-urilor de intrare prin functia pondere w(m n). Starea celui de-al (p q)-lea MAX-NF din al doilea strat este: 1] s2] pq = maxi=1:::N (maxj =1:::N (w(p ; i q ; j )yij )) 1 2 pentru p = 1 : : : N1 si q = 1 : : : N2, unde w(p;i q ;j ) este ponderea conexiunii dintre al (i j )-lea NF de intrare din primul strat si al (p q)-lea MAX-NF din al doilea strat: w(m n) = e; (m +n ) pentru m = ;(N1 ; 1) : : : (N1 ; 1) si n = ;(N2 ; 1) : : : (N2 ; 1). Prin aceasta functie pondere care are o forma de gaussiana, ecare NF din al doilea strat este ca o lentila, astfel ^nc^at ecare NF focalizeaza pe un pixel din pattern-ul de intrare, dar "vede" si pixelii vecini. Parametrul determina c^ati pixeli "vede" un NF, aceasta ind decis prin algoritmul de instruire. Functia w se numeste si functie de fuzzicare. Fiecare MAX-NF din acest strat are M iesiri diferite, c^ate una pentru ecare NF din al treilea strat. Iesirile celui de-al (p q)-lea MAX-NF din al doilea strat sunt: 2] ypqm = gpqm(spq2]) 2] pentru p = 1 : : : N1, q = 1 : : : N2, m = 1 : : : M , unde ypqm este a m-a iesire a celui de-al (p q)-lea MAX-NF catre al m-lea MIN-NF din stratul trei. Functia de iesire gpqm se determina prin algoritmul de instruire. Pentru simplitate, putem alege triunghiuri isoscele de ^naltime 1 si baza (g. 9.3). Avem: 2 2 2 8 < 1 ; 2jspq ; pqmj pentru js2] ; j 2] pqm pq 2 ypqm = gpqm(s2] ) = pq :0 ^n rest 2] Kwan, H.K., Cai.Y "A Fuzzy Neural Network and its Application to Pattern Recognition", IEEE Trans. on Fuzzy Systems, 2, 1994, 185-193. 1 CAPITOLUL 9. RETELE NEURALE FUZZY 172 g pqm(s[2] pq) 1 Θ pqm 0 s [2] pq α [2] Figura 9.3: Functia de iesire gpqm . pentru 0, p = 1 : : : N1, q = 1 : : : N2, m = 1 : : : M , unde pqm este mijlocul bazei triunghiului. Prin algoritmul de instruire se determina pentru ecare p, q, m valorile corespunzatoare pentru si pqm. Al treilea strat consta din M neuroni de tip MIN-NF. Fiecare din acesti neuroni reprezinta un pattern ^nvatat. Deci, M poate determinat doar la ^ncheierea procesului de instruire. Iesirea celui de-al m-lea MIN-NF este: 2] ym3] = s3] m = minp=1:::N (minq=1:::N (ypqm )) pentru m = 1 : : : M . Al patrulea strat este stratul de iesire si consta din M neuroni de tip COMPNF, c^ate unul pentru ecare pattern ^nvatat. Daca un pattern de intrare este cel mai asemanator cu al m-lea pattern ^nvatat, atunci iesirea celui de-al m-lea COMP-NF este 1, iar celelalte iesiri sunt 0. Avem: 4] 3] s4] m = zm = ym pentru ( m = 1 : :4]: M 0 daca sm < T ym4] = g"s4] m ; T ] = 1 daca s4] = T pentru m = 1 : : : M m T = maxm=1:::M (ym3]) pentru m = 1 : : : M unde T este pragul de activare pentru toti neuronii din cel de-al patrulea strat. 1 2 9.2.3 Algoritmul de instruire a unei RNF Prin instruire, trebuie sa determinam urmatorii parametri: , pqm, si M . Denim Tf , 0 Tf 1, ca toleranta la eroare a RNF. Fie K numarul total de pattern-uri de instruire. Pasul 1. Creeaza N1 N2 neuroni de tip NF de intrare ^n primul strat si N1 N2 neuroni de tip MAX-NF ^n al doilea strat. Alege o valoare pentru , 0 si o valoare pentru . 9.2. RETELE NEURALE FUZZY 173 Pasul 2. M = 0, k = 1. Pasul 3. M = M + 1. Creeaza al M -lea MIN-NF ^n al treilea strat si al M -lea COMP-NF ^n al patrulea strat. pqM = s2] pq = maxi=1:::N (maxj =1:::N (w(p ; i q ; j )xijk )) pentru p = 1 : : : N1 si q = 1 : : : N2 , unde pqM este mijlocul bazei triunghiului pentru cea de-a M -a functie de iesire a celui de-al (p q)-lea MAXNF ^n stratul 2. Xk = fxijk g, i = 1 : : : N1 , j = 1 : : : N2 este al k-lea pattern de instruire. Presupunem ca valorile xijk sunt deja normalizate. Pasul 4. k = k + 1. Daca k > K , algoritmul de instruire se termina. Altfel, accepta la intrarea ^n retea al k-lea pattern si calculeaza iesirea RNF curente, cu M neuroni ^n straturile 3 si 4. = 1 ; maxj=1:::M (yjk3]) 1 2 unde yjk3] este iesirea celui de-al j -lea MIN-NF din stratul 3 pentru al k-lea pattern de instruire Xk . Daca: Tf , goto Pasul 4. > Tf , goto Pasul 3. 9.2.4 Analiza RNF Primul strat de neuroni accepta datele de intrare si transforma valoarea pixelilor ^n valori normalizate, ^n intervalul "0,1]. Al doilea strat fuzzica pattern-ul de intrare. Valoarea unui pixel ^n patternul de intrare va afecta starile mai multor NF din stratul 2. Cu c^at este mai mic, cu at^at mai multi NF din stratul 2 vor afectati de un pixel din pattern-ul de intrare. Deci, controleaza gradul de fuzzicare. Daca este prea mic, RNF nu va putea separa pattern-urile distincte. Daca este prea mare, RNF ^si pierde abilitatea de a recunoaste pattern-uri perturbate. Valoarea lui trebuie aleasa astfel ^nc^at toate pattern-urile distincte sa poata separate, iar RNF sa aiba o rata de recunoastere acceptabila. 2] Valoarea ypqm exprima conceptul fuzzy cu privire la gradul ^n care valoarea pixelilor ^n jurul pixelului (p q) din pattern-ul de intrare sunt similare cu valoarea pixelilor ^n jurul pixelului (p q) din cel de-al m-lea pattern ^nvatat. Functia de iesire gpqm pentru neuronii din cel de-al doilea strat este, de fapt, o functie de apartenenta fuzzy: gpqm(s2] pq ) arata gradul de apartenenta al pattern-ului de intrare la clasa reprezentata de al m-lea pattern ^nvatat, apartenenta referindu-se la vecinatatile corespunzatoare ale pixelului (p q). Neuronii din al treilea strat determina similaritatile dintre pattern-ul de intrare si pattern-urile ^nvatate. Avem de fapt: ( 2 2] maxpq (js2] 3] pq ; pqm j) 2 ym = 0minpq (1 ; jspq ; pqm j) ^pentru n rest 174 CAPITOLUL 9. RETELE NEURALE FUZZY pentru m = 1 : : : M . Valoarea ym3] masoara similaritatea pattern-ului de intrare cu al m-lea pattern ^nvatat. Daca pattern-ul de intrare a fost deja ^nvatat, va exista un m pentru care ym3] = 1. Daca pattern-ul de intrare nu a fost ^nvatat, toate valorile ym3], m = 1 : : : M vor mai mici dec^at 1. Valoarea lui trebuie sa acopere toate valorile posibile la nivel de pixel. Stratul de iesire este folosit pentru defuzzicare. Deci, procedura de recunoastere prin RNF consta din: 1. datele de intrare (stratul 1) 2. fuzzicare (stratul 2) 3. deductie fuzzy (stratul 3) 4. defuzzicare (stratul 4) Straturile 3 si 4 sunt construire prin instruirea retelei. Daca un pattern de intrare este similar cu un pattern deja ^nvatat, el este tratat ca acel pattern, fara a mai ^nvatat si el. ^In caz contrar, pattern-ul de intrare este ^nvatat. Procesul de instruire poate continuu: RNF nu trebuie ^n mod necesar instruita complet ^nainte de a folosita ea poate si instruita si pe parcursul folosirii. Parametrii , si Tf trebuie xati convenabil. 9.2.5 Rezultatele simularii ^In implementarea autorilor, literele si cifrele au fost construite ca pattern-uri de 16 16 pixeli, pixelii av^and doar valori binare. Pattern-urile au fost apoi miscate prin deplasari ^n cele opt directii cu unul si doi pixeli. Cele 36 de pattern-uri corecte si c^ateva din pattern-urile obtinute prin deplasari au fost folosite pentru a instrui reteaua. Pentru a testa performantele retelei, s-au folosit pattern-uri perturbate prin: marire/micsorare, subtiere/^ngrosare, adaugarea/extragerea unor mici portiuni etc. S-au folosit diferite valori pentru , , Tf la instruire: 1 5 3 5 0 1 Tf 0 35 0 1 1 6: Dupa instruire, s-a testat RNF la recunoasterea unor pattern-uri perturbate, rezultatele ind foarte bune. 9.2. RETELE NEURALE FUZZY 175 9.2.6 Concluzii Timpul de instruire a RNF este mai mic dec^at ^n cazul instruirii prin propagarea ^n urma a erorii. Recunoasterea este si ea mai rapida. Sa observam ca aceasta RNF ^nvata nesupervizat, ind ^n esenta un algoritm de clustering. Ulterior instruirii, RNF este folosita ca un clasicator. Exista variante ale acestei RNF care ^nvata ^n mod supervizat2 . Cai, Y., H.K. Kwan "Fuzzy Classication Using Fuzzy Inference Networks". IEEE Trans. Syst., Man, and Cyb., Part B: Cybernetics, 28, 1998, 334-374. 2 176 CAPITOLUL 9. RETELE NEURALE FUZZY Capitolul 10 Algoritmi genetici Natura a demonstrat puterea geneticii. Cei ce vor sa multiplice performantele sistemelor biologice, chiar partial, nu pot ignora modul ^n care acestea s-au dezvoltat, cum au evoluat. Algoritmii genetici sunt mijloace prin care masinile pot emula mecanismele selectiei naturale. Acesti algoritmi sunt simpli, robusti si generali. Cu retelele neurale au ^n comun urmatoarele: nu sunt necesare cunostinte asupra spatiului de cautare consuma uneori mult timp sunt paraleli prin natura lor ambele metode se aplica unor probleme similare. De aceea, de multe ori algoritmii genetici si retelele neurale se aplica ^mpreuna. De exemplu, algoritmii genetici se pot aplica pentru accelerarea procesului de instruire a retelelor neurale. ^In mod ciudat, printr-un algoritm genetic se poate obtine algoritmul genetic care rezolva o problema data. 10.1 Introducere Metodele conventionale de optimizare se bazeaza pe ajustarea parametrilor unui model pentru a produce un rezultat dorit. La retelele neurale, prin instruire se modica iterativ ponderile conexiunilor, astfel ^nc^at sa se produca relatia dorita ^ntre intrari si iesiri. De remarcat ca este mentinuta o singura solutie care este optimizata ^n mod iterativ. Algoritmii genetici opereaza optimizari conform tehnicilor cunoscute ^n genetica biologica: se modica si se mentin caracteristicile unei populatii de solutii (indivizi) pe parcursul unui mare numar de generatii. Acest proces produce populatii succesive av^and un numar din ce ^n ce mai mare de indivizi cu caracteristicile dorite. Ca si ^n natura, procesul este probabilistic, dar nu complet aleator. Dupa cum vom vedea, regulile geneticii retin caracteristicile dorite prin 177 178 CAPITOLUL 10. ALGORITMI GENETICI maximizarea probabilitatii de proliferare a solutiilor (indivizilor) care au aceste caracterisitci. Genetica nu optimizeaza, ci ^mbunatateste. Un individ nu trebuie sa e optim pentru a supravietui el trebuie sa e superior altor indivizi din populatia respectiva. Algoritmii genetici opereaza asupra unor codicari de parametri, nu direct asupra parametrilor. Codicarile sunt siruri de lungime nita, de obicei binare. Fiind data o populatie initiala de siruri, un algoritm genetic produce o noua populatie de siruri folosind o multime de reguli genetice. Regulile sunt astfel construite ^nc^at aceasta noua generatie tinde sa aiba siruri superioare celor din generatia precedenta, din punct de vedere al unei functii obiectiv. 10.2 Exemplu Dorim sa minimizam valoarea unui sir binar, considerat aici ca un numar binar. Vom efectua urmatorii pasii: 1. initializare 2. reproducere 3. ^ncrucisare 4. mutatie 5. repeta pasii 2-4. Initializare Fiecare sir este generat ca un numar binar aleator. Pornim cu urmatoarele sase siruri: i sirul Ai val. zecimala fi pi 1 011010 26 0,0385 0,142 2 001011 11 0,0909 0,334 3 110110 54 0,0185 0,068 4 010011 19 0,0526 0,194 5 100111 39 0,0256 0,094 6 010110 22 0,0455 0,168 0,2716 1 Total Ca functie obiectiv se alege (val. zecimala);1. Reproducere prin selectie Se obtine o a doua generatie de siruri care au, ^n medie, functia obiectiv mai mare. Fiecare sir Ai este copiat ^n generatia urmatoare de un numar de ori care 10.2. EXEMPLU 179 este proportional cu pi, unde: pi = Pfif j j fi ind functia obiectiv, iar pi este functia obiectiv relativa. "Discul norocului" (g. 10.1) este reprezentarea graca a acestor functii. 001011 110110 011010 010011 010110 100111 Figura 10.1: "Discul norocului". Sectiunile sunt proportionale cu pi . Pentru ecare copiere ^n generatia urmatoare, se copiaza sirul la care s-a oprit discul. Se fac sase copieri, pentru ca a doua generatie sa e la fel de mare: 011010 001011 001011 010011 100111 010110 Primul sir se reproduce, ^n medie, de 6 0 412 = 0 71 ori deci, prin rotunjire, o data. ^Incrucisare Se simuleaza schimbul de material genetic care are loc ^n timpul reproducerii biologice. ^In mod aleator, se obtin perechi de siruri. Pentru simplitate, vom ^ncrucisa perechile adiacente. Pentru ecare pereche se obtine un numar ^ntreg aleator ^ntre 1 si 6. Acesta arata c^ati biti din dreapta se schimba ^ntre cele doua siruri. De exemplu, ^ncrucisam sirurile A1 si A2 , av^and ^ntregul aleator 2: ( ) ( ) 011010 ! 011011 : 001011 001010 CAPITOLUL 10. ALGORITMI GENETICI 180 Procesul continua pentru sirurile A3 si A4 , av^and ^ntregul aleator 4 si pentru sirurile A5 si A6 av^and ^ntregul aleator 3. Obtinem sirurile: 011011 001010 000011 011011 100110 010111 Mutatie Biologic, ea perturba caracteristicile populatiei, ^n mod aleator, prevenind degenerarile. Cele mai multe mutatii mai mult distrug dec^at sa e benece. De aceea, mutatia trebuie sa e rara, pentru a nu distruge specia. Pe de alta parte, ea e necesara. ^In simularea noastra, vom presupune o rata a mutatiei de 1/1000 biti, mutatia ^nsemn^and aici o inversare de bit. Deoarece avem 36 de biti ^n populatie, probabilitatea unei mutatii este 0,036. Presupunem ca nu are loc nici o mutatie la acest pas. Obtinem astfel a doua generatie: i 1 2 3 4 5 6 Total sirul Ai val. zecimala 011011 27 001010 10 000011 3 011011 27 100110 38 010111 23 fi 0,037 0,10 0,333 0,037 0,0263 0,043 0,576 pi 0,064 0,174 0,578 0,064 0,046 0,075 1 Observam ca totalul functiei obiectiv a crescut vizibil. ^Intregul proces se reia, obtin^and urmatoarele generatii. ^In general, populatia poate sa creasca sau sa scada de la o generatie la alta. Acest proces continua p^ana c^and functia obiectiv atinge o valoare acceptabila pentru o anumita generatie. Convergenta este, ^n general, rapida. Se poate^nt^ampla sa ajungem la o degenerare, de exemplu daca cele sase siruri sunt 000011. De aici putem iesi doar astept^and o mutatie favorabila. Aceasta poate avea loc doar dupa multe generatii. Astfel se poate ^nt^ampla si ^n natura, unde o specie poate suferi o adaptare neoptima pentru milenii, p^ana c^and apare un organism mai bine adaptat care ajuta la perfectionarea speciei. 10.3 Fundamente matematice O schema este o submultime de siruri cu similaritati ^n anumite pozitii. Vom considera siruri peste alfabetul V = f0 1g. Un sir va notat astfel: A = a1 a2a3 : : : al , unde ai poate 0 sau 1, iar l este lungimea sirului. O schema H peste alfabetul 10.3. FUNDAMENTE MATEMATICE 181 V + = f0 1 g este, de exemplu, H = 11 0 . Schema H este, de pilda, reprezentata de sirul 0110000. Daca V are k siruri, atunci se pot forma (k + 1)l scheme. Fiecare sir este continut ^n 2l scheme deoarece, ecare caracter din sir poate avea e valoarea pe care o are, e . Deci, ^ntr-o populatie de n siruri, exista cel mult n 2l scheme si cel putin 2l scheme reprezentate efectiv ^n populatie, acest numar depinz^and de diversitatea populatiei. Ordinul unei scheme H , o(H ), este numarul pozitiilor xate din H . De exemplu, o(011 1 ) = 4. Lungimea de denitie a unei scheme H , (h), este distanta dintre prima si ultima pozitie xata. De exemplu, (011 1 ) = 4. Vom considera efectele operatiilor de reproducere, ^ncrucisare si mutatie asupra schemelor reprezentate ^ntr-o populatie de siruri. Reproductie Presupunem ca la momentul t exista m reprezentanti (m siruri) ai schemei H ^n generatia A(t). Vom scrie: m = m(H t). Conform algoritmului de reproductie, un sir Ai este copiat ^n generatia urmatoare cu probabilitatea pi = Pfifj . Presupunem ca selectam n siruri distincte din A(t) pentru urmatoarea generatie, A(t + 1), cu "reintroducere". Avem: m(H t + 1) = m(H t) n fP(Hf ) j unde f (H ) este valoarea medie a functiei obiectiv pentru sirurile care reprezinta schema H la P momentul t. Fie f( = nfj valoarea medie a functiei obiectiv pentru ^ntreaga populatie (A(t) are n siruri). Atunci: ): m(H t + 1) = m(H t) f (fH ( O schema H creste deci direct proportional cu raportul: valoarea medie a functiei obiectiv pentru schema H : valoarea medie a functiei obiectiv pentru ^ntreaga populatie Efectul reproducerii este clar: din punct de vedere al numarului de reprezentanti, o schema H cu f (H ) > f( creste, iar o schema H cu f (H ) < f( scade. Sa presupunem acum ca pentru o schema H avem f (H ) = f(+ cf(, unde c este o constanta. Atunci: ( ( m(H t + 1) = m(H t) f +f(cf = (1 + c) m(H t): Pornind din t = 0, obtinem: m(H t) = m(H 0)(1 + c)t adica, obtinem o progresie geometrica. Cresterea / scaderea unei scheme prin reproductie este exponentiala. 182 CAPITOLUL 10. ALGORITMI GENETICI ^Incrucisare Fie l = 7 si e: A = H1 = H2 = 0111000 *1****0 ***10** Sirul A reprezinta schemele H1 si H2. "Taietura" dupa care se executa ^ncrucisarea se alege aleator, echiprobabil ^ntre cele 6 posibilitati. De exemplu: A = H1 = H2 = 011|1000 *1*|***0 ***|10** ^Incrucisarea are loc prin schimbarea primelor 3 caractere din A. Observam ca H1 este distrusa, deoarece 1 si 0 vor plasate ^n siruri diferite. H2 supravietuieste ^nsa. Probabilitatea ca H1 sa e distrusa este mai mare, deoarece (H1) > (H2). Probabilitatea ca H1 sa e distrusa este pd = l(;H11) = 65 : Probabilitatea ca H1 sa supravietuiasca este ps = 1 ; pd = 16 . Similar, pentru H2, pd = 61 . Nu am considerat deocamdata situatia ^n care, prin operatia de ^ncrucisare, pozitiile xate din schema nu se modica. ^In general, ps = 1 ;l ;(1H ) : Fie pc probabilitatea ca sa efectuam operatia de ^ncrucisare. Avem: ps 1 ; pc l (;H1) : Se foloseste semnul pentru ca acum tinem cont si de situatia ^n care, prin operatia de ^ncrucisare, pozitiile xate nu se modica. Consideram acum efectul combinat al reproductiei si ^ncrucisarii. Presupun^and ca aceste doua operatii sunt independente obtinem: ! f ( H ) ( H ) m(H t + 1) m(H t) f( 1 ; pc l ; 1 : Observam ca schemele cu lungime mica sunt favorizate. 10.4. EXERCITII 183 Mutatie Alteram o pozitie xata cu probabilitatea pm, deci supravietuieste cu probabilitatea 1 ; pm . O schema H supravietuieste daca ecare dintre cele o(H ) pozitii xate supravietuieste. Rezulta ca probabilitatea ca o schema H sa supravietuiasca este (1 ; pm)o(H ) . Pentru valori mici ale lui pm , aceasta probabilitate se poate aproxima cu 1 ; o(H )pm, conform inegalitatii Bernoulli: Oricare ar a ;1 si n natural, avem: (1 + a)n 1 + na: Tin^and cont de toate operatiile genetice, obtinem (rotunjit): ! f ( H ) ( H ) m(H t + 1) m(H t) f( 1 ; pc l ; 1 ; o(H )pm : Observam ca schemele cu ordin mic sunt favorizate. ^In nal, putem formula urmatoarea teorema: Teorema Fundamentala a Algoritmilor Genetici (Holland, 1975). Schemele cu valoare a functiei obiectiv peste medie, cu lun- gimea de denitie si ordinul mici, cresc exponential ^n generatiile urmatoare. Am vazut ca ^ntr-o populatie de n siruri de lungime l sunt procesate ^ntre 2l si n2l scheme. Nu toate aceste scheme sunt procesate cu o probabililitate mare, datorita operatiilor de ^ncrucisare si mutatie (schemele lungi sunt distruse). Se poate demonstra ca numarul de scheme efectiv procesate este ^n ordinul lui n3 , tin^and cont si de operatiile de ^ncrucisare si mutatie. Cu alte cuvinte, cu toate ca se proceseaza n siruri la ecare generatie, un algoritm genetic proceseaza de fapt ^n ordinul lui n3 scheme. Aceasta proprietate deneste paralelismul implicit al unui algoritm genetic. Manipul^and n elemente, procesam de fapt aproximativ n3 similaritati. Acestui paralelism implicit i se datoreaza faptul ca spatiul cautarilor este sucient de mare pentru ca algoritmul sa nu duca, ^n general, la un optim local ci la unul global. Fiind data o populatie de siruri, cu valorile respective ale functiei obiectiv, ne punem problema de ce informatie dispunem pentru a ghida cautarea unor siruri mai bune. Raspunsul este: similaritatile dintre siruri. Aceste similaritati sunt descrise de schemele populatiei. 10.4 Exercitii 1. (C) Minimizati functia f (x y z) = x2 +y2 +z2 , x y z 2 ";512 512]. Folositi siruri binare de lungime 10. 184 CAPITOLUL 10. ALGORITMI GENETICI Capitolul 11 Puterea si complexitatea de calcul a retelelor neurale 11.1 Masina Turing Masina Turing este un model abstract de calculabilitate. O masina Turing este formata dintr-o banda divizata ^n celule, innita la dreapta si dintr-un cap de citire/scriere care la un moment dat este pozitionat exact asupra unei celule. Fiecare celula poate contine cel mult un simbol. ^In plus, exista o multime nita de stari care controleaza mutarile masinii. La o mutare, masina Turing, ^n functie de simbolul din celula de banda pe care este pozitionat capul de citire/scriere si de starea ^n care se a&a masina, efectueaza urmatoarele: 1. Trece ^ntr-o noua stare. 2. Scrie un simbol ^n celula pe care masina se a&a pozitionata, ^nlocuind ceea ce era scris ^nainte (eventual poate tipari acelasi simbol). 3. Deplaseaza capul de citire o celula la dreapta sau st^anga, sau lasa capul de citire/scriere pozitionat asupra aceleiasi celule. Initial, capul de citire/scriere este pozitionat asupra celei mai din st^anga celule. Primele n celule din st^anga, pentru un n 0, contin simboluri care reprezinta datele de intrare, iar restul de celule, ^n numar innit, contin un simbol special ce nu poate folosit pentru reprezentarea datelor de intrare (de obicei, blank). Masina porneste dintr-o stare precis determinata, numita stare initiala. Unele stari din multimea nita a starilor se numesc stari nale. Starile nale sunt de doua tipuri: de acceptare si de respingere. Multimea simbolurilor formeaza un alfabet (nit). Secventele nite de simboluri se numesc cuvinte. O masina M accepta un cuv^ant w daca, pornind din starea initiala, cu w ca data de intrare, ajunge, dupa un numar nit de pasi, ^ntr-o stare nala de acceptare. Limbajul acceptat de o masina M este multimea (nita sau innita): L(M ) = fwjM accepta wg: 185 186 CAPITOLUL 11. PUTEREA SI COMPLEXITATEA DE CALCUL Multimea limbajelor acceptate de masini Turing formeaza clasa limbajelor recursiv enumerabile, L0. ^In cazul ^n care numarul de pasi efectuati este nit, modul de operare al unei masini Turing este descris de catre un algoritm. ^In afara de imaginea masinii Turing ca si o procedura (algoritm - daca este nit) de recunoastere a unei multimi, putem considera ca un astfel de dispozitiv calculeaza o functie adaug^and o banda de scriere. O astfel de masina calculeaza o functie naturala f daca, pornind cu data de intrare x, se opreste cu f (x) pe banda de scriere. Functia f se numeste, ^n acest caz, Turing-calculabila. Calculabilitatea intuitiva este un concept prematematic care nu permite nici o restrictie inevitabil impusa de o denitie riguroasa. Orice functie Turing-calculabila este si intuitiv calculabila. Reciproca acestei armatii este mai dicil de formulat, deoarece identica doua obiecte din care unul este matematic iar unul prematematic. Teza lui Church-Turing (1936). Orice functie intuitiv calcula- bila este Turing-calculabila. Teza lui Church-Turing nu poate demonstrata, ci doar justicata prematematic. Cu alte cuvinte, este greu de acceptat existenta unor functii naturale intuitiv calculabile care sa nu e Turing-calculabile. ^In conformitate cu teza lui Church-Turing, clasa multimilor L0 coincide cu clasa multimilor algoritmic calculabile. Teorema (Turing, 1936). Problema opririi masinii Turing este nerezolvabila. Cu alte cuvinte, nu exista un algoritm care sa determine daca o masina Turing arbitrara, actionata dintr-o conguratie arbitrara (q w i) se va opri sau nu (q este starea, w este data de intrare, iar i este pozitia capului). Puterea de calcula a masinilor Turing este foarte mare: orice algoritm , chiar si NP, poate implementat pe o masina Turing corespunzatoare. O masina Turing poate rezolva orice problema rezolvabila pe un calculator de uz general, av^and avantajul ca poate descrisa matematic foarte concis. Masinile Turing pot deterministe sau nedeterministe. Multimea limbajelor acceptate de masinile nedeterministe este, ^nsa, egala cu multimea limbajelor acceptate de masinile deterministe. Un algoritm NP poate rezolvat ^ntr-un timp polinomial pe o masina Turing nedeterminista. Daca se doreste rezolvarea pe o masina determinista, timpul nu mai ram^ane polinomial. Un algoritm P poate rezolvat ^ntr-un timp polinomial pe o masina Turing determinista. 11.2. PUTEREA DE CALCUL A RETELELOR NEURALE 187 11.2 Puterea de calcul a retelelor neurale Un model masiv paralel (MMP) este o multime de celule interconectate printr-o retea de comunicatie. Fiecarei celule ^i corespunde o vecinatate din care provin conexiunile care intra ^n celula. Numarul de celule poate innit, numarul de conexiuni este, la nivel local, nit, iar conexiunile sunt orientate. ^In particular, modele masiv paralele sunt: retelele neurale, automatele celulare si retelele de automate. ^In cadrul masinilor Turing, o problema este rezolvabila algoritmic daca exista un algoritm av^and la intrare un cuv^and nit w si la iesire un cuv^ant care reprezinta informatia determinata de w. Spre deosebire de aceasta, un MMP rezolva probleme de conguratie, av^and la intrare o conguratie x a modelului si la iesire o conguratie a modelului care reprezinta informatia determinata de x. Generalizam acum notiunea de rezolvabilitate pentru MMP. Denit ie. O problema de conguratie este p-rezolvabila printr-un model masiv paralel M daca, indiferent de conguratia de intrare x, exista un moment t astfel ^nc^at avem: stabilitate: T (t0 x) = T (t x) pentru t0 > t corectitudine: T (t0 x) este exact iesirea dorita. Prin T am notat functia care deneste dinamica globala a modelului. C^ateva rezultate fundamentale McCulloch si Pitts armau^n 1943 ca retelele neurale sunt calculatoare universale. Franklin si Garzon au aratat ca orice problema rezolvabila algoritmic (printr-o masina Turing) poate efectiv formulata sub forma unei probleme de conguratie p-rezolvabila pe o retea neurala Asadar, retelele neurale sunt ce putin la fel de puternice ca si masinile Turing. Conguratiile unui MMP pot ^nsa innite, deci p-rezolvabilitatea este o notiune mai complexa dec^at calculabilitatea. Franklin si Garzon au demonstrat ca problema opririi este p-rezolvabila pe o retea neurala innita. Aceasta problema nu este^nsa rezolvabila pe o masina Turing, dupa cum am vazut. Conform acestui rezultat, dar si al altor rezultate de acest fel, s-au demonstrat de catre Garzon si Franklin1 urmatoarele relatii: masini Turing automate celulare retele neurale retele de automate Garzon, M., S. Franklin "NeuralComputability II", Report of Memphis State University, MSU-TR-89-12, 1989. 1 188 CAPITOLUL 11. PUTEREA SI COMPLEXITATEA DE CALCUL 11.3 Reprezentarea functiilor booleene prin retele feedforward Orice functie nita poate implementata exact printr-o retea neurala feedforward, cu un strat ascuns, de perceptroni de tip continuu (Ito 2) Prin denitie, o functie nita este de forma f : Q ! R, unde Q Rd, Q nita. Orice functie continua poate aproximata oric^at de bine de o retea neurala feedforward cu un singur strat ascuns, de perceptroni de tip continuu (Funahashi3, Hecht-Nielsen 4 ). Sa consideram cazul functiilor booleene. Domeniul de denitie al unei functii booleene cu N argumente contine 2N elemente. Pentru ecare din aceste 2N N elemente exista 2 valori posibile ale functiei. Deci, exista 22 functii booleene diferite cu N argumente. Vom reprezenta o functie booleeana arbitrara printr-o retea feedforward cu un strat ascuns. Aceasta nu surprinde, o functie booleeana ind un caz particular de functie nita. Primul strat va format din N perceptroni discreti 1 : : : N , reprezent^and argumentele functiei. Ultimul strat consta dintr-un neuron discret S , reprezent^and valoarea functiei F (1 : : : N ). Valorile logice sunt reprezentate de 1. ^In stratul ascuns sunt 2N neuroni discreti q0 : : : q2N ;1. Ponderea wjk dintre k si qj este w, calculata astfel: e ( 1 : : : N ) reprezentarea binara a lui j . Luam wjk = +w daca k = 1 si wjk = ;w daca k = 0. Adica, wjk = (2 k ; 1)w, unde w este o constanta pozitiva. Alegem pragul pentru neuronii ascunsi: (N ; 1)w. Potentialul pentru un neuron ascuns este: X wjkk ; (N ; 1)w X = w"( (2 k ; 1)k ) ; (N ; 1)]: hj = k k Avem hj > 0 daca si numai daca (2 k ; 1)k = 1 pentru k = 1 : : : N unde 2 k ; 1 = 1 si k = 1. Deci, conditia este: 2 k ; 1 = k pentru k = 1 : : : N: Cu alte cuvinte, pentru o intrare, exact un neuron din stratul ascuns va deveni activ. Acest neuron este qj , unde j0 este reprezentat binar ca 2+1 : : : N2+1 . 0 1 Ito, Y. "Finite Mapping by Neural Networks and Truth Functions", Math. Scientist, 17, 1992, 69-77. 3 Funahashi, K. "On the Approximate Realization of Continuous Mapping by Neural Networks", Neural Networks, 2, 1989, 183-192. 4 Hecht-Nielsen, R. "Theory of the Backpropagation Neural Network", In: "Neural Networks for Perception", H. Wechsler (Ed.), Academic Press, 1992, 65-93. 2 11.3. REPREZENTAREA FUNCTIILOR BOOLEENE 189 Avem, deci, urmatoarele iesiri din neuronii ascunsi: ( pentru j = j0 : sj = +1 ;1 pentru j 6= j0 Ponderea vj dintre sj si neuronul S va : ( daca F (1 : : : N ) = true vj = +1 ;1 daca F (1 : : : N ) = false unde (1 : : : N ) corespunde lui sj . Luam pragul: X ; vj j . Potentialul pentru neuronul S este: X X X k = vj sj + vj = vj (sj + 1) = 2vj : j j 0 j Iesirea din retea va sgn(h) = F (1 : : : N ) (g. 11.1). +/-1 σ1 σN q0 s0 v0 ... ... +/-1 w01 qN s2N-1 S sgn(h) = F ( σ1 ,..., σN ) v2N-1 2 -1 Figura 11.1: Retea neurala care implementeaza functia F (1 : : : N ). Se observa ca numarul de neuroni ascunsi este 2N , deci foarte mare. Pe de alta parte, problema reprezentarii unei functii booleene (SATI) este NP-completa (teorema lui Cook). Deci, este explicabil. De fapt, am folosit forma normala disjunctiva, cu o poarta OR si 2N porti AND. ^In cazuri particulare, reprezentarea se poare face ^nsa mult mai ecient (cu mai putini neuroni). De exemplu, XOR su 2 argumente se poate reprezenta cu 2, nu 4 neuroni ascunsi. Apare problema minimizarii retelei neurale care reprezinta o functie booleana data. Pentru retelele cu un strat ascuns, corespunz^and functiilor booleene ^n forma normala conjunctiva, problema minimizarii este cunoscuta: se minimizeaza functia booleana printr-unul din algoritmii uzuali (Karnaugh sau Quine - McCluskey). Minimizarea se refera aici la numarul de neuroni, adica numarul de porti. O problema cu totul diferita este daca o functie booleana cu N argumente poate "^nvatata" de catre o retea neurala, ^ntr-un timp polinomial. Valiant5 a 5 Valiant, L.G. "A Theory of the Learnable", Commun. ACM, 27, 1134, 1984. 190 CAPITOLUL 11. PUTEREA SI COMPLEXITATEA DE CALCUL aratat ca functiile logice sub forma normala conjunctiva pot instruite folosind doar un numar polinomial de exemple pozitive. ^In cazul functiilor ^n forma normala disjunctiva mai este nevoie, ^n plus, de ^nca un nivel de ^nvatare. O problema interesanta este daca functia poate ^nvatata folosind doar putine exemple si las^and-o apoi sa "generalizeze". 11.4 Complexitatea instruirii retelelor neurale feedforward Fie cazul retelelor feedforward multistrat cu perceptroni de tip continuu sau discret (nu are importanta) si e cazul ^nvatarii supervizate. Teorema (Judd6 ). Problema generala a instruirii unei astfel de retele este NP-completa. Cu alte cuvinte, presupun^and P6=NP, nu exista un algoritm cu timp polinomial care sa instruiasca o retea ^n conditiile ^n care: 1. Arhitectura retelei (neuronii si conexiunile, fara ponderi) este arbitrara. 2. Numarul de pattern-uri care trebuie memorate ^n retea este arbitrar. Marimea unui caz este aici proportionala cu marimea retelei (numarul de perceptroni, conexiuni) plus numarul pattern-urilor de memorat. Daca, de exemplu, pentru a accelera instruirea, marim numarul de neuroni ^n retea, timpul de executie creste foarte mult, deoarece timpul poate creste exponential fata de numarul de neuroni. Teorema ram^ane valabila indiferent de functia de activare folosita. De asemenea, teorema ram^ane valabila chiar daca arhitectura retelelor considerate verica restrictia: nr. de straturi ascunse 1: Observat ii: 1. Aceasta teorema se refera la instruire ^n general. Exista clase mari de retele si secvente de instruire care duc la o instruire ^n timp polinomial. Problema generala a instruirii unei retele cu o functie booleana oarecare este ^nsa NPcompleta. 2. Se observa empiric faptul ca algoritmul de instruire prin propagarea ^n urma a erorii este foarte lent daca numarul de straturi este mare. S-ar putea deduce ca aceasta ar o proprietate generala: retelele cu straturi putine se instruiesc mai ecient. Teorema lui Judd ne arata ca nu este neaparat asa. Importanta este marimea retelei, complexitatea ei. Judd, J.S. "Neural Network Design and the Complexity of Learning", The MIT Press, Cambridge, 1990. 6 11.4. COMPLEXITATEA INSTRUIRII 191 3. Instruirea este de fapt memorare. Memorarea unor perechi asociate de siruri se face ^n timp liniar, pe o masina von Neumann, adica mult mai rapid. Este, ^nsa, adevarat ca astfel se pierd avantajele procesarii neurale, de exemplu invarianta la perturbatii. 4. Ram^ane ca subiect de cercetare, din punct de vedere al NP-completitudinii, problema instruirii retelelor recurente. 192 CAPITOLUL 11. PUTEREA SI COMPLEXITATEA DE CALCUL Capitolul 12 Consideratii epistemologice asupra calculului neural 12.1 Scopul unei retele neurale Formele superioare de viata, inclusiv cele bazate pe sisteme nervoase centrale, tind sa faciliteze supravietuirea speciei respective ^n conditii de mediu care devin din ce ^n ce mai dicile1. Natura nu ^si foloseste niciodata ^n mod inutil resursele, ci actioneaza conform unui principiu de optimalitate. De aceea, putem arma ca mecanismele creierului tind sa asigure ^n mod optim supravietuirea. De exemplu, somnul, ^n interpretarea lui Freud, tinde sa integreze zgomotele, pastr^and homeostazia sistemului. Din aceasta perspectiva, analogiile dintre calculatoarele digitale si retelele neurale biologice sunt nerezonabile. Problemele aritmetice sunt rareori rezolvate cu scopuri biologice poate ca pasarile ^nvata sa-si numere ouale, ^nsa, chiar si aceasta abilitate poate explicata, p^ana la un anumit nivel, prin functii elementare de recunoastere a formelor. Necesitatea de a numara sclavi si soldati folosind semne este de origine mai t^arzie ^n dezvoltarea omului si este realizata pe baza unor mijloace nebiologice. Orice ^ncercare de a construi modele neurale pentru sumatoare, multiplicatoare, convertoare A/D si alte circuite de calcul este de aceea, din acest punct de vedere, irationala. Cea mai importanta functie a sistemului nervos este monitorizarea si controlul conditiilor ^n care organismul traieste ^n mediul respectiv. Aceasta functie se realizeaza prin modicarea starilor organismului si/sau a mediului. Cele mai elementare stari controlabile ale organismului sunt globale, nestructurate (de exemplu, temperatura). Cele mai evoluate astfel de stari sunt legate de comportament social, care implica planicarea anticipativa si interactiunile sociale. Chiar si acestea sunt, ^nsa, motivate biologic. Diferenta dintre calculatoare si creier rezulta din scopurile lor diferite. CalcuKohonen, T. "Self-Organization and Associative Memory". Springer, Berlin, 3rd ed., 1989, chap. 9. 1 193 194 CAPITOLUL 12. CONSIDERATII EPISTEMOLOGICE latoarele au fost dezvoltate initial pentru a rezolva probleme matematice, mai ales aritmetice. Ulterior, s-a descoperit ca instructiunile folosite pentru calculul simbolic pot utilizate si pentru procesarea limbajului natural. Aceasta descoperire a fost un efect secundar ^n istoria dezvoltarii calculatoarelor. ^Inca nu s-a observat ca o anumita generatie de calculatoare sa-si doreasca sa supravietuiasca! Pentru a modela c^at mai bine sistemele neurale biologice, retelele neurale articiale trebuie sa interactioneze cu lumea reala, cu obiectele naturale. Statistica semnalelor naturale, de exemplu vorbirea, sunt complet diferite de statistica presupusa ^n teoria matematica a probabilitatilor. Natura gaussiana a zgomotului si distributia normala a datelor sunt ipoteze foarte proaste ^n acest context. 12.2 Functiile neurale biologice sunt localizate sau distribuite? Este unul dintre subiectele de dezbatere continua. Circuitele neurale trebuie sa proceseze functiile local, ^n timp ce distribuirea globala a activitatilor este o functie colectiva a activitatilor tuturor partilor. De fapt, dihotomia distribuire - localizare poate urmarita si la nivelul neuronului: putem localiza cu acuratete de 10 microni corpul si axonul neuronului ramurile dendritelor aceleiasi celule sunt ^nsa distribuite pe o arie cu un diametru de c^ativa milimetri. Cu alte cuvinte, raspunsul poate localizat, cu toate ca functiile (adaptive) pot distribuite spatial pe o arie mare. 12.3 Este neliniaritatea esentiala ^n calculul neural? Semnalele procesate ^n retelele neurale sunt, de obicei, continue. ^In electronica, cu toate ca, de fapt, caracteristicile componentelor sunt neliniare, prin folosirea feedback-urilor negative si a altor metode de stabilizare, se organizeaza componentele si circuitele ^n module integrate care se comporta liniar. Neuronii biologici au caracteristici si mai neregulate dec^at componentele electronice. Faptul ca neuronii au raspunsuri neliniare nu ^nseamna ^nsa ca sistemul integrat nu poate sa se comporte liniar. Iata un exemplu de astfel de integrare: c^and creierul recunoaste o situatie importanta, sistemul reticular de activare adauga ^n circuitul cortical o excitatie care face ca neuronii sa opereze ^n mijlocul plajei lor dinamice. Se adauga deci un semnal pentru a modica plaja ^n care opereaza neuronii. Acest lucru se face doar pentru un timp scurt. ^In plaja lor dinamica, neuronii pot apoi sa functioneze liniar. ^In ansambul, sistemul functioneaza, ^n acest caz, temporar liniar. Daca sistemul reticular de activare 12.4. DEOSEBIRI ESENTIALE 195 nu recunoaste o situatie ca ind importanta, neuronii ram^an inactivi, sub pragul de saturatie. Exista si cazuri de neliniaritate. De exemplu, ^n cazul perceptiei vizuale la insecte. Ochiul insectei este format din multe lentile, ecare capt^and un sector al c^ampului vizual. Semnalele rezultate din fotoreceptoarele acestor lentile sunt prelucrate ^n c^ativa centri nervosi, numiti ganglia, situati l^anga organele senzoriale. Acesti centri combina semnalele receptate ^ntr-un mod neliniar, form^and produse de perechi de semnale - unul obtinut din gura si unul din fundal. Corelarea perechilor de semnale este diferita ^n cazurile c^and gura este, respectiv nu este, ^n miscare. 12.4 Deosebirile esentiale dintre calculatoarele neurale si cele digitale 1. Gradul de paralelism al retelelor neurale este mai mare dec^at cel al oricarui calculator digital masiv paralel. Calculatoarele masiv paralele sunt retele de procesoare care lucreaza asincron. Aceste calculatoare sunt, totusi, digitale si au circuite digitale ^n nodurile lor. Deosebirea lor esentiala fata de calculatoarele von Neumann consta ^n faptul ca este imposibil de prezis ordinea operatiilor realizate ^n timpul calculului. Retelele neurale lucreaza tot asincron. Semnalele neurale nu au^nsa o forma exacta, deci nu este posibil sa combinam nici o informatie de control (coduri de control, biti de paritate, adrese) cu datele. De exemplu, multiplexarea nu mai este, din aceasta cauza, posibila. Calculatoarele neurale sunt calculatoare analogice. Ele nu pot executa programe memorate. Operatiile implementate pe ele nu pot denite algoritmic. 2. De ce semnalele neurale nu pot aproximate de variabile booleene. Impulsurile neurale au un aspect binar: amplitudinea nu conteaza. Dar durata unui impuls nu este variabila: nu este posibil sa denim semnale logice statice similare cu cele folosite ^n calculatoarele digitale. Mai mult, impulsurile neurale nu sunt nici sincronizate, deci semnalele neurale difera de cele digitale. 3. Circuitele neurale nu implementeaza automate nite. Filosoa calculului digital, dar si a inteligentei articiale, se bazeaza pe teoria automatelor nite. Prin feedback (g. 12.1), un automat nit poate implementa orice secventa de stari, ind capabil de a deni recursiv functiile calculabile. 196 CAPITOLUL 12. CONSIDERATII EPISTEMOLOGICE intrare automat finit iesire Figura 12.1: Automat nit. Toate calculatoarele digitale aplica principiul recursivitatii la diferite nivele, de la hardware la procedurile denite ^n limbaje de programare. Aplicarea recursivitatii este posibila din doua motive tehnologice: valorile semnalelor sunt stabile toate combinatiile de semnale si stari sunt accesibile O retea neurala biologica nu poate implementa un automat nit. Functiile feedback din retelele neurale servesc altor scopuri. Procesul de calcul neural articial este mai apropiat unei aproximari stohastice. 12.5 Cum pot programate calculatoarele neurale Este greu de imaginat cum ar putea programati pasii individuali de procesare ^n creier si cum sa e programat un calculator neural ca un calculator digital. Structurile anatomice ^n sine constituie "un program", incluz^and si codul genetic. ^In acest sens, creierul este "programat". Similar, arhitectura retelei neurale articiale reprezinta "programul" ei. ^In natura biologica, structurile par at^at de semnicative, ca si cum ar create conform unui plan a priori. Explicatia stiintica este ca mutatiile, pe parcursul unei lungi evolutii, duc prin selectie la solutia optima. Solutiile optime la care se ajunge sunt ^nsa foarte greu de ^nteles, datorita faptului ca sunt denite implicit prin codurile genetice. Este imposibil sa adoptam aceasta tehnica ^n calculul retelelor neurale articiale. Problema principala este cum sa obtinem raspunsuri corecte din partea mediului fara interventia si interpretarea programatorului si sa le prezentam sistemului. Din toate aceste motive, putem arma ca o retea neurala veritabila nu poate programata. Cele mai utile aplicatii ale retelelor neurale sunt cele pentru care structurile sau mecanismele sunt deja familiare. 12.6 Poate creierul sa se autoperceapa? Numim complexitate a unui sistem numarul de bucle (feedback-uri) care pot aparea ^n sistemul respectiv. Astfel, complexitatea unei singure bucle este 1. 12.6. POATE CREIERUL SA SE AUTOPERCEAPA? 197 Creierul care poate sa perceapa comportamentul unui alt creier mai mic trebuie sa aiba o complexitate de cel putin 109 ori mai mare dec^at complexitatea creierului investigat (Stakermann2 ). ^In mod ironic, cunostintele deja achizitionate sunt pierdute ^n mod continuu prin moartea indivizilor si trebuie restabilite de catre cei tineri. ^In concluzie, o identitate nu se poate autopercepe. Creierul biologic nu se poate auto^ntelege. Starkermann, R. "The Functional Intricacy of Neural Networks - A Mathematical Study", Proceedings, Insbruck, 1993. 2 198 CAPITOLUL 12. CONSIDERATII EPISTEMOLOGICE Anexa A Complemente matematice A.1 Vectori si matrici 2 66 Vector coloana: x = 66 4 x1 3 x2 777 ... 75 Vector linie: x = "x1 : : : xn]t xn Fie vectorii n-dimensionali x1 , x2 , ..., xn . Vectorul x este o combinatie liniara a vectorilor x1, x2 , ..., xn daca exista scalarii c1 , ..., cm astfel ^nc^at: m X x = ci xi : i=1 Multimea de vectori x1, x2 , ..., xn este liniar dependenta daca exista c1, ..., cm , nu toti nuli, astfel ^nc^at: m X cixi = 0: i=1 ^In caz contrar, vectorii x1, x2, ..., xn sunt liniar independenti. Norma euclidiana a unui vector: kxk = (xt x)1=2 = qPn 2 i=1 xi . Produsul scalar a doi vectori x si y: xt y = Pni=1 xi yi = kxk kyk cos unde este unghiul dintre cei doi vectori. Proprietate: xt y = kxkkykcos, unde este unghiul dintre x si y. Se observa ca xty = yt x, deci produsul scalar este comutativ. Vectorii x si y sunt ortogonali daca si numai daca produsul lor scalar este 0. Daca vectorii nenuli x1 , x2 , ..., xn sunt doi c^ate doi ortogonali, atunci sunt liniar independenti. 199 200 ANEXA A. COMPLEMENTE MATEMATICE 2 3 2 3 2 3 1 0 0 Exemplu: Vectorii x1 = 64 0 75, x2 = 64 1 75, x3 = 64 0 75 sunt doi c^ate doi ortogonali si sunt independenti. 0 0 1 Exemplu: Gasiti produsul scalar dintre vectorii x si y, lungimea lor si unghiul dintre ei, unde: 2 3 2 3 2 1 x = 64 1 75 y = 64 ;1 57 2 4 p Solut ie: xt y = 9, kxk = 3, kyk = 18, cos = kxxkktyyk = p12 , deci = 45o. A.2 Forme patratice O forma patratica (FP) este o functie E (x) = xt Ax, unde x este un vector n-dimensional iar A o matrice simetrica de n n elemente. Daca A = (aij )ij=1:::n, atunci: E (x1 x2 : : : xn) = a11x21 + 2a12 x1 x2 + 2a13 x1 x3 + : : : + 2a1n x1xn + a22x22 + 2a23 x2 x3 + : : : + 2a2nx2 xn + : : : + annx2n = n X n X = aij xi xj i=1 j =1 Proprieta ti ale formelor patratice 1. E (x) este o FP pozitiv semidenita, iar A este o matrice pozitiv semidenita daca "(8)x = 6 0 ) E (x) 0]. 2. E (x) este o FP pozitiv denita, iar A este o matrice pozitiv denita daca "(8)x = 6 0 ) E (x) > 0]. 3. E (x) este o FP negativ semidenita, iar A este o matrice negativ semidenita daca "(8)x = 6 0 ) E (x) 0]. 4. E (x) este o FP negativ denita, iar A este o matrice negativ denita daca "(8)x = 6 0 ) E (x) < 0]. E (x) este pozitiv denita daca si numai daca pentru A = (aij )ij=1:::n avem: det A11 = ka11 k > 0 det A22 = aa11 aa12 > 0 21 22 ... det Ann = det A > 0: Condit ii suciente pentru ca E (x) sa e: A.3. ELEMENTE DE GEOMETRIE ANALITICA 201 a) FP pozitiv semidenita: detA11 0 detA22 0 : : : detAnn 0 b) FP pozitiv denita: detA11 > 0 detA22 > 0 : : : detAnn > 0 c) FP negativ semidenita: detA11 0 detA22 0 detA33 0 : : : d) FP negativ denita: detA11 < 0 detA22 > 0 detA33 : : : e) ^In toate celelalte cazuri, FP este nedenita. Sa notam ca o forma patratica E (x) este nedenita daca este pozitiva pentru anumite valori ale lui x si negativa pentru alte valori, deci depinde de x. A.3 Elemente de geometrie analitica Ecuatia unei drepte ^n plan este: a x + b y + c = 0 cu a2 + b2 > 0: Vectorul " # n = ab este un vector normal la dreapta data. Acesta este ^ndreptat spre semiplanul pozitiv, adica pentru care a x + b y + c > 0. Ecuatia unei drepte a carei vector normal este n = "n1 n2 ]t si trece prin punctul reprezentat de vectorul x1 este: nt (x ; x1) = 0: Av^and doua puncte x1 si x2 ^n plan si vectorii asociati lor, x1 si x2 , ecuatia mediatoarei segmentului dintre x1 si x2 este: (x1 ; x2)t (x ; x0) = 0 unde x0 este mijlocul segmentului respectiv. Din relatia anterioara rezulta (x1 ; x2 )t x ; 12 (x1 ; x2 )t (x1 + x2 ) = 0 202 si obtinem Din ANEXA A. COMPLEMENTE MATEMATICE (x1 ; x2)t x + 12 (xt2x2 ; xt1x1 ) = 0: xt x = kxk2 obtinem urmatoarea ecuatie a mediatoarei: (x1 ; x2 )tx + 21 (kx2 k2 ; kx1k2) = 0: Ecuatia planului care trece prin trei puncte necoliniare este: x y z 1 x1 y1 z1 1 = 0 x2 y2 z2 1 x3 y3 z3 1 Ecuatia planului care trece printr-un punct x(x1 y1 z1) si este perpendicular pe vectorul n = "a b c]t este: a (x ; x1 ) + b (y ; y1) + c (z ; z1 ) = 0: Ecuatia planului care trece prin mijlocul segmentului (x1 y1z1 ), (x2 y2z2) si este perpendicular pe vectorul x1 ; x2, unde x1 = "x1 y1z1 ]t , x2 = "x2 y2z2 ]t este: (x1 ; x2)t x + 21 (jjx2jj2 ; jjx1jj2) = 0 A.4 Operatia XOR XOR este o operatie binara asupra argumentelor logice x1 , x2 . Avem: (x1 x2 ) x3 = x1 (x2 x3) = x1 x2 x3 : Putem extinde operatia XOR pentru n argumente logice: XOR(x1 x2 : : : xn) = x1 x2 : : : xn: Aceasta functie se numeste si functia de paritate deoarece are valoarea 1 daca si numai daca numarul argumentelor care au valoarea 1 este impar. A.5 Iacobianul si hessianul Un vector x(t ) dependent de timp se deneste astfel: 2 dx 3 3 2 2 x ( t ) 1 d t 6 7 x(t ) = 664 ... 775 dxd(tt ) = 664 ... 775 = x_ (t) = 664 d xn xn (t) dt 1 3 x_ 1 (t) 7 ... 7 5 x_ n (t) A.5. IACOBIANUL SI HESSIANUL 203 Fie functia E (x), unde x este un vector cu n componente. Gradientul se deneste astfel: 2 @E 3 66 @x.. 77 rxE (x) = . 4 Proprieta ti: a) rx(xt y) = y b) rx(xt A y) = A y c) rx(xt A y) = A x + At x 1 @E @xn 5 d) C^and lucram cu forme patratice, A este simetrica si avem A = At. Rezulta rx(xt A x) = 2 A x. Gradientul^ntr-un punct x0 al unei functii reprezinta directia cresterii maxime a lui E (x). Gradientul reprezinta tangenta la curba pe directia de crestere si este nul ^n punctele de maxim si minim. Daca avem o functie E "x(t )] (nu neaparat o forma patratica), unde x este un vector de n componente dependente de timp, atunci n @E dE "x(t)] = @E @x1 + + @E @xn = X dt @x1 @t @xn @t i=1 @xi x_ i (t): Observam ca dE "x(t)] = "r E (x)]t x_ (t ): x dt Exemplu: Fie: # " 2t # x 1 (t) x(t) = x2 (t) = et : Forma patratica a lui x(t) cu matricea " # 1 2 A= 2 3 este: " " # " 2t # i 1 2 E "x(t)] = e2t t 2 3 et " d 2 # " # (x1 + 4x1x2 + 3x22 ) 2 x 1 + 4x2 dx rxE (x) = d (x2 + 4x1x2 + 3x2 ) = 4x1 + 6x2 2 " dx 2t #1 x_ (t) = 2e1 : h 1 2 ANEXA A. COMPLEMENTE MATEMATICE 204 Atunci " # dE "x(t)] = h 2e2t + 4t 4e2t + 6t i 2et = 2(2e4t + (4t + 2)e2t + 3t): 1 dt Fie m functii: E1 (x) = E1 (x1 x2 xn) ... Em (x) = Em (x1 x2 xn) Matricea iacobiana se deneste ^n felul urmator: 2 @E @x I(x) = ddEx = 664 ... @Em @E1 @xn @x1 @Em @xn 1 Exemplu: Pentru: 3 ... 77 5 1 ... h i x = 2 1 t E1(x) = x21 ; x1 x2 E2(x) = x1 x2 + x22 avem: " # " # I(x) = 2x1x;2 x2 x1;+x21x2 = 31 ;42 : Matricea hessiana a functiei E (x) = E (x1 xn) se deneste astfel: 2 6 H(x) = r2xE (x) = rx "rxE (x)] = 664 @ 2 E2 @x1 @2 @x1 @x2 @2 @x1 @xn @2E @x1 @xn @2E @x2 @xn @2E @ 2 xn ... ... ... ... 3 77 75 : Matricea hessiana este simetrica. Exemplu: Pentru: E (x) = (x2 ; x1 )2 + (1 ; x1 )2 avem: " rxE (x) = 2 2x1x2;;x2x1; 1 # " # r2xE (x) = 2 ;21 ;11 : Deoarece determinantii principali sunt 4 si 2, matricea hessiana este pozitiv denita. A.6. PROBLEME DE OPTIMIZARE 205 A.6 Probleme de optimizare Presupunem ca avem o functie obiectiv E (x), unde x este o variabila scalara. Aceasta functie ^si atinge minimul ^n punctul x = x , pentru care se ^ndeplinesc urmatoarele conditii: 8 dE(x) > < dx = 0 : > : d E(x) > 0 dx Daca x este un vector, generalizarea se face astfel: ( rxE (x ) = 0 r2xE (x ) pozitiv denita : Pentru a ^ntelege aceste conditii, sa consideram, de exemplu: " # x = xx12 : Dezvoltam ^n serie Taylor ^n punctul x = x si retinem primii termeni ai dezvoltarii: @E (x ) @E (x ) E (x) = E (x ) + (x1 ; x1 ) @x + (x2 ; x2 ) @x 1 2 2 2 (x ) + 12 (x1 ; x1 )2 @ @E2 (xx ) + 12 (x2 ; x2 )2 @ E @x22 1 2 +(x1 ; x1)(x2 ; x2 ) @ E (x ) : @x1 @x2 Pentru %x1 = x1 ; x1 , %x2 = x2 ; x2, obtinem: h @E(x) E(x) i " %x1 # E (x) = E (x ) + @x @x %x2 2 " #t @ E(x) @ E(x) 3 " # 1 % x % x @x @x @x 1 1 + 2 %x 4 @ E(x) @ E(x) 5 %x : 2 2 @x @x @x 2 2 1 2 2 2 2 1 2 2 Lu^and obtinem: " 2 2 # 1 2 2 2 x1 %x = % %x2 1 E (x) = E (x ) + "rxE (x )]t %x + 2 %xt "r2xE (x )]%x: (A.1) Daca E (x) are un minim ^n x . orice schimbare innitezimala %x ^n x trebuie sa rezulte ^n E (x + %x) > E (x ). Pentru aceasta trebuie ca: 1. Gradientul ^n x sa scada si sa faca termenul liniar din A.1 sa e zero. 2. Hessiana ^n x sa e pozitiv denita, ceea ce va face forma patratica din A.1 pozitiva, independent de %x. ANEXA A. COMPLEMENTE MATEMATICE 206 Solutia analitica a unei probleme de optimizare speciale Fie functia: E (x) = 21 xt Ax + bt x unde x este un vector n-dimensional, A este o matrice n n simetrica, pozitiv denita, b este un vector n-dimensional constant. E (x) este una dintre putinele functii pentru care exista o solutie analitica pentru minimul fara restrinctii. Calculam: rxE (x) = Ax + b r2xE (x) = A: Prin ipoteza, A este pozitiv denita. Impunem conditia Ax + b = 0. Solutia este x = ;A;1 b. Rezulta ca x este un minim. A.7 Metoda lui Euler (metoda tangentei) Fie ecuatia diferentiala de ordinul ^nt^ai: y0 = f (x y) unde y = y(x) cu conditia initiala y0 = y(x0): Daca f este complicata, nu putem integra direct. Dorim o aproximare a lui y = ,(x), care se demonstreaza ca este solutia unica (g. A.1). Scriem: y1 = y 0 + % y ,0 (x0 ) = %y ) %y = ,0(x0 )%x: %x y1 = y0 + ,0 (x0 )(x1 ; x0 ) = y0 + f (x0 y0)(x1 ; x0 ) Apoi: y2 = y1 + y10 (x2 ; x1 ) = y1 + f (x1 y1)(x2 ; x1 ): ^In general, yn+1 = yn + hf (xn yn) = yn + hyn0 daca xn+1 = xn + h n = 0 1 2 : : : : Aceasta relatie este formula lui Euler. Exemplu: ( y0 = 1 ; x + 4y : y(0) = 1 A.7. METODA LUI EULER (METODA TANGENTEI) y y*=Φ(x) y1 y0 x0 x2 y1 y0 y2 x1 y x y*=Φ(x) Δy Δx x0 y2 207 x1 x2 x Figura A.1: Ne deplasam pe tangenta la y0 , p^ana la x1 . Se stie ca solutia exacta a acestui sistem are urmatoarea expresie analitica: 3 + 19 e4x : y = ,(x) = 14 x ; 16 16 Aproximati pe ,(0 2), presupun^and ca nu aveti expresia analitica a lui ,. Avem: h = y00 = y1 = y2 = Eroarea este: 0 1 f (0 1) = 5 y0 + hf (0 1) = 1 + 0 1 5 = 1 5 y1 + hf (x1 y1) = 1 5 + 0 1 (1 ; 0 1 + 6) = 2 19: j2 19 ; ,(0 2)j = 0 32: Lu^and o valoare mai mica pentru h, obtinem o eroare mai mica. Fie acum un sistem de doua ecuatii diferentiale de ordinul I: 8 0 > < x0 = f (t x y) y = f (t x y) : > : x(t0 ) = x0 y(t0) = y0 Cautam valorile aproximative x1 , x2 , ..., xn , .., y1, y2, ..., yn, ... ale solutiei exacte x = ,(t), y = -(t) ^n punctele tn = t0 + nh. Avem: x1 = hf (t0 x0 y0) y1 = hg(t0 x0 y0): ^In general: xn+1 = xn + hf (tn xn yn) = xn + hxn 0 yn+1 = yn + hg(tn xn yn) = yn + hyn0: ANEXA A. COMPLEMENTE MATEMATICE 208 Exemplu: Determinati valorile aproximative ale lui x = ,(t), y = -(t) ^n punctele t = 0,1 si t = 0,2 pentru sistemul: 8 0 > < x0 = x ; 4y y = ;x + y : > : x(0) = 1 y(0) = 0 Pentru h = 0,1 avem: x0 0 = 1 ; 4 0 = 1 x1 = 1 + 0 1 1 = 1 1 x1 0 = 1 1 ; 4 (;0 1) = 1 5 x2 = 1 1 + 0 1 1 5 = 1 25 Fie sistemul: cu conditiile initiale: y00 = ;1 + 0 = ;1 y1 = 0 + 0 1 (;1) = ;0 1 : y10 = ;1 1 + (;0 1) = ;1 2 y2 = ;0 1 + 0 1 (;1 2) = ;0 22 8 x 0 = F (t x : : : x ) > 1 1 1 n > < x2 0 = F2 (t x1 : : : xn) ... > > : xn 0 = Fn(t x1 : : : xn) x1 (t0 ) = x01 ... xn (t0) = x0n : Acest sistem are o solutie ^n intervalul < t < daca exista functiile x1 = ,1 (t), ..., xn = ,n(y), diferentiabile ^n < t < si care satisfac conditiile initiale. Teorema de existent a si unicitate: Daca F1, ..., Fn si @F1 @xn , @F1 , @x1 ..., @Fn n ..., @F @x1 , ..., @xn sunt continue ^n regiunea R care contine punctul (t0 x01 : : : x0n), atunci exista un interval jt ; t0 j < R ^n care exista o solutie unica x1 = ,1 (t), ..., xn = ,n(t) a sistemului, care satisface conditiile initiale. Observam ca nu se spune nimic despre derivatele @Fi . @t A.8 Stabilitatea sistemelor dinamice neliniare La sf^arsitul secolului XIX, Liapunov a dezvoltat o metoda pentru analiza stabilitatii sistemelor dinamice. Aceasta metoda se bazeaza pe conceptul de energie generalizata si presupune evaluarea functiei lui Liapunov. Fie un sistem autonom descris de sistemul de ecuatii diferentiale liniare sau neliniare: x_ 1 = f1(x) x_ 2 = f2(x) A.9. VARIABILE ALEATOARE 209 ... x_ n = fn(x) care este echivalent cu x_ = f (x), unde x este vectorul starilor sistemului. Presupunem ca f (0) = 0, adica x = 0 este un punct de echilibru. Vom formula o conditie pentru ca x = 0 sa e asimptotic stabil, adica vectorul starilor sa tinda catre zero c^and timpul tinde catre innit. Fie E (x) energia acumulata ^n sistem. Teorema lui Liapunov. Daca E este o functie pozitiv denita pen- tru care: 1. E este continua fata de toate componentele xi i = 1 2 : : : n 2. dEdxt(t)] < 0, adica functia energiei descreste ^n timp, atunci originea este asimptotic stabila. Functia E care satisface aceste conditii se numeste functia lui Liapunov. ^In general, ea nu este unica. x2 x2 dE/dt<0 dE/dt>0 t=0 x1 0 x1 0 t=0 traiectorie stabila traiectorie instabila Figura A.2: Functia lui Liapunov Daca cel putin o astfel de functie satisface conditiile teoremei, atunci sistemul este asimptotic stabil. Uneori nu este foarte clar despre ce energie este vorba. Consideratiile sunt mai cur^and matematice dec^at zice. ^In cazul retelelor neurale vorbim de functia energiei computationale, ea neav^and legatura cu energia din zica. A.9 Variabile aleatoare Fie o variabila aleatoare discreta ! X a 1 : : : an = p : : : p pi = 1: 1 n 210 ANEXA A. COMPLEMENTE MATEMATICE Denim: Valoarea medie: m = P aipi = E ( ) P a2 p2 ; 2 2 2 2 Variant a (dispersia) : = E ( ; E ( )) = E ( ) ; ( E ( )) = i i (P ai pi)2 Deviatia standard: . Functia de repartitie a unei variabile aleatoare normale cu media m si dispersia 2 este: F (x) = P ( < x) Z x ; u;m = p1 e du pentru ; 1 < x < 1 2 ;1 si este notata cu N (m 2 ). Distributia N (0 1) este standard. Functia de densitate a lui N (m 2 ) este: x;m f (x) = F 0(x) = p1 e; pentru ; 1 < x < 1: 2 ( 2 2 ( )2 2 2 )2 Anexa B Subiecte-tip pentru examen 1. 2. 3. 4. 5. Clasicatorul liniar, functia discriminant liniara. Regula hebbiana. Regula Windrow-Ho. Deduceti regula delta pentru un neuron din conditia de minimizare a erorii. Demonstrati ca functia energiei computationale: Z vi n X 1 t t E = ; 2 v Wv ; i v + Gi fi;1(z)dz 0 i=1 ^ntr-o retea Hopeld cu timp continuu este necrescatoare. 6. Principiul de functionare a unui convertor A/D pe 2 biti implementat printro retea de tip gradient. 7. Teorema perceptronului. 8. Algoritmul de stocare a pattern-urilor prototip ^ntr-o memorie autoasociativa recurenta unipolara. 9. Aproximarea unei functii continue prin retele neurale feedforward. 10. Alegerea arhitecturii unei retele neurale feedforward cu un strat ascuns. 11. Teorema lui Liapunov. 12. Problema zgomotului ^ntr-un asociator liniar. 13. Reprezentarea unei functii booleene printr-o retea neurala feedforward. 14. Adaugarea / eliminarea unui pattern la o / dintr-o memorie autoasociativa recurenta. 15. In&uenta factorilor si ^n algoritmul backpropagation. 211 212 ANEXA B. SUBIECTE-TIP PENTRU EXAMEN 16. Demonstrati ca functia energiei computationale: E = ; 21 vt Wv ; itv + Ttv ^ntr-o retea Hopeld cu timp discret este necrescatoare. 17. Perioada refractara a unui neuron biologic. 18. Perioada de ^nsumare latenta a unui neuron biologic. 19. Algoritmul backpropagation este convergent? 20. Care este numarul maxim de regiuni liniar separabile folosind J neuroni ascunsi? 21. ^Intr-o retea Hopeld cu timp continuu, energia scade c^at mai rapid? 22. De ce algoritmul de actualizare la retelele Hopeld trebuie sa e stochastic asincron? 23. Cum putem gasi punctele de stabilitate ale unei retele Hopeld de tip gradient? 24. Ce este un asociator liniar? 25. Teorema fundamentala a geneticii. 26. Paralelismul implicit al algoritmilor genetici. 27. Multime fuzzy. 28. Logica fuzzy. 29. Rolul intrarii xe ^n algoritmul de instruire a unei retele feedforward de perceptroni discreti. 30. Teza Church-Turing. 31. Masina Turing. 32. Adaugati relatiile de incluziune corespunzatoare ^ntre urmatoarele multimi: masini Turing, automate celulare, retele neurale, retele de automate. 33. Teorema lui Judd referitoare la complexitatea instruirii retelelor neurale feedforward multistrat. 34. Capacitatea memoriei autoasociative recurente. 35. De ce ^n cazul memoriei asociative bidirectionale se prefera procesarea sincrona? 213 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. Principiul de functionare al retelei Hamming. Principiul de functionare al retelei MAXNET. Care este scopul calibrarii supervizate a unui clasicator neural? Principiul de functionare a retelei Kohonen. Ce este o harta Kohonen? Principiul de functionare a retelei neurale fuzzy. Principiul de functionare a retelei neurale cu functie de activare radiala. Teorema lui Judd. Teorema lui Hecht-Nielsen. Teorema lui Kolmogorov. 214 ANEXA B. SUBIECTE-TIP PENTRU EXAMEN Anexa C Link-uri Neural Networks Commercial Software Tools http://www.emsl.pnl.gov:2080/proj/neuron/neural/systems/software.html SNNS - Stuttgart Neural Network Simulator http://www-ra.informatik.uni-tuebingen.de/SNNS/ OFAI Library Information System Biblio - Neural Networks http://www.ai.univie.ac.at/oefai/nn/conn biblio.html An Introduction to Genetic Algorithms http://www.cs.qub.ac.uk/~/M.Sullivan/ga/ga index.html The Genetic Algorithms Archive http://www.aic.nrl.navy.mil/galist/ David W. Aha Machine Learning Page http://www.aic.nrl.navy.mil/~aha/research/machine-learning.html 215 216 ANEXA C. LINK-URI Bibliograe "1] Davis, L. "Handbook of Genetic Algorithms", Van Nostrand Reinhold, 1991. "2] Dumitrescu, D., H. Costin "Retele neuronale teorie si aplicatii". Teora, Bucuresti, 1999. "3] Freeman, J.A., D.M. Skapura "Neural Networks: Algorithms, Applications, and Programming Techniques". Addison-Wesley, Reading, Mass., 1991. "4] Goldberg, D.E. "Genetic Algorithms - in Search, Optimization and Machine Learning", Addison-Wesley, 1989. "5] Hagan, M. T., H.B. Demuth, M. Beale "Neural Network Design". PWS Publishing Co., Boston, 1996. "6] Hassoun, M.H. "Fundamentals of Articial Neural Networks". The MIT Press, Cambridge, Mass., 1995. "7] Haykin, S. "Neural Networks - A Comprehensive Foundation". Macmillan College Publishing Company, New York, 1999 (second edition). "8] Hecht-Nielsen, R. "Neurocomputing", Addison-Wesley, Reading, MA, 1990. "9] Kosko, B. "Neural Networks and Fuzzy Systems", Prentice Hall, Englewood Clis, 1992. "10] Masters, T. "Practical Neural Network Recipes in C++". Academic Press, Boston, 1993. "11] Michalewicz, Z. "Genetic Algorithms + Data Structures = Evolution Programs". Springer-Verlag, Berlin, 1994 (second edition). "12] Muller, B., J. Reinhardt "Neural Networks - An Introduction", SpringerVerlag, Berlin, 1990. "13] Negoita, C.V., D.A. Ralescu "Multimi vagi si aplicatii ale lor", Ed. Tehnica, Bucuresti, 1974. "14] Stefan, Gh. "Functie si structura ^n sistemele digitale", Ed. Academiei, Bucuresti, 1991. 217 218 BIBLIOGRAFIE "15] Tou, J.T., R.C. Gonzales "Pattern Recognition Principles", Reading, Addison-Wesley, 1974. "16] Tsoukalas, L.H., R.E. Uhrig "Fuzzy and Neural Approaches in Engineering". John Wiley & Sons, New York, 1997. "17] Wasserman, P.D. "Advanced Methods in Neural Computing", Van Nostrand Reinhold Inc., Computer Science Press, NY, 1993. "18] Zurada, J. "Introduction to Articial Neural Systems". West Publishing Company, St. Paul, 1992.
Similar documents
Descarca aici
Pentru majoritatea oamenilor care spun c[ au cunoscut iubirea la un moment dat `n via\[, `ntrebarea ‘Ce este iubirea?’ `i las[ f[r[ cuvinte. Fiecare dintre noi vrem s[ cunoa;tem iubirea ;i s[ ne bu...
More information