SlideShare a Scribd company logo
1 of 52
Download to read offline
Support Vector Machines:
Ciaparrone Gioele
Metodi di Ottimizzazione - a.a. 2015/16
Università degli Studi di Salerno
Prof. Giancarlo Raiconi 1
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
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
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
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
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
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
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
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 𝜀:
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
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 𝐵:
Iperpiano ottimo – (3)
12
• Il margine dell'iperpiano ottimo 𝐻(𝑤, 𝑏) è
1
| 𝑤 |
Duale di Wolfe – (1)
• Dato il problema (𝑓 e 𝑔 funzioni convesse e continuamente
differenziabili):
13
• Sia 𝐿(𝑥, 𝜆, 𝜇) il suo lagrangiano:
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):
Formulazione duale – (1)
15
Formulazione duale – (2)
• Sostituendo 𝑤 nella funzione obiettivo e riorganizzando:
16
• Il vantaggio del problema duale è che ha vincoli più "semplici"
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:
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 è:
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
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
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)
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 𝜆𝑖
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
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
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
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
SVM con kernel – (1)
• Riscriviamo il modello usando i vettori nel feature space:
27
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
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
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
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:
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
SVM per la regressione – (3)
• Il duale risulta essere:
33
SVM per la regressione – (4)
• Versione non lineare (usando i kernel):
34
• Funzione di regressione:
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
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")
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
Algoritmo di decomposizione
38
SVMlight – (1)
• Definiamo i seguenti insiemi:
39
SVMlight – (2)
40
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
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
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)
Esempi in MATLAB – (2)
44
Esempi in MATLAB – (3)
45
𝐶 = +∞
Esempi in MATLAB – (4)
46
𝐶 = +∞
Esempi in MATLAB – (5)
47
𝐶 = 1
Esempi in MATLAB – (6)
48
𝐶 = 10−6
Esempi in MATLAB – (7)
49
• Vediamo invece un esempio di overfitting utilizzando il kernel
gaussiano con 𝜎 = 1/15 e 𝐶 = 106
:
Esempi in MATLAB – (8)
50
𝐶 = 106
, 𝜎 = 1/15
Esempi in MATLAB – (8)
51
𝐶 = 100, 𝜎 = 5
Fine
Grazie per l’attenzione!
52

More Related Content

What's hot

HIVE: Data Warehousing & Analytics on Hadoop
HIVE: Data Warehousing & Analytics on HadoopHIVE: Data Warehousing & Analytics on Hadoop
HIVE: Data Warehousing & Analytics on Hadoop
Zheng Shao
 
Réseaux des neurones
Réseaux des neuronesRéseaux des neurones
Réseaux des neurones
Med Zaibi
 
Correction examen-java-avancé-1
Correction examen-java-avancé-1Correction examen-java-avancé-1
Correction examen-java-avancé-1
vangogue
 

What's hot (20)

Reverse Mapping (rmap) in Linux Kernel
Reverse Mapping (rmap) in Linux KernelReverse Mapping (rmap) in Linux Kernel
Reverse Mapping (rmap) in Linux Kernel
 
OpenJDK Concurrent Collectors
OpenJDK Concurrent CollectorsOpenJDK Concurrent Collectors
OpenJDK Concurrent Collectors
 
Dataplane programming with eBPF: architecture and tools
Dataplane programming with eBPF: architecture and toolsDataplane programming with eBPF: architecture and tools
Dataplane programming with eBPF: architecture and tools
 
Hive, Impala, and Spark, Oh My: SQL-on-Hadoop in Cloudera 5.5
Hive, Impala, and Spark, Oh My: SQL-on-Hadoop in Cloudera 5.5Hive, Impala, and Spark, Oh My: SQL-on-Hadoop in Cloudera 5.5
Hive, Impala, and Spark, Oh My: SQL-on-Hadoop in Cloudera 5.5
 
Memory management in linux
Memory management in linuxMemory management in linux
Memory management in linux
 
HIVE: Data Warehousing & Analytics on Hadoop
HIVE: Data Warehousing & Analytics on HadoopHIVE: Data Warehousing & Analytics on Hadoop
HIVE: Data Warehousing & Analytics on Hadoop
 
Linux MMAP & Ioremap introduction
Linux MMAP & Ioremap introductionLinux MMAP & Ioremap introduction
Linux MMAP & Ioremap introduction
 
XPDDS17: Shared Virtual Memory Virtualization Implementation on Xen - Yi Liu,...
XPDDS17: Shared Virtual Memory Virtualization Implementation on Xen - Yi Liu,...XPDDS17: Shared Virtual Memory Virtualization Implementation on Xen - Yi Liu,...
XPDDS17: Shared Virtual Memory Virtualization Implementation on Xen - Yi Liu,...
 
Map Reduce
Map ReduceMap Reduce
Map Reduce
 
Réseaux des neurones
Réseaux des neuronesRéseaux des neurones
Réseaux des neurones
 
Experience with jemalloc
Experience with jemallocExperience with jemalloc
Experience with jemalloc
 
POO-JAVA-partie-1.pdf
POO-JAVA-partie-1.pdfPOO-JAVA-partie-1.pdf
POO-JAVA-partie-1.pdf
 
Enabling Diverse Workload Scheduling in YARN
Enabling Diverse Workload Scheduling in YARNEnabling Diverse Workload Scheduling in YARN
Enabling Diverse Workload Scheduling in YARN
 
Introduction to DPDK RIB library
Introduction to DPDK RIB libraryIntroduction to DPDK RIB library
Introduction to DPDK RIB library
 
Page cache in Linux kernel
Page cache in Linux kernelPage cache in Linux kernel
Page cache in Linux kernel
 
COSCUP 2020 RISC-V 32 bit linux highmem porting
COSCUP 2020 RISC-V 32 bit linux highmem portingCOSCUP 2020 RISC-V 32 bit linux highmem porting
COSCUP 2020 RISC-V 32 bit linux highmem porting
 
Linux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKBLinux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKB
 
Failles de sécurité Web et Symfony
Failles de sécurité Web et SymfonyFailles de sécurité Web et Symfony
Failles de sécurité Web et Symfony
 
Correction examen-java-avancé-1
Correction examen-java-avancé-1Correction examen-java-avancé-1
Correction examen-java-avancé-1
 
Scaling ScyllaDB Storage Engine with State-of-Art Compaction
Scaling ScyllaDB Storage Engine with State-of-Art CompactionScaling ScyllaDB Storage Engine with State-of-Art Compaction
Scaling ScyllaDB Storage Engine with State-of-Art Compaction
 

Viewers also liked

Support Vector Machines
Support Vector MachinesSupport Vector Machines
Support Vector Machines
nextlib
 

Viewers also liked (8)

Kernels and Support Vector Machines
Kernels and Support Vector  MachinesKernels and Support Vector  Machines
Kernels and Support Vector Machines
 
Relational Database to RDF (RDB2RDF)
Relational Database to RDF (RDB2RDF)Relational Database to RDF (RDB2RDF)
Relational Database to RDF (RDB2RDF)
 
Modern Convolutional Neural Network techniques for image segmentation
Modern Convolutional Neural Network techniques for image segmentationModern Convolutional Neural Network techniques for image segmentation
Modern Convolutional Neural Network techniques for image segmentation
 
Support Vector Machines
Support Vector MachinesSupport Vector Machines
Support Vector Machines
 
Support Vector Machine without tears
Support Vector Machine without tearsSupport Vector Machine without tears
Support Vector Machine without tears
 
Support Vector machine
Support Vector machineSupport Vector machine
Support Vector machine
 
Support Vector Machines
Support Vector MachinesSupport Vector Machines
Support Vector Machines
 
RDB2RDF Tutorial (R2RML and Direct Mapping) at ISWC 2013
RDB2RDF Tutorial (R2RML and Direct Mapping) at ISWC 2013RDB2RDF Tutorial (R2RML and Direct Mapping) at ISWC 2013
RDB2RDF Tutorial (R2RML and Direct Mapping) at ISWC 2013
 

Similar to Support Vector Machines: concetti ed esempi

Kinetic_Modeling_02_12_2016
Kinetic_Modeling_02_12_2016Kinetic_Modeling_02_12_2016
Kinetic_Modeling_02_12_2016
Michele Scipioni
 
Introduzione a Matlab
Introduzione a MatlabIntroduzione a Matlab
Introduzione a Matlab
Marco Suma
 
Modellazione tramite geometria frattale
Modellazione tramite geometria frattaleModellazione tramite geometria frattale
Modellazione tramite geometria frattale
Massimiliano Leone
 
Lezione 23 (9 maggio 2012)
Lezione 23 (9 maggio 2012)Lezione 23 (9 maggio 2012)
Lezione 23 (9 maggio 2012)
STELITANO
 
Ecdl modulo 1 -Fondamenti
Ecdl modulo 1 -FondamentiEcdl modulo 1 -Fondamenti
Ecdl modulo 1 -Fondamenti
Angela Cristina
 

Similar to Support Vector Machines: concetti ed esempi (20)

Kinetic_Modeling_02_12_2016
Kinetic_Modeling_02_12_2016Kinetic_Modeling_02_12_2016
Kinetic_Modeling_02_12_2016
 
Algoritmi per l'ottimizzazione convessa
Algoritmi per l'ottimizzazione convessaAlgoritmi per l'ottimizzazione convessa
Algoritmi per l'ottimizzazione convessa
 
Robotic Arm Simulation
Robotic Arm SimulationRobotic Arm Simulation
Robotic Arm Simulation
 
Definizione e comparazione dei modelli di classificazione con Scikit-Learn
Definizione e comparazione dei modelli di classificazione con Scikit-LearnDefinizione e comparazione dei modelli di classificazione con Scikit-Learn
Definizione e comparazione dei modelli di classificazione con Scikit-Learn
 
Introduzione a Matlab
Introduzione a MatlabIntroduzione a Matlab
Introduzione a Matlab
 
Identificare feature significative per l’analisi nell’informatica forense uti...
Identificare feature significative per l’analisi nell’informatica forense uti...Identificare feature significative per l’analisi nell’informatica forense uti...
Identificare feature significative per l’analisi nell’informatica forense uti...
 
Syntactical errors detection 1
Syntactical errors detection 1Syntactical errors detection 1
Syntactical errors detection 1
 
Metodi per la soluzione di problemi di programmazione non lineare
Metodi per la soluzione di problemi di programmazione non lineareMetodi per la soluzione di problemi di programmazione non lineare
Metodi per la soluzione di problemi di programmazione non lineare
 
Classificazione in efMRI: Un caso di studio sulla coniugazione dei verbi
Classificazione in efMRI: Un caso di studio sulla coniugazione dei verbiClassificazione in efMRI: Un caso di studio sulla coniugazione dei verbi
Classificazione in efMRI: Un caso di studio sulla coniugazione dei verbi
 
Modellazione tramite geometria frattale
Modellazione tramite geometria frattaleModellazione tramite geometria frattale
Modellazione tramite geometria frattale
 
Lezione 23 (9 maggio 2012)
Lezione 23 (9 maggio 2012)Lezione 23 (9 maggio 2012)
Lezione 23 (9 maggio 2012)
 
Invarianza di un politopo
Invarianza di un politopoInvarianza di un politopo
Invarianza di un politopo
 
Approximate Algorithms for the Network Pricing Problem with Congestion - MS T...
Approximate Algorithms for the Network Pricing Problem with Congestion - MS T...Approximate Algorithms for the Network Pricing Problem with Congestion - MS T...
Approximate Algorithms for the Network Pricing Problem with Congestion - MS T...
 
Appunti di Elaborazione automatica dei dati: il simplesso
Appunti di Elaborazione automatica dei dati: il simplessoAppunti di Elaborazione automatica dei dati: il simplesso
Appunti di Elaborazione automatica dei dati: il simplesso
 
Ecdl modulo 1 -Fondamenti
Ecdl modulo 1 -FondamentiEcdl modulo 1 -Fondamenti
Ecdl modulo 1 -Fondamenti
 
Schema di watermarking robusto per un bitstream jpeg cifrato
Schema di watermarking robusto per un bitstream jpeg cifratoSchema di watermarking robusto per un bitstream jpeg cifrato
Schema di watermarking robusto per un bitstream jpeg cifrato
 
Ruby in 25 minuti
Ruby in 25 minutiRuby in 25 minuti
Ruby in 25 minuti
 
From cnn to capsule_Matteo_Alberti
From cnn to capsule_Matteo_AlbertiFrom cnn to capsule_Matteo_Alberti
From cnn to capsule_Matteo_Alberti
 
02 algo programmi
02 algo programmi02 algo programmi
02 algo programmi
 
Appunti di Elaborazione automatica dei dati: matrici e matlab
Appunti di Elaborazione automatica dei dati: matrici e matlabAppunti di Elaborazione automatica dei dati: matrici e matlab
Appunti di Elaborazione automatica dei dati: matrici e matlab
 

Recently uploaded (8)

I Modelli Atomici: Bhor, Rutherford, Dalton, Thomson.pptx
I Modelli Atomici: Bhor, Rutherford, Dalton, Thomson.pptxI Modelli Atomici: Bhor, Rutherford, Dalton, Thomson.pptx
I Modelli Atomici: Bhor, Rutherford, Dalton, Thomson.pptx
 
Imodelli_atomici_stefano_afferrante.pptx
Imodelli_atomici_stefano_afferrante.pptxImodelli_atomici_stefano_afferrante.pptx
Imodelli_atomici_stefano_afferrante.pptx
 
Oman_Raffaele_Progetto_scienze_Eubatteri - Copia (1).pptx
Oman_Raffaele_Progetto_scienze_Eubatteri - Copia (1).pptxOman_Raffaele_Progetto_scienze_Eubatteri - Copia (1).pptx
Oman_Raffaele_Progetto_scienze_Eubatteri - Copia (1).pptx
 
Iuzzolino Nuria-lavoro scienzeeeeee.pptx
Iuzzolino Nuria-lavoro scienzeeeeee.pptxIuzzolino Nuria-lavoro scienzeeeeee.pptx
Iuzzolino Nuria-lavoro scienzeeeeee.pptx
 
matematicaesempio--power point provaaaaa
matematicaesempio--power point provaaaaamatematicaesempio--power point provaaaaa
matematicaesempio--power point provaaaaa
 
I Modelli Atmoci_FilippoLuciani bohr.pptx
I Modelli Atmoci_FilippoLuciani bohr.pptxI Modelli Atmoci_FilippoLuciani bohr.pptx
I Modelli Atmoci_FilippoLuciani bohr.pptx
 
relazione laboratorio_Stefano Afferrante.docx
relazione laboratorio_Stefano Afferrante.docxrelazione laboratorio_Stefano Afferrante.docx
relazione laboratorio_Stefano Afferrante.docx
 
CamploneAlessandro_ArcheoBatteri (1).pptx
CamploneAlessandro_ArcheoBatteri (1).pptxCamploneAlessandro_ArcheoBatteri (1).pptx
CamploneAlessandro_ArcheoBatteri (1).pptx
 

Support Vector Machines: concetti ed esempi

  • 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
  • 39. SVMlight – (1) • Definiamo i seguenti insiemi: 39
  • 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)
  • 44. Esempi in MATLAB – (2) 44
  • 45. Esempi in MATLAB – (3) 45 𝐶 = +∞
  • 46. Esempi in MATLAB – (4) 46 𝐶 = +∞
  • 47. Esempi in MATLAB – (5) 47 𝐶 = 1
  • 48. Esempi in MATLAB – (6) 48 𝐶 = 10−6
  • 49. Esempi in MATLAB – (7) 49 • Vediamo invece un esempio di overfitting utilizzando il kernel gaussiano con 𝜎 = 1/15 e 𝐶 = 106 :
  • 50. Esempi in MATLAB – (8) 50 𝐶 = 106 , 𝜎 = 1/15
  • 51. Esempi in MATLAB – (8) 51 𝐶 = 100, 𝜎 = 5