Sisteme de Recunoastere a Formelor Lab 12 Clasificare cu Support Vector Machine

Similar documents
Sisteme cu logica fuzzy

Soluţii juniori., unde 1, 2

Subiecte geometrie licenta matematica-informatica 4 ani

Teorema Reziduurilor şi Bucuria Integralelor Reale Prezentare de Alexandru Negrescu

ON THE QUATERNARY QUADRATIC DIOPHANTINE EQUATIONS (II) NICOLAE BRATU 1 ADINA CRETAN 2

1.3. OPERAŢII CU NUMERE NEZECIMALE

Barem de notare clasa a V-a

UNITATEA DE ÎNVĂȚARE 3 Analiza algoritmilor

Divizibilitate în mulțimea numerelor naturale/întregi

Gradul de comutativitate al grupurilor finite 1

FORMULELE LUI STIRLING, WALLIS, GAUSS ŞI APLICAŢII

Ecuatii si inecuatii de gradul al doilea si reductibile la gradul al doilea. Ecuatii de gradul al doilea

array a[0..n-1] a[0] = v0,..., a[n-1] = vn-1

Sisteme cu logica fuzzy cu mai multe intrari (MISO)

Rezolvarea ecuaţiilor şi sistemelor de ecuaţii diferenţiale ordinare (II)

Liste. Stive. Cozi SD 2017/2018

Habilitation Thesis. Periodic solutions of differential systems: existence, stability and bifurcations

O V E R V I E W. This study suggests grouping of numbers that do not divide the number

ALGORITMI DE OPTIMIZARE IN INGINERIE ELECTRICA. Sef lucrari ing. Alin-Iulian DOLAN

Inteligenta Artificiala

Pentru clasa a X-a Ştiinţele naturii-sem II

REZUMATUL TEZEI DE DOCTORAT

Procedeu de demonstrare a unor inegalităţi bazat pe inegalitatea lui Schur

Cristalul cu N atomi = un sistem de N oscilatori de amplitudini mici;

Legi de distribuţie (principalele distribuţii de probabilitate) Tudor Drugan

Programarea Dinamica. (si alte chestii adiacente) Andrei Olariu

Câteva rezultate de algebră comutativă

INEGALITĂŢI DE TIP HARNACK ŞI SOLUŢII POZITIVE MULTIPLE PENTRU PROBLEME NELINIARE

Cercet¼ari operaţionale

MATEMATICĂ 3 PROBLEME DE REFLECŢIE

Utilizarea claselor de echivalenta in analiza asistata de calculator a sistemelor cu evenimente discrete

Reactoare chimice cu curgere piston (ideala) cu amestecare completa de tip batch (autoclava)

Metode numerice de aproximare. a zerourilor unor operatori. şi de rezolvare a inegalităţilor variaţionale. cu aplicaţii

Universitatea Politehnica Bucureşti Facultatea de Automatică şi Calculatoare Departamentul de Automatică şi Ingineria Sistemelor

Metode clasice. Camelia Chira.

PROBLEME DIVERSE lecţie susţinută la lotul de 13 de Andrei ECKSTEIN Bucureşti, 25 mai 2015

TEOREME DE PUNCT FIX PENTRU OPERATORI CE NU INVARIAZĂ DOMENIUL DE DEFINIŢIE ŞI

Support Vector Machines II. CAP 5610: Machine Learning Instructor: Guo-Jun QI

GENERATOARE DE SEMNAL DIGITALE

Teoreme de compresie-extensie de tip Krasnoselskii şi aplicaţii (Rezumatul tezei de doctorat)

Definiţie. Pr(X a) - probabilitatea ca X să ia valoarea a ; Pr(a X b) - probabilitatea ca X să ia o valoare în intervalul a,b.

PRELUCRARI PE IMAGINI BINARE (ALB/NEGRU)

ECUAŢII CU DERIVATE PARŢIALE ŞI EVALUAREA OPŢIUNILOR CU VOLATILITATE STOHASTICĂ

APLICAŢII ALE FORMULELOR LUI NEWTON PENTRU POLINOAME SIMETRICE

INCLUZIUNI OPERATORIALE PRIN TEHNICA PUNCTULUI FIX ÎN SPAŢII METRICE VECTORIALE

Procesarea Imaginilor

CURS 11: Programare dinamică - II - Algoritmica - Curs 12 1

METODE NUMERICE: Laborator #4 Eliminare gaussiană cu pivotare totală şi scalare. Algoritmul Thomas pentru rezolvarea sistemului 3-diagonal

2. Finite Impulse Response Filters (FIR)

Avem 6 tipuri de simboluri in logica predicatelor:

SIMULAREA DECIZIEI FINANCIARE

Utilizarea limbajului SQL pentru cereri OLAP. Mihaela Muntean 2015

Rezultate în Teoria Punctului Fix şi Procese Iterative cu Aplicaţii

Rădăcina pătrată a unei matrici reale de ordinul 2

1 Generarea suprafeţelor

Mugur Acu OPERATORUL INTEGRAL LIBERA-PASCU ŞI PROPRIETĂŢILE ACESTUIA CU PRIVIRE LA FUNCŢIILE UNIFORM STELATE, CONVEXE, APROAPE CONVEXE ŞI

Exemplifying the application of hierarchical agglomerative clustering (single-, complete- and average-linkage)

PROPRIETĂŢI GEOMETRICE ŞI ANALITICE ALE UNOR CLASE DE FUNCŢII UNIVALENTE

Laborator 3. Backtracking iterativ

Support Vector Machine (SVM) & Kernel CE-717: Machine Learning Sharif University of Technology. M. Soleymani Fall 2012

Siguranţa structurilor la acţiuni seismice şi climatice

Agricultural Engineering

Teoreme de Analiză Matematică - I (teorema Weierstrass-Bolzano) 1

Logică și structuri discrete. Marius Minea 25 septembrie 2017

Matematici speciale Variabile aleatoare discrete

Reactoare chimice cu curgere piston (ideala) (Plug Flow Reactor PFR) cu amestecare completa (Mixed Flow Reactor MFR) de tip batch (autoclava)

Despre AGC cuasigrupuri V. Izbaș

Modelling the Steady State Characteristic of ph Neutralization Process: a Neuro-Fuzzy Approach

Laborator 5. Instructiuni de control logic : FOR, IF, WHILE. - Staţii de lucru care au instalat Orcad9.2. si MatLab 7.1

Ordin. pentru aprobarea structurii informaţiilor înscrise pe cardul naţional de asigurări sociale de sănătate

ȘIRURI (TABLOURI UNIDIMENSIONALE)

Matematici speciale Integrarea functiilor complexe

Support Vector Machine (SVM) and Kernel Methods

COMPARATIVE DISCUSSION ABOUT THE DETERMINING METHODS OF THE STRESSES IN PLANE SLABS

Prelegerea 7. Sistemul de criptare AES. 7.1 Istoric

ARTICOLE ŞI NOTE MATEMATICE

A GENERALIZATION OF A CLASSICAL MONTE CARLO ALGORITHM TO ESTIMATE π

Graduări pe algebre de matrice

Controlul predictiv bazat pe modele intare-stare-iesire. Cuprins. 2. Modele intrare-stare-iesire :01

Probleme actuale în studiul funcţiei zeta Igusa

Alte rezultate din teoria codurilor

Matematici speciale Probleme clasice in teoria probabilitatilor

Support Vector Machine (SVM) and Kernel Methods

Polyhedral Computation. Linear Classifiers & the SVM

Counties of Romania List

Machine Learning : Support Vector Machines

O U T O F A H U N D R E D P E O P L E : T H O S E W H O A L W AY S K N O W B E T T E R ;

ELEMENTE DE DINAMICĂ ŞI GEOMETRIE PE SPAŢII VECTORIALE POISSON

Test de Departajare pentru MofM 2014 (Bucureşti) Enunţuri & Soluţii

TEZA DE DOCTORAT. probleme de optimizare infinit dimensionale

ON THE ASYMPTOTIC BEHAVIOR OF DYNAMICAL SYSTEMS AND APPLICATIONS

Testarea ipotezelor statistice

"IIITO-TEC 'NIKI" & EQUIPME

Numere prime. O selecţie de probleme pentru gimnaziu

Proiectarea Algoritmilor

GAZETA MATEMATICĂ SERIA A. ANUL XXXVI (CXV) Nr. 1 2/ 2018 ARTICOLE. Computing exponential and trigonometric functions of matrices in M 2 (C)

ROMANIAN MATHEMATICAL SOCIETY

Modelare fuzzy. Problematica modelarii Sisteme fuzzy in modelare Procedura de modelare ANFIS Generarea sistemului fuzzy initial Utilizare ANFIS

Support Vector Machine (continued)

Lucrare de cercetare postdoctorală

Transcription:

Sisteme de Recunoastere a Formelor Lab 12 Clasificare cu Support Vector Machine 1. Obiective In aceasta lucrare se va implementa clasificatorul SVM liniar si se va studia mecanismele de clasificare bazate pe vectori de suport si clasificatori cu soft margin. 2. Fundamente teoretice 2.1. Clasificatori cu separare stricta (hard-margin) Pentru a explica ce inseamna un clasificator SVM cu separare stricta se va porni de la un exmplu simplu de problema de clasificare. Se doreste separarea liniara a unei multimi de puncte in spatiul cartezian bidimensional. Un exemplu este prezentat in Fig 1.1. Fig. 1.1 O multime de puncte din doua clase liniar separabile Cum putem clasifica aceste puncte folosind o functie discriminanta liniara care minimizeaza eroarea de clasificare? Exista un numar infinit de raspunsuri, cateva drepte separatoare cu eroare 0 sunt ilustrate in Fig. 1.2. Fig. 1.2 Exemplu de clasificitori liniari cu eroare de clasificare zero

Din aceasta multime de solutii este necesar sa determinam clasificatorul optim. Pentru SVM consideram clasificatorul optim clasificatorul care maximizeaza zona de margine. Zona de margine este definita ca si latimea bandei la care poate fi extinsa linia de separare inainte sa intalnim un punct de date. (vezi Fig. 1.3). Fig. 1.3 Zona de margine pentru un clasificator liniar Clasificatorul cu zona de margine maximala este considerata optimala fiindca este robusta la outliers si are o abilitate de generalizare puternica. Fiind data o multime de puncte etichetate: { } unde Folosind o transformare de scala aplicata pe w si b conditiile sunt echivalente cu: Se stie ca: Latimea zonei de separare este: ( ) ( ) Problema maximizarii acestei expresii este dificila fiindca depinde de norma vectorului w, w, care contine radical. Se poate minimiza in locul normei, care duce la o problema de optimizare echivalenta dar rezolvabila. Cu aceasta schimbare rezulta o problema de optimizare patratica:

Sa se minimizeze expresia cu constrangerile: O reformulare mai succinta este sa se cu constrangerile ( ). Solutia la aceasta problema de optimizare se gaseste cu metoda multiplicatorilor lui Lagrange. 2.2. Clasificatori cu separare permisiva (soft-margin) In 1995, Corinna Cortes si Vladimir Vapnik au propus un alt criteriu mai permisiv care permite exemple etichetate gresit. Daca nu exista un hiperplan care separa exemplele in doua clase atunci un clasificator cu separare permisiva va alege hiperplanul care separa datele cat mai corect, maximizand distanta de la cel mai apropiat exemplu corect clasificat. Aceasta metoda introduce variabilele auxiliare, ξ i, care masoara gradul de clasificare gresita a punctului x i. Fig. 1.4 Classificatare cu separare permisiva Prin minizarea sumei i ξ i, obtinem ξ i ca fiind: ξ i sunt variabilele auxiliare de optimizare; ξ i =0 daca x i este clasificat corect, si C este numarul maxim de erori

Trebuie sa minimizam, supus la constrangerile ( ) si. Parametrul C poate fi vazut ca si un parametru care regleaza eroarea fata de zona de separare. 2.3. Support vector machine cu mapare neliniara In cazul in care datele nu sunt liniar separabile se poate aplica o transformare x i ф(x i ) care mapeaza fiecare punct intr-un spatiu cu dimensionalitate mai mare. Se doreste ca in acest spatiu punctele sa devina liniar separabile. Fiind data o multime de perechi instanta si eticheta (x i, y i ); i = 1 l unde x i R n si y {+1,-1} l, clasificatorul SVM rezolva urmatoarea problemei de optimizare: cu constrangerile: In acest caz vectorii de antrenare x i sunt mapati intr-un spatiu cu dimensionalitate mai mare (posibil infinita). Se gaseste hiperplanul separator optimal in acest spatiu. C > 0 este termenul care penalizeaza erorile de clasificare. Se defineste functia K(x i, x j ) = Φ(x i ) T Φ(x j ) ca si functia de kernel (nucleu). Se poate reformula problema de optimizare astfel incat sa folosim aceasta functie (in loc sa mapam vectorii). In literatura exista o multitudine de functii kernel, se recomanda folosirea urmatoarelor tipuri: liniar, polinomial, radial basis function si sigmoid. 3. Clasificator liniar elementar Ideea de baza pentru un clasificator elementar este sa se clasifice orice instanta pe baza distantei de la mediile claselor. Se aloca instanta la clasa cea mai apropiata. Pentru aceasta se calculeaza dreapta de separare ca fiind dreapta perpendiculara pe segmentul care uneste mediile claselor si trece prin mijlocul acestui segment.

Pentru a gasi clasa unei instante este suficient sa se calculeze produsul scalar intre w si x- c. Definim clasificatorul simplu ca si f(x) = sign(<w, x-c>). Hiperplanul H (care este o dreapta) este suprafata de separare si are ca si normala vectorul w care uneste mediile claselor. Daca se inlocuieste in produsul scalar avem formula pentru clasificator: h( x) x, x b i1,..., m Unde m este numarul total de exemple, m + este numarul exemplelor pozitive, m - este numarul exemplelor negative, α i = 1/m + daca y i =1 si α i = -1/m - daca y i =-1 si b = <c +,c>-<c -,c>. i i 4. Exercitii Ca si exercitiu veti folosi platforma denumita SVM-toy de la LIBSVM tools, care este o implementare in C++ a clasificatorilor cu separare permisiva folosind diferite functii de kernel. 1. Se descarca fisierul de zip care contine proiectul si se incarca in VisualStudio. Interfata grafica este prezentata in urmatoarea figura: Butoanele de la interfata au urmatoarele functionalitati: Change : schimba clasa punctului care va fi adaugat in spatiul de clasificare. Se poate adauga un punct nou prin click stanga in zona

ferestrei albe. Numarul maxim de clase este 3 care corespunde la 3 culori diferite RunSVM : ruleaza antrenarea unui SVM cu parametri specificati in edit boxul de langa Load Clear : sterge toate punctele din spatiul de clasificare Save : salveaza punctele din spatiul de clasificare curent intr-un fisier Load : incarca o poza bmp si deseneaza punctele din spatiul de clasificare In edit box se specifica parametri clasificatorului, contine: t 2 c 100 Vom folosi doi parametri: -t kernel_type specifica tipul functiei kernel, are valoarea implicita de 2. Se poate alege dintre urmatoarele: 0 kernel liniar: u*v 1 kernel polinomial: (gamma*u'*v + coef0)^degree 2 radial basis function: exp(-gamma* u-v ^2) 3 sigmoid: tanh(gamma*u'*v + coef0) -c cost specifica valoarea pentru parametrul C SimpleClassifier butonul lanseaza codul care urmeaza sa fie implementat (se schimba svm-toy.cpp). 2. Pentru fiecare imagine din arhiva zip se ruleaza clasificatorul SVM cu parametri diferiti si se observa rezultatul. 3. Sa se implementeze SimpleClassifier si sa se compare rezultatele cu un SVM cu kernel liniar. Codul se introduce in ramura instructiunii case din svm-toy.cpp: case ID_BUTTON_SIMPLE_CLASSIFIER: { /* **************************************** TO DO: WRITE YOUR CODE HERE FOR THE SIMPLE CLASSIFIER **************************************** */ } Se mentioneaza ca punctele pentru clasificare sunt stocate intr-o lista de puncte: list<point> point_list; cu structura unui punct fiind definita: struct point { double x, y; signed char value; }; Campul value corespunde la clasa punctelui (are valoarea 1,2 sau 3). Coordonatele punctelor sunt normalizate intre 0 si 1, iar punctul de origine (0,0) este localizat in coltul de stanga sus. Dimensiunea spatiului de clasificare este de XLEN * YLEN, in consecinta coordonatele reale corespunzatoare unui punct (x,y) vor fi (x*xlen, y*ylen).

Sa se determine w si b folosind formulele urmatoare: si sa se deseneze linia cu ecuatia: Desenarea unei linii intre doua puncte se face cu metoda: DrawLine(buffer_dc,x1, y1, x2, y2, RGB(255,0,0)); Se parcurge lista de puncte si se numara instantele din clasa 1 si clasa 2 folosind urmatorul cod: //declare an iterator list<point>::iterator p; int nrsamples1=0; int nrsamples2=0; double xc1=0,xc2=0,yc1=0,yc2=0; for(p = point_list.begin(); p!= point_list.end(); p++) { if ((*p).value==1) //point from class 1 { nrsamples1++; xc1 =(*p).x; //normalized x coordinate of the current point yc1 =(*p).y; //normalized y coordinate of the current point } } if ((*p).value==2) //point from class 2 { nrsamples2++; xc2 =(*p).x; //normalized x coordinate of the current point yc2 =(*p).y; //normalized y coordinate of the current point }

Exemplu de rezultat: Detalii: - punctele 2D care vor fi clasificate - 2 clase, 2 trasaturi (x 1 si x 2 ) - Separatorul generat de algoritmul Simple Classifier este linia rosie - Separarea indicata prin culori diferite este cea obtinuta de un SVM cu kernel liniar (-t 0) si cost C=100 (-c 100) Se observa: - Marginea maximizata obtinuta cu SVM - Punctele clasificate gresit cu classificatorul simplu 4. References [1] Jinwei Gu - An Introduction to SVM: http://www1.cs.columbia.edu/~belhumeur/courses/biometrics/2009/svm.ppt [2] J. Shawe-Taylor, N. Cristianini: Kernel Methods for Pattern Analysis. Pattern Analysis (Chapter 1) [3] B. Scholkopf, A. Smola: Learning with Kernels. A Tutorial Introduction (Chapter 1), MIT University Press. [4] LIBSVM: http://www.csie.ntu.edu.tw/~cjlin/libsvm/