Pattern Recognition: Introduzione

34
1 prof. 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

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