LAPI Labratrul de Analiza şi Prelucrarea Imaginilr Universitatea POLITEHNICA din Bucureşti Interfață Vizuală Om-Mașină Analiza și recunașterea gesturilr Dr.ing. Inuț Mirnică Facultatea de Electrnică, Telecmunicaţii şi Tehnlgia Infrmaţiei a gesturilr Intrducere - algritmi de învăţare Ce este Machine learning? Eistă mii de algritmi de învăţare / sute dintre ei apar anual; Eistă mai multe tipuri de învăţare: Învățare supervizată datele de cnţin şi ieşirea drită; Învățare nesupervizată datele de nu cnţin ieşirea drită (clusterizare); ideea de bază este de a se găsi şablane şi pattern-uri în date care să fie evidenţiate în md autmat. Învăţare semi-supervizată dar parte din datele de cnţin ieşirea drită; Reinfrcement Learning se învaţă în funcţie de feedback-ul primit după ce decizie este luată. 4 a gesturilr Intrducere algritmi de învăţare Cncluzii Intrducere - algritmi de învăţare Învățare nesupervizată K-means Se re-asignează în md iterativ punctele către cel mai aprpiat vecin; Clustering aglmerativ Fiecare punct reprezintă prpriul său cluster şi în md iterativ se unesccei mai aprpiaţi centrizi; Clustering MeanShift În funcţie de funcţia de densitate de prbabilitate se estimează fiecare centrid. 5 a gesturilr Intrducere - algritmi de învăţare Ce este Machine learning? Este farte greu de scris un algritm care recunaşte un set de gesturi statice / dinamice sau care să rezlve prblema de recunaştere a feţei: Nu ştim cum funcţinează creierul uman pentru a clasifica gesturile; Chiar dacă am şti nu am avea idee cum sa prgramăm dearece ar fi farte cmplicat; Ar trebui să scriem funcție diferită pentru fiecare gest. În lc să scriem prgrame farte multe, putem clecta eemple care specifică fiecare gest; Un algritm de învăţare va prelua aceste eemple şi va creea un prgram care va face această clasificare în md autmat; Intrducere - algritmi de învăţare Învățare supervizată Se aplică funcţie de predicţie la trăsătură etrasă din imaginea sau dcumentul vide iar acesta va avea ca ieşire clasa în care face parte gestul respectiv: f( ) = gest 1 f( ) = gest f( ) = gest 3 3 6 1
Mdel de bază y = f() Ieşire Funcţia de predicţie Trăsătură etrasă Antrenare: fiind dată mulţime de împreună cu răspunsul drit {( 1,y 1 ),, ( N,y N )}, se estimează predicţia funcţiei f prin minimizarea errii de predicţie pe mulţimea de ; Testare: se aplică funcţia f pe un eemplu de test (care nu a fst flsit în prcesul de ) şi prezintă ieşirea funcţiei y = f(). Trăsături etrase pieli culare frmă muchii tetură puncte de interes 7 10 Mdel de bază Antrenare Imaginile de Trăsături imagine Ieşire drită date Antrenare Mdelul antrenat Învățare supervizată schemă de bază 1 N Mdel h1, h,..., hk Variabile de intrare: 1,,..., N Variabile ascunse: h h1, h,..., hk Variabile de ieşire: y y1, y,..., yk y 1 y y M 8 11 Mdel de bază Algritmi eistenţi Testare Etragere trăsături (X) Aplicare funcţie de predicţie f() Predicţie Supprt vectr machines (SVM), Reţele neurale, Naïve Bayes, Reţele bayesiene, Arbri aleatrii (Randm trees), K-nearest neighbr (K-NN), Etc. Care este cel mai bun algritm? 9 1
Terema N free lunch Cmprmisul dintre bias şi varianţă Underfitting - mdelele cu prea puţini parametri sunt ineacte dearece mdelul este prea simplu (prea multă fleibilitate). Overfitting - mdelele cu prea mulţi parametri sunt ineacte (prea multă sensibilitate la datele de intrare pentru ). 13 16 Puterea de generalizare Bias: (bias = ipteza de lucru apriri) cât de mult diferă mdelul mediu faţă de setul de? În funcţie de gradul de adevăr al presupunerilr / simplificărilr pt apare diferite erri de mdelare. Varianţă: cât de mult mdelele estimate pe setul de diferă de cele pe care se va face testarea. Cmprmisul dintre bias şi variaţie Erare = zgmt + bias + varianţă Erri care nu pt fi eliminate Erri datrate presupunerilr false Erri datrate variaţiei elementelr de intrare 14 17 Puterea de generalizare Underfitting: mdelul este prea simplu pentru a reprezenta tate caracteristicile relevante ale claselr: Bias ridicat şi variaţie scăzută; Erare de ridicată şi erare de testare scăzută. Overfitting: mdelul este prea cmple şi mdelează caracteristici irelevante (zgmt): Bias scăzut şi varianţă mare; Erare de scăzută și erare de testare ridicată. Bias Bias-ul reprezintă presupunerile efectuate de mdel pentru a face funcția de ptimizat mai ușr de învățat; În general, algritmii simpli au un bias ridicat, aceștia fiind ușr de înțeles dar mai puțini fleibili; Au perfrmanță scăzută pentru prbleme cmplee. algritmi cu bias scăzut: - arbri de decizie, randm frests, k-nearest Neighbrs, Supprt Vectr Machines. algritmi cu bias ridicat: - regresie liniară și lgistică. 15 18 3
Erare de testare Erare Varianță K-Nearest Neighbr (Cei mai aprpiaţi vecini) Varianța ridicată reprezintă faptul că mdelul pate fi schimbat dacă se utilizează diferite date de. Funcția țintă este estimată pe baza datelr de, așa că este de așteptat ca fiecare algritm să prezinte varianță, dar ideal este ca aceasta să nu se schimbe prea mult. K=1 învățare din clasa 1 Eemplu de test din clasa a dua algritmi cu varianță scăzută: - regresie liniară și lgistică. algritmi cu varianță ridicată: - Arbri de decizie (mai ales cei nefasnați), SVM, k-nearest Neighbr. f() = va lua valarea celui mai aprpiat vecin a lui Tt ceea ce este nevie este distanța dintre X și tate trăsăturile din baza de ; Nu este nevie de un prces de. 19 Cmprmisul dintre bias şi varianţă Underfitting Overfitting K-Nearest Neighbr (Cei mai aprpiaţi vecini) K=3 Erare de testare învățare din clasa 1 Eemplu de test din clasa a dua Erare de Bias ridicat Varianţă scăzută Cmpleitate Bias scăzut Varianţă ridicată Slide: D. Hiem 0 3 Cmprmisul dintre bias şi varianţă K-Nearest Neighbr (Cei mai aprpiaţi vecini) K=5 Puține date de învățare din clasa 1 Eemplu de test din clasa a dua Multe date de Bias ridicat Varianţă scăzută Cmpleitate Bias scăzut Varianţă ridicată Slide: D. Hiem 1 4 4
K-Nearest Neighbr (Cei mai aprpiaţi vecini) Avantaje Simplu (ușr de implementat pentru primă încercare); Erri mari de clasificare (nu are rezultate bune pentru prbleme cmplee); Dezavantaje Ocupă farte multă memrie (se reține în memrie tată baza de ); Lent este nevie să se cmpare elementul de clasificat cu tate trăsăturile din baza de date; Dependent de tipul de metrică utilizat. SVM liniar 1 Caută funcţie ce separă duă clase în md ptim: f() = sgn(w + b) 5 8 Clasificatr liniar SVM liniar Dacă clasele sunt liniar separabile, SVM liniar funcţinea: 0 Dar ce se întâmplă dacă baza de date este mai cmplicată? 0 Sluţie se pate mapa pe un spaţiu cu dimensiune mai mare: Caută funcție liniară care separă clasele f() = sgn(w + b) 0 6 9 SVM liniar SVM neliniar Idee de bază: spaţiul iniţial pate fi mapat către un spaţiu multidimensinal în care trăsăturile de devin liniar separabile. Φ: φ() 1 Caută funcţie ce separă duă clase în md ptim: f() = sgn(w + b) 7 30 5
SVM neliniar - eemplu Dacă se mapează funcţia ( ) (, ) ( ) ( y) (, ) ( y, y ) y y K(, y) y y SVM multiclasă Unu vs. alţii Antrenare: se antrenează câte un mdel SVM pentru fiecare clasă vs celalalte; Testare: se aplică fiecare mdel SVM şi se alcă clasa care returnează cea mai mare valare de încredere. Unu vs. unu Antrenare: se antrenează un mdel SVM pentru fiecare pereche de clase; Testare: fiecare SVM antrenat vtează pentru clasă, iar clasa desemnată va fi cea cu scrul cel mai mare. 31 34 SVM neliniar eemple de nuclee Nucleul de intersecţie de histgrmă: N I( h1, h ) min( h ( i), h ( i)) i1 Nucleu gausian: 1 K( h, h ) ep D( h1, h A 1 ) 3 1 SVM Avantaje Multe implementări: OpenCV, LibSVM, http://www.kernel-machines.rg/sftware etc, SVM nnlinear are putere de clasificare şi generalizare farte mare, fiind farte fleibil; SVM lucrează bine chiar şi cu bază de farte mică. Dezavantaje Nu eistă SVM multiclasă (trebuie cmbinate mai multe mdele SVM); Variantele nelineare sunt cstisitare din punct de vedere cmputaţinal (nu pt fi flsite pentru aplicaţii large-scale). 35 SVM multiclasă Din păcate, nu eistă un algritm SVM adaptat pentru clasificarea de multiclasă; Arbri de decizie Outlk Class În practică, se pate bţine un algritm SVM prin cmbinarea mai multr mdele SVM: 1. Unu vs. alţii,. Unu vs. unu. Sunny Overcast Rain Humidity Yes Wind High Nrmal Strng Weak N Yes N Yes Class 1 33 36 6
...... Randm frests Clasa Lgistic regressin N eamples M features Clasa 1 Preluare vt majritar 37 40 Naive Bayes Clasificatrul Naive Bayes reprezintă un algritm prbabilistic bazat pe terema lui Bayes, care pleacă de la premisa de independență între trăsături: Neural netwrks Likelihd Prir Class Nrmalizatin Cnstant 38 Class 1 41 Regresie lgistică Utilizează funcții matematice simple între cele duă clase pentru a creea granițe între acestea. Funcții plinmiale Funcția lgistică 39 4 7
Întrebări? 43 46 Cncluzii N free lunch: algritmii de machine learning sunt unelte cu avantaje şi dezavantaje; Mai întâi trebuie încercaţi clasificatrii mai simpli dacă se mapează suficient de bine pe aplicație și abia api cei mai cmplicați; Este mai bine să avem trăsături mai inteligente şi clasificatri mai simpli decât clasificatri farte cmplicaţi şi trăsături simple; Să se flsească clasificatri mai cmplicaţi atunci când avem un set farte divers şi mare de (pentru un bun cmprmis biasvarianţă). 44 Cncluzii Nici un clasificatr nu este cel mai bun decât ceilalți: este nevie de a face presupuneri pentru a generaliza prblema. Sunt trei tipuri de erri, generate de: Zgmt: inerente și nu care nu pt fi ttal înlăturate; Bias: datrită presupunerilr și simplificărilr făcute; Varianță: datrită inabilității de a estima perfect parametrii datrită vlumului limitat al datelr de. 45 8