1 / 43

Sisteme de programe pentru timp real

Sisteme de programe pentru timp real. Universitatea “Politehnica” din Bucuresti 2007-2008 Adina Magda Florea http://turing.cs.pub.ro/sptr_08 si curs.cs.pub.ro. Curs Nr. 6. Re ţ ele neurale Justificarea invatarii retelei backpropagation Re ţ ele quickpropagation

rupali
Download Presentation

Sisteme de programe pentru timp real

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sisteme de programepentru timp real Universitatea “Politehnica” din Bucuresti 2007-2008 Adina Magda Florea http://turing.cs.pub.ro/sptr_08 si curs.cs.pub.ro

  2. Curs Nr. 6 Reţele neurale • Justificarea invatarii retelei backpropagation • Reţele quickpropagation • Reţele cascade-correlation • Harti cu auto-organizare 2

  3. 1. Justificarea invatarii retelei backpropagation 3

  4. Justificarea actualizarii ponderilor - perceptron • Actualizarea ponderilor se bazeaza pe metoda scaderii gradientului: schimbarea fiecarui wk cu o cantitate wkproportionala cu gradientul functiei de energie E (masura a erorii) pentru un anumit punct • wk(t+1) = wk(t) +  (ds – ys) xsk • wk= (ds – ys) xsk =  s xsk • Eroare = ½ i(di-yi)2 4

  5. Justificarea actualizarii ponderilor - cont • Eroare = ½ i(di-yi)2 • Modificare eroare in fct de intrare • Eroare/ yi= [1/2 i(di-yi)2]/  yi = [1/2 (di-yi)2]/  yi = - (di-yi) • Modificare eroare in fct de ponderi • Eroare/ wk= Eroare/ yi *  yi / wk= - (di-yi) *  yi / wk= - (di-yi) *f ’(wixi)*xk F – liniara, delat rule la perceptron wk(t+1) = wk(t) +  (ds – ys) xsk 5

  6. Justificarea actualizarii ponderilor – cont. • Metoda scaderii gradientului: schimbarea fiecarui wk cu o cantitate wkproportionala cu gradientul functiei de energie E (masura a erorii) pentru un anumit punct xsk • Daca facem aceaste actualizari pentru fiecare sablon de intrare xsk pe rand, obtinem relatia simplificata wk=  (ds – ys) xsk cunoscuta ca delta rule sau adaline rule • Daca vectorii sabloanelor de intrare sunt liniar independenti, deci exista solutie, minimul este la E=0 • Pt intrari ce nu sunt liniar separabile minimum lui E nu este 0 6

  7. Justificarea actualizarii ponderilor hs • Consideram fct de transfer neliniara • E[w] = ½ * s (ds – ys)2 = ½ * s (ds – f(kwkxsk))2 • Se observa ca wk=  s xskdar acum • s = (ds – ys) f'(hs), cu f'(hs) derivata lui f(hs) • Conditia de existenta a solutiei este aceeasi ca in cazul fct de transfer liniare • Daca dependenta este neliniara pot exista minime locale ale functiei E pe langa minimul global 0 7

  8. Justificarea actualizarii ponderilor- cont Ponderi strat ascuns - iesire 2si • Erori strat iesire 2si = ysi (1-ysi) (dsi-ysi) • cu i=1,C iesiri •  w2ji =  2sivsj w2ji = w2ji +  2sivsj 8

  9. Justificarea actualizarii ponderilor- cont Ponderi intrari-strat ascuns 1sj • Erori strat ascuns 1sj = vsj (1-vsj) i=1,C(w2ji 2si) • cu j=1,B unitati ascunse vj si k=1,A intrari xk • cu vsj = f(hsj) = f(kwkjxsk) •  w1kj =  1sjxsk w1kj = w1kj +  1sjxsk 9

  10. NetTalk • Invata sa pronunte corect text in engleza • Invatare: secvente de litere sunt date retelei • Task = citeste un text si intoarce fonema si accentul asociat fiecarei litere • Intrarea – o serie de 7 litere consecutive dintr-un cuvant • Litera centrala – fonema de iesire (3 lt – contextul) • Fereastra de 7 pozitii • Pt fiecare din cele 7 pozitii ale literei – 7 x 29 intrari: 26 pt litere si 3 pt punctuatie, si blank • 26 iesiri: 21 unitati de iesire –foneme, 5 pentru accent • 30, 80, 120 unitati ascunse

  11. Predictia seriilor de timp • Intrari: x(t) la momente t, t+1, … • Iesire: x(t+k) • Meteo, bursa, rate de schimb, nr pasageri ALVINN • ANN pt a conduce un automobil • Intrari: 60 ´ 64 pixeli imagine de la o camera video • 45 unitati iesire - directie • Invatare – 1200 imagini ale drumului

  12. 2. Reţele Quickpropgation Probleme cu backpropagation • invata prea incet • nr de epoci - sute sau mii • scalare dificila la probleme de dimensiuni mari • noduri ascunse: suficiente dar nu prea multe (memoreaza ce iesire pt ce intrare si nu generalizeaza) 12

  13. 2.1 Justificarea abordarii quickpropagation • Backpropagation calculeaza derivata partiala de ordinul I a erorii globale in functie de fiecare pondere •  obtinerea gradientului suprafetei de eroare • Odata ce se stie gradientul  scade gradientul pana cand un punct de minim (al erorii) este gasit • Se face un numar mare de pasi mici pt a scadea gradientul • Fahlman – propune sa se faca pasi mai mari pt a scadea gradientul • Problema: pe baza derivatei de ordinul I nu se poate sti dimesiunea pasului cu care trebuie scazut gradientul 13

  14. Justificarea abordarii quickpropagation - cont • Ar trebui cunoscuta forma suprafetei de eroare pt. a face pasi mai mari • Derivata de ordinul II a suprafetei in functie de fiecare pondere  indicatii asupra formei suprafetei de eroare si asupra dimensiunii pasilor • Calculul derivatei de ordin II – poate duce la mai putini pasi dar este costisitor de calculat • Fahlam – o solutie care sa aproximeze acest proces 14

  15. Justificarea abordarii quickpropagation - cont Se memoreaza: • schimarea precedenta a erorii totale in functie de fiecare pondere (E/wij)(t-1) • diferenta intre ponderile curente si cele anterioare Presupuneri: • schimbarea pantei suprafetei de eroare este afectata numai de ponderea care se actualizeaza la un moment dat • se presupune ca suprafata de eroare este o parabola 15

  16. 2.2 Formula Quickpropagation • wij – ponderea intre unitatile i si j • (t) – modificarea ponderilor la momentul t • S(t) – derivata partiala de ordinaul I a erorii in functie de pondere • S(t-1) – derivata partiala la momentul anterior • S(t) = -  E/wij 16

  17. Formula Quickpropagation - cont • In loc de •  w2ji =  2sivsj w1kj =  1sjxsk • 2si = ysi (1-ysi) (dsi-ysi) 1sj = vsj (1-vsj) i=1,C(w2ji 2si) • w2ji = w2ji +  2sivsj w1kj = w1kj +  1sjxsk • de exemplu, pt actualizare ponderi strat ascuns-iesire se foloseste w2jidat de formula 17

  18. 3. Reţele Cascade-Correlation Caracteristici • Algoritm dezvoltat de Fahlman si Lebiere, 1990 • Exista 2 tipuri de CasCor: CasCor si Recurrent CasCor • Invatare supervizata • Reteaua evolueaza • Se porneste de la o structura simpla (minimala) • Structura retelei evolueaza pe parcursul invatarii prin adaugarea de noi neuroni si noi legaturi • Avantaje: • Invata mai repede • Determina structura (topologia) 18

  19. 3.1 Probleme care se elimina (se incearca) • Algoritmul incearca sa elimine 2 probleme ce apar in backpropagation si quickprop: • Problema dimensiunii pasului • Problema tintei mobile (a) – Problema dimensiunii pasului • Scaderi mici ale gradientului – minime locale • QP – din cauza aproximarii facute s-ar putea sa se piarda minimul local 19

  20. Probleme care se elimina (se incearca) - cont (b) – Problema tintei mobile • Fiecare unitate din retea – rol util – detector de caracteristici • Nu exista comunicare directa intre unitati ascunse • Unitatile ascuns vad o figura in continua miscare pe masura ce unitatile de dinainte si de dupa evolueaza • Solutie – numai anumite ponderi sa se modifice 20

  21. 3.2 Algoritm CasCor 2 idei: • arhitectura in cascada, unitatile ascunse se adauga pe rand si ponderile lor nu se mai modifica • algoritmul de invatare care adauga noi unitati ascunse Pasi algoritm: • Pasul 1: Reteaua contine numai intrari si un strat de iesire, complet conectate; exista o unitate fixa (+1) legata la valoarea de prag • Pasul 2: Modifica ponderile spre stratul de iesire cu un algoritm de invatare pana ce eroare nu mai descreste 21

  22. 3.2 Algoritm CasCor - cont • Pasul 3: Genereaza unitati candidate. • O unitate candidat se conecteaza cu toate intrarile si cu toate unitatile ascunse deja introduse. • Pasul 4: Maximizeaza corelatia intre activarea unitatilor candidat si eroarea retelei prin modificarea ponderilor spre unitatile candidat. • Se foloseste un algoritm clasic de invatare. • Invatarea se opreste atunci cand corelatia nu se mai imbunatateste. • Pasul 5: Alege unitatea candidat cu corelatia maxima, ingheata ponderile spre acestea si adauga unitatea la retea + leaga unitatea adaugata la unitatile de iesire. • Cum ponderile sunt inghetate, unitatea ascunsa va fi un detector permanent de caracteristici 22

  23. iesiri UA 2 adaugata UA 3 adaugata UA 2 adaugata UA 1 adaugata intrari +1 O retea antrenata cu CasCor – starea initiala Conexiunile cu negru sunt antrenate repetitiv 23

  24. iesiri UA 2 adaugata UA 3 adaugata UA 2 adaugata UA 1 adaugata intrari +1 O retea antrenata cu CasCor dupa ce s-au adaugat 3 UA Conexiunile cu alb sunt ponderi inghetate. Conexiunile cu negru sunt antrenate repetitiv 24

  25. Algoritmul de invatare Cascade Correlation 1.Creaza o retea minima cu 1 strat: intrari si iesiri 2. Alege rabdarea R • repeta Antreneaza reteaua – ponderi intrari-iesiri pt setul de invatare pana variatia erorii la iesire de la un ciclu la altul < R • Verifica functionarea retelei pe tot setul de invatare • daca eroare satisfacatoare atunci stop 25

  26. Algoritmul de invatare Cascade Correlation • Genereaza unitatea/unitatile candidat. • Conecteaza toate intrarile retelei si iesirile unitatilor ascunse anterioare ca intrari ale unitatii candidat 8. Maximizeaza corelatia intre activarea unitatilor candidat si eroarea retelei prin actualizarea ponderilor pe leg. catre unitati candidat: - orice alg. invatare - rulat pt. mai multe treceri peste ex. de invatare - opreste daca corelatia nu se mai imbunatateste • Alege una sau mai multe unitati candidat cu corelatie maxima si ingheata ponderile pe intrarile ei • repeta de la 3 sfarsit 26

  27. 3.3 Recurrent Cascade Correlation • Recurrent Cascade-Correlation (RCC) este o varianta de arhitectura recursiva a arhitecturii CasCor – Elman, 1990 • Arhitecturi recursive – caracteristici particulare • Pot reprezenta timpul implicit (nu explicit ca retelele obisnuite) • Arhitectura cea mai cunoscuta: modelul Elman • Functioneaza la momente de timp discrete • Iesirile unitatilor ascunse la momentul t sunt transmise ca intrari suplimentare ale retelei la momentul t+1. 27

  28. unitati iesire unitati iesire legatura recurenta unitate ascunsa unitati ascunse legaturi recurente intrari unitati context intrari Recurrent Cascade Correlation - cont • Pentru a tine minte iesirile unitatilor ascunse Elman introduce unitati de context care reprezinta un fel de memorie de scurta durata (short-term memory) 28

  29. unitati iesire unitati iesire legatura recurenta unitate ascunsa unitati ascunse legaturi recurente intrari unitati context intrari Recurrent Cascade Correlation - cont • Integrarea modelului Elman in arhitectura CasCor • Iesirile unitatilor ascunse nu mai sunt intrari pt toata reteaua • Fiecare unitate ascunsa are numai o singura legatura recurenta 29

  30. Recurrent Cascade Correlation - cont • Ponderea asociata legaturii recurente unice este antreanta odata cu celelalte ponderi ale unitatii candidat pentru maximizarea corelatiei • La adaugarea unitatii candidat in retea ca o unitate ascunsa, legatura recurenta este inghetata la fel ca si celelalte ponderi ale unitatilor ascunse 30

  31. 4. Harti cu auto-organizare • Retele de tip harta cu auto-organizare a caracteristicilor (SOM - self-organizing feature maps) - inventate de Teuvo Kohonen, profesor la Academiadin Finlanda, 1989 • Se inspira din modelul biologic – pozitia neuronilor are importanta (ex cale auditiva – niv scazut; nivel superior?) • Invatare nesupervizata • Ofera o modalitate de a reprezenta date multi-dimensionale in spatii dimensionale reduse, de obicei 1-2 dimensiuni = cuantificarea vectorilor • Tehnica Kohonen creaza o reteacare memoreaza informatia astfel incatorice relatie topologica din setul de invatare este mentinuta. 31

  32. 4.1 EXEMPLU de utilizare a unei retele SOM • Maparea culorilorpe baza componentelor rosu, verde si albastru • in doua dimensiuni – o retea SOM antrenata sa recunoasca 8 culori • Culorile au fost prezentate retelei ca vectori 3D, cu cate o dimensiune pt. fiecare • componenta a culorii – reteaua a invatat sa reprezinte culorile intr-un spatiu 2D. • Pe langa clusterizarea culorilor in regiuni distincte, regiunile cu proprietati similare sunt plasate de obicei adiacent una de cealalta. 32

  33. 4.2 Idei SOM • La prezentarea exemplelor ponderile creaza clustere care impart spatiul de intrare a.i iesirile activate tind sa aproximeze functia de densitate de probabilitate a intrarii • Ponderile sunt actualizate a.i. noduri apropiate topologic sunt senzitive la intrari fizic similare = topogy preserving maps • M noduri de iesire si N intrari • In timpul invatarii, unitatea (dintr-un cluster) care are ponderi cat mai apropiate de valorile de intrare (distanta Euclidiana minima) este aleasa pe post de castigator • Unitatea castigatoare si vecinii ei isi actualizeaza ponderile • Necesita definirea unei vecinatati in jurul fiecarei unitati, ce descreste in timp • Problema tipica: sa se grupeza o multime (xp1,…, xpN) de valori in M grupuri (clustere) 33

  34. y1 y2 y3 x1 x2 x3 4.3 Structura SOM wij { [ ] } R = 0 R = 1 R = 2 34

  35. Algoritmul de invatare SOM 1.Initializeaza ponderile, fixeaza dim. Vecinatatii topologice R si rata de invatare (t0) (initial ponderi aleatore cu val mici sau nealeatoare) • pentru fiecare xsi executa 2.1 calculeaza distanta pt toate nodurile de iesire dj– dist intre intrari i(i=1,N) si noduri iesire j(j=1,M) xsi(t) – intrarea i la momentul t wij(t) – ponderea intre intrarea i si nodul de iesire j dj = i=1,N(xsi(t) – wij(t))2 2.2 Selecteaza nodul cu distanta minima, j* cu dj min 2.3 Actualizeaza ponderile unitati j si ale unitatilor din vecinatatea Nej* wij(t+1) = wij(t)+ (t) (xsi(t) – wij(t)) pentru j in NEj* la momentul t, i=1,N 3. Reduce R 4. repeta de la 2 pana conditie de oprire sfarsit 35

  36. 4.3 Comentarii • (t) – descreste linear • Forma vecinatatii • Nu toate vecinatatile egale • Formarea hartii – 2 faze: • Formarea ordinii corecte • Formarea convergentii finale – mai lunga, necesita (t) mai mica 36

  37. 4.4 Exemplu • 4 vectori (s=4) cu 4 elemente (N=4) • (1 1 0 0) (0 0 0 1) (1 0 0 0) (0 0 1 1) • 2 clustere (M=2) • (0) = 0.6 (t+1)=0.5*(t) • Ponderi initiale .2 .8 .6 .4 .5 .7 .9 .3 R=0 (1,1,0,0) D(1) = (0.2-1)2+(0.6-1)2+(0.5-0)2+(0.9-0)2=1.86 D(2) =(0.8-1)2+(0.4-1)2+0.7-0)2+(0.3-0)2 = 0.98 J=2 wi2nou=wi2 +0.6(xi-wi2) .2 .92 .6 .76 .5 .28 .9 .12 wij(t+1) = wij(t)+ (t) (xsi(t) – wij(t)) 37

  38. Se reduce rata de invatare • =0.5*0.6 = 0.3 • Epoca 100 matricea devine 6.7e-17 1.0000 2.0e-16 0.4900 0.5100 2.3e-16 1.0000 1.0e-16 0.0 1.0 0.0 0.5 0.5 0.0 1.0 0.0 (1 1 0 0) (0 0 0 1) (1 0 0 0) (0 0 1 1) • (0 0 0 1) .08 .92 .24 .76 .20 .28 .96 .12 • (1 0 0 0) .08 .968 .24 .304 .20 .112 .96 .048 • (0 0 1 1) .032 .968 .096 .304 .680 .112 .984 .048 38

  39. 4.5 Alt exemplu • cate 3 sabloane pt A, B, C , D, E, J, K = 21 sabloane • 7 *9 intrari • 25 clustere (iesiri) • SOM cu R=0 (nici o structura topologica) => 5 clustere 3 C1, C2, C3 13 B1, B3, D1, D3, E1, K1, K3 16 A1, A2, A3 18 J1, J2, J3 24 B2, D2, E2, K2 • SOM cu R=1 (structura liniara) => 9 clustere 6 K2 20 C1, C2, C3 10 J1, J2, J3 22 D2 14 E1, E3 23 B2, E2 16 K1, K2 25 A1, A2, A3 18 B1, B3, D1, D3 39

  40. SOM cu R=2 (topologie) • Xij => Xi+1,j, Xi-1,j, Xi,j+1, Xi,j-1 40

  41. SOM cu structura geometrica • Unitatile cluster pot fi vazute ca avand pozitie geometrica data de ponderi. • Input – 2 componente – pozitia reprezentata grafic • relatia topologica intre unitati cluster – linie de legatura • Structura liniara a vecinatatii - j, j+1, j-1 • 5 unitati cluster x2 w2 x1 w1 41

  42. http://www.cs.bham.ac.uk/~jlw/sem2a2/Web/Kohonen.htm • 49 unitati cluster • 0.5 – 0.01 100 epoci 42

  43. Problema comis voiajorului • Coordonatele orasului – intrari • Unitati cluster = nr de orase • Toplogie liniara circulara • Pot apare circuite ambigue 43

More Related