1. Support Vector Machines:
Ciaparrone Gioele
Metodi di Ottimizzazione - a.a. 2015/16
Università degli Studi di Salerno
Prof. Giancarlo Raiconi 1
concetti ed esempi
2. Overview
2
• Introduzione
• SVM lineari
• Dati linearmente separabili
• Dati non linearmente separabili
• SVM non lineari: i kernel
• SVM per la regressione
• L'algoritmo SVMlight
• Esempi in MATLAB
3. Overview
3
• Introduzione
• SVM lineari
• Dati linearmente separabili
• Dati non linearmente separabili
• SVM non lineari: i kernel
• SVM per la regressione
• L'algoritmo SVMlight
• Esempi in MATLAB
4. Problema di classificazione
• Dato un insieme di osservazioni, trovare un modello che ad
esse associ la classe di appartenenza
• 𝑙 osservazioni 𝑥 𝑖
∈ ℝ 𝑛
• 𝑙 label 𝑦 𝑖 ∈ {−1,1} (classificazione binaria)
• Macchina di apprendimento: insieme di funzioni {𝑓 𝛼 }, dove
𝑓: ℝ 𝑛
→ {−1,1}
• 𝛼 è il vettore dei parametri modificabili
• Addestrare la macchina equivale a scegliere 𝛼
4
5. Rischio empirico/effettivo
• Sia 𝑃(𝑥, 𝑦) la distribuzione di probabilità di osservazioni e
label (non nota)
• Rischio effettivo ("errore di testing"):
• Rischio empirico ("errore di training"):
• Vale che (0 ≤ 𝜂 ≤ 1):
5
6. VC dimension
• ℎ è la VC dimension della macchina
• La VC dimension ℎ di un insieme di funzioni {f(α)} è il
massimo numero di punti frammentabili da tale insieme
• Un insieme di 𝑙 punti 𝑥 𝑖 è frammentabile da una macchina
{f(α)} se, comunque si assegnino le label 𝑦 𝑖
a tali punti, esiste
un 𝛼 tale che 𝑓 𝑥 𝑖
, 𝛼 = 𝑦 𝑖
, 𝑖 = 1, … , 𝑙
6
7. Iperpiano con gap di tolleranza
• Iperpiano 𝐻(𝑤, 𝑏) con gap di tolleranza 𝜌 > 0:
7
dove 𝑥 appartiene a una sfera di diametro 𝐷.
• L'insieme degli iperpiani con gap di tolleranza ha VC dimension
8. Overview
8
• Introduzione
• SVM lineari
• Dati linearmente separabili
• Dati non linearmente separabili
• SVM non lineari: i kernel
• SVM per la regressione
• L'algoritmo SVMlight
• Esempi in MATLAB
9. Iperpiano di separazione
• Due insiemi di punti 𝐴 e 𝐵 sono linearmente separabili se
esiste un iperpiano 𝐻 𝑤, 𝑏 = {𝑥|𝑤 𝑇 𝑥 + 𝑏 = 0} tale che
9
• 𝐻 viene detto iperpiano di separazione
• Tutti i punti sono a distanza almeno
1
| 𝑤 |
da 𝐻
• Senza perdità di generalità, possiamo scalare dividendo per 𝜀:
10. Iperpiano ottimo – (1)
• Margine di un iperpiano di separazione:
10
• Obiettivo: trovare l'iperpiano con margine di separazione
massimo (iperpiano ottimo)
• Minimo upper bound per la VC dimension (e rischio empirico 0)
• Quindi minimo upper bound per il rischio effettivo
11. Iperpiano ottimo – (2)
• Esiste un unico iperpiano ottimo e si può dimostrare che
risolvere il problema precedente equivale a risolvere:
11
• Assegnando la label 1 ai punti in 𝐴 e -1 ai punti in 𝐵:
12. Iperpiano ottimo – (3)
12
• Il margine dell'iperpiano ottimo 𝐻(𝑤, 𝑏) è
1
| 𝑤 |
13. Duale di Wolfe – (1)
• Dato il problema (𝑓 e 𝑔 funzioni convesse e continuamente
differenziabili):
13
• Sia 𝐿(𝑥, 𝜆, 𝜇) il suo lagrangiano:
14. Duale di Wolfe – (2)
14
• Se il problema (1) ammette una soluzione ottima 𝑥∗
ed esiste
una coppia di moltiplicatori (𝜆∗
, 𝜇∗
) tali che nel punto
(𝑥∗, 𝜆∗, 𝜇∗) sono soddisfatte le condizioni di KKT, allora
(𝑥∗, 𝜆∗, 𝜇∗) è soluzione ottima del duale di Wolfe del problema
(1). Inoltre il gap di dualità è nullo, ovvero 𝑓 𝑥∗
=
𝐿 𝑥∗, 𝜆∗, 𝜇∗ .
• Duale di Wolfe del problema (1):
16. Formulazione duale – (2)
• Sostituendo 𝑤 nella funzione obiettivo e riorganizzando:
16
• Il vantaggio del problema duale è che ha vincoli più "semplici"
17. Formulazione duale – (3)
17
• In corrispondenza dell'iperpiano ottimo (𝑤∗, 𝑏∗) esiste un 𝜆∗
ottimo per il duale
• Una volta calcolato 𝜆∗
possiamo ricavare 𝑤∗
da
• Gli 𝑥 𝑖 il cui 𝜆𝑖
∗
è diverso da 0 sono detti vettori di supporto
• Sono gli unici vettori di training che concorrono a definire i pesi
dell'iperpiano
• Il vettore 𝑏∗ si determina utilizzando le condizioni di
complementarietà (tra quelle di KKT) e un 𝜆𝑖
∗
> 0:
18. Formulazione duale – (4)
• Ponendo 𝑋 = 𝑦1
𝑥1
, … , 𝑦 𝑙
𝑥 𝑙
, 𝜆 𝑇
= [𝜆1, … , 𝜆𝑙] e 𝑒 𝑇
=
[1, … , 1], possiamo riscrivere il problema come un problema
di programmazione quadratica convessa:
18
ricordando che 𝑋 𝑇 𝑋 è semidefinita positiva.
• La funzione di decisione è:
19. Overview
19
• Introduzione
• SVM lineari
• Dati linearmente separabili
• Dati non linearmente separabili
• SVM non lineari: i kernel
• SVM per la regressione
• L'algoritmo SVMlight
• Esempi in MATLAB
20. Dati non linearmente separabili – (1)
• Se i punti in 𝐴 e 𝐵 non sono linearmente separabili,
aggiungiamo le variabili di "slack" 𝜉𝑖:
20
• 𝜉ℎ > 0, se 𝑥ℎ
viola il margine
• 𝜉ℎ > 1, se 𝑥ℎ si trova nel semispazio "sbagliato" (il punto è
misclassificato)
• Quindi σℎ=1
𝑙
𝜉ℎ è un upper bound al numero di errori di
training
21. Dati non linearmente separabili – (2)
• Possiamo quindi utilizzare un parametro 𝐶 > 0 per pesare gli
errori di training:
21
• Se 𝐶 → ∞: non ammettiamo violazioni del margine (hard-
margin SVM)
• Se 𝐶 è finito: ammettiamo violazioni del margine e punti
misclassificati (soft-margin SVM)
22. Duale soft-margin – (1)
• Calcolando il duale di Wolfe del problema e riorganizzando la
funzione obiettivo come nel caso di dati linearmente
separabili:
22
• La differenza sta quindi nella presenza dei vincoli di box per i
moltiplicatori 𝜆𝑖
23. Duale soft-margin – (2)
• Anche in questo caso, data la soluzione 𝜆∗
possiamo ricavare
𝑤∗
con la formula:
23
• Dato 𝑤∗ e un 𝜆𝑖
∗
tale che 0 < 𝜆𝑖
∗
< 𝐶 possiamo ricavare 𝑏∗
usando le condizioni di complementarietà:
e il fatto che
• La funzione di decisione è la stessa del caso precedente e si
può vedere che anche questo problema è di programmazione
quadratica convessa
24. Overview
24
• Introduzione
• SVM lineari
• Dati linearmente separabili
• Dati non linearmente separabili
• SVM non lineari: i kernel
• SVM per la regressione
• L'algoritmo SVMlight
• Esempi in MATLAB
25. Kernel trick – (1)
• Possiamo trasformare i dati nell'input space in un nuovo
spazio, detto feature space, a più alta dimensionalità
• I vettori che prima non erano linearmente separabili hanno più
probabilità di esserlo in uno spazio a più dimensioni
25
26. Kernel trick – (2)
• Dato un insieme X ⊂ ℝ, una funzione 𝑘: 𝑋 × 𝑋 → ℝ è un
kernel se vale che
26
dove 𝜙: 𝑋 → ℋ e ℋ è uno spazio di Hilbert.
• 𝜙 è la funzione di mapping dall'input space al feature space
• Si può dimostrare che una funzione 𝑘: 𝑋 × 𝑋 → ℝ è un kernel
se e solo se, comunque si scelgano 𝑟 elementi 𝑥1, … , 𝑥 𝑟 ∈ 𝑋,
la matrice 𝐾 = [𝑘(𝑥𝑖, 𝑥𝑗)]𝑖,𝑗=1,…,𝑟 è simmetrica e semidefinita
positiva
27. SVM con kernel – (1)
• Riscriviamo il modello usando i vettori nel feature space:
27
28. SVM con kernel – (2)
• Utilizziamo la definizione di kernel:
28
• Possiamo calcolare 𝑤∗
, 𝑏∗
e funzione di decisione in maniera
analoga a quanto visto in precedenza
• Utilizzando il kernel evitiamo l'operazione costosa di
trasformazione e prodotto interno nello spazio trasformato
• Possiamo inoltre effettuare trasformazioni in spazi a
dimensione infinita
29. SVM con kernel – (3)
• Tra i kernel più utilizzati troviamo:
• kernel polinomiale: 𝑘 𝑥, 𝑧 = (𝑥 𝑇 𝑧 + 1) 𝑝, 𝑝 ∈ ℤ, 𝑝 ≥ 1;
• kernel gaussiano: 𝑘 𝑥, 𝑧 = 𝑒− 𝑥−𝑧
2
/2𝜎2
, 𝜎 > 0;
• kernel sigmoidale: 𝑘 𝑥, 𝑧 = tanh(𝛽𝑥 𝑇 𝑧 + 𝛾).
• Inoltre spesso viene chiamato kernel lineare il kernel 𝑘 𝑥, 𝑧 =
𝑥 𝑇 𝑧, che equivale a utilizzare una funzione di mapping 𝜙 tale
che 𝜙 𝑦 = 𝑦, cioè a non utilizzare un kernel
• Si può vedere che il kernel gaussiano equivale ad eseguire il
prodotto interno dei dati di input mappati in un feature space
a dimensione infinita
29
30. Overview
30
• Introduzione
• SVM lineari
• Dati linearmente separabili
• Dati non linearmente separabili
• SVM non lineari: i kernel
• SVM per la regressione
• L'algoritmo SVMlight
• Esempi in MATLAB
31. SVM per la regressione – (1)
• In un problema di regressione, le etichette 𝑦 𝑖 possono
assumere qualsiasi valore reale
• Vogliamo usare il modello 𝑓 𝑥; 𝑤, 𝑏 = 𝑤 𝑇 𝑥 + 𝑏 per calcolare
i valori corrispondenti a ciascun punto 𝑥 𝑖
, utilizzando un grado
di precisione 𝜀 > 0:
31
• Funzione di perdita:
• Vogliamo minimizzare:
32. SVM per la regressione – (2)
• Introducendo le variabili di slack in maniera simile a quanto
fatto per la classificazione su dati non linearmente separabili:
32
33. SVM per la regressione – (3)
• Il duale risulta essere:
33
34. SVM per la regressione – (4)
• Versione non lineare (usando i kernel):
34
• Funzione di regressione:
35. Overview
35
• Introduzione
• SVM lineari
• Dati linearmente separabili
• Dati non linearmente separabili
• SVM non lineari: i kernel
• SVM per la regressione
• L'algoritmo SVMlight
• Esempi in MATLAB
36. Working set – (1)
• Possiamo riscrivere il modello SVM in questo modo:
36
• 𝛼𝑖 = 𝜆𝑖 e 𝑄 è simmetrica e semidefinita positiva con elementi
• L'Hessiana 𝑄 ∈ ℝ𝑙×𝑙 può essere molto grande se si hanno
molti dati di training
• Algoritmo di decomposizione: utilizzo di un working set
(sottoinsieme delle variabili "attive")
37. Working set – (2)
• Siano 𝛼 𝑊 le variabili nel working set e 𝛼 ഥ𝑊 le restanti variabili
• Ad ogni iterazione aggiorniamo solo le variabili del working set
risolvendo il seguente problema:
37
41. SVMlight – (3)
41
• La scelta di 𝑖 e 𝑗 permette all'algoritmo di muoversi nella
direzione di massima discesa (tra quelle con sole due
componenti diverse da 0)
• Non ci serve tutta la matrice 𝑄, ma solo due colonne per
iterazione
• Criterio di arresto (𝜀 > 0 scelto dall'utente):
• Si può dimostrare che l'algoritmo converge all'ottimo e
termina in un numero finito di passi
42. Overview
42
• Introduzione
• SVM lineari
• Dati linearmente separabili
• Dati non linearmente separabili
• SVM non lineari: i kernel
• SVM per la regressione
• L'algoritmo SVMlight
• Esempi in MATLAB
43. Esempi in MATLAB – (1)
43
• Utilizzeremo il dataset Iris
• 50 esemplari di Iris setosa, 50 di Iris versicolor e 50 Iris virginica
• 4 feature: lunghezza e larghezza del sepalo, lunghezza e larghezza
del petalo
• Useremo solo lunghezza e larghezza del petalo (per poter
visualizzare i dati)
• Funzione fitcsvm di MATLAB (solver SMO – Sequential Minimal
Optimization, utilizza anch'esso la tecnica del working set)