support vector machines macchine a vettori di supporto
TRANSCRIPT
![Page 1: Support Vector Machines Macchine a vettori di supporto](https://reader035.vdocuments.pub/reader035/viewer/2022062312/5542eb4f497959361e8bef08/html5/thumbnails/1.jpg)
Support Vector MachinesMacchine a vettori di supporto
![Page 2: Support Vector Machines Macchine a vettori di supporto](https://reader035.vdocuments.pub/reader035/viewer/2022062312/5542eb4f497959361e8bef08/html5/thumbnails/2.jpg)
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
![Page 3: Support Vector Machines Macchine a vettori di supporto](https://reader035.vdocuments.pub/reader035/viewer/2022062312/5542eb4f497959361e8bef08/html5/thumbnails/3.jpg)
Separatori Lineari• Quale separatore è ottimo?
![Page 4: Support Vector Machines Macchine a vettori di supporto](https://reader035.vdocuments.pub/reader035/viewer/2022062312/5542eb4f497959361e8bef08/html5/thumbnails/4.jpg)
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
![Page 5: Support Vector Machines Macchine a vettori di supporto](https://reader035.vdocuments.pub/reader035/viewer/2022062312/5542eb4f497959361e8bef08/html5/thumbnails/5.jpg)
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
![Page 6: Support Vector Machines Macchine a vettori di supporto](https://reader035.vdocuments.pub/reader035/viewer/2022062312/5542eb4f497959361e8bef08/html5/thumbnails/6.jpg)
Zona all’interno della
quale si assegna la
classificazione “+1”
Zona all’interno della
quale si assegna la
classificazione “-1”
Zona di incertezza
![Page 7: Support Vector Machines Macchine a vettori di supporto](https://reader035.vdocuments.pub/reader035/viewer/2022062312/5542eb4f497959361e8bef08/html5/thumbnails/7.jpg)
w y(x)= wTx+b
w è il vettore perpendicolare al piano
di separazione
b è la distanza dall’origine
x
![Page 8: Support Vector Machines Macchine a vettori di supporto](https://reader035.vdocuments.pub/reader035/viewer/2022062312/5542eb4f497959361e8bef08/html5/thumbnails/8.jpg)
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
![Page 9: Support Vector Machines Macchine a vettori di supporto](https://reader035.vdocuments.pub/reader035/viewer/2022062312/5542eb4f497959361e8bef08/html5/thumbnails/9.jpg)
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
![Page 10: Support Vector Machines Macchine a vettori di supporto](https://reader035.vdocuments.pub/reader035/viewer/2022062312/5542eb4f497959361e8bef08/html5/thumbnails/10.jpg)
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
![Page 11: Support Vector Machines Macchine a vettori di supporto](https://reader035.vdocuments.pub/reader035/viewer/2022062312/5542eb4f497959361e8bef08/html5/thumbnails/11.jpg)
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
![Page 12: Support Vector Machines Macchine a vettori di supporto](https://reader035.vdocuments.pub/reader035/viewer/2022062312/5542eb4f497959361e8bef08/html5/thumbnails/12.jpg)
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
![Page 13: Support Vector Machines Macchine a vettori di supporto](https://reader035.vdocuments.pub/reader035/viewer/2022062312/5542eb4f497959361e8bef08/html5/thumbnails/13.jpg)
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
![Page 14: Support Vector Machines Macchine a vettori di supporto](https://reader035.vdocuments.pub/reader035/viewer/2022062312/5542eb4f497959361e8bef08/html5/thumbnails/14.jpg)
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
![Page 15: Support Vector Machines Macchine a vettori di supporto](https://reader035.vdocuments.pub/reader035/viewer/2022062312/5542eb4f497959361e8bef08/html5/thumbnails/15.jpg)
Graficamente:
1),(
),(22
yxyxg
yxyxf
cyxg
yxyxf
),(
),( 22
• Due esempi:
![Page 16: Support Vector Machines Macchine a vettori di supporto](https://reader035.vdocuments.pub/reader035/viewer/2022062312/5542eb4f497959361e8bef08/html5/thumbnails/16.jpg)
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 ),...,(),...,(),...,,(
![Page 17: Support Vector Machines Macchine a vettori di supporto](https://reader035.vdocuments.pub/reader035/viewer/2022062312/5542eb4f497959361e8bef08/html5/thumbnails/17.jpg)
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
![Page 18: Support Vector Machines Macchine a vettori di supporto](https://reader035.vdocuments.pub/reader035/viewer/2022062312/5542eb4f497959361e8bef08/html5/thumbnails/18.jpg)
Calcola le derivate parziali di nell’esempio precedente
0),1(2
)),((2
wxw
wfL
0)(
0)(
wxL
xwxwwL
![Page 19: Support Vector Machines Macchine a vettori di supporto](https://reader035.vdocuments.pub/reader035/viewer/2022062312/5542eb4f497959361e8bef08/html5/thumbnails/19.jpg)
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
![Page 20: Support Vector Machines Macchine a vettori di supporto](https://reader035.vdocuments.pub/reader035/viewer/2022062312/5542eb4f497959361e8bef08/html5/thumbnails/20.jpg)
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
![Page 21: Support Vector Machines Macchine a vettori di supporto](https://reader035.vdocuments.pub/reader035/viewer/2022062312/5542eb4f497959361e8bef08/html5/thumbnails/21.jpg)
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
![Page 22: Support Vector Machines Macchine a vettori di supporto](https://reader035.vdocuments.pub/reader035/viewer/2022062312/5542eb4f497959361e8bef08/html5/thumbnails/22.jpg)
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
![Page 23: Support Vector Machines Macchine a vettori di supporto](https://reader035.vdocuments.pub/reader035/viewer/2022062312/5542eb4f497959361e8bef08/html5/thumbnails/23.jpg)
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
![Page 24: Support Vector Machines Macchine a vettori di supporto](https://reader035.vdocuments.pub/reader035/viewer/2022062312/5542eb4f497959361e8bef08/html5/thumbnails/24.jpg)
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
![Page 25: Support Vector Machines Macchine a vettori di supporto](https://reader035.vdocuments.pub/reader035/viewer/2022062312/5542eb4f497959361e8bef08/html5/thumbnails/25.jpg)
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)
![Page 26: Support Vector Machines Macchine a vettori di supporto](https://reader035.vdocuments.pub/reader035/viewer/2022062312/5542eb4f497959361e8bef08/html5/thumbnails/26.jpg)
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
![Page 27: Support Vector Machines Macchine a vettori di supporto](https://reader035.vdocuments.pub/reader035/viewer/2022062312/5542eb4f497959361e8bef08/html5/thumbnails/27.jpg)
Non-linear SVMs: Feature spaces
• Proiettare in uno spazio nel quale i dati risultino separabili:
: x (x)
![Page 28: Support Vector Machines Macchine a vettori di supporto](https://reader035.vdocuments.pub/reader035/viewer/2022062312/5542eb4f497959361e8bef08/html5/thumbnails/28.jpg)
Esempio di funzione
![Page 29: Support Vector Machines Macchine a vettori di supporto](https://reader035.vdocuments.pub/reader035/viewer/2022062312/5542eb4f497959361e8bef08/html5/thumbnails/29.jpg)
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
![Page 30: Support Vector Machines Macchine a vettori di supporto](https://reader035.vdocuments.pub/reader035/viewer/2022062312/5542eb4f497959361e8bef08/html5/thumbnails/30.jpg)
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)
![Page 31: Support Vector Machines Macchine a vettori di supporto](https://reader035.vdocuments.pub/reader035/viewer/2022062312/5542eb4f497959361e8bef08/html5/thumbnails/31.jpg)
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,
![Page 32: Support Vector Machines Macchine a vettori di supporto](https://reader035.vdocuments.pub/reader035/viewer/2022062312/5542eb4f497959361e8bef08/html5/thumbnails/32.jpg)
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
![Page 33: Support Vector Machines Macchine a vettori di supporto](https://reader035.vdocuments.pub/reader035/viewer/2022062312/5542eb4f497959361e8bef08/html5/thumbnails/33.jpg)
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)
![Page 34: Support Vector Machines Macchine a vettori di supporto](https://reader035.vdocuments.pub/reader035/viewer/2022062312/5542eb4f497959361e8bef08/html5/thumbnails/34.jpg)
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