i2 w 2n
in
...
wn2 w n1
g1 u1 C1 u2
g2
...
_
vn
gn un Cn
C2
v1
v2
v1
v2
vn
^ncep^nd cu anul universitar 1992/1993, Razvan Andonie a predat un curs I a 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. ^n perioada 1997-1999, el a predat cursul de Retele neurale la I Universitatea "Transilvania", specializarea Electronica si calculatoare. Pe l^nga a aceasta, el este coordonatorul orelor de laborator pentru acest curs si este doctorand ^n domeniul retelelor neurale.
Despre autori
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 de nita de Bezdek1 , are ca obiectiv modelarea inteligentei biologice. Din acest punct de vedere, ea este similara domeniului numit inteligenta arti ciala. Spre deosebire de inteligenta arti ciala, 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, arti ciala si computationala. Inteligenta computationala este formata din urmatoarele subdomenii: retele neurale, algoritmi genetici, programare evolutionara, sisteme fuzzy, viata articiala. ^n contextul inteligentei computationale, toate aceste subdomenii sunt I legate de modelarea numerica a inteligentei biologice. Acest curs acopera majoritatea subdomeniilor inteligentei computationale. Fiecare capitol ofera, pe l^nga informatii teoretice, c^te o sectiune de aplicatii, a a 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
Cuprins
1 Preliminarii ^n calculul neural 2 Concepte fundamentale
2.1 2.2 2.3 2.4 2.5 2.6 1.1 Calculul neural: exemple . . . . . . . . . . . . . . . . . . . . . . . 10 1.2 Istoricul dezvoltarii retelelor neurale . . . . . . . . . . . . . . . . . 17 1.3 Viitorul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Neuronii biologici si modelele lor arti ciale Modelarea retelelor neurale . . . . . . . . . ^nvatare si adaptare . . . . . . . . . . . . . I Reguli de ^nvatare . . . . . . . . . . . . . . Exemple . . . . . . . . . . . . . . . . . . . Exercitii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
19 26 31 32 40 48 53 55 56 59 63 66 68 69 76
3 Perceptroni monostrat
3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9
Clasi care . . . . . . . . . . . . . . . . . . . . Functii discriminant . . . . . . . . . . . . . . Clasi catori liniari . . . . . . . . . . . . . . . Perceptronul discret ca dihotomizator liniar . Perceptronul continuu ca dihotomizator liniar Teorema de convergenta a perceptronului . . . Retele monostrat de perceptroni . . . . . . . . Exemple . . . . . . . . . . . . . . . . . . . . . Exercitii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
4.1 Clasi carea 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
79
79 80 84 87 89 92 94 95 96
CUPRINS
4.10 Exercitii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Retele Hop eld cu timp discret . . . Retele Hop eld cu timp continuu . . Aplicatie: problema comis-voiajorului Exemple . . . . . . . . . . . . . . . . Exercitii . . . . . . . . . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
107
107 110 114 117 122 125 127 130 135 137 141 145 148 150 156
6 Memorii asociative
Concepte de baza . . . . . . . . . . . . . . Asociatori liniari . . . . . . . . . . . . . . Memorii autoasociative recurente . . . . . Analiza performantei . . . . . . . . . . . . Memoria asociativa bidirectionala (MAB) Exercitii . . . . . . . . . . . . . . . . . . . Retelele Hamming si MAXNET . . . Instruirea nesupervizata a clusterelor Harti Kohonen . . . . . . . . . . . . Exercitii . . . . . . . . . . . . . . . . . . . . . . . . . . . .
125
145
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.1 10.2 10.3 10.4 Introducere . . . . . . . Exemplu . . . . . . . . . Fundamente matematice Exercitii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
159
165
165 165 167 169 169 171 172 173 174 175 177 178 180 183
10 Algoritmi genetici
177
CUPRINS
7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Masina Turing . . . . . . . . . . . . . Puterea de calcul a retelelor neurale . Reprezentarea functiilor booleene . . Complexitatea instruirii . . . . . . .
185
12 Consideratii 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.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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
193
A Complemente matematice
199
CUPRINS
10
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 neuI rale structurile prototip care modeleaza procesarea informatiei de catre om. ^n ne, informaticienii sunt interesati ^n posibilitatile de calcul ale retelelor masiv paralele ^n domeniile inteligentei arti ciale, teoriei calculabilitatii, modelarii si simularii etc.
Consideram doua clase de puncte: 1. puncte cu doua sau mai multe coordonate pozitive: P3, P5 , P6 , P7 2. restul de puncte.
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
11
sgn(.)
clasa
P3 x 1 +x 2 +x 3 =0
P5
P7
P0
P2
P4
P6
Pentru orice punct Pi(x1 x2 x3 ), i = 1 : : : 7, apartenenta la una dintre clasele de mai sus poate stabilita prin urmatorul calcul: sgn(x1 x2 x3) = ;1 pentru clasa 1 1 pentru clasa 2 Aceasta expresie descrie functia de decizie a unui clasi cator. Nu este necesara o instruire a acestui clasi cator. Reteaua neurala rezultata este extrem de simpla ( g. 1.1). Am realizat clasi carea 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
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
^n acest caz, datele de iesire pot ^n intervalul dintre -1 si 1. Folosirea I neuronilor cu caracteristici continue ofera posibilitati mult mai mari. Se obtine o granularitate (o ra nare) mai mare a datelor de iesire. Neurologii folosesc electro-encefalograma (EEG) care preia pe mai multe canale impulsurile electrice ale creierului. Evaluarea EEG este di cila si de aceea se face de obicei de catre neurologi cali cati. 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. ^n 1990, Eberhart si Dobbins au realizat detectarea semnalelor EEG pentru I crizele de epilepsie folosind un clasi cator 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 identi carea v^rfurilor de semnal. a 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.
13
45 unitati de directie
...
29 unitati
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^t de puternica este tendinta de a merge ^nainte. Unitatile a din st^nga-dreapta reprezinta tendintele de a o lua la st^nga-dreapta. Unitatile a a din extremitatile st^nga si dreapta corespund virajelor st^nga-dreapta c^t mai a a a 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 arti ciala. 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.
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
-1
+1
1
unitatea 1 sgn(.) o1
+
-1 -1 -1
unitatea 2 sgn(.) o2
unitatea 3 sgn(.) o3
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^nd se permite retelei sa a calculeze, intrarile la unitatile 1 si 2 sunt 0, ^n timp ce la unitatea 3 este -2. Ca rezultat, o1 si o2 nu se modi ca, deoarece sgn(0) nu este de nit, ^n timp ce o3 devine -1. Urmeaza cazul 2, care este o iesire nala deoarece nu se mai poate modi ca. Cazurile 3 si 4 sunt alte exemple de tranzitii posibile. Observam ca si cazurile 3 si 4 duc apoi la cazul 2, oper^nd c^te o singura modi care. a a 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^nd a 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^ndu-le cu P6 ( g. 1.6). a Acest concept de memorie poate extins cu usurinta la lumea reala a aplicatiilor.
Probleme de optimizare
Retelele neurale pot optimizare.
15
Tabelul 1.1: Exemple de tranzitii ale retelei tip memorie. X ^nseamna sgn(0), iar iesirile ^ncadrate sunt cele care se modi ca.
0 0 -2 2 2 -2 2 0 0 0 2 0
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^t a
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 speci cam. 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 exempli cata prin conversia A/D este utilizabila si pentru probleme de optimizare combinatorica^n care complexitatea este exponentiala sau, mai rau, ^n ordinul lui n!. ^n aceste probleme, este important sa se reduca I ordinul timpului de cautare. Retelele neurale ofera si ^n acest sens o alternativa.
16
P5
cazul 1
P0
P2
cazul 3
P4
cazul 4
P6
cazul 2
17
unitatea 0
v0
intrare analogica x
iesire digitala
v1
18
promitator domeniul inteligentei arti ciale, prelu^nd si sarcini pe care retelele a neurale nu puteau sa le rezolve la acel stadiu. ^n perioada 1965-1984, c^tiva cercetatori au reusit sa dezvolte totusi cercetaI a rile. Kunihiko Fukushima a de nit 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^teva arhitecturi de retele neurale si au dezvoltat teoria retelelor adaptive a prin rezonanta, ART. Era renasterii a ^nceput odata cu introducerea arhitecturii recurente pentru memoriile asociative (John Hop eld, 1982). O alta revitalizare a domeniului provine din lucrarile lui James McClelland si David Rumelhart (1986). ^ncep^nd cu anii 1986-1987, s-au initiat multe programe de cercetare si intereI a sul 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 e ciente 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^t partial rezolvate a 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 arti ciala 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. ^n 1986, AT&T a fabricat primul circuit integrat de memorie I neurala.
20
actiuni. Avem deci un sistem const^nd din receptori, reteaua neurala si efectori, a care controleaza organismul si actiunile sale. Fluxul informational este descris ^n gura 2.1.
Corp Sistemul nervos central feedback intern Efectori Organe motor
feedback extern
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 neua ron. Semnalele care ajung la o sinapsa plec^nd 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
21
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^nd a Procesarea ^n retelele neurale biologice este complexa si mai putin structurata dec^t calculul digital. Spre deosebire de cazul calculului digital, impulsurile neua rale 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^ne pentru un timp ^ntr-o staa ree 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^ndu-ne pe conditiile de excitatie de la momentul k. a
suma ponderilor impulsurilor receptate depaseste valoarea pragului pe parcursul perioadei de ^nsumare latenta.
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
Neuronul va excitat la un anumit moment dat, daca numarul sinapselor excitate excitatoare depaseste numarul sinapselor excitate inhibitoare la momentul precedent cu cel putin numarul T , unde T este valoarea pragului neuronului.
22
si retransmise (feedback) neuronilor generatori. Aceasta discutie este o simpli care foarte mare din punct de vedere neurobiologic. Retelele neurale arti ciale sunt mult mai simple dec^t corespondentul lor a natural. Sa examinam un model de neuron arti cial cu semni catie istorica.
1 daca Pn=1 wixk T = 0 daca Pin w xik < 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^nd a 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.
Intrarile xk i = 1 2 : : : n sunt 0 sau 1, ^n functie de absenta sau prezenta i impulsului la momentul k ( g 2.3). Semnalul de iesire al neuronului este o. Regula dupa care neuronul genereaza un semnal este:
ok+1
x1 -1 x2 -1 x3 -1
1 1 1 NAND o
x1
T=1
1 1 1 NOR T=1 -1 o
x2 x3
T=0
23
Neuronul McCulloch-Pitts are o ^nt^rziere cu durata de o unitate. Aceasta a 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 -1 T=1 ok+1 =x k
intrare inhibitoare
Dupa ce s-a initializat celula, astfel ^nc^t sa genereze sau sa nu genereze un a semnal, aceasta valoare de iesire este sustinuta inde nit, ^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^nd cont de capacitatea lor de a ^nvata. Vom reveni asupra a acestor aspecte mai t^rziu. a Modelul neural McCulloch-Pitts este elegant si are o expresie matematica precisa. El opereaza ^nsa c^teva simpli cari drastice. Astfel, permite doar stari binare a (0 si 1), presupune ca timpul este discret si presupune sincronismul operatiilor tuturor neuronilor. De asemenea, ponderile si pragurile sunt presupuse xe. ^n I 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. De nim modelul unui neuron general ca in gura 2.6 sau
o = f (wtx)
n X o = f ( wixi) i=1
w = w1w2 : : : wn]t
24
x1 x2
w1 w2
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 de nitie 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 arti ciale compuse din modele de neuroni. Functii de activare tipice sunt: - bipolara continua: f (net) = 1+exp2; net ; 1 > 0 - bipolara binara: f (net) = sgn(net) = ;1 net > 0 1 net < 0 Se observa ca pentru ! 1, functia bipolara continua devine bipolar binara. Functiile unipolare sunt: - unipolara continua: f (net) = 1+exp1; net - unipolara binara: f (net) = 1 net > 0 0 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 de nite si altfel.
25
=1
=0,5
=1
-1
net
-1
net
-1
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 wn net 1 -1 comparator cu prag neuron net o(w,x)
sumator
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:
(0 1)m fo 2 <m oi 2 (0 1)g pentru cazul unipolar: Domeniul lui o este interiorul unui cub m-dimensional.
26
f;1 1gm fo 2 <m oi 2 f;1 1gg pentru cazul bipolar f0 1gm fo 2 <m oi 2 f0 1gg pentru cazul unipolar: Domeniul lui o este format din v^rfurile unui cub m-dimensional. Un vector a
poate avea deci 2m valori. sau
Retea feedforward
Sa consideram o arhitectura feedforward de m neuroni care receptioneaza n intrari ( g. 2.10). Pentru acest model de nim
o = o1o2 : : : om ]t
si Ponderea wij caracterizeaza al i-lea neuron cu a j -a intrare. Valoarea de activare pentru al i-lea neuron este atunci:
x = x1 x2 : : : xn ]t:
wij xj
neti =
n X
j =1
i = 1 2 : : : m: i = 1 2 : : : m:
27
o1 o2
...
xn
...
m om
o = ;(Wx)
unde W este matricea ponderilor (matricea conexiunilor):
2 6 6 W=6 6 4
w11 w12 : : : w1n 3 w21 w22 : : : w2n 7 7 7 ... 7 5 wm1 wm2 : : : wmn
iar
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^rziere, a 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)
2 f( ) 0 : : : 0 3 6 0 f( ) : : : 0 7 6 7 7: ; ] = 6 .. 6 . 7 4 5 0 : : : 0 f( )
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. ^ntr-o astfel de retea, iesirea unui strat este intrarea urmatorului strat. I
Retea feedback
O retea feedback se poate obtine dintr-o retea feedforward prin conectarea iesirilor neuronilor cu propriile intrari ( g. 2.12).
x 1 (0) o1(t) w11 w21 w1n 2 o2(t) o2(t+ ) 1 o1(t+ )
x 2 (0)
x n(0)
n on(t) wnn
o n (t+ )
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)] intarziere o(t+)
Intrarea x(t) este folosita doar pentru a initializa aceasta retea, astfel ^nc^t a o(0) = x(0). Intrarea este apoi ^ndepartata si, pentru t > 0, sistemul devine autonom.
29
Consider^nd timpul ca o variabila discreta si decidem sa observam functionaa rea 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^nd cu momentul k = 0: a
::: 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^nd intrari cu timp a 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 singura stare,itsau dintr-un numar limitat de stari. ^n I h 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^rziere discrete a cu elemente continue. Fie, de exemplu, reteaua feedback cu timp continuu din gura 2.14.
o1 = ; Wx0] o2 = ; W; Wx0]]
+
v1 R C
+
v2
Ea este o retea electrica const^nd dintr-o rezistenta si un condensator, unde v1 a 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^lnite ^n acest curs. Din aceasta cauza, retelele electrice reprezinta a modele zice functionale ale retelelor neurale. Din legea lui Kircho obtinem: v1 ; v2 = C dv2 ) R dt
30
De aici, obtinem:
v1 v2
v1 v2
t 0 t0 0
(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. ^n gura 2.16 avem o conexiune sinaptica bazata pe circuitul electric I descris ^n gura 2.14.
net j
j
oj
Rij
net i Ci
i
oi
31
Rezistenta Rij serveste ca pondere de la iesirea neuronului j catre intrarea neuronului i. Ecuatia 2.1 poate discretizata astfel:
t netk+1 = netk + R C (ok ; netk ): i i j i ij i O retea de mai multi neuroni de acest tip are, din punct de vedere dinamic, o comportare complexa.
^n general, ^nvatarea este schimbarea comportamentului datorita experientei. La I om si animale procesul de ^nvatare nu poate observat direct, ci presupunem ca a avut loc observ^nd modi carile de comportament. La retelele neurale, procesul a 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. 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^nd la dispozitie o multime de exemple, fxg, folosite pentru ^nvatare. a 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 :
^nvatarea ca aproximare I
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.
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".
32
o semnal de invatare d
generator de distanta
Ne referim ^n continuare la ^nvatarea incrementala, ^n care conceptul de feedback are un rol central. ^n ^nvatarea supervizata ( g. 2.17), presupunem ca la ecare moment c^nd se I a aplica intrarea, raspunsul d al sistemului este dat de catre instructor (un factor uman).
x retea adaptiva W o
^nvatarea nesupervizata ( g. 2.18) se foloseste de multe ori, de exemplu, la I clustering ( g. 2.19), atunci c^nd informatia a priori este minima. a
33
x1
0 0
x1 (b)
(a)
Figura 2.19: (a) Pattern-uri bidimensionale care formeaza doua clustere. (b) Aparent, nu se disting mai multe clustere si nu stim c^te sunt. ^n acest caz ^nvatarea nesupervizata nu este a I indicata.
x1 wi1 x2 wi2 ... win x xn
neuronul i
oi di
wi
X
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.
Aceasta regula particularizeaza semnalul de ^nvatare astfel: r = f (witx) adica semnalul de ^nvatare este chiar iesirea neuronului. Atunci: wi = cf (witx)x
34
wij = cf (witx)xj = coixj pentru j = 1 2 : : : n: Este necesar ca, initial, ponderile sa aiba valori aleatoare mici. ^nvatarea I dupa regula lui Hebb este de tip feedforward si nesupervizata. Este implementata urmatoarea idee: "Daca celula A excita ^n mod repetat celula B, fac^nd-o sa genereze a un impuls, atunci are loc un proces de crestere (schimbare metabolica) ^ntr-una sau ^n ambele celule, astfel ^nc^t e cienta excitarii lui B de a catre A creste." Cu alte cuvinte, pattern-urile de intrare mai frecvente vor avea si in uenta cea mai mare asupra ponderilor conexiunilor.
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 wi x
X
net i
comparator
oi
xn
d i -o i + + di
Avem:
Sa observam ca aceasta regula este aplicabila doar pentru situatia c^nd functia a 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.
35
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 x2 ... xn x wi1 wi2 win wi
X
f(net i)
f(net i)
oi
d i -o i
di +
Aceasta regula se deduce din conditia de cea mai mica eroare patratica dintre oi si di. Fie E eroarea patratica: E = 1 (di ; oi )2 2 ceea ce este echivalent cu 1 E = 2 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^t sa e a 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) unde este o constanta pozitiva.
wi = ; rE
36
r = di ; f (witx)]f 0(witx)
obtinem:
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.
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.
37
Aceasta regula difera mult de regulile prezentate p^na acum. Poate explicata a pe o multime de neuroni si este un exemplu de ^nvatare competitiva folosita ^n instruirea nesupervizata. ^n general, aceasta regula se foloseste pentru ^nvatarea I proprietatilor statistice ale intrarilor. ^nvatarea se bazeaza pe premiza ca unul din neuroni, e el neuronul m, are I raspunsul maxim pentru intrarea x. Acest neuron este c^stigatorul ( g. 2.23). a
w11 o1
...
...
om
neuronul castigator
x1 xj
...
xn
...
op
Ca rezultat,
Numai ponderile neuronului c^stigator se modi ca. Dupa ajustare, wm va estima a si mai bine pattern-ul x. Ponderile se initializeaza cu valori aleatoare si sunt normalizate. ^n general, I scade pe parcursul procesului de ^nvatare.
wmj = (xj ; wmj ) pentru j = 1 2 : : : n unde > 0 este o constanta de^nvatare mica. Criteriul de alegere a c^stigatorului a este: t wmx = i=1 2 ::: p(witx): max
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.
38
Tabelul 2.1: Comparatie ^ntre calculul conventional si calculul neural din punct de vedere al etapelor care trebuie parcurse.
Sarcina
Calcul conventional
Calcul neural
Selectarea unei arhitecturi si de nirea multimii de exemple reprezentative Instruire Precizie mica, aplicatii neliniare Ponderi ale conexiunilor av^nd ^n genea ral 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. Clasi care. Paradigma clasi carii poate considerata o varianta a autoasocierii. ^n acest caz avem o multime xata de categorii ^n care trebuie I clasi cate pattern-urile de intrare. ^n perioada instruirii, sistemului i se I prezinta pattern-uri din secventa de instruire precizand categoriile din care fac parte. Scopul este de a ^nvata corect clasi carea, astfel ^nc^t, ultea rior, orice pattern de intrare (eventual perturbat fata de pattern-urile din secventa de instruire) sa e clasi cat 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 initiale
Tipul ^nvatarii
Hebb perceptron delta Windrow-Ho corelatie c^stigatorul a ia tot 0 oricare oricare oricare 0 aleatoare normalizate nesuperv. superv. superv. superv. superv. nesuperv. oricare binar continuu oricare oricare continuu
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
Caracteristicile neuronilor
39
40
2.5 Exemple
+ + + +
intrare strat 1
o1 o2 o3 o4 -1
iesire strat 1 intrare strat 2 iesire strat 2
comparator 5
o5
Pentru stratul 1:
o = ; Wx] o = ; o1 o2 o3 o4 h i x = x1 x2 ;1 t
2 1 6 W1 = 6 ;1 6 0 4 h h it
Pentru stratul 2:
0 13 0 ;2 7 7 5 1 07 0 ;1 ;3
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.
x = o1 o2 o3 o4 ;1
o = o5 ]
it
2.5. EXEMPLE
x2
3
41
x1
0 1 2 3
Sa presupunem acum ca avem aceeasi arhitectura, dar ca neuronii au caracteristici sigmoidale. Obtinem:
2 6 6 6 6 6 o=6 6 6 6 6 6 4
7 7 7 ;1 7 7 7 7 7 ;1 7 7 7 5
;1 3
;1
3
Aplicatia spatiului bidimensional x1 x2 ^ntr-un segment al axei reale este ^n acest caz mai complicata.
Starile retelei sunt v^rfurile unui cub 4-dimensional: f;1 1g4. Trecerea dintra o 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 7 7 5 1 0 ;1 7 ;1 ;1 ;1 0
Presupun^nd x0 = 1 1 1 ;1 , obtinem a
it
42
ponderea=+1 ponderea=-1
k+1 o1
x0 2 x0 3
+ +
comparator 2 comparator 3
ok+1 2 ok+1 3
x0 4
comparator 4
k+1 o4
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^nd x0 = 1 1 1 1 , obtinem: a
it
x0 = 1 1 ;1 ;1 x0 = 1 ;1 1 ;1
h h
it it
x0 = ;1 1 1 ;1 t :
Fie reteaua din gura 2.27 unde oi = f (neti) i = 1 2, iar f este functia de activare continua bipolara. ^n aceasta gura, R12 si R21 sunt ponderi negative, I ^nt^rzierile sunt realizate de dispozitivul RC , iar rezistentele R modeleaza curena tul absorbit de neuroni.
2.5. EXEMPLE
net 1 R C1
43
o1 R21
R12
net 2 R C2
o2
Obtinem:
Discretizam:
dt
R21
t t
Presupunem ca C1 = C2, R12 = R21 < 0 pentru aceasta retea. Presupunem ca circuit a fost initializat prin ^ncarcarea condensatoarelor (cu o0 , o0 , nu neaparat 1 2 egale). Reteaua ^si cauta unul din cele doua puncte de echilibru ( g. 2.28). Simularea retelei se face pe calculator prin ecuatiile date. ^n gura 2.29, avem intrarea: I
si ponderile initiale:
w 1 = 1 ;1 0 0 5 t :
44
-1
o1
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 0 7 6 1 7 x1 = 6 1 2 7 x2 = 6 ;;25 7 x3 = 6 ;1 7 : 6 57 6 7 6 7 4 5 4 5 4 5 0 ;1 5 15 Consideram c = 1. Presupunem pentru ^nceput ca avem neuroni bipolari binari: f (net) = sgn(net).
x1 x2 x3 x4 o
2 1 3 h i6 ; 7 net1 = w1t x1 = 1 ;1 0 0 5 6 1 2 7 = 3 6 57 4 5
0
2.5. EXEMPLE 2 1 3 2 1 3 2 2 3 6 7 6 7 6 7 w 2 = 6 ;1 7 + 6 1 2 7 = 6 1 3 7 : 6 0 7 6 ;5 7 6 ;5 7 4 5 4 5 4 5
45
w2 = w1 + sgn(net1 )x1 = w1 + x1
05 0 05
;1 5
05 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 7 f (net1 ) = 0 905 w1 = 6 ;2357 7 61 7 4 5 05 Pasul 2. Se aplica x2. 2 1 828 3 6 772 7 f (net2) = ;0 077 w2 = 6 ;2 512 7 6 1 7 4 5 0 616
2 1 3 6 7 w4 = w3 + sgn(net3 )x2 = w3 ; x3 = 6 ;3 55 7 : 6 4 7 4 5
net3 = w3tx3 = ;3
;0 783
3 7 7: 7 5
Se observa ca pentru functia de activare continua se obtin ^n general rezultate ^n aceeasi directie, valorile ind ^nsa mai diferentiate.
46
;1 3
7 7 7 5
2 1 3 7 6 w1 = 6 ;1 7 6 0 7 5 4
05
2 1 3 h i6 7 net1 = w1t x1 = 1 ;1 0 0 5 6 ;2 7 = 2 5: 6 0 7 4 5
;1
2 1 3 6 7 w2 = w1 + 0 1(;1 ; 1)x1 = 6 ;1 7 ; 0 6 0 7 4 5
05
2 1 3 2 08 3 6 7 6 7 2 6 ;2 7 = 6 ;0 6 7 : 6 0 7 6 0 7 4 5 4 5
;1
07
2 08 3 7 h i6 net2 = w2t x2 = 0 1 5 ;0 5 ;1 6 ;0 6 7 = ;1 6: 6 0 7 4 5
07
2 08 3 7 h i6 net3 = w3t x3 = ;1 1 0 5 ;1 6 ;0 6 7 = ;2 1: 6 0 7 4 5
07
2 06 3 7 6 w4 = w3 + 0 1(1 + 1)3 = 6 ;0 14 7 : 6 0 7 5 4
05
2.5. EXEMPLE
47
Nu este o simpla coincidenta faptul ca ultima componenta a vectorilor x1, x2 , x3 este invariabila. ^nvatarea prin regula perceptronului necesita ca o componenta I 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 a mai aplicam o data x1 , obtinem net4 = 0 9, deci raspunsul este mai bun dec^t 1 net = 2 5. Un contraexemplu important:
x1 = 1 1
" #
x2 = ;1 ;1
"
d1 = 1 d2 = 1 :
2 3 2 3 1 6 1 7 y2 = 6 ;1 7 d1 = 1 d2 = 1 : y1 = 4 5 4 ;1 5
;1
;1
^n acest caz trebuie ca w1 + w2 > w3 si w1 + w2 < ;w3 . Acest sistem are solutii, I 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 a constante, ;1. Am vazut ca pentru y1 si y2 exista w1 si w2 astfel ^nc^t perceptronul sa ^nvete corect. Puteti acum folosi regula perceptronului pentru a ^nvata y1 si y2. ^ncercati sa explicati din punct de vedere geometric care este diferenta I dintre a ^nvata x1 si x2 fata de a ^nvata y1 si y2.
2 1 3 2 0 3 2 ;1 3 2 1 3 6 7 6 1 7 6 7 6 7 x1 = 6 ;2 7 x2 = 6 ;0 55 7 x3 = 6 015 7 w1 = 6 ;1 7 6 0 7 6 7 6 7 6 0 7 4 5 4 5 4 5 4 5
;1
;1
;1
05
La fel, raspunsurile dorite sunt -1, -1, 1, iar c = 0 2. Se demonstreaza mai t^rziu ca: a f 0(net) = 1 (1 ; o2 ) 2 daca f este functia de activare bipolara continua. Consideram = 1.
48
f 0(net1 ) = 1 1 ; (o1 )2] = 0 14 2 2 0 974 3 6 7 w2 = c(;1 ; o1)f 0(net1 )x1 + w1 = 6 ;0 0948 7 : 6 7 4 5 0 526 Pasul 2. Se aplica x2. net2 = w2tx2 = ;1 948 o2 = f (net2) = ;0 75 f 0(net2 ) = 1 1 ; (o2)2 ] = 0 218 2 2 0 974 3 6 956 7 w3 = c(;1 ; o2)f 0(net2 )x2 + w2 = 6 ;0 002 7 : 6 0 7 4 5 0 531 Pasul 3. Se aplica x3. net3 = w3t x3 = ;2 46 o3 = f (net3 ) = ;0 842 f 0(net3 ) = 1 1 ; (o3)2 ] = 0 145 2 2 0 974 3 6 929 7 w4 = c(;1 ; o3)f 0(net3 )x3 + w3 = 6 ;0 016 7 : 6 0 7 4 5 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 = xk ok o03k , unde x03k este complementul lui xk . Se va folosi un 1 2 3 neuron. (b) ok+2 = x01k xk x03k . Se vor folosi doi neuroni ^n cascada. 2 k+2 = xk xk . Se vor folosi doi neuroni ^n cascada. (c) o 1 2 2. Aratati ca retelele neurale din gura 2.30 sunt echivalente (implementeaza aceeasi functie). Se presupune ca: ( 0 f (net) = 0 net > 0 : 1 net
2.6. EXERCITII
49
x1 -1 x2
1 1/2 1 1 3/2 1
f(net)
+ +
f(net) -1 1/2 -1
f(net)
x1
-1
1 1/2 1 1 2
-1 x2
+
-1
f(net)
+
1/2 -1
f(net)
3. Reteaua din gura 2.31 este un convertor A/D si poate utilizata pentru codi carea 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 codi carile (0 0 0 0) : : : (1 1 1 1). Presupuneti ;1 x 16 si ca ( 0 0 f (net) = 1 net > 0 : net 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 x = ;0 985 x = 0 342 : x1 = 0 5 2 ;0 174 3 ;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. ^nvatare hebbiana pentru un neuron care este instruit cu: I " # " # " # " # " # 1 0 x = 2 x = 1 1 1 x1 = ;2 x2 = 1 3 3 4 ;1 w = ;1
50
+
-1
1,5 -2
f(net)
o0
+
-1
3,5 -4
f(net)
-4
o1
+
-8
f(net)
-8 -8
o2
-1
7,5 1
f(net)
o3
o1
o2
Figura 2.32: Retea neurala care foloseste neuroni cu functie de activare bipolara continua.
si c = 1. Gasiti ponderile nale pentru cazul c^nd functia de activare este a (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 = 6 1 7 B x1 = 6 1 7 d1 = ;1 C B x2 = 6 ;1 7 d2 = 1 C 4 5 A @ 4 5 A 4 5 @
0
;1
;1
Repetati secventa de instruire (x1 d1 ), (x2 d2 ) p^na c^nd se obtin raspuna a k obtinute. surile corecte. Listati valorile net
2.6. EXERCITII
o1
51
x1
-0,966
x2
0,423
f(net)
o2
-1 f(net)
o1
x2
-1
;1 ;1 1 Se va folosi f 0(net) = 2 (1 ; o2 ). Repetati secventa de instruire (x1 d1), (x2 d2) si studiati comportarea.
2 3 0 2 3 1 0 2 3 1 1 2 1 w1 = 6 0 7 B x1 = 6 0 7 d1 = ;1 C B x2 = 6 ;2 7 d2 = 1 C 4 5 @ 4 5 A @ 4 5 A
10. (C) Folositi aceleasi date ca si ^n problema precedenta, aplic^nd regula a 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:
52 -
clasa
clasificator
clasa
...
53
54
t t1 t2 tn
De exemplu, din imaginile receptionate de pe satelitul LANDSAT, sunt necesare doar c^teva din componentele spectrale. a Retelele neurale pot utilizate at^t pentru clasi care c^t si pentru extragerea a a trasaturilor. ^n continuare, vom reprezenta componentele de intrare ale unui clasi cator ca I un vector x ( g. 3.2). Clasi carea este obtinuta prin implementarea unei functii de decizie i0 , unde i0 (x) 2 f1 2 : : :Rg. Atunci c^nd pattern-urile de intrare nu sunt identice cu pattern-urile folosite a pentru instruirea clasi catorului, procesul de clasi care se numeste recunoastere. Clasi carea 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 clasi cator 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. ^n gura 3.3, n = 2, R = 4 si i0 = j I 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. ^n spatiul n-dimensional, suprafetele de decizie sunt hipersuprafete (n ; 1) I dimensionale.
55
H1 H3
(4,6)
(20,10)
H4
0
H2 H1
x1
Presupunem ca avem o multime nita de pattern-uri n-dimensionale x1 , x2 : : :, xP si cunoastem clasi carea dorita pentru ecare dintre ele. Presupunem ca avem functiile discriminant g1, g2, ..., gR astfel ^nc^t x face parte din clasa i daca si a 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)
2
x pattern
1 Selector 2 de maxim R
clasa i0
gR(x)
Daca x se a a pe suprafata de decizie dintre Hi si Hj , atunci gi(x) ; gj (x) = 0: Pentru cazul c^nd R = 2, clasi catorul se numeste dihotomizator. Acest cuv^nt a a provine din alaturarea cuvintelor grecesti dicha (^n doua) si tomia (taietura). ^n I cazul dihotomizatorului, regula de clasi care devine: g(x) > 0: clasa 1 g(x) < 0: clasa 2
...
...
CAPITOLUL 3. PERCEPTRONI MONOSTRAT 8 > ;1 g(x) < 0 < i0 = sgn g(x)] = > nede nit 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
discriminator g(x)
clasa i0
Ne vom concentra asupra clasi catorilor ale caror functii discriminant se obtin prin ^nvatare iterativa, cu ajutorul pattern-urilor de instruire. Presupunem ca: 1. Multimea pattern-urilor de instruire si clasi carea lor sunt cunoscute, deci ^nvatarea este supervizata. 2. Functiile discriminant sunt liniare si doar coe cientii lor sunt ajustati pe parcursul procesului de ^nvatare.
Vom discuta ^n detaliu functiile discriminant liniare. ^n acest caz, suprafetele I 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 + 1 kx2 k2 ; kx1k2 : 2 ^n general, ecuatia lui g(x) este de forma: I
"
wn+1
#t " #
x =0 1
57
x1-x2
1_ x1
clasa 1
P1
hip
| 1 2 x2 clasa 2
erp
la
e nd
dec
izie
| 3
x1
-1
g(x
)=0
P2
2 6 6 unde: w = 6 6 4
este vectorul ponderilor. ^n cazul precedent, I w = x1 ; x2 wn+1 = 1 kx2 k2 ; kx1k2 : 2 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^t doua a clase. Daca avem R clase, doua c^te doua separabile, atunci vor p^na la R(R2;1) a a hiperplane de decizie. Sa presupunem ca folosim criteriul distantei minime pentru a clasi ca 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
w1 w2 ... wn
3 7 7 7 7 5
kx ; xi k2 = xt x ; 2xtix + xtixi i = 1 2 : : : R: De fapt, cautam xi pentru care se obtine max(xtix ; 1 xti xi ). Putem lua atunci: 2
gi(x) = xti x ; 1 xti xi 2 i = 1 2 : : : R:
58
i = 1 2 ::: R
unde: wi = xi wi n+1 = ; 1 xtixi i = 1 2 : : : R: 2 Clasi catorii care folosesc criteriul distantei minime pot considerati clasi catori liniari si ei se numesc uneori masini liniare. Un clasi cator liniar arata ca ^n gura 3.7.
w 11 w12 w1,n+1 g 1(x)
...
1 x
pattern
w1
selector de maxim
i0
raspuns
w R1
... 1 R,n+1 wR
ponderi discriminanti w
g R(x)
Sa observam ca suprafata de decizie Sij dintre regiunile contigue (alaturate, vecine) Hi si Hj este un hiperplan:
gi(x) ; gj (x) = 0
Daca de nim: obtinem: sau: witx + wi n+1 ; wjt x ; wj n+1 = 0:
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 clasi ca pattern-urile din Hi ca fac^nd parte din clasa i, pentru i = 1 2 : : : R, atunci multimile Hi a 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
...
y= x 1
" #
59
| 1
x2
atunci multimile Hi sunt liniar separabile. ^n gura 3.8 avem un exemplu de pattern-uri liniar neseparabile care pot I modelate prin functia de paritate unipolara XOR(x1 x2 ) = x1 x2 unde este operatorul OR exclusiv.
...
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. ^n gura 3.10 este dat un exemplu ^n care pattern-urile y1, y2 ,...,y5 sunt I 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.
pattern-ul 2 (clasa 2)
w2
pattern-ul 3 (clasa 2)
5
pattern-ul 4 (clasa 1)
y 1
w ty1 >0
pattern-ul 1 (clasa 1)
w
y 4
w1
4 1 3
y 5 y 3 y2
pattern-ul 5 (clasa 2)
Sa presupunem acum ca ponderile initiale sunt w1. Discutam despre patternul y1 din clasa 1. Conform gurii 3.11, y1 nu este clasi cat corect, deoarece w1ty1 < 0. Ajustam vectorul w astfel ^nc^t wty1 sa creasca c^t mai rapid, deci ^n directia a a gradientului. Gradientul este: rw (wty1) = y1: Deci, atunci c^nd pattern-ul y1 este clasi cat gresit, vom ajusta ponderile astfel: a w0 = w1 + cy1
61
y 1
w1 w1
unde c > 0 este incrementul de corectie. Repet^nd ajustarea de c^teva ori, indifea a rent 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). ^n acest caz, y1 nu este clasi cat corect, deoarece w1ty1 > 0. Descrestem c^t I a t y , deci ^n directia gradientului negativ: mai rapid pe w 1 w0 = w1 ; cy1: Procedura de instruire supervizata este, asadar: w0 = w1 cy1 unde "+" este valabil c^nd se clasi ca gresit un pattern din clasa 1, iar "-" este a valabil c^nd se clasi ca gresit un pattern din clasa 2. Atunci c^nd pattern-ul este a a clasi cat 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). a Sa rezumam clasi carea pattern-urilor liniar separabile apartin^nd la doar doua clase. Se cauta un vector w astfel ^nc^t: a 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. ^n I continuare, w = wk = wk +1 = : : : : Se poate demonstra urmatoarea teorema:
0 0 0
62
y 1 w1
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: c wk+1 = wk + 2 (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 vector de n elemente, i = 1 2 : : : P . Se de neste vectorul y1 = h i xi 1 t , i = 1 2 : : : P . 1. Se alege c > 0.
63
yn =xn yn+1 =1 E
generator de eroare
Figura 3.13: Modelul folosit la instruirea unui perceptron continuu folosit ca dihotomizator liniar.
Problema modi carii ponderilor se rezolva foarte elegant prin minimizarea functiei care masoara eroarea de clasi care, 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^ndu-ne ^n directia gradientului negativ de-a lungul a suprafetei multidimensionale a erorii. Directia gradientului negativ este cea a descresterii cea mai rapide. Luam deci:
wk+1 = wk ; rE (wk )
64
unde este constanta de ^nvatare, o valoare pozitiva. Eroarea de clasi care care trebuie minimizata este: 1 Ek = 2 (dk ; ok )2 h i2 = 1 dk ; f (wktyk ) : 2
65
O alta diferenta semni cativa 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 modi ca 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 su cient 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 de n elemente, i = 1 2 : : : P . Se de neste vectorul y1 = h i 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 (wty), care este functia de activare continua. 4. w w + 1 (d ; o)(1 ; o2 )y: 2 5. Se calculeaza eroarea patratica cumulata: 1 E E + 2 (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 .
^n acest capitol am presupus p^na acum ca yn+1 = +1. Fie acum un dihoI a tomizator bazat pe perceptron, ^n care yn+1 = ;1 ( g. 3.14).
y1 =x1 ...
w1
f(net)
wn wn+1
yn =xn yn+1 =1
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.
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
net
T=wn+1
-1
Procesul de instruire accepta pentru yn+1 orice valoare constanta. Lu^nd ^nsa a 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 speci cam altfel.
67
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):
perceptron ^nvata ^ntr-un numar nit de pasi sa clasi ce corect pattern-urile, presupun^nd ca acestea sunt liniar separabile. a 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^mpla c^nd aplicam algoritmul percepa a tronului 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^t ar dura acest test. a ^n nal, se poate demonstra urmatoarea teorema: I
Cu alte cuvinte, atunci c^nd pattern-urile de instruire au componente reale a oarecare, alegerea unei constante de ^nvatare adecvate devine critica si aceasta constanta nu mai poate un numar real pozitiv oarecare.
68
3.7 Instruirea unui clasi cator liniar prin utilizarea unei retele monostrat de perceptroni
Fie R > 2 clase doua c^te doua liniar separabile. Exista deci R functii discrimia nant liniare astfel ^nc^t: a gi(x) > gj (x) pentru i j = 1 2 : : : R i 6= j 8x 2 Hi: De nim vectorul ponderilor
wq = wq1 wq2 : : : wq n+1 t : Sa presupunem ca un pattern y este prezentat unui clasi cator liniar. Daca wity > wjt y, j = 1 2 : : : R, i = j , clasi carea este corecta si 6 w1 0 = w1 w2 0 = w2 wR 0 = wR
t sunt valorile ajustate ale vectorilor ponderilor. Daca avem wity wmy 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 clasi cator are la iesire un selector de maxim. Sa ^ncercam acum sa ^nlocuim selectorul de maxim dintr-un clasi cator 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 dk ; ok yk pentru i = 1 2 : : : R: i i Aceasta este regula de instruire a clasi catorului bazat pe o retea de perceptroni discreti. ^n relatia de mai sus, di si oi se refera la al i-lea perceptron. I Teorema perceptronului se poate generalizaa si demonstra si pentru cazul cu R > 2 clase doua c^te doua liniar separabile. a Algoritmul de instruire a unei retele monostrat de perceptroni folosita ca si clasi cator liniar este urmatorul:
...
3.8. EXEMPLE
w11 w12 w1,n+1 w21 w22 w2,n+1 wR1 wR2 wR,n+1
69
+ +
comparator 1 comparator 2
o1 o2
...
x -1
Se dau perechile (x1 d1),... ,(xP dP ), unde xi este un vector i de h t R elemente si i = 1 2 : : : P . Se de nesc 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 + 1 c(di ; oi )y, pentru i = 1 2 : : : R, unde i reprezinta 2 elementul al i-lea din vectorul d. 5. E 1 (di ; oi )2 + E , i = 1 2 : : : R. 2 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). ^n acest caz, ajustarea ponderilor se face astfel: I wik+1 = wik + 1 (dk ; ok ) 1 ; ok2 yk pentru i = 1 2 : : : R: i 2 i i Asupra acestei formule si a retelei de perceptroni de tip continuu vom discuta pe larg ^n capitolul urmator.
... ...
... +
comparator R
oR
3.8 Exemple
70
o1
...
x -1
...
oR
...
cu n = 2 si R = 3. Folosim formula
wi = xi
si obtinem ponderile:
wi n+1 = ; 1 xti xi 2
i = 1 2 : : : R:
2 3 2 3 2 10 2 ;5 3 w1 = 6 2 7 w2 = 6 ;5 7 w3 = 6 5 7 : 4 5 4 5 4 5
;52
;14 5
;25
Din formula:
i = 1 2 ::: R
3.8. EXEMPLE
x2 S13
P3 (-5,5)
71
H1 H3
S 123 P (10,2) 1
x1
S23
P2 (2,-5)
S12
H2
Figura 3.18: Suprafetele de decizie pentru un clasi cator liniar. S123 = (2 337 2 686).
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 y3 = 3 y4 = ;2 : y1 = 1 y2 = 1 1 1 Fie ponderile initiale w1 = ;2 5 1 75 alese arbitrar. Regula w0 = w cy devine ^n cazul perceptronului: i ch wk = 2 dk ; sgn(wktyk ) yk : 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
it
72
g1(x)
2 -5 -14,5
g2(x)
selector 2 de maxim
i 0 =1 sau 2 sau 3
-5 5 -25
g3(x)
Figura 3.19: Clasi catorul liniar care implementeaza regiunile de decizie din gura 3.18.
y1 =x1 w1 comparator net
+
y2 =1 w2
d-o
Pasul 2. Aplicam y2
o2 = sgn
;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 modi ca ponderile. Reciclam secventa y1, ..., y4 deoarece nu stim daca perceptronul a reusit sa ^nvete sa
clasi ce corect.
3.8. EXEMPLE
73
w5 = w4 : w6 = w5 : w7 = 2 5 1 75 t : w8 = w7 :
h h i
w10 = w9 = w8 = w7
i
74
Reluam clasi catorul liniar (R = 3) construit deja pe baza distantei minime. Sunt usor de calculat valorile functiilor discriminant ^n x1 , x2 si 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 clasi cator ( g. 3.21).
x1 -5 2 5 50 -1 10 2 -5
+ + +
comparator 1
o1
x2
comparator 2
o2
12,5 23
comparator R
oR
Ar trebui sa avem w1 3 = 52, w2 3 = 14 5 si w3 3 = 25 ca valori de prag. Putem scadea aceste praguri cu 2 fara ca sa modi cam raspunsurile clasi catorului. Vom construi acum direct clasi catorul prin instruirea retelei de perceptroni. Alegem aleator vectorii initiali: 2 3 2 3 2 3 1 0 6 ;2 7 w1 = 6 ;1 7 w1 = 6 1 7 : 1 w1 = 4 5 2 4 5 3 4 3 5 0 2 ;1 Fie c = 1. Cu "*" marcam raspunsurile incorecte.
Pasul 1. (y1)
;1
3.8. EXEMPLE
2 1 2 1 w1 = w1 w2 = w2
75
2 3 2 3 2 3 1 10 ;9 2 w3 = 6 3 7 ; 6 2 7 = 6 1 7 : 4 5 4 5 4 5
;1
;1
Pasul 2. (y2)
2 3 2 3 2 3 2 6 1 7 ; 6 ;5 7 = 6 ;1 7 3 w1 = 4 2 5 4 5 4 3 5
0
;1
;1
3 2 3 2 w2 = w2 w3 = w3 :
Pasul 3. (y3)
2 3 4 4 w1 = 6 ;2 7 4 5
2
Se ^ncheie primul ciclu, apoi reluam secventa etc. Se modi ca doar ponderile primului perceptron.
5 4 w1 = w1
2 3 2 6 w1 = 6 3 7 4 5
3
2 3 7 7 w1 = 6 ;2 7 4 5
4
8 7 w1 = w1
2 3 5 9 w1 = 6 3 7 : 4 5
5
76
P 1 (10,2)
x1
-x 2 -2=0 Q P2 (2,-5) o=[-1 +1 -1] t o=[+1 +1 -1]t
3.9 Exercitii
1. (C) Implementati algoritmul de instruire a unui dihotomizator cu ajutorul h it unui perceptron discret lu^nd c = 1, w = 0 0 0 0 si a 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 02 01 13 02 07 08 : clasa 2, x: 0 0 2 0 3 ^ncercati si alte valori pentru c. I
1 4 7 2 5 8 3 6 9 1 4 7 2 5 8 3 6 9
it h
it
it
[ 1 0 0 1 0 0 1 1 1 ]
3.9. EXERCITII
77
2. (C) Implementati algoritmul de instruire a unui dihotomizator cu ajutorul unui perceptron continuu ^n conditiile problemei precedente. ^ncercati I diferite valori pentru constanta de ^nvatare. 3. Prin algoritmul de instruire a unui clasi cator 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 1 1 1 Pasul 1. (x1). Se ajusteaza w1 = w2 = w3 = 0 0 0 t . 2 Pasul 2. (x2). Se ajusteaza w3 . 3 Pasul 3. (x3). Se ajusteaza w2 . ^n nal, I
4 w2 = 5 ;1 ;2 Gasiti pattern-urile x1 , x2 si x3. 4 w1 = 1 3 ;1
it
it
4 w3 = 1 ;1 2 t :
4. (C) Implementati algoritmul de instruire a unui clasi cator liniar reprezentat ca retea de perceptroni discreti folosind c = 1 si urmatoarele pattern-uri de instruire:
1 1 1 0
0 it 1 it 1 it 1 :
it
Reprezentati suprafetele de decizie rezultate. 5. Proiectati si instruiti un clasi cator pentru caracterele tiparite L si I ( g. 3.23). Folositi un perceptron discret. Ce se ^nt^mpla daca literele sunt distorsiona ate? Rezultat: Apare indecizia. Ar trebui sa instruim perceptronul si cu aceste litere distorsionate.
78
Fie doua multimi de pattern-uri Y1 si Y2. Daca nu exista un vector w al ponderilor astfel ^nc^t: a 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 clasi cate ^n doua categorii ( g. 4.1). Aceasta clasi care se poate implementa ca ^n gura 4.2. 79
3 D C E
clasa 1 clasa 2
A 1 B
Figura 4.1: Doua multimi de pattern-uri care trebuie clasi cate ^n doua categorii.
Fiecare dintre cele sapte compartimente (inclusiv A,...,E) sunt aplicate ^ntrunul din v^rfurile cubului, ^n spatiul o1o2 o3 (spatiul o). Se observa ca ^n spatiul a 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:
2 6 6 y=6 6 4
y1 y2 ... yJ
3 2o 7 6 o1 7 7 o = 6 ..2 6 7 6 . 5 4 oK
81
(-1, 0, 1)
(-1, 1, 1)
+ x + 1 +
o1 o2 o3 0
(1,-1, 1)
(1, 1, 1) (-1, 1, 0)
comparator 4
o4
(1,-1, 0)
transformare pattern-imagine
-1
(-1,-1,-1)
D
(-1, 1,-1) (1, 1,-1) E
o2
o1
(a)
(b)
Figura 4.2: (a) Clasi cator monostrat (b) Reprezentarea pattern-urilor din gura 4.1 ^n spatiul imagine o.
y1 ... yj ... yJ
w KJ w11 wk1 wK1 wkj
1 ...
o1
ok ... K oK
2 f( ) 0 : : : 0 3 6 0 f( ) : : : 0 7 6 7 7: ; ]=6 ... 6 7 4 5 0 0 : : : f( )
Prin de nitie,
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 dp1 7 op 1 7 6 6 dp = 6 ... 7 op = 6 ... 7 : 4 5 4 5 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 = PJ=1 wkj yj pentru k = 1 2 : : : K: j Semnalul de eroare pentru al k-lea neuron este: @E : ok = ; @netk Acest semnal l-am numit si semnal de ^nvatare. Avem: @E = @E @netk = ; y ok j @wkj @netk @wkj deoarece @netk = y : j @w
Putem scrie: Calculam:
ok kj
wkj =
ok yj
pentru k = 1 2 : : : K
j = 1 2 : : : J:
Dar si Obtinem:
@E @ok = ; @o @net k k
k
@E = ;(d ; o ): k k @ok
ok
= (dk ; ok )f 0k (netk )
pentru k = 1 2 : : : K:
83
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 e;net ; e;net f 0(net) = (1 + e;net)2 = 1 + 1;net 1 + + e;net 1 = o(1 ; o): e 1 ^n acest caz, avem: I ok = (dk ; ok )ok (1 ; ok ): ^n cazul bipolar, am aratat ^n capitolul 3 ca: I f 0(net) = 1 (1 ; o2 ) 2 si deci: 1 2 ok = (dk ; ok )(1 ; ok ): 2 ^n concluzie, actualizarea ponderilor se face pentru k = 1 2 : : : K , j = 1 2 : : : J I astfel: w0kj = wkj + (dk ; ok )ok (1 ; ok )yj pentru 1 ok = 1 + e;netk si w0kj = wkj + 1 (dk ; ok )(1 ; o2 )yj k 2 pentru ! 1 ok = 2 1 + e;netk ; 1 :
^n general, putem scrie I unde
2
W0 = W + o yt
2 3 o1 6 o2 7 6 7 o = 6 . 7: 6 .. 7 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.
wk
wk + (dk ; ok )ok (1 ; ok )y
pentru k = 1 2 : : : K ^n cazul unipolar. 5. Se calculeaza eroarea patratica cumulata: E E + 1 (dk ; ok )2 k = 1 2 : : : K: 2 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 .
85
z1
v 11 v 11
1 ...
o1
zi
v ji
yj ok ...
w K1
... ...
zI-1
v J-1,I
yJ-1
v JI
K
w KJ
oK
zI = -1
yJ = -1
unde Dar
= ; deoarece
k=1 K X
k=1
ok wkj
ok
= (dk ; ok )f 0(netk )
netk =
Atunci:
yj
J X
j =1
wkj yj : j = 1 2 ::: J
= f 0j (netj )
K k=1
K X k=1
ok wkj
vji =
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:
K X k=1
ok wkj
j = 1 2 ::: J i = 1 2 ::: I
yz t
V0 = V +
2 6 z..1 z=6 . 4 zI 3 2 7 6 7 V=6 4 5
v11 ... vJ 1 ::: ... :::
2 3 6 y 7 . y = 6 . 7: 4 . 5
1
yJ
^n aceasta relatie, I
yj
= f 0j (netj )
y
K X k=1
= wjt of 0 y
2 6 f 0y = 6 4
3 f 0y 7 ... 7 : 5 0 f yJ
1
Pentru cazul unipolar, folosim f 0yj = yj (1 ; yj ), iar pentru cazul bipolar avem f 0yj = 1 (1 ; yj2). 2 Compar^nd regulile de actualizare a ponderilor: a pentru stratul de iesire: W0 = W + oyt pentru stratul ascuns: V0 = V + y zt se observa ca diferenta semni cativa este indicele care localizeaza stratul si modul ^n care se calculeaza vectorul semnalului de eroare :
o
=h y=
o1 y1
::: :::
oK yJ
it it
Se observa ca wjt o este produsul scalar al semnalelor de eroare provenind de la stratul urmator. Regula delta generalizata propaga eroarea cu c^te un strat ^n urma. Vom a formaliza ^n continuare aceasta metoda de instruire pentru o retea neurala multistrat.
87
^n general, o retea neurala multistrat aplica vectorul de intrare z ^n vectorul de I iesire o astfel: o = N z] unde N este un operator compus neliniar matricial. Pentru reteaua cu un strat ascuns avem: o = ; W; Vz]]: ^n acest caz, trebuie sa ajustam matricile V si W astfel ^nc^t eroarea I a
4.4 Instruirea unei retele neurale multistrat prin propagarea ^n urma a erorii
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 unde vj este un vector coloana reprezent^nd linia j din V, a
yj
z zp d dp f (vjt z) pentru j = 1 2 : : : J
ok
t f (wk y) pentru k = 1 2 : : : K
unde wk este un vector coloana reprezent^nd linia k din W. a 3. Se calculeaza eroarea patratica cumulata: 1 E E + 2 (dk ; ok )2 k = 1 2 : : : K: 4. Se calculeaza semnalele de eroare pentru cazul bipolar: 1 2 ok = (dk ; ok )(1 ; ok ) k = 1 2 : : : K 2 K 1 (1 ; y2) X w yj = ok kj j = 1 2 : : : J j 2 k=1
k = 1 2 ::: K j = 1 2 : : : J: j = 1 2 : : : J: i = 1 2 : : : I:
wkj vji
7. 8.
if
wkj + vji +
k = 1 2 ::: K j = 1 2 :::J
n n wkj+1 = ok yj + wkj n n vji+1 = yj zi + vji unde este o constanta numita momentum. Prin regula delta, nu ne deplasam de fapt ^n directia gradientului negativ al erorii, deoarece ponderile se modi ca 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^mpla deoarece nu este in nit de mic. Din acest motiv, ^n anumite a cazuri, dupa citirea lui zp, se poate ca E sa creasca! Eroarea referitoare doar la zp scade ^nsa, sau ram^ne zero. a ^n general, functia de activare bipolara duce la rezultate mai bune dec^t I a functia unipolara. ^n cazul discret, intrarea xa este ceruta de teorema perceptronului, permiI t^nd crearea de hiperplane de separatie care nu trec prin origine. La regula delta a
putem lua
89
generalizata, intrarea xa este recomandata nu de o teorema, ci de ideea obtinerii unei aproximari mai exibile. Eroarea cumulata este: P K 1 X X (d ; o )2 : E=2 pk pk p=1 k=1 Aceasta eroare poate foarte mare daca P si K sunt mari. De aceea, este mai adecvat sa folosim: vP K u 1 uX X(d ; o )2 Em = PK t pk pk p=1 k=1 adica eroarea medie normalizata. Atunci c^nd reteaua este instruita ca si clasi cator, ne intereseaza doar eroarea a de decizie: Ner Ed = PK unde Ner este numarul total de erori de clasi care. 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 clasi cator, dupa instruire, prin ^nlocuirea perceptronilor de tip continuu cu perceptroni discreti. Clasi carea 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.
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 e ; net )2 +e pentru functia de activare continua bipolara.
f(net, )
=1 =0,5
=2
net
Deoarece ponderile sunt ajustate proportional cu f 0(net), ^nseamna ca ponderile corespunzatoare neuronilor pentru care net = 0 se modi ca 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 ra nare (pasi mai mici) care ^nsa ^nseamna si pasi mai multi, deci timp de procesare mai ^ndelungat. ^n concluzie, trebuie ales ^n mod experimental pentru ecare proI blema. Cel mai bine, se porneste cu av^nd valoare mica si se ^ncearca marirea a 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 clasi cator, 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
91
de neuroni de iesire pentru un clasi cator 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 clasi cator, 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^nd ecare la una dintre cele R clase, R M . a Evident, trebuie ca numarul de pattern-uri de instruire, P , sa e mai mare sau cel mult egal cu M . Cu c^t P=M este mai mare, cu at^t instruirea este mai na. Mirchandini si a a Cao 1 au aratat care este numarul maxim de regiuni liniar separabile folosind J neuroni: n X J! k=0 k unde J k
= 0 pentru k > J .
2-clasa 1 1,3,5,7-clasa 2 4,6-clasa 3
1 2 3
4 5
6 7
! ! ! J + J + J = 1 + J + J2 0 1 2 2 2 ! ! ! J + J + : : : J = 2J 0 1 J
7:
De aici, rezulta o estimare pentru marimea stratului ascuns: J = 3. Daca avem n J , atunci numarul maxim de regiuni este
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
h1 h2
x 0 a x1 x2 x xp b
Presupunem ca se cunosc P esantioane, adica valorile functiei h(x) ^n punctele x1 , x2 ,..., xP . Presupunem ca xi+1 ; xi = x = b ; a i = 1 2 : : : P: P De nim functia 8 > pentru x < 0 <0 (x) = 1 sgn(x) + 1 = > nede nit pentru x = 0 : 2 2 :1 pentru x > 0 Scriem atunci:
{
P X i=1
H (w x) =
unde hi = h(xi ).
hi
x ; xi + 2x ;
x ; xi ; 2x ]
93
Putem scrie:
___________ i
x x 2
x i ___________ x i + x 2
+
x ____ 2
1
comparator 1
1/2
+
comparator 2 -1/2
-1
+ x ____ 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. ^n general, o functie h(x), unde x este un vector, poate aproximata printr-o I retea neurala cu un singur strat ascuns. ^n ce masura reteaua este instruibila (de I pilda, prin regula delta generalizata), ram^ne o problema deschisa. a Fara a demonstra, vom mentiona doua importante proprietati: 1. O retea feedforward cu un singur strat ascuns poate aproxima oric^t de a bine orice functie neliniara continua. 2. O retea feedforward cu un singur strat ascuns poate implementa o functie booleana arbitrara.
+
xi -
x _______ 2
comparator 1
x
1/2
+ +
o
+
-1
-1
x xi + _______ 2
comparator 2
-1/2
(a)
(b)
Figura 4.10: Implementare folosind (a) perceptroni de tip discret si (b) perceptroni de tip continuu cu c^t este mai mare, cu at^t mai mult forma ferestrei se apropie de cea rectangulara. a a
^n loc de a aproxima o functie continua, ne punem acum problema reprezentarii I ei exacte printr-o retea neurala. ^n 1900, David Hilbert a formulat urmatoarea ipoteza: o functie continua de I 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 a rma ca orice functie f continua de nita pe un cub n-dimensional este reprezentabila astfel:
f (x1 : : : xn) =
unde 'q , q = 1 : : : 2n + 1 si variabila.
x1 x2 xn
2n+1
q=1
0n X 'q @
p=1
1 pq (xp )A
pq ,
y 1 y 2 y m
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
...
...
2n+1
...
4.8. APLICATII
de catre o retea neurala feedforward cu un singur strat ascuns av^nd a arhitectura din gura 4.11. De nim acum functiile de activare pentru aceasta arhitectura. Fie zk iesirea din neuronul ascuns k. Avem:
95
zk =
n X
j =1
(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 =
2n+1
k=1
gi(zk )
unde functiile gi, i = 1 : : : m sunt reale si continue, depinz^nd de f a 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 de nita pe un compact din <n poate aproximata oric^t de bine de o retea feedforward cun un singur strat a 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^t este monoton crescatoare, independent de f si n. a
4.8 Aplicatii
Retelele feedforward multistrat pot aplicate cu succes la multe probleme de clasi care si de recunoastere. Pentru aceasta, nu este necesar sa e cunoscut un model formal pentru clasi care sau recunoastere. Este su cient sa utilizam o arhitectura potrivita si o multime su cienta 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
neuroni ascunsi
multe ori este di cil 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 clasi care, 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^nd o retea instruita este testata cu un pattern substantial diferit a 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. ^ntr-un sistem expert conventional, o di cultate este formularea si introduceI rea 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 di cultati 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 di cil de estimat corect. O serie de aplicatii folosesc pattern-uri temporale care se obtin prin esantionarea unor semnale de tip continuu ( g. 4.13).
... J
boli
4.9 Exemple
Exemplu de construire a unui clasi cator multistrat pentru pattern-uri liniar neseparabile
Fie functia de decizie XOR:
4.9. EXEMPLE
x(t) x0 x(t- ) x1 x(t- 2) x2 x(t- n ) xn
97
x1 0 0 1 1
x2 iesirea 0 1 1 -1 0 -1 1 1
x2 B 1 1/2
1 o=[-1 -1] D 2
t
C r3
C A 1
x1
t
o=[-1 1] r2
(a)
Alegem:
1 : ;2x1 + x2 ; 1 = 0 2 2 : x1 ; x2 ; 1 = 0 2
...
A,D
strat ascuns
... ...
strat de iesire
o2
o1
- -1 o3 = 0
(b)
98 CAPITOLUL 4. RETELE NEURALE FEEDFORWARD MULTISTRAT ^n mod arbitrar ( g. 4.14a). Pentru aceste linii, vectorii normali unitari sunt:
h it 1 r1 = p5 h ;2 1 i t 1 r2 = p2 1 ;1 :
comparator 1
x1
1
-2
+
1
o1
1
x2
1 -1 1/2
+ +
comparator 2
comparator 3
o3
-1
o2
1 -1
1/2
-1
Reteaua neurala din gura 4.15 implementeaza aceste suprafete de decizie prin intermediul stratului ascuns. Pentru acestea, avem:
1 o1 = sgn ;2x1 + x2 ; 2
o2 = sgn x1 ; x2 ; 1 : 2
o1 + o2 + 1 = 0
si atunci
o3 = sgn(o1 + o2 + 1): Reteaua neurala implementata aici clasi ca 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
Presupunem ca avem o retea cu trei neuroni cu un strat ascuns ( g. 4.16). Neuronii 1,2 si 3 sunt ctivi si ne simpli ca 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 3
= (d5 ; o5 )o5(1 ; o5 ) =
5
w53
4.9. EXEMPLE
o0 = -1 0 3 o1 1 4 2 o2 5 o5
99
= o4 (1 ; o4 ) 5w54 = ; 5 = 5 o3 = 5 o4 :
w30 = ; 3 w40 = ; 4 w31 = 3o1 w41 = 4 o1 w32 = 3o2 w42 = 4 o2: Putem astfel sa construim prin instruire un clasi cator multistrat pentru patternurile liniar neseparabile din exemplul precedent (problema XOR cu doua variabile). De nim matricile: " # h i w30 w31 w32 : W = w50 w53 w54 V = w40 w41 w42
Pentru = 0 1 se ajunge dupa instruire la:
i #
"
4 281 ;4 578 : cator cu iesiri binare. ^nlocuim I pastram ponderile pe care le-am
^n gura 4.17 avem un clasi cator pentru problema XOR cu n = 2. PreI supun^nd J n, obtinem pentru J = 2 numarul maxim de regiuni 22 = 4. a
-1/2
1
3
x1
1 1
2
-1
x1 0
x2
x1
1 1
-2
x1 -x 2 0 1
x2
Sa consideram acum aceeasi problema pentru n = 3 ( g. 4.18), unde x3 = x1 x2 . Lu^nd n = 3 si M = 2 obtinem J = 1. Am rezolvat deci aceeasi problema, a dar cu mai putini neuroni.
4.10 Exercitii
1. Pattern-urile liniar neseparabile
x1 = 1 3
"
" #
x6 = 225
x2 = 3 3
"
" #
x7 = ;2 0
x3 = 1 2 x8 = 1 0
" #
" #
x4 = 2 2 x9 = 3 0
" #
" #
x5 = 3 2
" # " #
x10 = 5 0
4.10. EXERCITII
trebuie clasi cate astfel: clasa 1: x4 x6 x7 x8 x9 clasa 2: restul.
101
Elaborati o retea neurala de perceptroni discreti cu un strat ascuns care sa functioneze ca un clasi cator. Nu instruiti reteaua de neuroni, ci folositi metoda din primul exemplu. 2. Fie prototipurile ^n forma extinsa 1 1 1
2 3 2 3 2 3 2 3 3 4 4 6 1 7 x2 = 6 0 7 x3 = 6 ;1 7 x4 = 6 5 7 x1 = 4 5 4 5 4 5 425 2 3 2 3 2 3 2 3 5 3 2 1 x5 = 6 3 7 x6 = 6 3 7 x7 = 6 0 7 x8 = 6 1 7 : 4 5 4 5 4 5 4 5
1 1 1 1 1
O masina multistrat cu doi perceptroni discreti bipolari ^n stratul ascuns si un singur perceptron discret bipolar de iesire trebuie sa clasi ce prototipurile astfel ^nc^t: a clasa 1: x1 x2 x3 clasa 2: restul : (a) Veri cati daca vectorii pondere 5
2 3 2 3 2 0 w1 = 6 1 7 w2 = 6 1 7 4 5 4 5
;2
asigura separarea liniara a pattern-urilor (primul strat). (b) Completati elaborarea clasi catorului 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 = 1 8M ; 7 ; 1 : 2 4. Fie problema clasi carii ^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.
z1 z2
1 -2 3 2 0
1 0 -2
o1
1 1
-1
-1
o2
-1
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 6 z1 7 = 6 1 7 : 4 z2 5 4 3 5
;1
;1
Ponderile au fost initializate ca ^n gura. Se alege = 1, iar neuronii folosesc functia de activare f (net) = 1 + 1;net : e Analizati un pas al algoritmului de instruire prin propagarea ^n urma a erorii realiz^nd urmatoarele operatii: a (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 clasi catorul pentru literele A, I si O de nite ca ^n gura 4.20, cu ajutorul programului de la exercitiul 6. Presupuneti doua tipuri de reprezentari interne:
4.10. EXERCITII
103
(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 = x1 = x1 = x1 = x1 = x1 = x1 = x1 = x1 = x1 = x1 = x1 = x1 = x1 = x1 =
1 1 1 1 2 2 2 3 3 3 3 4 4 4 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
^ncercati diferite valori pentru . Evaluati numarul de cicluri de instruire I pentru ambele arhitecturi. Iesirile trebuie sa e: pentru A: pentru I: pentru O: 1 ;1 ;1 ] ;1 1 ;1 ] ;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 =
x1
1-
3/4 -
1/2 -
1/4 -
| 1/4
| 1/2
| 3/4
| 1
x2
1 ;1 ;1 ]t ;1 1 ;1 ]t ;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 plani carea timpului vostru liber. ^n functie de factorii de circumstanta, sistemul expert I 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. Codi cati 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 clasi ce cifrele 0{9 ^n categoriile par { impar. Pentru instruirea retelei, folositi o secventa de instruire ^n care caracterele sunt codi cate ca matrici binare de 5 3 pixeli. Dupa instruire, utilizati reteaua pentru clasi carea pattern-urilor perturbate.
wij vj + ii ; Ti pentru i = 1 2 : : : n
107
108
v 1
w21
-1 T 1 i1 w12 -1 T 2
v 1
v2
2 ...
v 2
vn
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 wi1 7 v1 6 .. 7 6 . 5 v = 6 ... 7 : 6 7 wi = 4 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 net1 7 i1 7 T1 6 .. 7 6 . 5 i = 6 ... 7 T = 6 ... 7 6 5 6 7 net = 4 4 4 5 netn in Tn 2 t 3 2 0 w12 : : : w1n 3 6 w1 7 6 w21 0 : : : w2n 7 7 W = 6 ... 7 = 6 .. .. . . . .. 7 : 6 4 5 6 . . 5 4 . 7 t wn wn1 wn2 : : : 0 ^n acest model, matricea W este simetrica. I Sa presupunem pentru moment ca functia de activare este sgn( ). Atunci: 8 > vi ram^ne neschimbat daca neti = 0 a < (5.1) > vi ;1 daca neti < 0 : v1 +1 daca neti > 0 Adica: vik+1 = sgn(witvk + ii ; Ti) i = 1 2 : : : n k = 0 1 : : :
...
in -1
n
Tn
vn
109
Regula se aplica asincron, adica pentru c^te o singura valoare a lui i la un moment a 0 dat. Se porneste de la v . Pentru k = 1, avem n actualizari. Pentru ^nceput se actualizeaza vi1, unde numarul neuronului i este aleator. Pentru ceilalti neuroni, iesirile ram^n aceleasi. Se calculeaza apoi vj1, j 6= i, j aleator etc., p^na se coma a 2 1 pleteaza v . Apoi se calculeaza v 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 modi ca simultan iesirile. ^n alI k+1 , aceasta valoare ia locul lui v k goritmul asincron, dupa ce se calculeaza vi i particip^nd la calculul celorlalte componente din vk+1. Procesul continua p^na a a 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^nd a vk+1 = vk . Reprezent^nd vectorul de iesire ^n f;1 1gn, acesta se misca dintr-un v^rf al a a cubului n-dimensional ^ntr-un v^rf adiacent, p^na c^nd se stabilizeaza ^ntr-unul a a a din v^rfuri. Pozitia nala a lui vk , pentru k ! 1, este determinata de ponderile a 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 de ni functia energiei computationale: E = ; 1 vt Wv ; itv + Ttv 2 care este o forma patratica. Adica: n n n n 1 X Xw v v ; Xi v + XT v : E = ;2 ij i j i i i i i=1 j =1 i=1 i=1 Fie vik+1 ; vik = vi , adica presupunem ca nodul i s-a modi cat la momentul k. Modi carea 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 6 .. 7 6 . 7 6 7 v = 6 vi 7 : 6 6 . 7 6 .. 7 7 4 5 0
i6=j
110 Atunci:
Pentru functia de activare sgn( ), din relatia 5.1 avem: daca neti < 0 ) daca neti > 0 ) daca net1 = 0 )
vi 0 vi 0 vi = 0 :
Adica, avem mereu neti vi 0 si E 0. Aceasta ^nseamna ca energia retelei poate doar sa scada sau sa ram^na constanta. Presupun^nd ca neti 6= 0, atunci a a E = 0 daca si numai daca vi = 0. Cu alte cuvinte, E scade strict daca si a numai daca vi 6= 0 si E ram^ne 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^mpla a ca algoritmul sa cicleze ^ntre doua pattern-uri complementare. Acest lucru este ilustrat de exemplul de mai jos.
"
Vom vedea ca pattern-urile complementare corespund unor nivele identice ale energiei.
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 w 1n i2 w 2n in
...
wn2 w n1
g1 u1 C1 u2
g2
...
_
vn
gn un Cn
C2
v1
v2
v1
v2
vn
Figura 5.2: Retea neurala de tip gradient care foloseste componente electrice.
Vom exempli ca un model de retea neurala de tip gradient prin folosirea unor componente electrice ( g. 5.2). Pentru a pastra notatia originala a lui Hop eld, tensiunile ui sunt de fapt neti . Ponderile wij sunt conductante. Iesirile inversate vi sunt folosite pentru a modela conductante negative, adica inhibitorii. Avem: wij = wji si wii = 0 pentru i j = 1 : : : n: Neuronii pot interpretati ca ampli catori: curentul prin conductanta gi este ampli cat de neuronul i ( g. 5.3). Ci i = 1 : : : n sunt capacitati. Folosind acest model de neuron, putem scrie legea lui Kirchho :
(5.2)
Partea st^nga a acestei ecuatii reprezinta curentul total care intra ^n condena satorul de capacitate Ci. Notam conductanta totala care este conectata la in-
112
wi1
v1
(v1 -u i)w i1 win -g iu (vn -u i )w in
i
ui g i Ci
du Ci i dt
f(u i )
vi
vn
trarea neuronului i cu
...
Fie matricile:
Gi = ii +
n X
n X j =1
wij + gi:
j =1
3 2 3 2 3 u1(t) 7 v1(t) 7 i1 ... 7 v(t) = 6 ... 7 i = 6 ... 7 6 6 7 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: n X Z vi E (v) = ; 1 vt Wv ; itv + Gi fi;1(z)dz 2 0 i=1 unde fi;1(z) este inversa functiei de activare fi. Aceasta formula contine termenul Tt v din functia energiei discrete 1 ; 2 vtWv ; itv + Tt v
C = diag C1 C2 : : : Cn
2 6 u(t) = 6 4
G = diag G1 G2 : : : Gn
113
^n termenul al doilea, iar ultimul termen este speci c 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 = ; Ci dfidv(vi) dvi dt i i deoarece
-1
+1
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. Modi carile ^n timp nu sunt exact pe directia gradientului functiei de energie (adica pe directia scaderii c^t mai rapide a energiei). a 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^rf al hipercubului. a
> 0. Atunci:
114
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.
A D
Poz. 3
E B
C
Poz. 5
Poz. 4
Fie orasele A, B,..., E si e acest ciclu. ^l reprezentam prin tabelul 5.1, unde I 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
Pentru un ciclu care viziteaza toate v^rfurile, tabloul trebuie sa aiba un singur a 1 pe ecare coloana si un singur 1 pe ecare linie. Pozitionam neuronii ^n acest tablou de n n elemente, ^n ecare element pun^nd un neuron. Vom avea exact n a
115
neuroni activi pentru solutie. Presupunem pentru o valoare mare, deci energia este trunchiata: n n n X X X E = ;1 wxi yj vxivyj ; ixivxi 2 x i=1 y j=1 x i=1 unde wxi yj 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^rfuri ale a 2 hipercubului n -dimensional 0 1]. Scopul optimizarii este selectarea circuitelor minime. Trebuie sa avem obligatoriu c^te un neuron activ pe linie si pe coloana. ^n plus, trebuie sa eliminam a I 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 n XXX E1 = A vxivxj :
2
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 n n XX X E2 = B vxivyi:
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: !2 n n XX 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 n n 1 X X X d v (v + v ) 2 x=1 y=1 i=1 xy xi y i+1 y i;1
116
E4 = D
unde vx n+1 = vx1 si vx0 = vxn. Dorim sa minimizam E1 + E2 + E3 + E4 . Prin identi carea termenilor acestei sume cu cei din E , obtinem: wxi yj = ;2A xy (1 ; ij ) ; 2B ij (1 ; xy ) ; 2C ; 2Ddxy ( j i+1 + j i;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 dui = i + X w v ; u G Ci dt i ij j i i j =1 obtinem:
n n duxi = ; uxi ; 2A X v ; 2B X v xj yi dt y=1 j =1 0 n nj6=i 1 y6=x n XX X ;2C @ vxj ; nA ; 2D dxy (vy i+1 + vy i;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, di cultati. Aceasta duce la ^ntrebarea fundamentala daca retelele neurale sunt mai adecvate dec^t calculatoarele clasice pentru rezolvarea problemelor nedeterminist polia nomiale. 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^ta timp c^t NP 6= P! a a Problema comis-voiajorului ilustreaza utilizarea retelelor Hop eld^n probleme de optimizare. S-au obtinut rezultate ^n probleme de alocare a resurselor, plani carea lucrarilor, optimizarea tra cului, optimizarea conexiunilor ^n circuitele integrate (1990), programare liniara si neliniara.
5.4. EXEMPLE
117
^n concluzie, putem spune ca una dintre limitarile retelelor Hop eld este faptul I ca ajungem de multe ori la un minim local si nu global. Aceasta se datoreaza formei complexe a functiei E (v). Una din di cultati 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 Hop eld. 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.
functia energiei generale problema de optimizare
E (v)
se construieste reteaua sau se elaboreaza algoritmul de simulare se initializeaza reteaua cu conditii initial neutre se implementeaza tranzitiile dinamice
Figura 5.6: Modul de rezolvare a unei probleme de optimizare folosind retele feedback monostrat.
5.4 Exemple
Retea Hop eld cu timp discret
Fie:
2 0 6 W=6 1 6 1 4
1 0 1 ;1 ;1
1 1 0 ;1
;1 3 ;1 7 : 7 5 ;1 7
0
118
Presupunem pragurile si intrarile externe zero. Calculam: 2v 3 1 1 h v v v v i W 6 v2 7 6 7 6v 7 E (v) = ; 2 1 2 3 4 4 35 v4 = ;v1 (v2 + v3 ; v4) ; v2 (v3 ; v4 ) + v3v4 :
Calcul^nd expresia pentru toate v^rfurile hipercubului: ;1 ;1 ;1 ;1 ,..., a a h it 1 1 1 1 se ajunge la nivelele de energie -6, 0, 2. Tranzitiile au loc pe muchiile hipercubului, h la un v^rf la i alt v^rf cu energie mai scazuta. Minimul de a un h a it t este atins ^n v^rfurile 1 1 1 ;1 si ;1 ;1 ;1 1 , unde avem stari a stabile. Tranzitiile au loc asincron. De aceea, o tranzitie este doar de-a lungul unei singure muchii (se poate modi ca cel mult o componenta). Daca tranzitiile au loc sincron, atunci ele nu minimizeaza energia si nu tind h it 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 = ; 6 1 0 1 ;1 7 6 ;1 7 6 1 1 0 ;1 7 6 1 7 4 54 5 ;1 ;1 ;1 0 1 2 sgn(;1) 3 2 ;1 3 6 sgn(1) 7 6 1 7 = 6 sgn(;1) 7 = 6 ;1 7 : 6 7 6 7 4 5 4 5 sgn(;1) ;1 Tranzitia nu mai este de-a lungul unei muchii. Se calculeaza ca
it
tranzitiile sincrone, tranzitiile asincrone duc ^ntotdeauna la unul dintre minimele h i 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.
Vom elabora un convertor A/D (Tank, Hop eld, 1986) pe 2 biti. Presupunem ca f (ui) este continua unipolara. Se poate arata ca o functie energiei totale aleasa convenabil poate :
1 1 1 x ; X v 2i 2 ; 1 X 22i v (v ; 1): E=2 i 2 i=0 i i i=0
5.4. EXEMPLE
[-1 1 1 1]
(E = 2)
119
[-1 -1 1 1]
(E = 0)
[1 1 1 1]
(E = 0)
[-1 -1 -1 1]
(E = -6)
[1 1 1 -1]
(E = -6)
Dorim sa minimizam pe E , ceea ce implica minimizarea lui 1 x ; P1=0 vi2i i 2 care este eroarea de conversie A/D, unde v0 + 2v1 este valoarea zecimala a vech it torului binar v1 v0 si corespunde valorii analogice x. Calcul^nd, ajungem a la: 1 1 1 X X i+j X 2i;1 i 1 E = 2 x2 + 1 2 vivj + 2 ; 2 x vi: 2
2
a Pentru x xat, 1 x2 este o constanta, deci irelevanta atunci c^nd minimizam pe 2 E . Expresia energiei ^n reteaua Hop eld este: 1 ;2
1 1 XX
i=0 j =0 j 6=i
i=0
i=0 j =0
wij vi vj
1 X
i=0
ii vi:
Ultimul termen dispare deoarece minimele sunt ^n v^rfurile hipercubului. Prin a identi carea termenilor din cele doua expresii, ajungem la:
care sunt ecuatiile starilor. De exemplu, putem presupune ca folosim o tensiune de referinta av^nd valoarea de -1V ( g. 5.9). a
w01 = w10 = ;2 i0 = x ; 1 2 i1 = 2x ; 2 Convertorul rezultat este un caz special al unei retele de tip gradient ( g. 5.8). Avem: C0 du0 = x ; 1 + (;2)v1 ; u0(;2 + g0) dt 2 du1 = 2x ; 2 + (;2)v ; u (;2 + g ) C1 dt 0 1 1
120
2x-2
C0
v1
v0
Figura 5.8: Convertor A/D pe doi biti implementat printr-o retea de tip gradient.
Ecuatiile starilor devin: 1 C0 du0 = x ; 2 + 2v1 ; u0(2 + g0) dt C1 du1 = 2x ; 2 + 2v0 ; u1(2 + g1): dt Conditia wij 0 asigura realizabilitatea retelei folosind rezistente de valoare I Rij = w1ij . ^nlocuind 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^nd gra c functia E , obtinem: a - 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. ^n loc sa rezolvam sistemul de ecuatii diferentiale, oare nu putem cauta miI nimele lui E ?
5.4. EXEMPLE
_ 1 2 _ 1 2
121
1 + i0 xV u0
2 -1V g0 +
+ -1V g1
i1 u1 2
C1 1 0
_ v1
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.
+1; rE (v) = 22vv01 + 22 ; 2x x " # H = r2E (v) = 0 2 : 2 0 Observam : det H11 = 0 " # 0 2 = ;4: det H22 = 2 0
"
Matricea H nu este pozitiv sau negativ de nita. E nu are deci minim sau maxim, daca nu consideram alte restrictii. Impunem restrictia ca spatiul de iesire sa e 2 patratul 0 1 . Atunci, minimele lui E sunt situate ^n v^rfurile patratului, a 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.
C0 _ v0
122
f1
u2 C2 R2
-2
f2
v2
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: (a) (b) (c) (d) Ecuatiile starilor Ponderile (conductantele) W Functia energiei E (v) trunchiata rE (v).
u1 C1 1 R1 _ v1
f1
u2 C2 R2
f2
_ v2
5.5. EXERCITII
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).
123
4. Fie o retea neurala cu trei neuroni, a carei functie de energie trunchiata este: 2 2 2 E (v) = v1 ; v2 + v3 ; 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^nd nu avem a alte restrictii.
5 -5 5 -15 -5 -15
v1
2 3
v2 v3
5. Fie reteaua neurala din gura 5.12, cu mare. Evalu^nd functia de energie a trunchiata, gasiti minimele, maximele si punctele sa^n ;1 1 ]3. Calculati apoi valorile energiei ^n toate v^rfurile cubului. a 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)
pentru i = 1 2 : : : n :
124
8 k+1 > ui = uk + h C1i Pn=1 wij vjk ; uk Gi + ii pentru i = 1 : : : n < j i i k+1 ; tk unde h = t > k : vi = f (uk) i
7. Implementati metoda din exercitiul 6 pentru problema convertorului A/D pe doi biti si gasiti v(t) (iesirea stabila) 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 Hop eld recurenta autoasociativa care sa memoreze ca prototipuri caracterele A, I si O, codi cate 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.
126
x1 x2
...
...
xn
( )
vn
^n aceasta gura, x este vectorul intrarilor, v este vectorul iesirilor, x 2 <n, I v 2 <m si v = M x], unde M este un operator neliniar matricial speci c ecarui tip de memorie. Structura lui M re ecta o paradigma speci ca. 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^t, daca se aplica un pattern cheie, iesirea produsa de memorie si asociata a cheii este raspunsul memoriei. Presupun^nd ca exista p perechi de asocieri stocate: a 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. ^n memoria heteroasociativa, asocierile se fac ^ntre multimile ordonate de I 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 semni catie. 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
127
x0
M1
v0
M2
printr-o retea feedforward si v0 = M1 x0 ] care reprezinta un sistem de ecuatii algebrice neliniare. ^n gura 6.3 este o memorie dinamica autoasociativa realizata I printr-o retea recurenta pentru care vk+1 = M2 x0 vk ], reprezent^nd un sistem a de ecuatii diferentiale neliniare. Un exemplu de memorie dinamica este reteaua Hop eld ^n care
vk+1 = M2 vk ]
adica ^n care avem un v0 , dar nu avem intrari externe ( g. 6.4).
x0 xk
M M
vk+1
vk+2
xk+1
v = Wx
128
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:
X W0 = f (i) s(i)t
p i=1
129
W0 = FSt
i i
v =
p X
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. s(j)0 = s(j) +
Ortonormalitatea este o conditie supusa intrarilor si ea nu este ^ntotdeauna respectata. Sa presupunem ca s(j)0 este s(j) perturbat:
(j )
unde termenul perturbatie (j) se poate presupune statistic independent de s(j) . Pentru cazul c^nd vectorii stocati ^n memorie sunt ortonormali, avem: a
v = f s s +f s
(j ) (j )t (j )
(j ) (j )t
(j )
p X i=1 i6=j
f (i) s(i)t
(j )
= f +
(j )
p X i=1 i6=j
f (i) s(i)t
(j )
(j )
s(j)t
(j )
= ks(j)t kk
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 ine cienta pentru a regasi un pattern perturbat.
130
^n nal, sa notam o proprietate interesanta a asociatorului liniar ^n cazul I autoasociativ. ^n acest caz, reteaua este un autocorelator. Luam f (i) = s(i) si I obtinem matricea de autocorelatie W0:
W0 =
p X i=1
egala cu zero.0 Presupun^nd s(1) a perturbat s(j) obtinem: X v = s(j) + s(i) s(i)t
i=1 i6=j
= s(j) + (p ; 1) (j) unde termenul (j) apare ampli cat de p ; 1 ori! Asociatorii liniari si autoasociatorii pot folositi si atunci c^nd vectorii s(1) , a (p) ..., s sunt liniar independenti (o conditie mai slaba dec^t ortogonalitatea). a 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^nd. ^n plus, apare problema zgomotului. a I ^n concluzie, asociatorii liniari nu sunt ^n general utilizabili ^n practica. I
Algoritmul de regasire
Presupun^nd ca pornim din v0 si ca se alege ^n mod aleator secventa m, p, q de a neuroni, avem: 0 0 1 0 0 0 Prima actualizare: v1 = v1 v2 : : : vm : : : vp : : : vq : : : vn ]t 0 0 1 2 0 0 A doua actualizare: v2 = v1 v2 : : : vm : : : vp : : : vq : : : vn ]t 0 0 1 2 3 0 A treia actualizare: v3 = v1 v2 : : : vm : : : vp : : : vq : : : vn ]t
131
k v1 k v2
w12
...
k vn
Avem:
E (v) = ; 1 vtWv: 2 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^t ^n v, c^t si ^n ;v. Factorul decisiv care determina a a 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
p X m=1
wij = (1 ; ij )
...
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^nd se pot adauga noi autoasocieri aditionale la memoria existenta, prin a incrementarea ponderilor existente. Oric^nd se pot elimina autoasociatori prin a decrementarea ponderilor existente. Regula de stocare este invarianta la ordinea ^n care sunt stocate prototipurile.
... n
132
Daca avem vectorii unipolari s(1) , ..., s(m) , algoritmul de stocare trebuie modicat astfel ^nc^t o componenta -1 sa ^nlocuiasca elementul 0 ^n vectorul unipolar a originar:
wij = (1 ; ij )
p X
m=1
Sa observam ca regula de stocare este invarianta la operatia de complementare binara. Stoc^nd vectorul s0 (m) , complementar lui s(m) , obtinem: a
wij
0 = (1 ;
ij )
p X m=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^te n componente. a 0 Vectorul initial (care se cere regasit) este v , 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: net i = Pn=1 w i j vj , vnew sgn (net i ) j if v i 6= vnew then actualizare TRUE , v i 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.
133
Memoria autoasociativa Hop eld 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 (m0 ) neti = wij sj : Aplic^nd formula: a si, neglij^nd pentru a
j =1
m=1 moment termenul 1 ; ij , obtinem: n p X X (m) (m) (m0 ) neti = si sj sj j =1 m=1 p n X (m) X (m) (m0 ) = si sj sj : m=1 j =1 n X
wij = (1 ; ij )
p X
s(im) s(jm)
s(jm) s(jm )
(6.1)
este ^n medie zero. De altfel, aceasta suma este produsul scalar s(m) s(m0 ). 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 pozitiv. Daca s(m) = s(m00) , atunci termenul 6.1 este n. Deci, daca s(m) = s(m ) pentru un anumit 1 m p, atunci pentru i = 1 2 : : : n: (6.2) 0 neti are acelasi semn ca si s(im ) , pentru i = 1 : : : n. ^n concluzie, vectorul s(m0 ) I este stabil si nu se mai poate modi ca. 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). ^n acest I caz, ^n 6.2 multiplicatorul n va avea o valoare ceva mai mica, egala cu numarul 0 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^te a (m ) una, cu valorile lor neperturbate din s . Evident, este necesar ca majoritatea componentelor vectorului initial sa e neperturbate si ca n sa e mare. Componentele perturbate se conformeaza deci dorintei majoritatii.
neti = s(im ) n
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 =
p X m=1
s s
(m) (m)t
; pI s(m0 ) :
net = (n ; p)s(m0 ) :
Daca n > p, rezulta ca s(m0 ) este stabil. Functia de energie este: E (v) = ; 1 vtWv 2 ! p 1 vt X s(m) s(m)t v + 1 vt pIv: = ;2 2
m=1
Memoria are o stare de echilibru la ecare prototip s(m0 ) , iar energia are valoarea ei minima ; 1 (n2 ; pn) ^n aceste stari. 2 Pentru cazul mai general, c^nd prototipurile nu sunt mutual ortogonale, ea nergia nu mai este ^n mod necesar minimizata pentru ecare prototip, iar prototipurile nu mai sunt ^n mod necesar stari de echilibru. ^n acest caz, avem: I
p X
m=1 m6=m0 p X
m=1 m6=m0
Acesta poate interpretat ca un vector zgomot. Cu c^t (n ; p) este mai mare, a cu at^t scade importanta zgomotului si prototipurile devin stari de echilibru. a
135
^n aceasta sectiune, vom stabili relatii ^ntre marimea n a memoriei si numarul de I pattern-uri distincte care pot refacute ^n mod e cient. 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 1 X jx ; y j: DH(x y) = 2 i i
i=1
Aceasta ^nseamna ca DH(x y) reprezinta numarul de pozitii ^n care difera bitii. Prin actualizarea asincrona, la ecare pas se modi ca vectorul de iesire cu DH = 1. Fie, de exemplu:
s(1) = ;1 ;1 1 1 ]t s(2) = ;1 1 1 ;1 ]t
Construim:
2 0 0 ;2 0 3 7 6 0 W = 6 ;2 0 0 ;2 7 : 6 5 4 0 0 0 7
0 ;2 0 0
Pornind din
v0 = ;1 1 ;1 1 ]t
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
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 e cienta. Se observa si ca nu putem evita stocarea complementelor pattern-urilor stocate. ^n astfel de memorii, pot exista stari stabile care nu reprezinta pattern-uri I memorate. De asemenea, convergenta nu este neaparat catre cel mai apropiat pattern memorat (apropiere masurata prin DH). Aceste doua de ciente devin deranjante atunci c^nd memoria este supra^ncarcata, deci c^nd p=n este mare. a a
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 de nitie nu este legata de tipul de actualizare: sincron sau asincron. Fie raza de atractie de nita astfel: orice vector la o DH mai mica dec^t n a (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; ) n : ln 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 Hop eld este deci ^ntre: n=(4 ln n) < c < n=(2 ln n) unde c depinde de fapt de toleranta la eroare, adica de . ^n loc de 2n pattern-uri, I 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^t a cele ale pattern-urilor stocate. Chiar daca numarul pattern-urilor ce pot stocate ^ntr-o memorie Hop eld 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 Hop eld Associative Memory". IEEE Trans. on Information Theory, 33, 1987, 461-482.
1
137
...
n
stratul A
stratul B
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: adica:
a0 = ; Wb]
0m 1 X ai 0 = sgn @ wij bj A
j =1
i = 1 : : : n:
b0 = ; Wta0
bj 0
Apoi: = sgn
n X i=1
wij
a0
i
j = 1 : : : m:
...
m
138
Procesul continua p^na c^nd a si b nu se mai modi ca. a a ^n mod ideal, procesul se stabilizeaza ^ntr-o pereche a(i) b(i) din multimea I 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 Hop eld, deoarece oricum cele doua straturi lucreaza asincron. a De aceea, se prefera procesarea sincrona, convergenta ind mai rapida dec^t ^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:
W =
wij =
p X m=1 p X m=1
a(m) b(m)t
a(im) b(jm) :
Presupun^nd ca unul din pattern-urile stocate, a(m0 ), este prezentat la intrare, a obtinem:
b = ;
"X p
= ; 6nb(m0 ) + 4
p X m=1 m6=m0
2m=1
b a
(m) (m)t
p X m=1 m6=m0
(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. Daca pattern-ul de intrare este o versiune perturbata a lui a(m0 ) , stabilizarea la b(m0 ) 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. C^nd memoria MAB ajunge la o stare de echilibru, astfel ^nc^t a(k) ! b(k+1) ! a a (k+2) (k ) a = a , spunem ca ea este bidirectional stabila. Fie functia de energie: 1 E (a b) = ; 1 at Wb ; 2 btWta = ;at Wb: 2
139
0 pentru Pn=1 wij aj > 0 i pentru Pn=1 wij aj = 0 i 0 pentru Pn=1 wij aj < 0 i
(6.3)
Calculam:
pentru i = 1 : : : n pentru j = 1 : : : m:
Rezulta ca E adica:
E (a b) ;
n m XX i=1 j =1
jwij j
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):
Observatii
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.
140
Fie secventa S = s(1) s(2) : : : s(p) de vectori n-dimensionali bipolari binari reprezent^nd tranzitiile starilor (pattern-uri temporale). Reteaua MAB este caa pabila sa memoreze secventa S , astfel ^nc^t: a h (i) i s(i+1) = ; Ws 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^t s(1) sa e asociat cu s(2) , s(2) cu s(3) , ..., a (p ) (1) s cu s , procedam astfel:
W=
p;1 X i=1
W=
Av^nd straturile A si B, avem: a
s(i+1) s(i)t :
a = ; Wb] b = ; Wa]:
k
6.6. EXERCITII
Termenul
p X i=1 i6=k
141
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:
6.6 Exercitii
1. Asociatorul liniar trebuie sa asocieze urmatoarele perechi de vectori:
s(2) = h s(3) =
(a) (b) (c) (d)
s(1) =
h
1 2
1 2 1 2
5 ;6 1 6
1 2
1 2 1 6 1 6
1 2 1 6
5 ;6
! f = 0 0 0]
Veri cati daca vectorii s(1) , s(2) , s(3) sunt ortonormali. Calculati matricea ponderilor. Veri cati asocierea produsa de retea pentru unul din vectorii s(i) . Perturbati s(i) d^ndu-i unei componente valoarea 0 si calculati vectorul a rezultat perturbat.
2. Asociatorul liniar din gura 6.7 a fost instruit sa asocieze vectorilor de intrare:
i 1 1 1 p3 p3 p3 t
1 p2 1 p6 1 0 ; p2
; p26
i 1 p6 t
it
vectorii f (1) , f (2) , f (3) . Gasiti matricea W si vectorii f (1) , f (2) , f (3) care sunt codi cati ^n retea.
142
x1 1/2+1/6 -2/6 x2 -2/6
1/6 + v1
+ 1/6 -1/2+1/6 x3
v2
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:
alizarea asincrona ascendenta. (c) Aplicati v0 prin actualizare asincrona descendenta. (d) Comentati daca memoria Hop eld 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 (a) Calculati matricea W. (b) Aplicati la intrare vectorul v0 = 1 ;1 ;1 1 1 ]t si folositi actu-
6.6. EXERCITII
143
binare de 5 3 pixeli, iar caracterele C, I, T ca matrici binare de 3 3 pixeli. Veri cati memoria folosind la intrare pattern-uri neperturbate si pattern-uri perturbate.
144
[ x1... x n]
MAXNET
k+1 [ y1 ... yk+1]t p
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:
wm = wm1 : : : wmn t pentru m = 1 : : : p si sa avem xt wm maxim c^nd x = s(m) . Deoarece vectorii sunt binari bipolari, a t s(m) reprezinta numarul de pozitii ^n care x si s(m) difera. Numarul produsul x
145
146
wpn
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 pozitii ^n care acesti doi vectori difera este ^nsa chiar distanta Hamming, DH x s(m) , prin de nitie. Atunci:
{z
Obtinem: Luam:
3 : : : s(1) 7 n : : : s(2) 7 n 7 7 ... 7 5 : : : s(np) 1 unde factorul 2 folosese la scalare. La intrarea ^n nodul m, m = 1 : : : p avem: 1 netm = 2 xt s(m) + n 2 = n ; DH x s(m) :
1 xt s(m) = n ; DH x s(m) : 2 2
1 Se observa ca am adaugat termenul n . Luam f (netm ) = n netm , m = 1 : : : p. 2 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.
147
2. Daca x este complementul lui s(m) , atunci DH x s(m) = n, netm = 0 si f (netm ) = 0. ^n general, numarul neuronului cu cea mai mare iesire indica numarul clasei careia I ^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^t toate aceste iesiri sa devina 0, cu exceptia celei a maxime.
k y1 k+1 y1
k y2
k+1 y2
k yp
k+1 yp
Matricea ponderilor retelei MAXNET este matricea p p: 2 1 ;" ;" : : : ;" 3 6 ;" 1 ;" : : : ;" 7 7 6 WM = 6 .. ... 7 ... 6 . 7 4 5 ;" ::: 1 unde 0 < " < 1=p, " ind coe cientul de interactie laterala. Lu^nd ( g. 7.4): a
f (net) =
si presupun^nd 0 a urmatorul proces:
y(k+1) = ; WM yk
yi0
148
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^na devine 0. Componentele lui y(k+1) devin 0 ^n ordinea inversa a a marimii lor. Procesul se stabilizeaza c^nd o singura componenta (cea a maxima) ram^ne nenula. Aceasta componenta scade cel mai lent. Pe a masura ce sunt anulate componente, descresterea este mai lenta. Sa comparam aceasta retea cu asociatorul Hop eld. Presupunem ca trebuie sa clasi cam ^n 5 clase posibile un vector cu 50 de componente. 1. Reteaua Hamming necesita 255 de conexiuni pentru cei 5 neuroni. 2. Reteaua Hop eld necesita 2450 de conexiuni pentru cei 50 de neuroni. ^n I plus, capacitatea de stocare este limitata. Reteaua Hamming pare mai e cienta. 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 clasi cator propriu-zis, nu o memorie autoasociativa.
149
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 = ; Wx3 ] 2 wt 2 3 wi1 7 6 w1 7 t 7 6 7 6 W = 6 .. 2 7 unde wi = 6 ... 7 i = 1 : : : p 6 . 5 5 4 4 win wt
p
...
...
ym
...
...
yp
1=2
Algoritmul de instruire este de tip c^stigatorul ia tot. Vectorii wi, i = 1 : : : p a ^nainte de instruire, se normalizeaza vectorii sunt variabili si trebuie ^nvatati. I ponderilor: ^ wi = wi : i = 1 : : : p: Se calculeaza indicele m pentru care: ^ ^ kx ; wmk = i=1 ::: pfkx ; wi kg min unde x este vectorul de intrare. Deoarece: avem: ^ ^t kx ; wmk = xt x ; 2wmx ; 1 ^t wm x = i=1 ::: p(witx): max ^
kwik
Neuronul al m-lea, cu cea mai mare valoare pentru intrare este declarat c^stigator. a ^n general, avem: I t i cos = kxx xx k : kk
i
150
^n loc de kx ; xi k, putem folosi cos ca si criteriu de similaritate ^ntre x si xi, I astfel ^nc^t x este "mai aproape" de xi daca este mai mic. Este necesar ^nsa a 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:
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^nd aproximativ 1m2 si a const^nd din 6 straturi de neuroni de tip si densitate variabile. El are forma a 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^ndu-se ^nsa ordinea ^ntre ei. Aceasta a 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
Figura 7.6: "Palaria mexicana" descrie puterea conexiunii laterale a neuronilor biologici.
^n vecinatatea cu raza de 50-100 m, conexiunile sunt excitatoare. Deci, I auto-feedback-ul ecarui neuron este pozitiv, exprimat de coe cientul > 0 ( g. 7.7). Aria excitatoare este ^nconjurata de un inel de conexiuni mai slabe, inhibitoare, cu raza de 200-500 m. Autoorganizarea unei astfel de harti poate exempli cata pe un model liniar de 10 neuroni, reprezent^nd o sectiune arbitrara a unei harti bidimensionale ( g. a 7.8). Calculam: 0 1
yi(t + 1) = f @xi(t + 1) +
k X
0
k=;k0
yi+k (t) k A :
152
xi
i
yi
x i+1
i+1
153
y1
y2
y10
-3
-2 -1 1 -c
a)
b)
unde wi este vectorul ponderilor catre neuronul i. Daca neuronul m este c^stigator, deci raspunde maxim pentru x, aceasta a antreneaza, ca ^n exemplul precedent, neuronii vecini. Nu avem un neuron c^stigator, ci o vecinatate Nm c^stigatoare. Se ajusteaza doar ponderile catre a a neuronii din Nm . Raza lui Nm trebuie sa scada pe masura ce instruirea progreseaza:
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 codi ca 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
15 pasi
4 pasi 0 pasi
1/2
10 i = nr. neuronului
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^nd vectorul B la intrare, observam unde apare a 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^rfuri ^ntr-un graf. Fiecarei muchii a ^i atasam distanta dintre cele doua pattern-uri corespunzatoare v^rfurilor. De a 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
155
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
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
J 3 5 0 0 0
poate observa ca harta trasaturilor produsa prin auto-organizare are aceeasi structura ca si acest arbore. ^nseamna ca am reusit sa pastram topologia dintr-un I spatiu 5-dimensional ^ntr-un plan. Distanta dintre vectorii xi si xj din spatiul pattern-urilor: v
se mentine si ^n spatiul trasaturilor, unde devine o simpla distanta ^n plan. Algoritmul de instruire tine cont at^t de relatiile topologice dintre datele de a intrare c^t si de istoricul datelor de intrare, adica de frecventa de aparitie a 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
Figura 7.12: Arborele partial de lungime minima construit pe baza distantelor dintre vectori.
a o o
a a o ...
a a a
ah h h
h r r ...
oe ...
^nvatat un singur fonem. Exista c^teva celule care indica raspunsul a doua foneme a diferite, necesit^nd o discriminare suplimentara. Pe aceasta harta, un cuv^nt a a genereaza o traiectorie.
7.4 Exercitii
1. (C) Proiectati reteaua Hammimg si reteaua MAXNET asociata care realizeaza clasi carea 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^stigatorul ia tot pentru grua parea 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 . ^n timpul operatiei de testare, I 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 = 6 0 7 x2 = 6 1 7 x3 = 6 1 7 x4 = 6 1 7 x5 = 6 1 7 : 607 607 617 607 617 4 5 4 5 4 5 4 5 4 5
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
x u +
159
160
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 semni cativ 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
;(x;u)2
x1 x2
u 11
1 2 h2 m
h1 w11
y1 y2
y1 /s y /s 2
out 1 out 2
... xp u mp
strat de intrari
wnm
yn
y /s n
strat de normalizari
out n
hm
strat ascuns
strat de iesiri
Avem: unde:
i
hi = e
; (x;ui2) (2x;ui )
i
x = x1 : : : xp ]t
ui = ui1 : : : uim ]t
este vectorul ponderilor dintre intrari si al i-lea neuron ascuns. Fiecarui pattern ^nvatat ^i corespunde un neuron ascuns.
161
yj =
hiwji
n X
s =
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^na acum, acest a 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^nd distanta dintre vectorii x si u creste, iar raspunsul maxim sa ^l a aiba c^nd x = u. a 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.
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^te a 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^te un neuron ascuns. a
j =1 yi
yj
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^t mai uniform, cu domenii receptive. Daca distanta dintre cena trii domeniilor receptive nu este uniforma, este necesar ca ecare neuron ascuns sa aiba o valoare speci ca pentru . Daca centrii domeniilor receptive sunt la distanta mare, atunci trebuie sa e su cient 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
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:
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^t ^n cazul instruirii a prin propagarea ^n urma a erorii.
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
Controlere fuzzy
Sistemele fuzzy au fost folosite foarte des ^n controlere. Aceste controlere sunt usor de proiectat, uneori ^n c^teva ore. Performantele lor sunt mai bune dec^t ^n a a cazul controlerelor clasice. Proiectarea unui sistem fuzzy nu necesita cunostinte de logica fuzzy. Vom demonstra aceasta proiect^nd un controler fuzzy pentru un a lift. Primul pas ^n proiectarea unui sistem fuzzy este sa decidem asupra unei multimi de reguli fuzzy. ^n cazul nostru, ele sunt: I 1. Daca liftul se ridica lent si pozitia sa este departe de pozitia dorita, atunci mareste viteza. 165
166
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. ^n logica fuzzy, ecarui adjectiv (cum este si SP) i se atribuie o functie de I 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. 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 defuzzi care. La acest proces, nu exista un consens asupra modului de operare. Tipul de defuzzi care ilustrat ^n gura 9.1 se numeste defuzzi care min-max. ^ntr-un sistem fuzzy, toate regulile actioneaza simultan asupra iesirii. La I iesire avem tensiunea corespunzatoare centrului de greutate al sumei regiunilor
167
0
MP SN
0
SP 0,3
0,2
0
0,1 m/s viteza (intrare)
0
suma tensiunilor (se ia max.) x
regula 2
centrul de greutate
0
iesire (tensiunea motorului)
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^nd valori reale ^ntre 0 si 1. a
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 de neste 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. ^n logica fuzzy, I functia de apartenenta devine: fA (x) 2 0 1]. Ideea de a vedea o multime ca o functie capabila sa de neasca grade de apartenenta sta la baza teoriei multimilor fuzzy. Evident, este nevoie de o noua matematica, cea introdusa de Zadeh.
168
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 in nitate 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 . 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. De nim:
Bertrand Russell a dat urmatorul paradox al barbierului: ^ntr-un oras exista un I 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
169
^n logica fuzzy, propozitiile pot avea valori de adevarat oriunde ^ntre 0 si 1, I deci paradoxul lui Russell nu mai exista. Desigur, elimin^nd toate restrictiile asupra imaginatiei, putem practic exa plica orice. De exemplu, sa consideram superstitiile popoarelor primitive care explica fenomenele naturale cu ajutorul entitatilor supranaturale. Logicienii conventionali acuza teoreticienii fuzzy de "constructie arti cala". Teoriile matematice trebuie ^nsa judecate prin consistenta, frumusetea si utilitatea lor. Teoria fuzzy satisface toate aceste cerinte. Fie X o multime oarecare. Fie fA : X ! 0 1] o functie. Functia fA de neste 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 de nim o multime prin gradul de apartenenta la aceasta multime, nu prin enumerarea multimii, cum suntem obisnuiti.
Observatii matematice
i=1
y M
170
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^nd gradele de a apartenenta ale lui fx1 : : : xN g la cele M multimi fuzzy. ^n general, ponderile, I pragul si functiile de iesire sunt modi cabile ^n timpul procesului de instruire. Functia de agregare si functia de activare sunt xe. Se pot de ni multe tipuri de NF prin schimbarea functiilor f si h. De nim 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^nd doar o singura intrare x, astfel ^nc^t z = x. a a 2. un MAX-NF are functia de agregare:
171
RNF propusa1 este pe patru straturi. Primul strat, de intrare, foloseste neuroni fuzzy de intrare. Presupun^nd ca dorim sa recunoastem caractere, ecare NF din a 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] 1] sij = zij = xij pentru i = 1 : : : N1 j = 1 : : : N2 1] sij 1] yij = P 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 fuzzi carea 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] 2] spq = 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^t ecare NF focalizeaza pe un pixel din pattern-ul de a intrare, dar "vede" si pixelii vecini. Parametrul determina c^ti pixeli "vede" a un NF, aceasta ind decis prin algoritmul de instruire. Functia w se numeste si functie de fuzzi care. Fiecare MAX-NF din acest strat are M iesiri diferite, c^te a una pentru ecare NF din al treilea strat. Iesirile celui de-al (p q)-lea MAX-NF din al doilea strat sunt: 2] 2] ypqm = gpqm(spq ) 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
pqm j
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
172
pqm 0
[2]
s [2] pq
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: 3] 3] 2] ym = sm = 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^te unul pentru ecare pattern ^nvatat. Daca un pattern de intrare este a 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] 4] 3] sm = zm = ym pentru m = 1 : : : M ( 4] 4] 4] ym = g sm ; T ] = 0 daca sm < T pentru m = 1 : : : M 4] 1 daca sm = T 3] T = maxm=1 ::: M (ym ) pentru m = 1 : : : M unde T este pragul de activare pentru toti neuronii din cel de-al patrulea strat.
1 2
Prin instruire, trebuie sa determinam urmatorii parametri: , pqm, si M . De nim 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 .
173
COMP-NF ^n al patrulea strat. 2] pqM = spq = 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. 3] = 1 ; maxj=1 ::: M (yjk )
3] unde yjk 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.
Primul strat de neuroni accepta datele de intrare si transforma valoarea pixelilor ^n valori normalizate, ^n intervalul 0,1]. Al doilea strat fuzzi ca pattern-ul de intrare. Valoarea unui pixel ^n patternul de intrare va afecta starile mai multor NF din stratul 2. Cu c^t este mai mic, a cu at^t mai multi NF din stratul 2 vor afectati de un pixel din pattern-ul de a intrare. Deci, controleaza gradul de fuzzi care. 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^t toate pattern-urile distincte sa poata separate, iar RNF sa aiba o a 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 2] de apartenenta fuzzy: gpqm(spq ) 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] 2] min pentru 3] ym = 0 p q (1 ; jspq ; pqm j) ^n rest maxp q (jspq ; pqm j) 2
174
3] pentru m = 1 : : : M . Valoarea ym masoara similaritatea pattern-ului de intrare cu al m-lea pattern ^nvatat. Daca pattern-ul de intrare a fost deja ^nvatat, va 3] exista un m pentru care ym = 1. Daca pattern-ul de intrare nu a fost ^nvatat, 3] toate valorile ym , m = 1 : : : M vor mai mici dec^t 1. Valoarea lui trebuie a sa acopere toate valorile posibile la nivel de pixel. Stratul de iesire este folosit pentru defuzzi care. Deci, procedura de recunoastere prin RNF consta din:
1. datele de intrare (stratul 1) 2. fuzzi care (stratul 2) 3. deductie fuzzy (stratul 3) 4. defuzzi care (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. ^n caz contrar, pattern-ul de intrare este ^nvatat. Procesul I 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.
^n implementarea autorilor, literele si cifrele au fost construite ca pattern-uri de I 16 16 pixeli, pixelii av^nd doar valori binare. Pattern-urile au fost apoi miscate a prin deplasari ^n cele opt directii cu unul si doi pixeli. Cele 36 de pattern-uri corecte si c^teva din pattern-urile obtinute prin deplasari au fost folosite pentru a 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: 15 0 1 Tf 01 35 0 35 1 6:
Dupa instruire, s-a testat RNF la recunoasterea unor pattern-uri perturbate, rezultatele ind foarte bune.
175
Timpul de instruire a RNF este mai mic dec^t ^n cazul instruirii prin propagarea a ^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 clasi cator. Exista variante ale acestei RNF care ^nvata ^n mod supervizat2 .
9.2.6 Concluzii
Cai, Y., H.K. Kwan "Fuzzy Classi cation Using Fuzzy Inference Networks". IEEE Trans. Syst., Man, and Cyb., Part B: Cybernetics, 28, 1998, 334-374.
2
176
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 modi ca iterativ ponderile conexiunilor, astfel ^nc^t sa se produca relatia dorita a ^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 modi ca si se mentin caracteristicile unei populatii de solutii (indivizi) pe parcursul unui mare numar de generatii. Acest proces produce populatii succesive av^nd un numar din ce ^n ce mai mare de indivizi cu caraca teristicile dorite. Ca si ^n natura, procesul este probabilistic, dar nu complet aleator. Dupa cum vom vedea, regulile geneticii retin caracteristicile dorite prin 177
178
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 codi cari de parametri, nu direct asupra parametrilor. Codi carile 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^t aceasta noua generatie tinde sa aiba siruri superioare celor din a 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. 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.
Initializare
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
este proportional cu pi, unde:
179
fi ind functia obiectiv, iar pi este functia obiectiv relativa. "Discul norocului" ( g. 10.1) este reprezentarea gra ca a acestor functii.
pi = Pfif
j j
001011 110110
011010
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. Se simuleaza schimbul de material genetic care are loc ^n timpul reproducerii biologice. ^n mod aleator, se obtin perechi de siruri. Pentru simplitate, vom I ^ncrucisa perechile adiacente. Pentru ecare pereche se obtine un numar ^ntreg aleator ^ntre 1 si 6. Acesta arata c^ti biti din dreapta se schimba ^ntre cele doua a siruri. De exemplu, ^ncrucisam sirurile A1 si A2 , av^nd ^ntregul aleator 2: a ( ) ( ) 011010 ! 011011 : 001011 001010
^ncrucisare I
180
Procesul continua pentru sirurile A3 si A4 , av^nd ^ntregul aleator 4 si pentru a sirurile A5 si A6 av^nd ^ntregul aleator 3. Obtinem sirurile: a 011011 001010 000011 011011 100110 010111 Biologic, ea perturba caracteristicile populatiei, ^n mod aleator, prevenind degenerarile. Cele mai multe mutatii mai mult distrug dec^t sa e bene ce. De a aceea, mutatia trebuie sa e rara, pentru a nu distruge specia. Pe de alta parte, ea e necesara. ^n simularea noastra, vom presupune o rata a mutatiei de 1/1000 I biti, mutatia ^nsemn^nd aici o inversare de bit. Deoarece avem 36 de biti ^n a 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
Mutatie
Observam ca totalul functiei obiectiv a crescut vizibil. ^ntregul proces se reia, obtin^nd urmatoarele generatii. I a ^n general, populatia poate sa creasca sau sa scada de la o generatie la alta. I Acest proces continua p^na c^nd functia obiectiv atinge o valoare acceptabila a a pentru o anumita generatie. Convergenta este, ^n general, rapida. Se poate^nt^mpla sa ajungem la o degenerare, de exemplu daca cele sase siruri a sunt 000011. De aici putem iesi doar astept^nd o mutatie favorabila. Aceasta a poate avea loc doar dupa multe generatii. Astfel se poate ^nt^mpla si ^n natura, a unde o specie poate suferi o adaptare neoptima pentru milenii, p^na c^nd apare a a un organism mai bine adaptat care ajuta la perfectionarea speciei.
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^nd de diversitatea a populatiei. Ordinul unei scheme H , o(H ), este numarul pozitiilor xate din H . De exemplu, o(011 1 ) = 4. Lungimea de de nitie 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.
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, f un sir Ai este copiat ^n generatia urmatoare cu probabilitatea pi = Pifj . 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 f (H ) Pf j unde f (H ) este valoarea medie a functiei obiectiv pentru sirurile care reprezinta schema H la P f momentul t. Fie f = n j valoarea medie a functiei obiectiv pentru ^ntreaga populatie (A(t) are n siruri). Atunci: H m(H t + 1) = m(H t) f (f ) : 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 + cf = (1 + c) m(H t): f 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.
Reproductie
182
^ncrucisare I
Fie l = 7 si e:
A = H1 = H2 =
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 =
^ncrucisarea are loc prin schimbarea primelor 3 caractere din A. Observam I 0 vor plasate ^n siruri diferite. H2 ca H1 este distrusa, deoarece 1 si supravietuieste ^nsa. Probabilitatea ca H1 sa e distrusa este mai mare, deoarece (H1) > (H2). Probabilitatea ca H1 sa e distrusa este H 5 pd = l(; 11) = 6 : Probabilitatea ca H1 sa supravietuiasca este ps = 1 ; pd = 1 6 1 . Similar, pentru H2, pd = 6 . Nu am considerat deocamdata situatia ^n care, prin operatia de ^ncrucisare, pozitiile xate din schema nu se modi ca. ^n general, I H ps = 1 ;;(1 ) : l
Fie pc probabilitatea ca sa efectuam operatia de ^ncrucisare. Avem: H) ps 1 ; pc l (; 1 : Se foloseste semnul pentru ca acum tinem cont si de situatia ^n care, prin operatia de ^ncrucisare, pozitiile xate nu se modi ca. Consideram acum efectul combinat al reproductiei si ^ncrucisarii. Presupun^nd ca aceste doua operatii sunt independente obtinem: a ! f (H ) 1 ; p (H ) : m(H t + 1) m(H t) f c 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^nd cont de toate operatiile genetice, obtinem (rotunjit): a
! f (H ) 1 ; p (H ) ; o(H )p : m(H t + 1) m(H t) f c m l;1 Observam ca schemele cu ordin mic sunt favorizate. ^n nal, putem formula urmatoarea teorema: I
Teorema Fundamentala a Algoritmilor Genetici (Holland, 1975). Schemele cu valoare a functiei obiectiv peste medie, cu lun-
gimea de de nitie 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^nd cont si de operatiile de ^ncrucisare si mutatie. a 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 a de neste paralelismul implicit al unui algoritm genetic. Manipul^nd n elemente, procesam de fapt aproximativ n3 similaritati. Acestui paralelism implicit i se datoreaza faptul ca spatiul cautarilor este su cient 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
186
Multimea limbajelor acceptate de masini Turing formeaza clasa limbajelor recursiv enumerabile, L0. ^n cazul ^n care numarul de pasi efectuati este nit, modul de operare al unei I masini Turing este descris de catre un algoritm. ^n afara de imaginea masinii Turing ca si o procedura (algoritm - daca este I nit) de recunoastere a unei multimi, putem considera ca un astfel de dispozitiv calculeaza o functie adaug^nd o banda de scriere. O astfel de masina calculeaza a 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 de nitie riguroasa. Orice functie Turing-calculabila este si intuitiv calculabila. Reciproca acestei a rmatii este mai di cil de formulat, deoarece identi ca doua obiecte din care unul este matematic iar unul prematematic. bila este Turing-calculabila.
Teza lui Church-Turing nu poate demonstrata, ci doar justi cata prematematic. Cu alte cuvinte, este greu de acceptat existenta unor functii naturale intuitiv calculabile care sa nu e Turing-calculabile. ^n conformitate cu teza lui Church-Turing, clasa multimilor L0 coincide cu I clasa multimilor algoritmic calculabile. nerezolvabila.
Cu alte cuvinte, nu exista un algoritm care sa determine daca o masina Turing arbitrara, actionata dintr-o con guratie 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^nd a 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^ne polinomial. a Un algoritm P poate rezolvat ^ntr-un timp polinomial pe o masina Turing determinista.
187
automate celulare
retele neurale
retele de automate
Garzon, M., S. Franklin "NeuralComputability II", Report of Memphis State University, MSU-TR-89-12, 1989.
188
hj =
2 k;1=
0
pentru k = 1 : : : N:
1
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 .
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
189
k=
X
j
vj sj +
X
j
vj = :::
X
j
vj (sj + 1) = 2vj :
0
N)
( g. 11.1).
s0
v0 v2N-1
sgn(h) = F ( 1 ,..., N )
s2N-1
2 -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. ^n cazuri particulare, reprezentarea se poare face ^nsa mult mai e cient (cu I 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^nd functiilor booleene ^n a 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
aratat ca functiile logice sub forma normala conjunctiva pot instruite folosind doar un numar polinomial de exemple pozitive. ^n cazul functiilor ^n forma norI mala 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^nd-o apoi sa "generalizeze". a
Cu alte cuvinte, presupun^nd P6=NP, nu exista un algoritm cu timp polinomial a 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^ne valabila indiferent de functia de activare folosita. De asemea nea, teorema ram^ne valabila chiar daca arhitectura retelelor considerate veri ca a restrictia: nr. de straturi ascunse 1: Observatii: 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 e cient. 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
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^ne ca subiect de cercetare, din punct de vedere al NP-completitudinii, a problema instruirii retelelor recurente.
192
193
194
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. ^nca nu s-a observat I ca o anumita generatie de calculatoare sa-si doreasca sa supravietuiasca! Pentru a modela c^t mai bine sistemele neurale biologice, retelele neurale ara ti ciale 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.
Semnalele procesate ^n retelele neurale sunt, de obicei, continue. ^n electronica, I 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^t componentele eleca tronice. 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^nd creierul recunoaste o situatie importanta, sistemul reticular de a 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 modi ca plaja ^n care opereaza neuronii. Acest lucru se face doar pentru un timp scurt. ^n I plaja lor dinamica, neuronii pot apoi sa functioneze liniar. ^n ansambul, sistemul I functioneaza, ^n acest caz, temporar liniar. Daca sistemul reticular de activare
195
nu recunoaste o situatie ca ind importanta, neuronii ram^n inactivi, sub pragul a de saturatie. Exista si cazuri de neliniaritate. De exemplu, ^n cazul perceptiei vizuale la insecte. Ochiul insectei este format din multe lentile, ecare capt^nd un sector a al c^mpului vizual. Semnalele rezultate din fotoreceptoarele acestor lentile sunt a prelucrate ^n c^tiva centri nervosi, numiti ganglia, situati l^nga organele senzoa a a riale. Acesti centri combina semnalele receptate ^ntr-un mod neliniar, form^nd produse de perechi de semnale - unul obtinut din gura si unul din fundal. Corelarea perechilor de semnale este diferita ^n cazurile c^nd gura este, respectiv nu a este, ^n miscare.
196
automat finit
Toate calculatoarele digitale aplica principiul recursivitatii la diferite nivele, de la hardware la procedurile de nite ^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 arti cial este mai apropiat unei aproximari stohastice.
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^t complexitatea a creierului investigat (Stakermann2 ). ^n mod ironic, cunostintele deja achizitionate sunt pierdute ^n mod continuu I prin moartea indivizilor si trebuie restabilite de catre cei tineri. ^n concluzie, o identitate nu se poate autopercepe. Creierul biologic nu se I poate auto^ntelege.
Starkermann, R. "The Functional Intricacy of Neural Networks - A Mathematical Study", Proceedings, Insbruck, 1993.
2
198
Multimea de vectori x1, x2 , ..., xn este liniar dependenta daca exista c1, ..., cm , nu toti nuli, astfel ^nc^t: a m X cixi = 0: ^n caz contrar, vectorii x1, x2, ..., xn sunt liniar independenti. I
Norma euclidiana a unui vector: kxk = (xt x)1=2 =
i=1
Produsul scalar a doi vectori x si y: xt y = Pn=1 xi yi = kxk kyk cos unde i este unghiul dintre cei doi vectori.
qPn 2 i=1 xi .
200
Exemplu: Gasiti produsul scalar dintre vectorii x si y, lungimea lor si unghiul dintre ei, unde: 2 3 2 3 2 1 x = 6 1 7 y = 6 ;1 5 4 5 4 7 2 4 p Solutie: xt y = 9, kxk = 3, kyk = 18, cos = kxxktkyyk = p12 , deci = 45o.
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 )i j=1 ::: n, atunci: E (x1 x2 : : : xn) = a11x2 + 2a12 x1 x2 + 2a13 x1 x3 + : : : + 2a1n x1xn 1 + a22x2 + 2a23 x2 x3 + : : : + 2a2nx2 xn + : : : + annx2 = 2 n n n XX = aij xi xj
Proprietati ale formelor patratice 1. E (x) este o FP pozitiv semide nita, iar A este o matrice pozitiv semide nita daca (8)x = 0 ) E (x) 0]. 6 2. E (x) este o FP pozitiv de nita, iar A este o matrice pozitiv de nita daca (8)x = 0 ) E (x) > 0]. 6 3. E (x) este o FP negativ semide nita, iar A este o matrice negativ semide nita daca (8)x = 0 ) E (x) 0]. 6 4. E (x) este o FP negativ de nita, iar A este o matrice negativ de nita daca (8)x = 0 ) E (x) < 0]. 6 E (x) este pozitiv de nita daca si numai daca pentru A = (aij )i j=1 ::: n avem: det A11 = ka11 k > 0 det A22 = a11 a12 > 0 a21 a22
det Ann = det A > 0: Conditii su ciente pentru ca E (x) sa e: ...
i=1 j =1
201
Sa notam ca o forma patratica E (x) este nede nita daca este pozitiva pentru anumite valori ale lui x si negativa pentru alte valori, deci depinde de x.
a x + b y + c = 0 cu a2 + b2 > 0:
Vectorul
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:
" # n= a b
nt (x ; x1) = 0:
Av^nd doua puncte x1 si x2 ^n plan si vectorii asociati lor, x1 si x2 , ecuatia a 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 ; 1 (x1 ; x2 )t (x1 + x2 ) = 0 2
obtinem urmatoarea ecuatie a mediatoarei: 1 (x1 ; x2 )tx + 2 (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: 1 (x1 ; x2)t x + 2 (jjx2jj2 ; jjx1jj2) = 0
xt x = kxk2
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.
Un vector x(t ) dependent de timp se de neste astfel: 2 dx 3 3 2 2 x1 (t) 7 dt 7 6 6 6 x(t ) = 6 ... 7 dx(tt ) = 6 ... 7 = x(t) = 6 6 5 4 4 4 dx 7 _ 5 d n xn (t) dt
1
203
Fie functia E (x), unde x este un vector cu n componente. Gradientul se de neste astfel: 2 @E 3 6 @x 7 rxE (x) = 6 ... 7
@E @xn
d) C^nd lucram cu forme patratice, A este simetrica si avem A = At. Rezulta a 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 dE x(t)] = @E @x1 + dt @x1 @t Observam ca
n X + @E @xn = @E xi (t): @xn @t i=1 @xi _
# " # x1 (t) = e2t : x(t) = x2 (t) t Forma patratica a lui x(t) cu matricea " # 1 2 A= 2 3
este:
Exemplu: Fie:
"
i " 1 2 # " e2t # E x(t)] = e2t t 2 3 t " d 2 # " # 2 dx (x1 + 4x1 x2 + 3x2 ) = 2x1 + 4x2 rxE (x) = d (x2 + 4x1x2 + 3x2 ) 4x1 + 6x2 2 " dx 2t #1 _ x(t) = 2e : 1 h
1 2
204
Atunci " # dE x(t)] = h 2e2t + 4t 4e2t + 6t i 2et = 2(2e4t + (4t + 2)e2t + 3t): 1 dt Fie m functii:
xn ) xn)
@E1 @xn
@x1
@Em @xn
3 ... 7 7 5
Exemplu: Pentru:
x = 2 1 t E1(x) = x2 ; x1 x2 1 E2(x) = x1 x2 + x2 2
avem:
1 I(x) = 2x1x; x2 x1;x2x2 = 3 ;2 : + 1 4 2 Matricea hessiana a functiei E (x) = E (x1 xn) se de neste astfel:
"
# "
...
...
...
...
3 7 7: 7 5
E (x) = (x2 ; x1 )2 + (1 ; x1 )2
avem:
"
2 r2 E (x) = 2 ;1 ;1 : x 1
"
205
Lu^nd a
x=
"
1 (A.1) E (x) = E (x ) + rxE (x )]t x + 2 xt r2 E (x )] x: x Daca E (x) are un minim ^n x . orice schimbare in nitezimala 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 de nita, ceea ce va face forma patratica din A.1 pozitiva, independent de x.
obtinem:
x1 x2
2 2
206
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 y ) y = 0(x ) x: 0 (x0 ) = 0 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 ):
^n general, I
daca xn+1 = xn + h
n = 0 1 2 ::::
Exemplu:
y0 = 1 ; x + 4y : y(0) = 1
207
y 1
y*=(x) y 2
y 1 y
y*=(x)
x0
x1
x2
x0
x1
x2
Se stie ca solutia exacta a acestui sistem are urmatoarea expresie analitica: 3 y = (x) = 1 x ; 16 + 19 e4x : 4 16 Aproximati pe (0 2), presupun^nd ca nu aveti expresia analitica a lui . a Avem:
h = y00 = y1 = y2 =
Eroarea este:
j2 19 ; (0 2)j = 0 32:
Lu^nd o valoare mai mica pentru h, obtinem o eroare mai mica. a Fie acum un sistem de doua ecuatii diferentiale de ordinul I:
Cautam valorile aproximative x1 , x2 , ..., xn , .., y1, y2, ..., yn, ... ale solutiei exacte x = (t), y = (t) ^n punctele tn = t0 + nh. Avem:
208
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:
x1 (t0 ) = x0 1 ... xn (t0) = x0 : n 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.
n ..., @Fn , ..., @Fn sunt continue ^n regiunea R care contine punctul @x1 @x (t0 x0 : : : x0 ), atunci exista un interval jt ; t0 j < R ^n care exista o 1 n solutie unica x1 = 1 (t), ..., xn = n(t) a sistemului, care satisface
@F1 , @x1
...,
conditiile initiale.
@Fi . @t
209
... xn = fn(x) _ care este echivalent cu x = f (x), unde x este vectorul starilor sistemului. Pre_ supunem 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^nd timpul tinde catre in nit. Fie E (x) energia acumulata ^n sistem. a 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. ^n I general, ea nu este unica.
x2 dE/dt<0 t=0 x1 0 traiectorie stabila 0 t=0 traiectorie instabila x1 x2 dE/dt>0
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^nd matematice dec^t zice. ^n cazul retelelor neurale a a I vorbim de functia energiei computationale, ea neav^nd legatura cu energia din a zica.
210
De nim: Valoarea medie: m = P aipi = E ( ) Varianta (dispersia): 2 = E ( ; E ( ))2 = E ( 2) ; (E ( ))2 = P a2 p2 ; 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) 1 Z x e; u;m du pentru ; 1 < x < 1 = p 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 1 f (x) = F 0(x) = p e; pentru ; 1 < x < 1: 2
( 2 2 )2 ( 2 2 )2
^ntr-o retea Hop eld 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
16. Demonstrati ca functia energiei computationale: 1 E = ; 2 vt Wv ; itv + Ttv ^ntr-o retea Hop eld 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. ^ntr-o retea Hop eld cu timp continuu, energia scade c^t mai rapid? I a 22. De ce algoritmul de actualizare la retelele Hop eld trebuie sa e stochastic asincron? 23. Cum putem gasi punctele de stabilitate ale unei retele Hop eld 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 clasi cator 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 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
Bibliogra e
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 Arti cial 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 Cli s, 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 Arti cial Neural Systems". West Publishing Company, St. Paul, 1992.