330 likes | 482 Views
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. 5. Re ţ ele neurale Retele perceptron Re ţ ele backpropagation. 2. 1. Re ţ ele Perceptron.
E N D
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
Curs Nr. 5 Reţele neurale • Retele perceptron • Reţele backpropagation 2
1. Reţele Perceptron • Rosenblatt [1962] – perceptron "clasic" • Model actualizat de Minsky si Papert • Intr. binare sau continue • Exemple la intrari xs1,…xsN, s=1,M • Iesiri ys = +1/0 (se poate si +1/-1) • ds – iesiri dorite (ds = ys ?) pt s = 1,M 3
trece prin origine • Perceptron = Unitate computationala cu valoare de prag care • pentru intrari x1,..xn si ponderi w1…wn produce la iesire +1 daca • i=1,N wixi si 0 (sau -1) in caz contrar • Separa spatiul intrarilor in 2 zone: pct pt care rezultatul este 1 si pct • pt care rezultatul este 0
x1 1 X1 y 0.9 =1 x2 1 = 0 2 X2 Exemplu: perceptron cu 2 intrari reale, iesiri 0/1, f. treapta Exemplu: SAU logic, intrari 0/1, iesiri 0/1, f. treapta
Caracteristici • Ponderi: invatate sau calculate • Minsky si Papert [1969] au pus in evidenta limitarile modelului computational al perceptronilor • Functiile calculabile de perceptron – acele functii pentru care punctele cu valoarea functiei 1 (A) pot fi separate de punctele cu valoarea functiei 0 ( B) – liniar separabile 6
Nu orice functie este calculabila de perceptron • De exemplu AND si OR pot fi calculate, dar nu XOR x1=0 x2=0 w1x1+w2x2 = 0 => 0 < x1=1 x2=0 w1x1+w2x2 = w1 => w1 x1=0 x2=1 w1x1+w2x2 = w2 => w2 x1=1 x2=1 w1x1+w2x2 = w1+w2 => w1+w2< • Cate functii liniar separabile? n=2 14 din 16 n=3 104 din 256 n=4 1882 din 65536 7
Calculul facut de perceptron poate fi vazut ca o separare liniara a spatiului de intrare dar si ca o cautare in spatiul ponderilor • Perceptron cu n intrari – gaseste n+1 parametrii – reprezinta un punct in spatiul cu n+1 dimensiuni al ponderilor • Alegem un punct in spatiul ponderilor => alegem o combinatie de ponderi si o separare liniara specifica in spatiul de intrare • Fiecare punct in spatiul n+1 al ponderilor poate fi asociat cu un hiperplan in spatiul intrarilor de dimensiune n+1 • Dualitate intrari - ponderi
Functionare perceptron • 2 etape ale functionarii 9
Algoritmul de invatare al perceptronului 1. Initializeaza ponderile wk si valoarea de deplasare cu valori aleatoare mici ([-0.1, +0.1] 2. Prezinta cele M exemple. Fie y(0) iesirea perceptronului la momentul de timp 0 • daca toate exemplele sunt clasificate corect (ds=ys) atunci STOP /* perceptronul a invatat */ 4. Actualizeaza ponderile si valoarea de deplasare pentru fiecare exemplu s=1,M repeta 4.1.Calculeaza iesirea perceptronului ys(t) = f(k=0,N wk(t)xsk) 4.2.Corecteaza ponderi la momentul de timp t + 1 wk(t+1) = wk(t) + (ds – ys) xsk (wk – delta rule) 5. repetea de la 3 sfarsit 10
Justificarea actualizarii ponderilor • Functia de eroare – numar de clasificari incorecte obtinute cu un set de ponderi Eroare = ½ i(di-yi)2 • Poate fi interpretata ca o functie de energie E(w) 0 • Dorim un minim global pentru E(w) =0 • Metoda scaderii gradientului: pt a afla un minim local se iau pasi proportionali cu negativul gradientului functiei in punctul curent 11
Justificarea actualizarii ponderilor - cont • 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 12
Justificarea actualizarii ponderilor - cont • Eroare = ½ i(di-yi)2 • Modificare eroare in fct de iesire • 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) * (k=0,N wkxk) / wk = - (di-yi) *xk Delta rule la perceptron wk(t+1) = wk(t) + (ds – ys) xsk cu =1 13
Exemple de utilizare • Detectarea laturilor unei imagini cu perceptroni • Edge detection – extragerea laturilor (presupus mai inchise decat fondul) • Fiecare pixel comparat cu vecinii lui – daca este negru si un vecin este alb atunci este clasificat ca facand parte din latura • Vecinatati Moore • Operator de convolutie -1 -1 -1 -1 8 -1 -1 -1 -1 -1 0 1 -1 0 1 -1 0 1 latura verticala intre sup alba stg si neagra dr 14
Exemple de utilizare • Recunoasterea caracterelor • Clasificarea unei litere cu t pixeli negrii • = t-1 – clasifica T-uri cu 1 pixel gresit (distorsionat) • Se poate ajusta pt a recunoaste figuri cu 2, 3 .. pixeli distorsionati • Problema 15
Exemple de utilizare • Cognitron • Exemplu de "quad-pyramid" – rezolutia este redusa cu un factor de 4 de la plan la plan. • Fiecare pixel dintr-un plan superior este legat la 4 pixeli din unul inferior arhitectura piramidala 16
Exemple de utilizare • Neocognitron 17
Neocognitron • UC0. Planul de intrare este UC0, transformat in 12 imagini US10 ,... US111 cu aceeasi rezolutie • US1i. Operatorul de transformare de la UC0 la US1i are intrari 3 x 3 pixeli din UC0, si fiecare pixel din US1i are asociat un astfel de operator. • In fiecare plan numai o anumita caracteristica este recunoscuta: US11 – toate laturile verticale din UC0, US12 numai diagonale, etc. • UC1jUrmatorul nivel de prelucrare este format din planele UC1j • Fiecare pixel din UC1j se conecteaza la un pixel din 1 sau 2 plane US1i • Ponderile sunt de excitare si efectul acestui plan este sa suprapuna activarea imaginilor selectate din US1i si sa le estompeze in acelasi timp, prin largirea sablonului. • Acest lucru se realizeaza prin transformarea valorii fiecarui pixel in suma ponderata a valorii lui si a valorilor vecinilor. 18
Neocognitron • US2i Pe urmatorul nivel/plan de prelucrare fiecare pixel dintr-un plan US2i se conecteaza la o unitate in aceeasi pozitie din imaginile UC1j. Pe acest nivel se poate reduce rezolutia imaginilor, ca in arhitecturile piramidale. • Se alterneaza astfel nivelurile US si UC pana ce UC4 clasifica in clase 0, . . . , 9 • Toleranta la deplasari si rotiri: UC estompeaza imaginea si US extrage caracteristici specifice. 19
2. Reţele backpropagation • Perceptronii multi-nivel sau retele backpropagation • Sunt retele neuronale cu activare directa care contin unul sau mai multe straturi de noduri intre nodurile de intrare si nodurile de iesire. • Aceste straturi suplimentare reprezinta nivelele ascunse ale perceptronilor multinivel. 20
2.1 Caracteristici • 2 etape ale functionarii • functii sigmoid • intrari binare sau reale in intervalul [0, 1] sau [-1, +1] 23
Tipurile regiunilor de decizie formate de un perceptron multinivel
2.2 Functionare • Algoritmul de invatare al retelelor backpropagation este format din doi pasi principali: (a) o parcurgere directa a retelei, de la intrari la iesiri, in care se activeaza reteaua si se determina valorile iesirilor (b) o parcurgere inapoi a retelei, de la iesiri la intrari, in care iesirile calculate se compara cu iesirile din exemple si se determina o estimare a erorii; aceasta estimare a erorii este propagata inapoi si utilizata la actualizarea ponderilor. • epoca 25
2.2 Functionare - cont Notatii algoritm • este factorul de scalare care reprezinta viteza de invatare • reprezinta valorile iesirilor din exemple, cate o secventa pentru fiecare exemplu • reprezinta estimarea erorilor la nivelul stratului de iesire • reprezinta estimarea erorilor la nivelul stratului ascuns. 26
Algoritmul de invatare backpropagation 1.Initializeaza ponderile si valorile de deplasare cu valori aleatoare mici inintervalul [-0.1, 0.1] 2. pentru fiecare exemplu executa 2.1. Calculeaza iesirea retelei 2.2.Calculeaza erorile la nivelul stratului de iesire j=1,C 27
Algoritmul de invatare backpropagation - cont 2.3.Calculeaza erorile la nivelul stratului ascuns 2.4. Modifica ponderile 3.repeta pasul 2 de cite ori se doreste sfarsit 28
Observatii • Generalizare la retele backpropagation cu mai mult de doua niveluri • Viteza de invatare • termen moment 29
Observatii - cont • Actualizarea ponderilor se face to cf. metodei scaderii gradientului - functie de eroare care depinde de diferenta intre iesirea dorita si iesirea curenta a retelei pentru a scadea gradientul. • Un algoritm backpropagation poate ajunge sa calculeze un set de ponderi care nu rezolva problema • Fenomenul de overfitting • Nr de ponderi care se invata / nr. de ponderi care influenteaza o iesire particulara < nr. de exemple • Impartirea exemplelor de invatare in doua multimi • Optimal brain damage • Tiling 30
x1 1 = 0.5 1 1 y 1 -2 1 = 1.5 x2 2.3 Exemple retele backpropagation • SAU EXCLUSIV – intrari 0, 1, f. limitator SI logic 31
y0 ymax y1 0.5 0.5 1 1 0.5 0.5 1 1 -1 -1 x0 x1 = 0 pt toti Retea care selecteaza maximum a doua intrari reale - f3(t) = t - f2(t) = t daca t 0 -t daca t < 0 - f1 functie de transfer treapta 32
2.3 Exemple retele backpropagation - cont • Parabola: invata sa coreleze viteza initiala de lansare a unui proiectil si pozitia tintei cu unghiul corect de lansare • OCR: invata sa recunosca digiti • Vehicul: invata sa ghideze pozitia volanului unui vehicul in functie de pozitia de plecare a vehiculului si de pozitia destinatiei • Functie: invata o functie pe baza unei multimi de puncte 33