Sunteți pe pagina 1din 10

Proiect Inteligență artificială

Mașini cu vectori suport

Studenți:

Silviu Axinte Costin Grupa 1405B

Mihai Alexandru Olaru Grupa 1405B

Profesor : Mircea Hulea

Facultatea de Automatică și Calculatoare Iași

2018 - 2019
Descrierea problemei
Mașinile cu vector suport (”Support Vector Machines”, SVM) definesc o metodă de învățare,
cu fundamente matematice riguroase, în care ideea de bază este de a maximiza ”marginea” ce
separă instanțele din două clase diferite, maximizarea fiind rezolvată într-o manieră analitică
și nu empirică.

Pentru exemplificarea algoritmului se consideră o problemă de clasificare binară


bidimensională cu o suprafață liniară de separe. În cazul acestui proiect, cele două clase alese
drept exemplu sunt Romanele și Nuvelele.

Punctele de coordonate aleatorii reprezintă câteva date de intrare, etichetate cu clasa căreia
aparțin. Distribuția punctelor de antrenare, influențează capacitatea de a distinge cele două
clase. Teoria învățării statice încearcă să identifice caracteristicile claselor de ipoteze
învățabile sau ne-învățabile.

Ca și ipoteze de separare a elementelor din cele două clase, s-au analizat numărul de
personaje al operelor, respectiv numărul de capitole.

Set date de intrare pentru categoria Nuvelă

Titlu Număr personaje Număr capitole

Hagi Tudose - Barbu Delavrancea 6 6

Budulea Tachii - Ioan Slavici 6 5

Alexandru Lapușneanul - Costache Negruzzi 5 4

Kir Ianulea - I.L. Caragiale 4 3

Popa Tanda - Ioan Slavici 9 3

Pădureanca - Ioan Slavici 6 6

La Vulturi - Gala Galaction 2 8

Scormon - Ioan Slavici 5 3

În vreme de razboi - I.L.Caragiale 4 3

Set date de intrare pentru categoria Roman


Titlu Număr personaje Număr capitole

Maytreyi - Mircea Eliade 7 15

Ultima noapte de dragoste prima noapte de razboi 7 13


- Camil Petrescu

Ion - Liviu Rebreanu 26 13

Fratii Karamazov - Dostoievski 9 50

Crima si pedeapsa - Dostoievski 6 12

Morometii - Marin Preda 15 29

Enigma Otiliei - George Calinescu 11 20

Minunata lume noua - Aldous Huxley 8 17

Mândrie și prejudecată - Jane Austen 23 22

Mizerabilii - Victor Hugo 19 36

O mie nouă sute optzeci și patru - George Orwell 7 25

Silence - Shusaku Endo 10 16

Ideea fundamentală ce a condus la dezvoltarea mașinilor cu vector suport este determinarea


unui echilibru între capacitatea metodei de generalizare și de învăța orice mulțime de
antrenare și eroarea obținută pentru antrenare.

Rezolvarea problemei de clasificare presupune, găsirea unei drepte ce poate împărți planul în
două suprafețe. În cazul nostru problema de clasificare este una binară, dacă problema
conține mai multe dimensiuni atunci dreapta se transformă într-un hiperplan.

Având mai multe opțiuni la dispoziție, se pune întrebarea care dintre acestea este mai bună,
încercând implementarea unei posibilități de generalizare a modelului pentru clasificarea unor
noi instanțe.

În funcție de modelul folosit ca și date de antrenare putem obține, clasificări cu mici variații
în zonele de conflict. (Locul în care cele două clase se diferențiază mai dificil - Ex : O nuvelă
cu subiect de roman).

Generalizarea cea mai bună este făcută de modelul care asigură marginea cea mai mare de
demarcație între clase.
Fig.1 Problema de clasificare cu clase separabile liniar

În cazul de față, problema de clasificare are 2 atribute (Număr Capitole, Număr Personaje) și
suprafața de separare este o dreaptă care împarte planul în două semiplane. În general,
hiperspațiul nD corespunzător unei probleme cu n atribute este împărțit în două de către un
hiperplan (n-1)D.
Aspecte teoretice privind algoritmul
Pentru a separa datele în clase diferite se folosește hiperplanul.
Un hiperplan este unu subspațiu al spațiului în care se afla datele. Ecuația hiperplanului este 0
= w*x+b, unde w poate avea oricâte dimensiuni.

Clasificarea datelor folosing un hiperplan


De acest hiperplan ne folosim pentru a clasifica date care vor fi introduse ulterior. Se verifică
poziția, conform coordonatelor x, pentru a prezice clasa din care face parte.

Svm rezolva problema găsirii celui mai optim hiperplan


Folosirea unui neuron pentru rezolvarea problemei găsirii unui hiperplan ar avea unele
avantaje: este un algoritm simplu, este ușor de implementat și este dovedit că va găsi
întotdeauna un hiperplan care să separe datele.
Totuși, problema cea mai mare a neuronului este că nu va găsi același hiperplan de fiecare
data. Acest lucru este o problemă deoarece dacă neuronul ne ofera un hiperplan care este
foarte aproape de unele date, putem spune că va clasifica prost datele introduse ulterior.

Cum putem sa comparam hiperplane


Pentru a găsi un hiperplan optim, avem nevoie de o metodă de a le compara. Metoda pe care
o vom folosi va fi distanța până la cel mai apropiat punct de hiperplan.

Optimizarea problemei SVM


Primind un set de date D ={(xi,yi)|xi∈ R^p, yi∈ {-1,1} } trebuie să găsim un hiperplan care
maximizează marginea (distanța până la cel mai apropiat punct).
Pentru a găsi cel mai bun hiperplan, trebuie defapt să găsim valorile lui w si b din ecuația
hiperplanului 0 = w*x + b. Pentru a afla aceste valori trebuie rezolvata următoarea problemă
de optimizare:

unde

După câteva calcule matematice, problema optimizării se reduce la următoarea problemă:

Problema multiplicatorilor Lagrange

Pentru a rezolva problema descrisă mai sus se poate apela la metoda multiplicatorilor
Lagrange, care gasește minimul sau maximul unei funcții atunci când există restricții de
egalitate.
Aplicând aceasta metodă pentru a rezolva problema descrisă mai sus, obținem următoarea
problemă Lagrange:

Ducând mai departe calculele și înlocuind în funcția Lagrange variabilele w si b, vom obține
următoarea problemă de optimizare care este mai simplă deoarece trebuie să găsim doar
multiplicatorii Lagrange pentru a rezolva problema:

Condițiile Karush-Kuhn-Tucker
Deoarece metoda multiplicatorilor Lagrange este folosită doar atunci când avem constrângeri
de egalitate, există regulile KKT care atunci când sunt respectate putem fi siguri că găsim o
soluție optimă pentru o funcție cu constrângeri de inegalitate, aplicând metoda
multiplicatorilor Lagrange.
Condițiile Karush-Kuhn-Tucker sunt:
● Condiția staționară

● Condiția primară

● Condiția de fezabilitate

Ce facem după ce aflăm valorile multiplicatorilor?


Multiplicatorii Lagrange pot fi folosiți pentru a afla valoarea lui w:

Iar valoarea lui b se poate afla folosind următoarea formulă:


Metoda de rezolvare
Algoritmul SMO (Sequential minimal optimization)
SMO este un algoritm iterativ care rezolvă problema descrisă anterior. Acest algoritm
împarte problema în bucăți mai mici care se rezolvă analitic.
Ținând cont de condiția KKT1, bucățile cele mai mici în care putem împărți problema este de
doi multiplicatori Lagrange.
În acest caz, condițiile care trebuie întărite sunt :

unde k este produsul dintre y(i) și alpha(i) cu semn schimbat.

Algoritmul SMO poate fi descris cu următorul bloc pseudocod:


1) Găsim un alpha care nu respectă condițiile KKT
2) Găsim un alpha2 și optimizăm perechea (alpha, alpha2)
3) Repetam pașii 1 și 2
Ne oprim când toți multiplicatorii Lagrange respectă condițiile KKT.

Implementarea problemei
Înainte de a începe executarea algoritmului SMO, setăm ca și date inițiale toți alpha cu
valoarea 0, și astfel forțăm respectarea condiției staționare KKT.

Algoritmul SMO iterează prin toate valorile lui alpha, iar când este găsită o valoare care nu
respectă condițiile KKT atunci încearcă să îi optimizeze valoarea.
Funcția bounds gasește valori pentru alpha(i) si alpha(j) astfel încât aceste valori să respecte
condițiile KKT.

Calculul lui w se face conform formulei prezentate anterior. Această funcție se apelează după
ce algoritmul SMO își termina execuția.
Rezultate obținute și concluzii
Mașinile cu vector suport sunt foarte des utilizate pentru probleme de clasificare, regresie, dar
și pentru alte tipuri de probleme precum selectarea trăsăturilor (engl.”feature selection”) sau
clasificări cu o singură clasă.

Fundamentele matematice stau la baza metodei, iar problema de optimizare presupune o


rezolvare fără optime locale. Transformând formularea primară în formularea duală,
optimizarea nu mai depinde de dimensiunea spațiului inițial al problemei. Numărul
parametrilor aleși de utilizatori este unul relativ mic. De asemenea, mașinile cu vectori suport
demonstrează o capacitate foarte bună de generalizare.

Pe de altă parte alegerea zonei de nucleu ( zona în care obiectele nu se pot clasifica foarte
bine și se poate apela la mai multe dimensiuni pentru a clasifica) depinde mult de experiența
utilizatorului și se face de multe ori prin încercare și eroare.

În urma rulării algoritmului cu setul de date prezentat, se determină coeficienții astfel încât
dreapta care separă cele două clase să fie extrem de bine determinată. Simularea a determinat
trei puncte din mulțimea nuvelelor și un punct din mulțimea romanelor ce ajută la trasarea
linii.

Parametrul de cost C (măsură a erorii admise în clasificare) controlează compromisul dintre


erorile pe mulțimea de antrenare și forțarea marginii stricte.
Setul de date pentru antrenament are o influență maximă pentru a trasa linia, astfel dacă în
datele de intrare se găsește de exemplu o nuvelă cu subiect de roman (un număr mare de
capitole), unele romane/nuvele pot fi interpretate ca și obiecte ce nu pot fi clasificate.

REPARTIZAREA SARCINILOR DE LUCRU :


Echipa este alcătuită din doi membri : Silviu Costin Axinte și Mihai Alexandru Olaru,
studenți din grupa 1405B.
În prima parte a proiectului, cei doi membri ai echipei s-au documentat cu privire la tema
primită ca proiect, după care au încercat să găsească un subiect în care algoritmul ar putea fi
folosit. Principalele surse de documentație sunt prezentate în secțiunea Bibliografie.

În urma alegerii temei Silviu Costin Axinte a fost responsabil pentru crearea structurii de
bază a proiectului și implementarea funcțiilor algoritmului SMO.

Mihai Alexandru Olaru a pregătit setul de date pentru antrenamentul mașinilor cu vector
suport și făcut interfața grafică și funcția de interacțiune cu utilizatorul, ca acestă să poată
adăuga noi instanțe.
Partea de integrare, de testare și de depistare a erorilor a fost făcută prin colaborarea celor doi
membri ai echipei.

Pentru documentație Silviu Costin Axinte a redactat partea de optimizare a problemei SVM și
metoda de rezolvare, în timp ce Mihai Alexandru Olaru a redactat partea de introducere,
seturile de date și rezultatele obținute în urma simulării.

BIBLIOGRAFIE:
● Yuh-Jye Lee (2017), Sequential Minimal Optimization, Data Science and Machine
Intelligence Lab National Chiao Tung University
http://jupiter.math.nctu.edu.tw/~yuhjye/assets/file/teaching/2017_machine_learning/S
MO%20algorithm.pdf
● Alexandre Kowalczyk(2017), Support Vector Machines Succintly, Syncfusion Inc
http://jermmy.xyz/images/2017-12-23/support_vector_machines_succinctly.pdf
● Florin Leon (2014), Inteligență artificială: Mașini cu vector suport, Editura
Tehnopress

S-ar putea să vă placă și

  • Filtre 1
    Filtre 1
    Document12 pagini
    Filtre 1
    Mihai Alexandru Olaru
    Încă nu există evaluări
  • JAVAC04 Prezentare
    JAVAC04 Prezentare
    Document20 pagini
    JAVAC04 Prezentare
    Mihai Alexandru Olaru
    Încă nu există evaluări
  • Curs Pedagogie I
    Curs Pedagogie I
    Document77 pagini
    Curs Pedagogie I
    Cristi Munteanu
    Încă nu există evaluări
  • AES Implementat Pe FPGA
    AES Implementat Pe FPGA
    Document15 pagini
    AES Implementat Pe FPGA
    Mihai Alexandru Olaru
    Încă nu există evaluări
  • JAVAC01 Prezentare
    JAVAC01 Prezentare
    Document43 pagini
    JAVAC01 Prezentare
    Mihai Alexandru Olaru
    Încă nu există evaluări
  • JAVAC03 Prezentare
    JAVAC03 Prezentare
    Document23 pagini
    JAVAC03 Prezentare
    Mihai Alexandru Olaru
    Încă nu există evaluări
  • Lab1 FormaPoloneza
    Lab1 FormaPoloneza
    Document16 pagini
    Lab1 FormaPoloneza
    Mihai Alexandru Olaru
    Încă nu există evaluări
  • JAVAC05 Prezentare
    JAVAC05 Prezentare
    Document47 pagini
    JAVAC05 Prezentare
    Mihai Alexandru Olaru
    Încă nu există evaluări
  • Colinde Mai Putin Cunoscute
    Colinde Mai Putin Cunoscute
    Document6 pagini
    Colinde Mai Putin Cunoscute
    ElénaBroscoi
    Încă nu există evaluări
  • Curs 01
    Curs 01
    Document5 pagini
    Curs 01
    Cristi Sava
    Încă nu există evaluări
  • Logica Matematica
    Logica Matematica
    Document2 pagini
    Logica Matematica
    Mihai Alexandru Olaru
    Încă nu există evaluări
  • JAVAC02 Prezentare
    JAVAC02 Prezentare
    Document17 pagini
    JAVAC02 Prezentare
    Mihai Alexandru Olaru
    Încă nu există evaluări
  • Uniunea Europeana
    Uniunea Europeana
    Document32 pagini
    Uniunea Europeana
    Mihai Alexandru Olaru
    Încă nu există evaluări
  • Alga
    Alga
    Document15 pagini
    Alga
    Rusu Radu Ionel
    Încă nu există evaluări
  • Iapa Lui VodA
    Iapa Lui VodA
    Document2 pagini
    Iapa Lui VodA
    Mihai Alexandru Olaru
    Încă nu există evaluări
  • Rânduiala Utreniei de Duminică
    Rânduiala Utreniei de Duminică
    Document6 pagini
    Rânduiala Utreniei de Duminică
    ecleziarhbarbosradu
    86% (7)
  • Regimuri Totalitare
    Regimuri Totalitare
    Document2 pagini
    Regimuri Totalitare
    Mihai Alexandru Olaru
    Încă nu există evaluări
  • Optica Geometrica
    Optica Geometrica
    Document8 pagini
    Optica Geometrica
    Cristi Ciureanu
    100% (1)
  • Termeni Ideoologii
    Termeni Ideoologii
    Document3 pagini
    Termeni Ideoologii
    Mihai Alexandru Olaru
    Încă nu există evaluări
  • CRACIUN
    CRACIUN
    Document5 pagini
    CRACIUN
    Mihai Alexandru Olaru
    Încă nu există evaluări
  • Clasa Graf Neorientat
    Clasa Graf Neorientat
    Document22 pagini
    Clasa Graf Neorientat
    Mihai Alexandru Olaru
    Încă nu există evaluări
  • Index 3427
    Index 3427
    Document7 pagini
    Index 3427
    Cotruta Victor
    Încă nu există evaluări
  • Arad Obiectiva Turistice
    Arad Obiectiva Turistice
    Document5 pagini
    Arad Obiectiva Turistice
    Mihai Alexandru Olaru
    Încă nu există evaluări
  • Esteri
    Esteri
    Document11 pagini
    Esteri
    Mihai Alexandru Olaru
    Încă nu există evaluări
  • A1caracterizare Stefan Gheorghidiu
    A1caracterizare Stefan Gheorghidiu
    Document2 pagini
    A1caracterizare Stefan Gheorghidiu
    Mihai Alexandru Olaru
    Încă nu există evaluări
  • Alexandru Lăpuşneanul
    Alexandru Lăpuşneanul
    Document3 pagini
    Alexandru Lăpuşneanul
    Mihai Alexandru Olaru
    Încă nu există evaluări
  • Padurea de Aur
    Padurea de Aur
    Document1 pagină
    Padurea de Aur
    Mihai Alexandru Olaru
    Încă nu există evaluări
  • Familia Lui Jupiter
    Familia Lui Jupiter
    Document11 pagini
    Familia Lui Jupiter
    Mihai Alexandru Olaru
    Încă nu există evaluări