Pattern Recognition: Introduzione
Transcript of Pattern Recognition: Introduzione
1prof. Davide Maltoni โ Universitร di Bologna
ML
Classificazione
Classificatore di Bayes
Approccio parametrico (distribuzione Multinormale)
Approccio non parametrico (Parzen Window)
Nearest Neighbor
k-NN
Metriche
SVM
Lineari: pattern linearmente separabili e non
Non lineari
Caso multiclasse
Multi classificatori
Fusione a livello di decisione
Fusione a livello di confidenza
Bagging (Random Forest)
Boosting (AdaBoost)
Classificazione
2prof. Davide Maltoni โ Universitร di Bologna
ML
Classificazione
Support Vector Machines (SVM)
La teoria che governa i meccanismi di funzionamento di SVM รจ stata
introdotta da Vapnik a partire dal 1965 (statistical learning theory), e
perfezionata piรน recentemente (1995) dallo stesso Vapnik e altri.
SVM รจ uno degli strumenti piรน utilizzati per la classificazione di
pattern.
Invece di stimare le densitร di probabilitร delle classi, Vapnik
suggerisce di risolvere direttamente il problema di interesse (che
considera piรน semplice), ovvero determinare le superfici decisionali
tra le classi (classification boundaries).
andiamo per gradi โฆ
SVM nasce come classificatore binario (2 classi), estendibile a piรน
classi. Affrontiamo la trattazione per gradi:
SVM lineare (i.e., la superficie di separazione รจ un iperpiano) e
pattern del training set linearmente separabili (i.e., esiste per
ipotesi almeno un iperpiano in grado di separarli).
SVM lineare e pattern non linearmente separabili. Ci saranno
inevitabilmente errori di classificazione nel training set non
esistendo alcun iperpiano in grado di separare i pattern.
SVM non lineare (i.e., superficie di separazione complessa)
senza ipotesi sulla separabilitร dei pattern.
Estensione multiclasse.
3prof. Davide Maltoni โ Universitร di Bologna
ML
Classificazione
SVM: lโidea
Date due classi di pattern multidimensionali linearmente separabili,
tra tutti i possibili iperpiani di separazione, SVM determina quello in
grado di separare le classi con il maggior margine possibile.
Il margine รจ la distanza minima di punti delle due classi nel training
set dallโiperpiano individuato. Definizione formale in seguito.
La massimizzazione del margine รจ legata alla generalizzazione. Se i
pattern del training set sono classificati con ampio margine si puรฒ
ยซsperareยป che anche pattern del test set vicini al confine tra le classi
siano gestiti correttamente.
Come vedremo il problema puรฒ essere impostato come una
ottimizzazione convessa (convex optimization). Come tale ammette
un solo minimo globale (vantaggio: non si rischia di essere
intrappolati in minimi locali).
4prof. Davide Maltoni โ Universitร di Bologna
ML
Classificazione
SVM lineari: Pattern Separabili
Date due classi di pattern (linearmente separabili), e un training set
TS contenente ๐ campioni ๐ฑ1, ๐ฆ1 โฆ ๐ฑ๐, ๐ฆ๐ , dove ๐ฑ๐ โ ๐ sono i
pattern multidimensionali e ๐ฆ๐ โ +1,โ1 le etichette delle due classi,
esistono diversi iperpiani in grado di eseguire la separazione voluta.
Un generico iperpiano รจ definito dai parametri (๐ฐ, ๐):
La distanza di un vettore ๐ฑ dallโiperpiano vale pertanto: ๐ =๐ท ๐ฑ
๐ฐ
Gli iperpiani (๐ฐ, ๐) che separano i pattern del TS, con distanza
minima 1/ ๐ฐ su ogni lato, soddisfano, per ๐ = 1โฆ๐, le equazioni:
๐ฐ โ ๐ฑ๐ + ๐ โฅ +1 ๐ ๐ ๐ฆ๐ = +1
๐ฐ โ ๐ฑ๐ + ๐ โค โ1 ๐ ๐ ๐ฆ๐ = โ1
o in modo piรน compatto:
๐ฆ๐ ๐ฐ โ ๐ฑ๐ + ๐ โฅ 1 ๐๐๐ ๐ = 1โฆ๐
Iperpiano
๐ท ๐ฑ = ๐ฐ โ ๐ฑ + ๐
๐ฐ: vettore normale allโiperpiano
๐/ ๐ฐ : distanza dallโorigine
๐ท ๐ฑ = 0: luogo dei vettori sul piano
๐ฑ = ๐ฑ๐ + ๐๐ฐ๐ฐ
, ๐ท ๐ฑ๐ = ๐
๐ท ๐ฑ = ๐ฐ โ ๐ฑ + ๐ = ๐ โ ๐ฐ
per semplicitร
omettiamo il trasposto
nel prodotto scalare
5prof. Davide Maltoni โ Universitร di Bologna
ML
Classificazione
SVM lineari: Pattern Separabili (2)
La minima distanza tra lโiperpiano di separazione e un pattern del
training set รจ detta margine ().
La distanza dei punti che giacciono sullโiperpiano ๐ท ๐ฑ = +1dallโiperpiano di separazione (๐ท ๐ฑ = 0) รจ 1/ ๐ฐ ; lo stesso vale per i
punti sullโiperpiano ๐ท ๐ฑ = โ1.
Pertanto il margine รจ = 2/ ๐ฐ .
Lโiperpiano ottimo secondo SVM รจ quello soddisfa i vincoli di
separazione dei pattern e massimizza il margine (o
alternativamente minimizza il suo inverso):
Minimizza: ๐ฐ 2/2
Vincoli: ๐ฆ๐ ๐ฐ โ ๐ฑ๐ + ๐ โ 1 โฅ 0 ๐๐๐ ๐ = 1โฆ๐
I pattern del training set che giacciono sul margine (cerchi pieni in
figura) sono detti support vector. Tali pattern, che costituiscono i casi
piรน complessi, definiscono completamente la soluzione del
problema, che puรฒ essere espressa come funzione di solo tali
pattern, indipendentemente dalla dimensionalitร dello spazio ๐ e dal
numero ๐ di elementi in TS.
๐ท ๐ฑ = +11/ ๐ฐ
๐ท ๐ฑ = 0
๐ท ๐ฑ = โ1
๐ท ๐ฑ > +1
๐ท ๐ฑ < โ1
1/ ๐ฐ
6prof. Davide Maltoni โ Universitร di Bologna
ML
Classificazione
SVM lineari: Pattern Separabili (3)
Il problema di ottimizzazione precedente, puรฒ essere risolto
passando innanzitutto a una formulazione Lagrangiana e
successivamente a una formulazione duale.
La formulazione Lagrangiana prevede di introdurre un moltiplicatore
๐ผ๐ (๐ผ๐ โฅ 0) per ogni vincolo nella forma ๐๐๐ข๐๐ง๐๐๐๐ โฅ 0 e di sottrarre
il vincolo moltiplicato per ๐ผ๐ dalla funzione obiettivo:
๐ ๐ฐ, ๐, ๐ =1
2๐ฐ โ ๐ฐ โ
๐=1
๐
๐ผ๐ ๐ฆ๐ ๐ฐ โ ๐ฑ๐ + ๐ โ 1
da minimizzare rispetto a ๐ฐ e ๐ e massimizzare rispetto a ๐ผ๐ โฅ 0.
Utilizzando le condizioni di Karush-Kuhn-Tucker (KKT), il problema
puรฒ essere posto in forma duale esprimendo i parametri ๐ฐ e ๐ in
funzione dei moltiplicatori ๐ผ๐. Si elimina cosรฌ la dipendenza diretta
da ๐ฐ e ๐ e il problema puรฒ essere risolto massimizzando la nuova
funzione obiettivo rispetto ai soli ๐ผ๐:
๐ ๐ =
๐=1โฆ๐
๐ผ๐ โ1
2
๐,๐=1โฆ๐
๐ผ๐๐ผ๐๐ฆ๐๐ฆ๐ ๐ฑ๐ โ ๐ฑ๐
con vincoli
๐=1โฆ๐
๐ฆ๐๐ผ๐ = 0 e ๐ผ๐โฅ 0 ๐๐๐ ๐ = 1โฆ๐
Si noti inoltre che i pattern compaiono ora solo come prodotti scalari.
Per approfondimenti e derivazione delle equazioni:
S. Gunn, Support Vector Machines for Classification and Regression
C. Burges, A Tutorial on Support Vector Machines for Pattern Recognition
http://web.mit.edu/6.034/wwwbob/svm-notes-long-08.pdf
7prof. Davide Maltoni โ Universitร di Bologna
ML
Classificazione
SVM lineari: Pattern Separabili (4)
Il problema di ottimizzazione precedente puรฒ essere risolto
attraverso un algoritmo di programmazione quadratica (disponibile in
librerie numeriche).
La soluzione consiste nel derivare i valori ottimi ๐ผ1โ, ๐ผ2
โโฆ๐ผ๐โ
Le condizioni KKT assicurano che ๐ผ๐โ = 0 per tutti i vettori che non
sono support vector.
Lโiperpiano ottimo รจ dunque parametrizzato da:
๐ฐโ=
๐=1โฆ๐
๐ผ๐โ ๐ฆ๐ ๐ฑ๐
e ๐โ = ๐ฆ๐ โ
๐=1โฆ๐
๐ผ๐โ ๐ฆ๐ ๐ฑ๐ โ ๐ฑ๐
dove (๐ฑ๐ , ๐ฆ๐ ) รจ uno dei support vector.
La funzione distanza dallโiperpiano รจ:
๐ท ๐ฑ = ๐ฐโ โ ๐ฑ + ๐โ =
๐=1โฆ๐
๐ผ๐โ ๐ฆ๐ ๐ฑ โ ๐ฑ๐ + ๐โ
Si noti che:
Il segno della funzione ๐ท ๐ฑ consente di classificare un generico
pattern ๐ฑ.
Le sommatorie sono riducibili ai soli support vector.
Nel caso lineare non รจ necessario, dopo aver calcolato ๐ฐโ e ๐โ,conservare/memorizzare i support vectors.
8prof. Davide Maltoni โ Universitร di Bologna
ML
Classificazione
SVM lineari: Pattern Separabili (4)
Vantaggi dellโapproccio SVM:
Definizione della soluzione sulla base di un numero ridotto di
support vector (solitamente pochi).
Il numero di support vector ๐๐ ๐ฃ indica la complessitร del problema
e puรฒ essere dimostrato che lโerrore medio (sui possibili training
set) รจ limitato da ๐๐ ๐ฃ/๐.
SVM ยซscalaยป molto bene rispetto alla dimensionalitร ๐ dello
spazio delle feature (grazie ai prodotti scalari). La complessitร
computazionale nel training รจ quadratica rispetto al numero ๐ di
pattern in TS. In pratica il problema puรฒ essere risolto per ๐ = 107
e per ๐ fino a 104.
Esempio:
i support vectors
(cerchiati)
definiscono la
soluzione.
9prof. Davide Maltoni โ Universitร di Bologna
ML
Classificazione
SVM lineari: Pattern non Separabili
In questo caso non tutti i pattern possono essere separati da un
iperpiano, ed รจ necessario rilassare i vincoli di separazione, per far
sรฌ che alcuni pattern (il minor numero possibile) possano valicare il
confine della classe.
A tal fine si introducono ๐ variabili di slack positive ฮพ๐ , ๐ = 1โฆ๐ e si
modificano i vincoli di separazione:
๐ฆ๐ ๐ฐ โ ๐ฑ๐ + ๐ โฅ 1 โ ฮพ๐ ๐๐๐ ๐ = 1โฆ๐
Per ogni pattern ๐ฑ๐ del TS, la variabile ฮพ๐ codifica la deviazione dal
margine. Per i pattern separabili del TS le corrispondenti variabili di
slack assumeranno valore 0.
Lโiperpiano ottimo deve in questo caso ancora massimizzare il
margine, ma allo stesso tempo minimizzare il numero di elementi
non correttamente classificati. La funzione obiettivo, e di
conseguenza il problema di ottimizzazione vengono cosรฌ modificati:
Minimizza:๐ฐ 2
2+ ๐ถฯ๐=1โฆ๐ ฮพ๐
Vincoli: ๐ฆ๐ ๐ฐ โ ๐ฑ๐ + ๐ โฅ 1 โ ฮพ๐ ๐๐๐ ๐ = 1โฆ๐
Pattern erroneamente
classificati: > 0
10prof. Davide Maltoni โ Universitร di Bologna
ML
Classificazione
SVM lineari: Pattern non Separabili (2)
Il coefficiente ๐ถ nel problema di ottimizzazione precedente, indica
lโimportanza relativa degli errori di classificazione rispetto
allโampiezza del margine. Si tratta di uno dei pochi iperparametri che
lโutente deve scegliere per il tuning di SVM.
Passando attraverso forma lagrangiana/duale otteniamo un risultato
uguale al caso linearmente separabile, tranne che per lโintroduzione
del limite superiore (๐ถ) per i valori dei moltiplicatori ๐ผ๐ :
๐ ๐ =
๐=1โฆ๐
๐ผ๐ โ1
2
๐,๐=1โฆ๐
๐ผ๐๐ผ๐๐ฆ๐๐ฆ๐ ๐ฑ๐ โ ๐ฑ๐
con vincoli
๐=1โฆ๐
๐ฆ๐๐ผ๐ = 0 e 0 โค ๐ผ๐โค ๐ถ ๐๐๐ ๐ = 1โฆ๐
Il metodo di soluzione (i.e. Progr. Quadratica) e il modo di derivare
lโiperpiano dagli ๐ผ๐ sono gli stessi del caso linearmente separabile.
Esempi:
๐ถ = 200
1 solo errore, margine minore
๐ถ = 10
2 errori, margine maggiore
11prof. Davide Maltoni โ Universitร di Bologna
ML
Classificazione
SVM Non lineari
SVM prevede unโimportante estensione della teoria inizialmente
sviluppata per iperpiani, al caso (non lineare) di separazione dei
pattern con superfici anche molto complesse. Tutto ciรฒ avviene in
modo molto semplice:
Viene definito un mapping ฮฆ non lineare dei pattern dallo spazio
di partenza ๐ verso uno spazio ๐ a piรน alta dimensionalitร
(๐ > ๐):
ฮฆ:๐ โ ๐, ฮฆ ๐ฑ = ๐1 ๐ฑ , ๐2 ๐ฑ , โฆ๐๐ ๐ฑ
Nello spazio ๐, dove maggiori sono i gradi di libertร , i pattern
ฮฆ ๐ฑ1 , ฮฆ ๐ฑ2 , โฆฮฆ ๐ฑ๐ possono essere piรน facilmente separati da
un iperpiano utilizzando la teoria nota. Ciรฒ equivale a separare i
pattern ๐ฑ1, ๐ฑ2, โฆ ๐ฑ๐ in ๐ con superfici arbitrariamente complesse.
Analizzando la formulazione del problema lagrangiano-duale, si nota
che i vettori del training set appaiono solo in forma di prodotti scalari
tra coppie di vettori. Questa proprietร (fondamentale) permette di
evitare la manipolazione di vettori nello spazio ๐ (๐ puรฒ facilmente
raggiungere dimensione 108 e anche assumere valore infinito).
Infatti, per opportuni mapping ฮฆ รจ possibile ricondurre il prodotto
scalare di due pattern mappati nello spazio ๐ a una funzione ๐พ(detta Kernel) dei due pattern originali nello spazio ๐.
ฮฆ ๐ฑ โ ฮฆ ๐ฑโฒ = ๐พ ๐ฑ, ๐ฑโฒ
Ciรฒ consente di risolvere il problema di ottimizzazione senza
particolari complicazioni rispetto al caso lineare. Una volta
determinati gli ๐ผ๐โ , la superficie di separazione (regola di
classificazione) รจ esprimibile come:
๐ท ๐ฑ =
๐=1โฆ๐
๐ผ๐โ ๐ฆ๐ ๐พ ๐ฑ, ๐ฑ๐ + ๐โ
12prof. Davide Maltoni โ Universitร di Bologna
ML
Classificazione
SVM Non lineari: Kernel functions
Polinomio di grado ๐ (iperparametro):
Le componenti ๐๐ ๐ฑ , ๐ = 1. .๐ sono ottenute come tutte le
possibili combinazioni di elevamento a potenze ๐ delle
componenti di ๐ฑ. Ad esempio per ๐ = 2, ๐ = 2:
ฮฆ ๐ฑ = ฮฆ ๐ฅ1, ๐ฅ2 = 1, ๐ฅ1, ๐ฅ2, ๐ฅ1๐ฅ2, ๐ฅ12, ๐ฅ2
2, ๐ฅ12๐ฅ2, ๐ฅ1๐ฅ2
2, ๐ฅ12๐ฅ2
2
e quindi ๐ = 9.
Si dimostra che:
๐พ ๐ฑ, ๐ฑโฒ = ๐ฑ โ ๐ฑโฒ + 1 ๐
Radial Basis Function (RBF) di ampiezza ๐ (iperparametro):
๐พ ๐ฑ, ๐ฑโฒ = ๐โ
๐ฑโ๐ฑโฒ2
2๐2
2-layer Neural Network (meno utilizzato):
๐พ ๐ฑ, ๐ฑโฒ = ๐ก๐๐โ ๐ ๐ฑ โ ๐ฑโฒ + ๐
๐ ed ๐ (iperparametri) devono essere scelti opportunamente:
una possibile scelta รจ: ๐ = 1, ๐ = 1
Il numero di hidden units e i pesi sono determinati
automaticamente da SVM
13prof. Davide Maltoni โ Universitร di Bologna
ML
Classificazione
SVM Non lineari: Esempi
Polinomio ๐ = 2 Polinomio ๐ = 10
RBF = 1 RBF = 0.2
14prof. Davide Maltoni โ Universitร di Bologna
ML
Classificazione
SVM: estensione multiclasse
SVM รจ in grado di determinare la superficie di separazione tra 2
classi di pattern; come gestire allora i problemi con piรน di 2 classi ?
Si tratta di un problema ancora aperto anche se esistono diverse
soluzioni; le piรน utilizzate sono:
One-Against-One: che studieremo in seguito nellโambito dei multi-
classificatori.
One-Against-All:
Date ๐ classi, ๐ค1, ๐ค2โฆ๐ค๐
Per ogni classe ๐ค๐ , si determina con SVM la superficie di
separazione tra i pattern di ๐ค๐ (etichettati +1) da una parte, e i
pattern di tutte le rimanenti classi ๐คโ , โ โ ๐ (etichettati -1)
dallโaltra, ottenendo la funzione ๐ท๐ ๐ฑ che indica quanto ๐ฑ รจ
distante dalla superficie decisionale in direzione di ๐ค๐ .
Maggiore รจ ๐ท๐ ๐ฑ piรน confidenti siamo dellโappartenenza di ๐ฑ a
๐ค๐.
Al termine del training, si assegna il pattern ๐ฑ alla classe ๐โ per
cui รจ massima la distanza dalla superficie decisionale:
๐โ = ๐๐๐ ๐๐๐ฅ๐
๐ท๐ ๐ฑ
Nota: ร necessario eseguire ๐ training SVM
15prof. Davide Maltoni โ Universitร di Bologna
ML
Classificazione
SVM: implementazione
Il training di SVM, richiede algoritmi numerici non banali in grado di
risolvere un problema di programmazione quadratica. Alcune
implementazioni sono disponibili on-line:
LIBSVM - http://www.csie.ntu.edu.tw/~cjlin/libsvm
Attenzione i Kernel (RBF, ecc.) sono parametrizzati in modo
diverso da quello comune (vedi Readme.txt di LibSvm e [1]). In
particolare si fa uso del parametro gamma (๐พ) per regolare la
complessitร della superficie decisionale. Aumentando ฮณ la
superficie puรฒ assumere forme piรน complesse.
N.B. Con kernel RBF ฮณ opera in modo inverso rispetto a ๐.
Inserito ฮณ anche nel kernel polinomiale (oltre al grado polinomio e
Coef0)
Per la classificazione multiclasse utilizza internamente One-
Against-One [2] (accurato ma inefficiente per molte classi).
Wrapped da Scikit-Learn โ sklearn.svm.SVC
[1] C.W. Hsu, C.C. Chang, and C.J. Lin, A Practical Guide to Support Vector
Classification, disponibile sul sito web di LIBSVM
[2] C.C. Chang and C.J. Lin. LIBSVM: a library for support vector machines.
ACM Transactions on Intelligent Systems and Technology, 2:27:1--27:27,
2011, disponibile sul sito web di LIBSVM
LIBLINEAR - https://www.csie.ntu.edu.tw/~cjlin/liblinear/
Stessi autori di LIBSVM, consigliata nel caso lineare per elevata
dimensionalitร ed elevato numero di pattern.
Wrapped da Scikit-Learn โ sklearn.svm.LinearSVC
SVM-light - http://svmlight.joachims.org
16prof. Davide Maltoni โ Universitร di Bologna
ML
Classificazione
Esempi LibSvm (1)
ยซmaschi-femmineยป
Lineare, ๐ถ = 10 Lineare, ๐ถ = 500
Polinomio ๐ = 3, ๐ถ = 10 Polinomio ๐ = 3, ๐ถ = 500
Peso
Alt
ezza
Peso
Alt
ezza
Peso
Alt
ezza
Peso
Alt
ezza
Peso
Alt
ezza
Peso
Alt
ezza
Peso
Alt
ezza
Peso
Alt
ezza
17prof. Davide Maltoni โ Universitร di Bologna
ML
Classificazione
RBF, ฮณ = 5, ๐ถ = 10 RBF,ฮณ = 5, ๐ถ = 500
RBF,ฮณ = 10, ๐ถ = 10 RBF,ฮณ = 10, ๐ถ = 500
Peso
Alt
ezza
Peso
Alt
ezza
Peso
Alt
ezza
Peso
Alt
ezza
Peso
Alt
ezza
Peso
Alt
ezza
Peso
Alt
ezza
Peso
Alt
ezza
Esempi LibSvm (2)
ยซmaschi-femmineยป
18prof. Davide Maltoni โ Universitร di Bologna
ML
Classificazione
Lineare, ๐ถ = 100
Polinomio ๐ = 7, ๐ถ = 100 RBF,ฮณ = 5, ๐ถ = 100
Polinomio ๐ = 2, ๐ถ = 100
Esempi LibSvm (3)
multiclasse
19prof. Davide Maltoni โ Universitร di Bologna
ML
Classificazione
SVM in pratica
Lineare o Non-lineare?
se la dimensionalitร ๐ dello spazio รจ molto elevata (es. 5000
feature) si utilizza generalmente SVM lineare. Infatti in uno
spazio cosรฌ grande i pattern sono tipicamente molto sparsi e
anche ยซsempliciยป iperpiani sono in grado di separare le
classi efficacemente. Il solo iperparametro da tarare รจ ๐ถ.
per bassa dimensionalitร (es. 20 feature) la scelta primaria รจ
SVM non lineare con kernel RBF. Gli iperparametri da tarare
sono ๐ถ e (o ฮณ se si utilizza LIBSVM).
Per media dimensionalitร (es. 200 features) in genere si
provano entrambe le tipologie (i.e., anche questa scelta
diventa un iperparametro).
Come sempre gli iperparametri si tarano su un validation set
separato, oppure attraverso cross-validation sul training set.
Come gestire il caso multi-classe?
Tipicamente ci si affida alla soluzione disponibile nella libreria
utilizzata (One-Agaist-One per LIBSVM).
Se perรฒ il numero di classi รจ molto elevato, il costo puรฒ
diventare inaccettabile per certe applicazioni. In questo caso
One-Against-All diventa la scelta obbligata.
20prof. Davide Maltoni โ Universitร di Bologna
ML
Classificazione
Multi-Classificatori(Ensemble methods)
Un multi-classificatore รจ un approccio dove diversi classificatori
sono utilizzati (normalmente in parallelo, ma talvolta anche in
cascata o in modo gerarchico) per eseguire la classificazione dei
pattern; le decisioni dei singoli classificatori sono fuse ad un certo
livello del processo di classificazione.
ร stato dimostrato (teoricamente ma soprattutto nella pratica) che
lโutilizzo di combinazioni di classificatori (in inglese multi-classifier,
combination of classifiers, classifier fusion, ensemble learning) puรฒ
migliorare, anche molto, le prestazioni.
Siate pragmatici! Nella pratica investire tempo
nellโottimizzazione ยซspintaยป di un singolo classificatore รจ in
genere meno conveniente rispetto allโaffiancamento (al
classificatore iniziale) di altri classificatori.
Attenzione perรฒ: la combinazione รจ efficace solo quando i
singoli classificatori sono (almeno parzialmente) indipendenti tra
loro, ovvero non commettono gli stessi errori.
Lโindipendenza (o diversitร ) รจ normalmente ottenuta:
Utilizzando feature diverse (non correlate o poco correlate)
Utilizzando algoritmi diversi per lโestrazione delle feature
Utilizzando diversi algoritmi di classificazione
Addestrando lo stesso algoritmo di classificazione su porzioni
diverse del training set (bagging)
Insistendo con lโaddestramento sui pattern erroneamente
classificati (boosting)
La combinazione puรฒ essere eseguita a livello di decisione o a
livello di confidenza.
21prof. Davide Maltoni โ Universitร di Bologna
ML
Classificazione
Fusione a livello di decisione
Ogni singolo classificatore fornisce in output la propria decisione
che consiste nella classe cui ha assegnato il pattern. Le decisioni
possono essere tra loro combinate in diversi modi, tra cui:
Majority vote rule: รจ uno dei piรน noti e semplici metodi di
fusione; ogni classificatore vota per una classe, il pattern viene
assegnato alla classe maggiormente votata.
Piรน formalmente:
Se ๐ถ1, ๐ถ2, โฆ ๐ถ๐๐ รจ un insieme di ๐๐ classificatori, e
๐๐๐ = แ1 ๐ ๐ ๐ รจ ๐๐ ๐๐๐๐ ๐ ๐ ๐ฃ๐๐ก๐๐ก๐ ๐๐ ๐ถ๐0 ๐๐๐ก๐๐๐๐๐๐ก๐
1 โค ๐ โค ๐ , 1 โค ๐ โค ๐๐
Allora il pattern รจ assegnato alla classe ๐ก tale che:
๐ก = ๐๐๐ ๐๐๐ฅ๐=1..๐
ฯ๐=1โฆ๐๐ ๐๐๐
Borda count: ogni classificatore invece di una singola classe,
produce una classifica o ranking delle classi (dalla prima
allโultima) a seconda della probabilitร che a ciascuna di esse
appartenga il pattern da classificare.
I ranking sono convertiti in punteggi e poi sommati; la classe
con il piรน elevato punteggio finale รจ quella scelta dal multi-
classificatore.
Rispetto a majority vote rule, considera anche i ยซnon primiยป di
ogni classificatore.
22prof. Davide Maltoni โ Universitร di Bologna
ML
Classificazione
Prestazioni teoriche
Dato un problema di classificazione binario e un multi-
classificatore costituito da ๐๐ classificatori ( ๐๐ dispari), la
majority vote rule classifica il pattern come appartenente alla
classe che ha ottenuto almeno ๐ = ๐๐ + 1 /2 voti.
Sia ๐ la probabilitร che ogni singolo classificatore esegua la
classificazione correttamente, la probabilitร ๐๐๐ข๐๐ก๐ ๐๐ che la
decisione del multi-classificatore sia corretta รจ esprimibile
attraverso la distribuzione binomiale:
๐๐๐ข๐๐ก๐ ๐๐ =
๐=๐
๐๐๐๐
๐๐๐ 1 โ ๐ ๐๐โ๐
Ricorda, la distribuzione binomiale permette di calcolare con quale
probabilitร estraiamo ๐ palline rosse da unโurna contenete ๐๐ palline, se
๐ รจ la probabilitร di estrarne una rossa in un singolo tentativo.
Nella formula di ๐๐๐ข๐๐ก๐ ๐๐ i casi favorevoli sono quelli in cui un
numero di classificatori compreso tra ๐ e ๐๐ hanno effettuato
classificazione corretta.
Esempio: se ๐ = 0.8 (ogni classificatore commette il 20% di
errore di classificazione) stando alla formula precedente per un
multi-classificatore con ๐๐ (variabile) componenti:
๐๐๐ข๐๐ก๐ 3 = 0.896 (๐ = 2)
๐๐๐ข๐๐ก๐ 5 = 0.942 (๐ = 3)
๐๐๐ข๐๐ก๐ 7 = 0.966 (๐ = 4)
๐๐๐ข๐๐ก๐ 9 = 0.980 (๐ = 5)
๐๐๐ข๐๐ก๐ 15 = 0.995 (๐ = 8)
๐๐๐ข๐๐ก๐ 21 = 0.999 (๐ = 11) Eccezionale !!!
Dovโรจ il trucco? La formula precedente รจ basata
sullโindipendenza (totale) dei classificatori, cosa difficilmente
ottenibile in pratica!
23prof. Davide Maltoni โ Universitร di Bologna
ML
Classificazione
Majority vote rule (esempio)
Training set Test set
Errore=15.5%
(Bayes โ Distr. Normali)
Errore=31.1%
Errore=41.2%
Errore=26.4%
Errore=0.7%
Dividendo il training set in 3 parti e addestrando 3 classificatori (stesso tipo):
Majority vote rule:
24prof. Davide Maltoni โ Universitร di Bologna
ML
Classificazione
One-Against-One
Lโapproccio One-Against-One, consente di risolvere un problema di
classificazione multi-classe, attraverso classificatori binari.
ร lโapproccio adottato dalla libreria LIBSVM (usata in BioLab).
Se ๐ sono le classi del problema, si addestrano
๐ ร ๐ โ 1 /2 classificatori binari: tutte le possibili coppie,
indipendentemente dallโordine.
Durante la classificazione, il pattern ๐ฑ viene classificato da ogni
classificatore binario, che assegna un voto alla classe (tra le due)
piรน probabile.
Al termine il pattern ๐ฑ รจ assegnato alla classe che ha ricevuto piรน
voti (majority vote rule).
ร in genere piรน accurato di One-Against-All (discusso in precedenza
per SVM), anche se meno efficiente in quanto richiede
lโaddestramento di un numero maggiore di classificatori.
25prof. Davide Maltoni โ Universitร di Bologna
ML
Classificazione
Fusione a livello di confidenza (1)
Ogni singolo classificatore ๐ถ๐ , ๐ = 1. . ๐๐ fornisce in output la
confidenza di classificazione del pattern rispetto a ciascuna delle
classi, ovvero un vettore ๐๐จ๐ง๐๐ = ๐๐๐๐๐1, ๐๐๐๐๐2โฆ๐๐๐๐๐๐ in cui
lโi-esimo elemento indica il grado di appartenenza del pattern alla
classe i-esima.
Diversi metodi di fusione sono possibili tra cui: somma (sum),
prodotto (prod), massimo (max) e minimo (min):
๐ฌ๐ฎ๐ฆ = ฯ๐=1โฆ๐๐ ๐๐จ๐ง๐๐ ๐ก = ๐๐๐ ๐๐๐ฅ๐=1โฆ๐
๐ ๐ข๐๐
๐ฉ๐ซ๐จ๐ = ฯ๐=1โฆ๐๐ ๐๐จ๐ง๐๐ ๐ก = ๐๐๐ ๐๐๐ฅ๐=1โฆ๐
๐๐๐๐๐
๐๐๐ฅ๐ = ๐๐๐ฅ๐=1โฆ๐๐
๐๐๐๐๐๐ ๐ก = ๐๐๐ ๐๐๐ฅ๐=1โฆ๐
๐๐๐ฅ๐
๐๐๐๐ = ๐๐๐๐=1โฆ๐๐
๐๐๐๐๐๐ ๐ก = ๐๐๐ ๐๐๐ฅ๐=1โฆ๐
๐๐๐๐
Il criterio del minimo puรฒ sembrare illogico. Attenzione
scegliamo il massimo dei minimi โฆ quindi una classe che non
ha ricevuto confidenza troppo bassa da nessun classificatore.
Il prodotto รจ il metodo ยซprobabilisticamenteยป piรน corretto (la
probabilitร congiunta si calcola come prodotto di probabilitร ) ma
solo nel caso di indipendenza statistica.
Nella pratica la somma รจ spesso preferibile al prodotto in quanto
piรน robusta. Infatti nel prodotto รจ sufficiente che un solo
classificatore indichi confidenza zero per una classe per portare
a zero la confidenza del multi-classificatore per quella classe.
26prof. Davide Maltoni โ Universitร di Bologna
ML
Classificazione
Fusione a livello di confidenza (2)
Una variante efficace, รจ quella della somma pesata, dove la
somma dei vettori confidenza รจ eseguita pesando i diversi
classificatori in base al loro grado di abilitร ๐๐.
๐๐ฏ๐ ๐ฌ๐ฎ๐ฆ =
๐=1โฆ๐๐
๐๐ โ ๐๐จ๐ง๐๐ ๐ก = ๐๐๐ ๐๐๐ฅ๐=1โฆ๐
๐๐ฃ๐๐ ๐ข๐๐
I gradi di abilitร possono essere definiti in base alle singole
prestazioni dei classificatori, ad esempio in maniera
inversamente proporzionale allโerrore di classificazione (vedi
AdaBoost).
Attenzione alla normalizzazione dei vettori di confidenza nel
caso in cui essi non siano probabilitร (ma ad esempio
similaritร ). Riferimento a quanto detto per la normalizzazione
delle distanze.
27prof. Davide Maltoni โ Universitร di Bologna
ML
Classificazione
Fusione a livello di confidenza: esempio
Training Set Test Set
Bayes parametrico
(normali)
Errore=22.8%
Bayes & Parzen
(normali h=10)
Errore=22.8%
Errore=21.0%
Fusione a livello di
confidenza
(somma)
28prof. Davide Maltoni โ Universitร di Bologna
ML
Classificazione
Random Forest
Ideato da Leo Breiman nel 2001.
Appartiene alla famiglia di metodi di Bagging (Boostrap
Aggregating):
Estrazione con re-imbussolamento di un sottoinsieme ๐๐ di
pattern dal training set (tipicamente i 2/3 del totale).
Addestramento del classificatore ๐ถ๐ sul sottoinsieme ๐๐
Fusione dei classificatori (e.g., majority vote rule, somma)
In Random Forest i singoli classificatori sono classification tree
(alberi di classificazione):
I classification tree sono uno strumento molto utilizzato in
applicazioni con pattern categorici o mixed (es. Data Mining).
Per pattern numerici ยซpuriยป in genere non sono competitivi
con SVM se considerati singolarmente.
Un classification tree รจ un albero binario in cui ogni nodo
divide i pattern sulla base di un criterio su una singola feature
(o dimensione).
Per la ยซcrescitaยป dellโalbero a partire da un training set, si
sceglie ad ogni livello la feature che meglio separa le classi e
si determina la soglia di suddivisione. Diversi approcci, tra
cui: ID3, C4.5, CART (default in Random Forest).
Per la classificazione di un nuovo pattern si visita lโalbero e
una volta giunti a una foglia, si classifica il pattern sulla base
della classe piรน comune nel nodo (tra i pattern del training
set): majority vote rule.
29prof. Davide Maltoni โ Universitร di Bologna
ML
Classificazione
Esempi di classification tree
Sopravvivenza passeggeri
del Titanic (fonte Wiki).
Classi: died e survived
sibsp: numero familiari a
bordo.
I numeri sotto le foglie
indicano la probabilitร di
sopravvivenza (sinistra) e
la percentuale di campioni
nella foglia (destra).
La partner giusta per Bill
(fonte GormAnalysis).
30prof. Davide Maltoni โ Universitร di Bologna
ML
Classificazione
Random Forest (2)
In Random Forest, per rendere maggiormente indipendenti i
classificatori (tree):
per ogni nodo la scelta della feature migliore su cui
partizionare non รจ fatta sullโintero insieme delle ๐ feature
(dimensionalitร dei pattern), ma su un sottoinsieme random
di ๐โฒ feature. Valore tipico ๐โฒ = ๐
In assenza di questo accorgimento (noto anche come feature
bagging) molti tree sceglierebbero con elevata probabilitร le
stesse variabili (quelle piรน discriminanti).
Pertanto Random Forest opera simultaneamente due tipi di
bagging: uno sui pattern del training set e uno sulle features.
Il numero di tree in una forest varia generalmente dal alcune
centinaia a alcune migliaia.
Grazie al bagging, le prestazioni possono essere stimate con
tecnica Out-Of-Bag (OOB) che non richiede validation set
separato. Infatti ciascun pattern ๐ฑ puรฒ essere utilizzato per
stimare le prestazioni a partire dai soli tree nel cui training ๐ฑ non
รจ stato coinvolto (OOB).
31prof. Davide Maltoni โ Universitร di Bologna
ML
Classificazione
AdaBoost
Ideato da Freund and Schapire nel 1995.
Appartiene alla famiglia dei metodi di boosting, dove:
piรน classificatori (tipicamente weak = deboli) sono combinati
per realizzare un classificatore strong (forte).
a differenza del bagging, lโapprendimento รจ incrementale e
prevede di aggiungere a ogni iterazione un classificatore
efficace sui pattern critici.
ad ogni iterazione si assegna un peso a ciascun pattern del
training set (aggiornando il peso precedente). Pattern
classificati erroneamente hanno peso maggiore e
contribuiscono maggiormente nella selezione del prossimo
classificatore.
Per semplicitร nel seguito si introduce una versione binaria, ma
esiste anche una versione multiclasse.
Siano:
๐ฑ1, ๐ฆ1 โฆ ๐ฑ๐, ๐ฆ๐ i pattern del training set (TS) e le rispettive
etichette, con ๐ฆ๐ โ +1,โ1
๐ค๐๐ก il peso del pattern ๐ฑ๐ allโiterazione ๐ก
โ๐ก ๐ฑ โ +1,โ1 il classificatore introdotto allโiterazione ๐ก e
scelto tra i classificatori โ๐๐ก ๐ฑ disponibili allโiterazione ๐ก
๐ผ๐ก il peso del classificatore โ๐ก ๐ฑ nellโambito del multi-
classificatore.
32prof. Davide Maltoni โ Universitร di Bologna
ML
Classificazione
AdaBoost: pseudocodice
๐ค๐1 =
1
๐, ๐ = 1. . ๐ (tutti i pattern hanno lo stesso peso iniziale)
For ๐ก = 1โฆ๐
Normalizza i pesi (somma 1): เต๐ค๐๐ก ฯ๐=1โฆ๐๐ค๐
๐ก , ๐ = 1. . ๐
Per ogni classificatore โ๐๐ก ๐ฑ disponibile (per la scelta)
Calcola errore (pesato sullโimportanza dei pattern)
๐๐ =๐=1โฆ๐
๐ค๐๐ก โ ๐ผ โ๐
๐ก ๐ฑ๐ โ ๐ฆ๐
๐ผ ๐๐๐๐ = แ1 ๐๐๐๐ = ๐ก๐๐ข๐0 ๐๐๐ก๐๐๐๐๐๐ก๐
Scegli come โ๐ก โ il classificatore โ๐๐ก โ con minor ๐๐
Calcola il peso del classificatore (vedi slide successiva)
๐ผ๐ก =1
2๐๐
1 โ ๐๐ก
๐๐ก, ๐๐๐ฃ๐ ๐๐ก = ๐๐๐ ๐๐
Aggiorna i pesi (vedi slide successiva)
๐ค๐๐ก+1 = ๐ค๐
๐ก โ ๐โ๐ผ๐ก๐ฆ๐โ
๐ก ๐ฑ๐
End for
Al termine dellโaddestramento, il classificatore finale (strong) รจ la
media pesata dei weak classifiers:
๐ป ๐ฑ = ๐ ๐๐๐ ๐ก=1โฆ๐
๐ผ๐กโ๐ก ๐ฑ
33prof. Davide Maltoni โ Universitร di Bologna
ML
Classificazione
AdaBoost: scelta dei pesi
๐ผ๐ก =1
2๐๐
1 โ ๐๐ก
๐๐ก
Un classificatore binario con errore 0.5 ha peso 0 (neutro), il
peso aumenta esponenzialmente quando lโerrore si avvicina a 0
e diventa negativo se lโerrore รจ superiore a 0.5 (fai lโopposto di
ciรฒ che dice il classificatore!).
๐ค๐๐ก+1 = ๐ค๐
๐ก โ ๐๐ง dove
๐ง = โ๐ผ๐ก๐ฆ๐โ๐ก ๐ฑ๐
osservando che:
๐ฆ๐ โ๐ก ๐ฑ๐ = แ
1 ๐ ๐ ๐๐ ๐๐๐ก๐ก๐๐๐ รจ ๐๐๐๐๐๐ก๐ก๐๐๐๐๐ก๐ ๐๐๐๐ ๐ ๐๐๐๐๐๐ก๐โ1 ๐๐๐ก๐๐๐๐๐๐ก๐
๐ค๐๐ก+1 aumenta se ๐ง > 0: ๐ผ๐ก positivo e classificazione errata,
oppure ๐ผ๐ก negativo e classificazione corretta
๐ค๐๐ก+1 diminuisce se ๐ง < 0: nei 2 casi complementari.
34prof. Davide Maltoni โ Universitร di Bologna
ML
Classificazione
Viola & Jones Face detector (2001)
ร una delle piรน note applicazioni di Adaboost.
I weak classifiers โ๐ sono scelti tra circa 160000 filtri
rettangolari (Haar features) che possono essere calcolati in
modo molto efficiente attraverso lโimmagine integrale.
โ๐ ๐ฑ = แ1 ฮฃ (pixels in white area) โ ฮฃ (pixels in black area) > ๐๐โ1 ๐๐๐ก๐๐๐๐๐๐ก๐
Per poter scartare velocemente non-face lโapproccio di Viola &
Jones utilizza una cascata di strong classifier (ciascuno ottenuto
con AdaBoost) che operano sequenzialmente.
Se uno dei classificatori (ad un qualsiasi livello della
sequenza) classifica il pattern come (non face) questo viene
scartato immediatamente.
Gli strong classifier devono essere scelti e tarati per
minimizzare i falsi negativi piuttosto che lโerrore totale di
classificazione.
I classificatori allโinizio della sequenza sono semplici e veloci
(il primo utilizza solo due weak classifiers e scarta circa il 50%
dei pattern non-face).