support vector machines: concetti ed esempi

52
Support Vector Machines: Ciaparrone Gioele Metodi di Ottimizzazione - a.a. 2015/16 Università degli Studi di Salerno Prof. Giancarlo Raiconi 1 concetti ed esempi

Upload: gioele-ciaparrone

Post on 08-Apr-2017

58 views

Category:

Science


1 download

TRANSCRIPT

Page 1: Support Vector Machines: concetti ed esempi

Support Vector Machines:

Ciaparrone Gioele

Metodi di Ottimizzazione - a.a. 2015/16

Università degli Studi di Salerno

Prof. Giancarlo Raiconi 1

concetti ed esempi

Page 2: Support Vector Machines: concetti ed esempi

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

Page 3: Support Vector Machines: concetti ed esempi

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

Page 4: Support Vector Machines: concetti ed esempi

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

Page 5: Support Vector Machines: concetti ed esempi

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

Page 6: Support Vector Machines: concetti ed esempi

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

Page 7: Support Vector Machines: concetti ed esempi

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

Page 8: Support Vector Machines: concetti ed esempi

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

Page 9: Support Vector Machines: concetti ed esempi

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 𝜀:

Page 10: Support Vector Machines: concetti ed esempi

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

Page 11: Support Vector Machines: concetti ed esempi

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 𝐵:

Page 12: Support Vector Machines: concetti ed esempi

Iperpiano ottimo – (3)

12

• Il margine dell'iperpiano ottimo 𝐻(𝑤, 𝑏) è 1

| 𝑤 |

Page 13: Support Vector Machines: concetti ed esempi

Duale di Wolfe – (1)

• Dato il problema (𝑓 e 𝑔 funzioni convesse e continuamente differenziabili):

13

• Sia 𝐿(𝑥, 𝜆, 𝜇) il suo lagrangiano:

Page 14: Support Vector Machines: concetti ed esempi

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):

Page 15: Support Vector Machines: concetti ed esempi

Formulazione duale – (1)

15

Page 16: Support Vector Machines: concetti ed esempi

Formulazione duale – (2)

• Sostituendo 𝑤 nella funzione obiettivo e riorganizzando:

16

• Il vantaggio del problema duale è che ha vincoli più "semplici"

Page 17: Support Vector Machines: concetti ed esempi

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:

Page 18: Support Vector Machines: concetti ed esempi

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 è:

Page 19: Support Vector Machines: concetti ed esempi

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

Page 20: Support Vector Machines: concetti ed esempi

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

Page 21: Support Vector Machines: concetti ed esempi

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)

Page 22: Support Vector Machines: concetti ed esempi

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 𝜆𝑖

Page 23: Support Vector Machines: concetti ed esempi

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

Page 24: Support Vector Machines: concetti ed esempi

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

Page 25: Support Vector Machines: concetti ed esempi

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

Page 26: Support Vector Machines: concetti ed esempi

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 kernelse e solo se, comunque si scelgano 𝑟 elementi 𝑥1, … , 𝑥𝑟 ∈ 𝑋, la matrice 𝐾 = [𝑘(𝑥𝑖 , 𝑥𝑗)]𝑖,𝑗=1,…,𝑟 è simmetrica e semidefinita

positiva

Page 27: Support Vector Machines: concetti ed esempi

SVM con kernel – (1)

• Riscriviamo il modello usando i vettori nel feature space:

27

Page 28: Support Vector Machines: concetti ed esempi

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

Page 29: Support Vector Machines: concetti ed esempi

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 spacea dimensione infinita

29

Page 30: Support Vector Machines: concetti ed esempi

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

Page 31: Support Vector Machines: concetti ed esempi

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:

Page 32: Support Vector Machines: concetti ed esempi

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

Page 33: Support Vector Machines: concetti ed esempi

SVM per la regressione – (3)

• Il duale risulta essere:

33

Page 34: Support Vector Machines: concetti ed esempi

SVM per la regressione – (4)

• Versione non lineare (usando i kernel):

34• Funzione di regressione:

Page 35: Support Vector Machines: concetti ed esempi

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

Page 36: Support Vector Machines: concetti ed esempi

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")

Page 37: Support Vector Machines: concetti ed esempi

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

Page 38: Support Vector Machines: concetti ed esempi

Algoritmo di decomposizione

38

Page 39: Support Vector Machines: concetti ed esempi

SVMlight – (1)

• Definiamo i seguenti insiemi:

39

Page 40: Support Vector Machines: concetti ed esempi

SVMlight – (2)

40

Page 41: Support Vector Machines: concetti ed esempi

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

Page 42: Support Vector Machines: concetti ed esempi

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

Page 43: Support Vector Machines: concetti ed esempi

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 MinimalOptimization, utilizza anch'esso la tecnica del working set)

Page 44: Support Vector Machines: concetti ed esempi

Esempi in MATLAB – (2)

44

Page 45: Support Vector Machines: concetti ed esempi

Esempi in MATLAB – (3)

45

𝐶 = +∞

Page 46: Support Vector Machines: concetti ed esempi

Esempi in MATLAB – (4)

46

𝐶 = +∞

Page 47: Support Vector Machines: concetti ed esempi

Esempi in MATLAB – (5)

47

𝐶 = 1

Page 48: Support Vector Machines: concetti ed esempi

Esempi in MATLAB – (6)

48

𝐶 = 10−6

Page 49: Support Vector Machines: concetti ed esempi

Esempi in MATLAB – (7)

49

• Vediamo invece un esempio di overfitting utilizzando il kernelgaussiano con 𝜎 = 1/15 e 𝐶 = 106:

Page 50: Support Vector Machines: concetti ed esempi

Esempi in MATLAB – (8)

50

𝐶 = 106, 𝜎 = 1/15

Page 51: Support Vector Machines: concetti ed esempi

Esempi in MATLAB – (8)

51

𝐶 = 100, 𝜎 = 5

Page 52: Support Vector Machines: concetti ed esempi

Fine

Grazie per l’attenzione!

52