support vector machines macchine a vettori di supporto

Post on 01-May-2015

226 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Support Vector MachinesMacchine a vettori di supporto

Separatori Lineari (Percettrone)

• La classificazione binaria può essere vista come un problema di separazione di classi nello spazio delle feature

wTx + b = 0

wTx + b < 0

wTx + b > 0

f(x) = sign(wTx + b)=+1

-1

w vettore dei pesi, wT trasposta di w

x vettore associato ad una istanza di X

wTx prodotto scalare

bbxw Tm

iii

xw1

Separatori Lineari• Quale separatore è ottimo?

Margine di Classificazione

• La distanza di un esempio dall’iperpiano di separazione è r

• Gli esempi più vicini all’iperpiano si chiamano support vectors.

• Il margine dell’iperpiano di separazione è la distanza minima fra le due classi

r

Classificazione con il margine massimo

• Massimizzare il margine corrisponde ad individuare l’iperpiano ottimo h

• Questo implica che solo alcuni esempi sono importanti per l’apprendimento, i vettori di supporto. Gli altri possono essere ignorati

Zona all’interno della

quale si assegna la

classificazione “+1”

Zona all’interno della

quale si assegna la

classificazione “-1”

Zona di incertezza

w y(x)= wTx+b

w è il vettore perpendicolare al piano

di separazione

b è la distanza dall’origine

x

SVM lineare• Se assumiamo che i dati di addestramento D={(xi ,yi)}

si trovino a distanza almeno 1 dall’iperpiano, valgono le seguenti condizioni per xi in D:

• Per i vettori di supporto, la diseguaglianza diventa una eguaglianza;

• Indichiamo con la distanza fra i piani P+: wTxi + b = 1 e P-: wTxi + b = -1

• Sia x+ un punto di P+ e x- un punto di P- a distanza minima da x+

=|| x+ - x- || , (x+ - x-)=w

wTxi + b ≥ 1 se f(xi) = +1

wTxi + b ≤ -1 se f(xi) = -1

Perché?

y(x)= wTx+b

w

x+

x-

P-

P+

Se x+ e x- sono a distanza

minima , muoversi da x+ a x-

corrisponde ad un percorso

nella direzione di w

Per riassumere:

T

T

Mettendo assieme:• Abbiamo dunque:

• Per massimizzare il margine, dobbiamo minimizzare ||w|| – Questo è l’obiettivo di SVM!

ww

wwww

1=wwxww))xw

xwxw

TT

TTT

TT

2||||

21

)(1((

1,1

1=

bb

bb

wxxwxx

SVM lineare (2)• Il problema di ottimizzazione quadratica che ne

risulta è:

• Una formulazione migliore basata sulla “programmazione quadratica” è:

Trova w e b tali che

è massimo; e per ogni {(xi ,yi)}D

wTxi + b ≥ 1 se yi=1; wTxi + b ≤ -1 se yi = -1

w

2

Trova w e b t.c.

1/2 wTw (=||w||2) è minimizzata (1/2 utilizzato per convenienza matematica);

e per ogni {(xi ,yi)}: yi (wTxi + b) ≥ 1

Risolvere il problema di ottimizzazione

• Si deve ottimizzare una funzione quadratica soggetta a vincoli lineari: yi (wTxi + b) ≥ 1

• I problemi di ottimizzazione quadratica sono problemi di programmazione matematica ben noti, per i quali esistono vari algoritmi.

• La soluzione comporta l’utilizzo di Lagrangiani

Trovare i minimi di una funzione

• Dall’analisi matematica, data una funzione

• l’identificazione dei minimi della funzione è ottenuta mediante il gradiente di f

• Esempio:

• f ha un minimo in (0, 0)

),...,( 1 kxxf

02

04

2,4,

2),( 22

y

x

yxy

f

x

ff

yxyxf

Minimi di una funzione vincolata• Ma se la funzione è vincolata da una serie di

vincoli:

• Dobbiamo trovare i valori estremi di f per i soli punti ristretti dai vincoli g

• I valori minimi di f sono ottenuti quando le superfici si “toccano”

),...,(

),...,(

1

11

kn

k

xxg

xxg

Graficamente:

1),(

),(22

yxyxg

yxyxf

cyxg

yxyxf

),(

),( 22

• Due esempi:

Lagrangiani• Data una funzione da ottimizzare f ed un

insieme di condizioni g1, ..., gn, un Lagrangiano è una funzione L(f,g1, ..., gn,1, ...,n) che “incorpora” le condizioni nel problema di ottimizzazione

n

ikiikn xxgxxffL

1111 ),...,(),...,(),...,,(

Lagrangiani• Ad esempio, se f = w2/2 e g1 = wx -1 0, allora

• Si calcolano le derivate rispetto alle variabili del lagrangiano (w e in questo esempio) e si impone siano =0

• Risolvendo il sistema di equazioni ottenuto, si ricavano i valori che soddisfano il problema

• L deve essere massimizzata rispetto alle variabili primarie (w nell’esempio), ma minimizzata rispetto alle variabili duali ()

0),1(2

),(2

wxw

wL

Calcola le derivate parziali di nell’esempio precedente

0),1(2

)),((2

wxw

wfL

0)(

0)(

wxL

xwxwwL

Torniamo al problema di SVM• Minimizzare il seguente Lagrangiano:

• Imponiamo dapprima:

• La condizione porta a selezionare solo un sotto-insieme di vettori, per i quali questa condizione deve essere verificata ( > 0), ovvero i Support Vectors (i vettori di “frontiera”), da cui:

0),1))(((2

1),,(

1

2

iT

i

m

ii bybL ixwww

m

iiii

m

iii yy

cuidaw

L

b

L

11

(2)0)1(

:0)(

,0)(

x

w

SVi

iii y xw

(xi, yi) learning set

Langrangiani: problema primario e problema duale

)2

1max(

)0)()()()(2

1),,( minmax

))(2

1(min),,( min

..1,

,),...(

,,

1

ji

jijiwα

iww

xx

xxxxαw

wxwwαw

T

njijiji

ii

iij

jj

Ti

iij

jj

Ti

ii

b

iiii

Ti

ii

T

bb

yy

byyyybL

ybybL

m

Problema duale

Problema primario

I vettori per cui *>0 sono detti vettori di supporto.

1) Formulazione del

problema di

ottimizzazione:

2) Espressione del

problema con un

Lagrangiano:

3)Ottieni la

soluzione

(teorema di Kuhn-

Tucker)

4) Ottieni la formulazione

duale eliminando le

variabili primarie w,b in 2)

(formule E1 e E2)

RIASSUMIAMO

Funzione di decisione

• La funzione di decisione era:

• ma avendo la condizione:

• otteniamo:

)sgn()( bxf T xw

m

iiii y

1

xw

)sgn()(1

byxfm

i

Tii

xxi

Margini “Soft” • Se il set di addestramento non è linearmente separabile?

• Si introducono le slack variables i che consentono la classificazione errata di qualche punto.

i

i

0i

Soft Margin Classification

• Problema lineare:

• Con le slack variables:

• Il parametro C controlla l’overfitting.

Trova w e b t.c.

1/2 wTw è minimizzata e per ogni {(xi ,yi)}yi (wTxi + b) ≥ 1

Trova w e b t.c.

1/2 wTw + C∑ i è minimizzata e per ogni {(xi ,yi)}yi (wTxi + b) ≥ 1- i e i ≥ 0 per ogni i

Sommario di SVM lineare

• Il classificatore (funzione obiettivo) è un iperpiano di separazione.

• I “punti” (esempi) più importanti sono i vettori di support (“sostengono” l’iperpiano, mantenedolo in equilibrio)

• Algoritmi di ottimizzazione quadratica identificano quali punti rappresentano il “supporto”

• Nella formulazione del problema e nella soluzione appaiono i

prodotti scalari: Trova 1… n t.c.

W() =∑ i - 1/2∑∑ i jyiyjxiTxj è

massimizzata e (1) ∑ iyi = 0

(2) 0 ≤ i ≤ C per ogni i

f(x) = sgn(∑ iyixiTx + b)

Non-linear SVMs

• Se i dataset sono separabili con un po’ di rumore le cose funzionano:

• Ma se il rumore è eccessivo?

• Si può proiettare il problema in uno spazio di dimensioni maggiori:

0

x2

x

0 x

0 x

Non-linear SVMs: Feature spaces

• Proiettare in uno spazio nel quale i dati risultino separabili:

: x (x)

Esempio di funzione

Funzioni Kernel

• Una funzione kernel è una funzione che corrisponde ad un prodotto scalare in uno spazio esteso

• Il classificatore lineare si basa sul prodotto scalare fra vettori dello spazio delle istanze X (quindi, non esteso): K(xi,xj)=xi

Txj

• Se ogni punto è traslato in uno spazio di dimensioni maggiori attraverso una trasformazione : x (x) il prodotto scalare diventa:

K(xi,xj)= (xi)T (xj)=x’iTx’j

dove x’i e x’j indicano trasformazioni non lineari

Funzioni kernel: un esempio• Abbiamo vettori a 2 dimensioni x=(x1, x2)

Sia K(xi,xj)=(1 + xiTxj)2

,

Dobbiamo mostrare che K(xi,xj) = (xi)T(xj):

K(xi,xj)=(1 + xiTxj)2

,= 1+ xi12xj1

2 + 2 xi1xj1 xi2xj2+ xi2

2xj22 +

2xi1xj1 + 2xi2xj2=

= (1, xi12, √2 xi1xi2 , xi2

2 , √2xi1 , √2xi2)T (1, xi12, √2 xi1xi2 , xi2

2 ,

√2xi1 , √2xi2) = (xi) T (xj), dove

(x) = (1, xi12, √2 xi1xi2 , xi2

2 , √2xi1 , √2xi2)

Quali funzioni sono Kernel?

• Per alcune funzioni K(xi,xj) verificare che

K(xi,xj)= (xi) T (xj) è complesso.

• Teorema di Mercer: – Ogni funzione la cui matrice associata Gram K

(ovvero t.c. Kij := K(xi,xj)) è positiva semidefinita è un kernel, ovvero:

CcKcc iji

ijji ,0,

Esempi di Funzioni Kernel

• Lineare: K(xi,xj)= xi Txj

• Polinomiale potenza di p:

K(xi,xj)= (1+ xi Txj)p

• Gaussiana (radial-basis function network):

• Percettrone a due stadi:

K(xi,xj)= tanh(0xi Txj + 1)

2

2

2),( ji xx

ji xx

eK

Applicazioni

• SVMs sono attualmente fra i migliori classificatori in una varietà di problemi (es. elaborazione del linguaggio e genomica).

• Il tuning dei parametri SVM è un’arte: la selezione di uno specifico kernel e i parametri viene eseguita in modo empirico (tenta e verifica: trial and test)

Applicativi

SVMlight - http://svmlight.joachims.org bsvm - http://www.csie.ntu.edu.tw/~cjlin/bsvm/ libsvm - http://www.csie.ntu.edu.tw/~cjlin/libsvm/

Differenze: funzioni Kernel utilizzabili, tecnica di ottimizzazione, possibilità di classificazione multipla, interfacce di utente

top related