Nello post precedente vi ho introdotto quelli che sono i concetti base dell' Apprendimento Automatico; senza scendere troppo nelle dimostrazioni matematiche vi illustrerò una serie di metodi basati sull'Apprendimento con supervisone di nome Support Vector Machines (SVM). Le SVM trovano impiego sia nella risoluzione di problemi di classificazione (spam) che nei problemi di regressione. Prima di scendere in dettaglio devo fare alcuni richiami matematici sui vettori e le loro proprietà ... speriamo bene fingerscrossed

 

In R2 (geometricamente, nel piano) i punti sono rappresentati da coppie ordinate (x1,x2) di numeri reali (coordinate).Tali punti sono facilmente rappresentabili attraverso dei segmenti orientati

                                                              

 

 

Un punto P (un vettore) in R2 è, quindi, una coppia ordinata.Sull’insieme di questi punti possiamo fare due operazioni fondamentali:

  • Addizione  
  • Moltiplicazione (equivale a riscalare il punto)

                                    

 

Un ultima cosa e poi si parte eh... il prodotto interno (scalare) fra due vettori X=(x1,x2.....xn) e Y=(y1,y2.....yn) è uno scalare definito come

                                                                         

Una SVM viene comunemente chiamata anche classificatore a massimo margine in quanto la classificazione che effettua questa macchina, nella sua forma canonica, trova, dato un insieme di punti linearmente separabili, l' iperpiano migliore ( quello a massimo margine).Per comprendere meglio sotto in figura  vi mostro un insieme di punti appartenenti a due classi (Classe +1 ad esempio sono spam, Classe -1 ad esempio nn sono spam) e linearmente separabili (ovvero esiste almeno un iperpiano che sia in grado di dividerli).            

                                                                  

Come si può osservare in figura esistono diversi iperpiani (linee tratteggiate) che riescono a dividere il piano due (semispazi). Quale sarà l'iperpiano migliore? Risposta: quello a massimo margine!!!!! Infatti in questo caso il classificatore riesce ad avere un potere di generalizzazione migliore risultando più robusto nei confronti dell'aggiunta di possibili punti candidati poichè viene massimizzata la distanza fra i punti e l'iperpiano.

                                                                                

                                                                                   

 

Nella figura precedente i punti cerchiati e riquadrati sono quelli che definiscono i famosi vettori di supporto. A questo punto dovrei mettermi giù a scrivere quintalate di dimostrazioni e formule per arrivare a capire come si calcola questo "fatidico" iperpiano ma non è il caso smile_regular. Un ultima domanda che sicuramente (non) vi sarete chiesti: e se sti benedetti punti non sono linearmente separabili come si fa? Bene con le SVM si potrebbe ovviare a ciò "rilassando" il problema accettando quindi un certo numero di errori oppure si potrebbe aumentare la complessità del classificatore (non si classifica più attraverso un iperpiano ma con una superficie  più complessa). In realtà esiste un'altra brillante soluzione che tra l'altro sfrutta una buzzword di noi programmatori:  si introduce un mapping (mitico mapping) F(x) ad uno spazio di dimensione molto più grande in cui gli insiemi corrispondenti siano linearmente separabili.
Quindi, invece di aumentare la complessità del classificatore (che resta un iperpiano) si aumenta la dimensione dello spazio delle features (insieme di misure che caratterizzano il nostro oggetto). In dipendenza della dimensione dello spazio in cui è formulato il problema originale, il mapping può portare anche a dimensioni molto elevate (~10^6) dello spazio trasformato. Per farvi capire questo concetto vi riporto l'esempio del mitico XOR.

                                                                                 

Penso che trovare un iperpiano che separi lo spazio in due semispazi sia piuttosto dura ehh smile_teeth. E allora come vi dicevo si va ad aumentare le dimensioni dello spazio delle features...

                                                                                    

Come si può osservare in fugura, aumentando le features (in questo caso aggiungendo la feature X3 ) si riesce a trovare un iperpiano di separazione. Un ultima considerazione da fare è  che data la dimensione dello spazio trasformato le funzioni di mapping F(.) potrebbero essere molto complesse da valutare.
Si introducono allora quelle che vengono definite funzioni kernel che hanno il compito di mascherare a livello computazionale il mapping nello spazio N-dimensionale delle features.

Spero di non aver messo troppa carne al fuoco ma spero anche di essere stato abbastanza chiaro, tenete presente che questi argomenti andrebbero trattati con molto più rigore matematico/statistico... Nel prossimo post vedremo come mettere in pratica quello che vi ho detto oggi. Se avete qualche dubbio chiedetelo pure nel feedback.

Ad maiora...

Technorati tags: ,