Sisteme de recuoaştere a formelor Lab 10 Clasificatori liiari şi algoritmul perceptro 1. Obiective Acest laborator prezită algoritmul de îvăţare perceptro petru clasificatori liiari. Vom aplica gradiet descet şi stochastic gradiet descet petru a obţie vectorul de poderi. Se va rezolva o problemă de clasificare biară folosid două trăsături. 2. Fuamete teoretice Scopul clasificării este de a grupa elemetele cu trăsături similare î clase sau grupuri. U clasificator liiar reuşeşte acest lucru pri luarea deciziei î fucţie de o combiaţie liiară a trăsăturilor. Defiiţii Defiim u dataset etichetat ca şi o pereche (X,Y), ude X M m (R) este o matrice cu liii şi m coloae avâd valori reale şi Y este u vector coloaă Y M 1 (D), care coţie etichetele petru fiecare istaţă. X coţie pe liii istaţele de atreare descrise cu m trăsături. U clasificator este o fucţie care mapează orice istaţă reprezetată pritr-u vector de trăsături la o clasă: f: R m D. Astfel u clasificator separă spaţiul de trăsături î D regiui disjute. Supspaţiul care separă clasele se umeşte bordura de decizie (eg. decisio boudary). Dacă problema de clasificare este bidimesioală acest subspaţiu va fi uidimesioal şi va fi o liie sau o curbă î geeral. Î cotiuare vom discuta despre cazul cu două clase, algoritmii fiid uşor extesibili la mai multe clase. Petru etichete vom folosi D = { 1,1}. Figure 1. Exemplu de clasificator liiar care separă două clase şi utilizează două trăsături
2.1. Forma geerală a uui clasificator liiar U clasificator liiar este o combiaţie liiară a trăsăturilor de itrare. Cosiderâd x M 1 (R) ca vectorul de trăsături putem exprima fucţia de clasificare ca şi: g(x) wx w w x w 0 i i 0 i1 Ude w este vectorul de poderi w0 este deplasametul sau valoarea de prag. Următoarea schemă ilustrează modul de operare a clasificatorului liiar: x1 w1 x2 xm 1 w2 wm w0 f=w 1 x 1 +w 2 x 2 + +w m x m +w 0 suma poderată a trăsăturilor (f) fucţia de prag {c1,c2} ieşire = clasa prezisă Petru a simplifica otaţia, calculele şi petru a permite tratarea geerală vom absorbi valoarea w0 î vectorul de poderi şi vom augmeta vectorul de trăsături cu o compoetă egală cu 1. Î acest caz se simplifică expresia î: 1 wx w0 w0 w wx x U clasificator liiar petru două clase implemetează următoarea regulă de clasificare: dacă g(x) > 0, decidem că x aparţie clasei +1; dacă g(x) < 0, decidem că x aparţie clasei -1; sau echivalet: dacă w x > -w0, decidem că x aparţie clasei +1; dacă w x < -w0, decidem că x aparţie clasei -1; Dacă g(x) = 0, atuci x poate fi atribuit la oricare clasă.
Figure 2. Ilustrarea compoetelor di vectorul de poderi: vectorul w este ormala la dreapta de separare iar w0 este proporţioal cu distaţa d (cu sem) a dreptei de la origie 2.2. Metode de îvăţare petru clasificatori liiari Vom prezeta două metode de îvăţare petru clasificatori liiari. Îvăţarea se face pri trasformarea problemei de clasificare îtr-o problemă de miimizare a uei fucţii de cost. Deumim fucţia L (de la loss fuctio di egleză). Fucţia poate să aibă mai multe forme şi trebuie să pealizeze difereţele ditre predicţie şi clasa adevărată. Î cazul algoritmului perceptro adoptăm următoarea fucţie de cost: L(w ) = 1 max(0, y iw x i ) = 1 L i (w ) Dacă o istaţă este corect clasificată atuci u se aplică ici o pealizare, î schimb, dacă istaţa se atribuie la clasa greşită atuci se pealizează proporţioal cu scorul greşit. Semul expresiei y i w x i este egativ dacă semul etichetei de clasă este diferit de semul clasei prezise. Fucţia de cost se mai poate scrie şi ca: L(w ) = 1 y i w x i i clasificat greşit Petru a miimiza acest cost vom utiliza metoda gradiet descet. Vom pori de la u vector de poderi aleator şi vom schimba acest vector bazâdu-e pe valoarea gradietului î poziţia curetă. Pasul va fi î direcţia opusă a gradietului: w k+1 w k η L(w k) ude w k este vectorul de poderi la mometul k, parametrul η cotrolează mărimea pasului şi se umeşte rata de îvăţare (eg. learig rate), şi L(w k) este vectorul de gradiet calculat î puctul w k. Vectorul de gradiet are expresia: L(w ) = 1 L i(w ) 0, if y L i (w ) = { i w x i > 0 y i x i, altfel Î metoda stadard poderile se schimbă doar după ce am vizitat toate exemplele de atreare. Această abordare se mai cheama şi batch-update. Algoritmul clasic de perceptro di [1] actualizează poderile după examiarea fiecărui exemplu de atreare. Î acest caz algoritmul se umeşte olie perceptro. Regula de actualizare devie: w k+1 w k η L i (w )
Algorithm: Batch Perceptro iit w, η, Elimit, max_iter for iter=1:max_iter E = 0, L = 0 L = [0,0,0] for : d z i = j=0 w j X ij if z i y i 0 L L y i X i E E + 1 L L y i z i edif edfor E E/ L L/ L L / if E < E limit break w w η L edfor Algorithm: Olie Perceptro iit w, η, Elimit, max_iter for iter=1:max_iter E = 0 for : d z i = j=0 w j X ij if z i y i 0 w w + ηx i y i E E + 1 edif edfor E E/ if E < E limit break edfor 3. Detalii de implemetare Vom folosi pucte 2D care sut împărţite î 2 clase. Puctele se citesc di imagiile de itrare şi aparteeţa se stabilişte pe baza culorii. Asociem clasa -1 la puctele albastre şi 1 la puctele roşii. Fiecare puct va fi descris de două trăsături x1 şi x2 care coicid cu coordoatele lor. Astfel, vectorul de trăsătură augmetat are forma x = [1 x1 x2] iar vectorul de poderi are trei compoete w = [w0 w1 w2]. Figure 3. Liia de separare ître două clase
4. Lucrare practică 1. Citiţi puctele ditr-o sigură imagie test0*.bmp şi costruiţi setul de atreare (X,Y). Asociaţi -1 la puctele albastre şi +1 la puctele roşii. 2. Implemetaţi algoritmul Olie Perceptro petru a găsi liia de separare ditre cele două clase. Sugestie petru parametri: η=10-4, w0 = [0.1, 0.1, 0.1], Elimit=10-5, max_iter = 10 5. 3. Deseaţi liia de separare găsită de algoritm şi dată de ecuaţia: w0+w1x+w2y = 0. 4. Implemetaţi algoritmul de batch perceptro. Găsiţi parametri bui care asigură îvăţarea. Se va moitoriza fucţia de cost care trebuie să descrească îcet la fiecare pas. 5. Vizualizaţi liia de separare î timp ce rulează algoritmul să observaţi cum se schimbă. 6. Schimbaţi valorile de start petru vectorul w, modificaţi rata de îvăţare şi observaţi ce se îtâmplă î fiecare caz. Ce îseamă dacă fucţia de cost L oscilează? 5. Refereces [1] Roseblatt, Frak (1957), he Perceptro - a perceivig ad recogizig automato. Report 85-460-1, Corell Aeroautical Laboratory. [2] Richard O. Duda, Peter E. Hart, David G. Stork: Patter Classificatio 2 d ed. [3] Xiaoli Z. Fer, Machie Learig Course, Orego Uiversity - http://web.egr.oregostate.edu/~xfer/classes/cs534/otes/perceptro-4-11.pdf [4] Gradiet Descet - http://e.wikipedia.org/wiki/gradiet_descet [5] Avrim Blum, Machie Learig heory, Caregie Mello Uiversity - https://www.cs.cmu.edu/~avrim/ml10/lect0125.pdf