Universitatea Politehnica Bucuresti Anul universitar 2008-2009 Invatare automata Universitatea Politehnica Bucuresti Anul universitar 2008-2009 Adina Magda Florea http://turing.cs.pub.ro/inva_09 si curs.cs.pub.ro
Curs Nr. 7 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
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
Exemplu: perceptron cu 2 intrari reale, iesiri 0/1, f. treapta 0.9 2 =1 Exemplu: SAU logic, intrari 0/1, iesiri 0/1, f. treapta x1 1 x2 = 0 y
1.1 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 Fiecare punct in spatiul n+1 al ponderilor poate fi asociat cu un hiperplan in spatiul intrarilor de dimensiune n+1 Dualitate intrari - ponderi
1.2 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. repeta de la 3 sfarsit 10
1.3 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 wk proportionala 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
1.4 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 apartinand laturii Vecinatati Moore Operator de convolutie -1 -1 -1 -1 8 -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 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 Celulele retinei sunt conectate in asa fel incat fiecare nerv care vine de la ochi la creier codifica un rezumat al informatiei detectate de mai multi fotoreceptori din retina. La fel ca in cazul operatorului de convolutie, fiecare nerv transmite un semnal care depinde de luminozitatea relativa a unui punct fata de vecinii imediati. 16
Exemple de utilizare Neocognitron 17 Recunoasterea cifrelor scrise de mana: gaseste caracteristici distinctive de detaliu cum ar fi linii cu anumita orientare si combina prezenta lor intr-o decizie logica finala. Aceste caracteristici trebuie recunoscute indiferent de pozitia lor. Neocognitronul transforma planul imaginii in alte planuri in care anumite caracteristici au fost accentuate, apoi in alte planuri, s.a.m.d, pana la decizia finala. Rezolutia planurilor poate fi schimbata de la transformare la transformare pana se ajunge la decizia finala pe baza a putine puncte. Planul initia este transformat decizand pt feicare punct daca ramane alb sau negru. Acest lucru poate fi facut prin identificarea sabloanelor pt feicare din cele 3 transformari prin compararea fiecarui pixel cu vecinii lui. Plan 1 – numai linii verticale, 2 numai orizontale, 3 numai diagonale. Ponderile aratate, resul 0 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 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. Neocognitronul foloseste de fapt unitati liniare de calcul si nu perceptroni. Unitatile calculeaza suma intrari ponderi si aceasta suma este interpretata ca un index de corelare cu sablonul pe care fiecare unitate il identifica. => Sabloane de alb si negru sunt transformate in sabloane cu nuante de gri, in functie de iesirea fiecarei unitati de prelucrare. 18
Neocognitron UC1j Urmatorul 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. Neocognitronul foloseste de fapt unitati liniare de calcul si nu perceptroni. Unitatile calculeaza suma intrari ponderi si aceasta suma este interpretata ca un index de corelare cu sablonul pe care fiecare unitate il identifica. => Sabloane de alb si negru sunt transformate in sabloane cu nuante de gri, in functie de iesirea fiecarei unitati de prelucrare. 19
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. 20
2. Retele 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. 2121
Perceptroni multi-nivel cu doua niveluri si un strat ascuns
2.1 Caracteristici 2 etape ale functionarii functii sigmoid intrari binare sau reale in intervalul [0, 1] sau [-1, +1] 2424
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 2626
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. 2727
Algoritmul de invatare backpropagation 1. Initializeaza ponderile si valorile de deplasare cu valori aleatoare mici in intervalul [-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 28
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 29
2.3 Observatii Generalizare la retele backpropagation cu mai mult de doua niveluri Viteza de invatare termen moment 30
Observatii - cont Actualizarea ponderilor se face tot 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 Overfitting = incercarea de a utiliza un model statistic cu prea multi parametrii Multi parametrii care se potrivesc bine pe un numar restrans de exemple dar nu generalizeaza bine Optimal brain damage = incepe cu o retea total conectata si elimina pe rand conexiuni – utilizeaza metode din teoria informatiei pt a determina ce conexiuni sa elimine Tiling – incepe cu un singur neuron la iesire – il invat, apoi adaug inca unul etc. 31
2.4 Exemple retele backpropagation SAU EXCLUSIV – intrari 0, 1, f. limitator x1 1 = 0.5 x2 = 1.5 y -2 SI logic 32
Retea care selecteaza maximum a doua intrari reale y0 ymax y1 1 0.5 -1 = 0 pt toti 0.5 x1 y0 -1 ymax y1 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 33
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 Functie: invata o functie pe baza unei multimi de puncte 34
Backpropagation applets http://www.sund.de/netze/applets/BPN/bpn2/ochre.html http://www.eee.metu.edu.tr/~halici/courses/543java/NNOC/Backpropagation.html 35