Pre-processing ed Estrazione delle caratteristiche

Transcript

Pre-processing ed Estrazione delle caratteristiche
Pre-processing ed
Estrazione delle
caratteristiche
Roberto Tagliaferri
Dipartimento di Matematica ed Informatica
Università di Salerno
84081 Baronissi (Sa)
e-mail [email protected]
Corso di dottorato: Apprendimento automatico e
Pattern Recognition statistico
Pre-processing ed
Estrazione delle caratteristiche
●
Introduzione
●
Pre-processing e post-processing
●
Normalizzazione e codifica degli input
●
Selezione delle caratteristiche
●
Analisi delle componenti principali (PCA)
Introduzione
"
In teoria, la natura general-purpose delle reti neurali e la
loro capacità di realizzare arbitrarie funzioni input-output,
porta minore enfasi all'attenta ottimizzazione del preprocessing rispetto alle semplici tecniche lineari
"
In pratica, la scelta del Pre-processing è uno dei più
significativi fattori nel determinare il buon risultato
dell'esperimento
"
Nei casi più semplici abbiamo una trasformazione lineare
dei dati input (ed eventualmente anche di quelli output)
"
In casi più complessi abbiamo anche una riduzione della
dimensione degli input
"
Un altro modo di migliorare la performance del sistema è
di inserire informazione a priori nell'architettura della rete
"
Un problema è quando abbiamo dati mancanti, incompleti
o parzialmente sbagliati
Pre-processing e postprocessing
"
In figura abbiamo la collocazione di una rete neurale tra i
passi di pre- e post-processing
Pre-processing e postprocessing
"
Quando usiamo algoritmi batch per l'apprendimento, è
conveniente prima pre-processare tutti i dati e poi
effettuare il training
"
Quando usiamo algoritmi on-line, ogni dato viene pre-
processato prima di passarlo alla rete
"
Se usiamo il post-processing dei dati, i target devono
essere trasformati usando l'inversa della trasformazione del
post-processing
"
Dopo il training, i dati di test devono passare attraverso il
pre-processing, poi attraverso la rete ed infine attraverso la
trasformazione del post-processing
"
Una delle più importanti forme di pre-processing è la
riduzione della dimensione dell'input per by-passare il
problema della curse of dimensionality
Pre-processing e postprocessing
"
La più semplice riduzione della dimensione dell'input
consiste nell'eliminazione di alcune variabili input meno
significative
"
Un altro approccio corrisponde alla realizzazione di
features (caratteristiche) attraverso la combinazione lineare
e non-lineare degli input, detto feature extraction
"
Altri approcci portano alla riduzione della dimensione
dell'input attraverso delle proiezioni in spazi di dimensione
minore (PCA, discriminante lineare di Fisher)
"
Altri ancora dalla selezione delle caratteristiche

Una dimensione più piccola dell'input porta ad una rete
✔
con meno parametri adattivi,
✔
con una migliore capacità di generalizzazione e
✔
con una maggiore velocità nell'apprendimento
Pre-processing e postprocessing
"
La riduzione della dimensione dell'input porta anche ad
una perdita di informazione
"
Scopo delle tecniche di riduzione della dimensione degli
input è di assicurare la permanenza della massima
informazione rilevante possibile
"
Consideriamo un problema di classificazione in cui
assegnare ad un vettore input x una tra c classi Ck
"
Il minimo errore si ottiene quando x è assegnato alla
classe Ck che ha massima probabilità a posteriori P(Ck|x)
"
Se guardiamo a queste probabilità come a features, poiché
abbiamo
c
∑k =1 P C k∣x =1
allora in principio bastano c - 1 features indipendenti per
ottenere il classificatore ottimale

In pratica dobbiamo trattenere molte più caratteristiche
per essere sicuri di non perdere troppa informazione utile
Normalizzazione e codifica
degli input
"
Il primo semplice passo che si effettua è un semplice
rescaling lineare delle variabili input, per evitare che
variabili assumano valori maggiori di altre
"
In questo modo tutti gli input hanno valori simili
"
Per ogni variabile xi calcoliamo la media, la varianza e la
variabile ri-scalata come segue
1
xi 
N
N
x
n 1
n
i
N
1
2
2
n
i 
xi  xi 


N  1 n 1
n
x
i  xi
n
~
xi 
i
con n = 1, ..., N l'indice dei pattern input e i = 1, ... , d.

Le variabili trasformate hanno media 0 e deviazione
standard unitaria sul training set trasformato
Normalizzazione e codifica
degli input
"
La trasformazione lineare precedente parrebbe ridondante
per una rete MLP perché potrebbe essere combinata con la
trasformazione lineare del primo livello della rete
"
In pratica assicura che le variabili input e target siano
dell'ordine dell'unità cosicché anche i pesi della rete sono
aspettati essere dell'ordine dell'unità
"
In questo modo possiamo inizializzare in modo opportuno
i pesi della rete
"
Senza di essa bisognerebbe trovare una soluzione per i
valori iniziali dei pesi notevolmente differenti dagli altri
Normalizzazione e codifica
degli input
"
Nel caso di reti RBF con funzioni di base sferiche
simmetriche, è molto importante questo passo
"
Infatti, l'attivazione di una funzione di base dipende dalla
distanza euclidea l tra il vettore input x e il centro della
funzione di base j, dato da
d
l =∥x− j∥ =∑i=1 {x i −ij }2
2
2
con d la dimensione dei pattern input.

Se una delle variabili input fosse molto più piccola delle
altre, il valore di l 2 sarebbe molto insensibile ad essa

Come alternativa, si potrebbero usare matrici di
covarianza complete come funzioni di base
Normalizzazione e codifica
degli input
"
Nel caso di dati discreti, è conveniente distinguere tra
variabili ordinali che hanno un ordine naturale e
categoriche che non ce l'hanno
"
I dati ordinali (per esempio l'età delle persone) possono
essere semplicemente trasformati nei valori corrispondenti
di una variabile continua
"
Per i valori categorici (per esempio i colori degli oggetti),
non ha senso effettuare tale trasformazione perché
indurrebbe un ordinamento artificiale su dati
"
In questo caso, la cosa migliore è effettuare una codifica
1-di-c dei dati input
"
Questa è uguale a quella usata per i target in problemi di
classificazione
"
Nel caso di tre colori, per esempio il risultato è di avere
tre variabili con i colori rappresentati dai tre vettori (1,0,0),
(0,1,0) e (0,0,1)
Selezione delle caratteristiche
●
Il problema consiste nel selezionare un sotto-insieme delle
caratteristiche (o degli input) per ridurre la dimensione
degli input della rete neurale
●
✔
Qualunque procedura è composta di due passi:
bisogna definire un criterio per giudicare se un sotto-
insieme di caratteristiche è migliore di un altro
✔
bisogna trovare una procedura sistematica per cercare tra i
sotto-insiemi candidati di caratteristiche
●
Il criterio di selezione potrebbe essere lo stesso usato per
il sistema completo (per esempio, percentuale di
misclassificazioni o errore somma-di-quadrati)
●
La procedura di ricerca potrebbe essere una ricerca
esaustiva di tutti i sotto-insiemi
●
Nelle applicazioni pratiche siamo forzati spesso a
considerare criteri di selezione semplificati, procedure di
ricerca non esaustive
Selezione delle caratteristiche
Criteri di selezione
●
Il criterio ottimo di selezione è lo stesso usato per il
sistema completo (per esempio, percentuale di
misclassificazioni o errore somma-di-quadrati), addestrando
la rete su un sotto-insieme delle caratteristiche e valutando
la performance su un insieme di dati indipendente
●
In molti casi, soprattutto quando abbiamo l'ottimizzazione
non lineare, tale approccio è impraticabile perché le
richieste di tempo di calcolo sono eccessive
●
È comune usare un modello più semplice, per esempio un
discriminante o un regressore lineare, per selezionare queste
features e poi usare le caratteristiche selezionate con
modelli non lineari più sofisticati
●
Le procedure di selezione delle caratteristiche e di
classificazione (o regressione) dovrebbero essere
ottimizzate insieme e solo vincoli pratici costringono a
trattarli indipendentemente
Selezione delle caratteristiche
Criteri di selezione
●
Per problemi di regressione, possiamo
•
prendere un semplice modello lineare dato da una rete a
singolo livello con output lineari
•
ed usare l'errore somma-di-quadrati se è la stessa funzione
di errore usata per l'addestramento della rete
Selezione delle caratteristiche
Criteri di selezione
●
Per problemi di classificazione, il criterio ideale di
selezione è la probabilità di misclassificazione o il rischio o
perdita totali da valutare con tecniche parametriche o non
parametriche
●
Un criterio più semplice da usare è quello basato sulla
separabilità delle classi, per esempio basato sulle matrici di
covarianza (come per il discriminante lineare di Fisher)
●
Una caratteristica che si trova abitualmente quando
usiamo un criterio ottimo è che eliminando alcune
caratteristiche migliora la performance del sistema che poi
peggiora eliminandone troppe
●
Tale caratteristica si perde con molti semplici criteri di
selezione, come quelli basati sulla separabilità
Selezione delle caratteristiche
Criteri di selezione
•
Per esempio, la distanza di Mahalanobis 2 aumenta
sempre con l'aggiunta di nuove variabili
•
In generale, tali misure J soddisfano una proprietà di
monotonicità
J (X +) ≥ J (X)
•
dove X è un insieme di caratteristiche e X + un insieme
più grande che include X
•
Tale proprietà è condivisa da tutti i criteri basati su
matrici di covarianza
•
I criteri che soddisfano questa proprietà non possono
essere usati per confrontare insiemi di taglia diversa
•
mentre possono essere usati per confrontare insiemi di
uguale taglia
•
Un approccio utilizzabile per confrontare modelli
addestrati con numeri differenti di caratteristiche consiste
nell'usare tecniche di cross-validation
Selezione delle caratteristiche
Procedure di ricerca
●
Se abbiamo d features, ci sono 2d sotto-insiemi possibili
•
per esempio, con 10 variabili abbiamo 1024 possibili
sotto-insiemi, ma con 100 variabili abbiamo circa 1030
possibili sotto-insiemi
●
Se abbiamo deciso di conservare esattamente d features,
allora il numero di possibili combinazioni è
d!
 d − d ! d !
che è minore di 2d , ma ancora intrattabile al crescere di d
●
In principio, potrebbe essere necessario prendere in
considerazione tutti i possibili sotto-insiemi, poiché
combinazioni di variabili possono dare molta più
informazione delle variabili prese singolarmente, come si
vede in figura nel caso di due variabili ed è vero per un
numero arbitrario di caratteristiche
Selezione delle caratteristiche
Procedure di ricerca
●
Esempio in cui la combinazione di due variabili dà molta
più informazione delle due variabili prese singolarmente
Selezione delle caratteristiche
Procedure di ricerca: branch and bound
●
Se usiamo un criterio che soddisfa la relazione di
monotonicità, esiste una procedura di ricerca esaustiva
chiamata branch and bound
●
Consideriamo la procedura esaustiva che genera un albero
●
Consideriamo d features xi, i = 1, ... , d ed indichiamo
con M = d - d le caratteristiche che sono state scartate da
z1, ..., zM dove ciascun zk può prendere il valore 1, ... , d
●
Non ci devono essere due zk che assumono lo stesso
valore perché significherebbe che una feature è stata
eliminata due volte
●
Una condizione sufficiente per soddisfare questi vincoli è
che le zk (non è importante il loro ordine) siano tali che
z 1z 2 z M
●
Costruiamo un albero di ricerca, come quello in figura
che illustra l'albero relativo al caso in cui vogliamo
selezionare due di cinque caratteristiche
Selezione delle caratteristiche
Procedure di ricerca: branch and bound
●
Esempio di albero di ricerca relativo al caso in cui
vogliamo selezionare due di cinque caratteristiche
Selezione delle caratteristiche
Procedure di ricerca: branch and bound
●
L'algoritmo di branch and bound funziona così:
●
Supponiamo di voler massimizzare un criterio J(d ) e che
il valore di J in A è memorizzato come una soglia
●
Se in qualche punto della ricerca si arriva ad un nodo
intermedio B con valore di J minore di quello in A,
possiamo interrompere la ricerca nel sotto-albero di B
●Questo
corrisponde a non effettuare la ricerca in tutti i
nodi neri in figura
●
La ricerca termina quando tutti i nodi del livello finali
sono stati visitati o esclusi dalla ricerca
●
Anche se questi algoritmi riducono la complessità di
tempo rispetto alla ricerca esaustiva, rimangono di
complessità uguale nel caso peggiore
●
Un miglioramento euristico si ottiene facendo in modo
che nodi con valori minori abbiano più figli (Fukunaga,
1990)
Selezione delle caratteristiche
Procedure di ricerca: tecniche di ricerca sequenziale
●
Quando l'algoritmo di branch and bound è troppo costoso
per poterlo utilizzare, siamo costretti ad usare tecniche che
danno soluzioni sub-ottime
●
La prima, più semplice, consiste nel prendere le d
caratteristiche che sono individualmente le migliori
●
Questo metodo è altamente inaffidabile e funziona in
modo ottimo solo nel caso in cui il criterio di selezione è la
somma o il prodotto del criterio calcolato per ciascuna
feature individualmente e quindi solo quando le
caratteristiche sono completamente indipendenti
●
Un approccio migliore è quello del sequential forward
selection, illustrato in figura, in cui ad ogni passo si genera
l'albero aggiungendo la feature che dà il maggiore
incremento del criterio di selezione
●
Questo metodo non risolve il problema delle features che
da sole provvedono poca discriminazione e insieme ne
danno molta di più
Selezione delle caratteristiche
Procedure di ricerca: tecniche di ricerca sequenziale
●
Un esempio di sequential forward selection, in cui ad
ogni passo si genera l'albero aggiungendo la feature che dà
il maggiore incremento del criterio di selezione
Selezione delle caratteristiche
Procedure di ricerca: tecniche di ricerca sequenziale
●
Un approccio alternativo è quello del sequential
backward elimination, illustrato in figura, in cui si parte
dall'insieme di tutte le caratteristiche e ad ogni passo si
genera l'albero eliminando la feature che dà la minore
riduzione nel valore del criterio di selezione
●
Questo metodo risolve il problema delle features che da
sole provvedono poca discriminazione e insieme ne danno
molta di più, ma non garantisce di trovare la soluzione
ottima ed è computazionalmente molto oneroso
●
Questi algoritmi possono essere generalizzati in molti
modi, ma il prezzo è sempre lo stesso, migliori soluzioni
comportano maggiori costi computazionali
Selezione delle caratteristiche
Procedure di ricerca: tecniche di ricerca sequenziale
●
Un esempio di sequential backward elimination, in cui si
parte dall'insieme di tutte le caratteristiche e ad ogni passo
si genera l'albero eliminando la feature che dà la minore
riduzione nel valore del criterio di selezione
Analisi delle componenti
principali
"
Consideriamo adesso delle tecniche per combinare gli
input insieme per costruire un (generalmente minore)
insieme di caratteristiche
"
Queste sono procedure non supervisionate
"
Consideriamo trasformazioni lineari di riduzione della
dimensione dei dati input
"
Lo scopo è di proiettare i vettori input d-dimensionali xn in
vettori zn M-dimensionali con M < d
"
Questo è fatto esprimendo i nostri vettori come una
combinazione lineare di vettori ui ortonormali
d
x   zi u i
u i T u j  ij
i 1
M
~
x   zi u i 
i 1
"
zi  u i T x
d
b u
i  M 1
i
i
x è ottenuto supponendo di mantenere solo M < d
coefficienti zi e sostituire gli altri con costanti bi
(1)
Analisi delle componenti
principali
"
Questa rappresentazione di x è una riduzione della
dimensione input poiché rappresentiamo il vettore input ddimensionale x con un vettore z M-dimensionale, con
M<d
"
Consideriamo un intero data set di N vettori xn , vogliamo
trovare la migliore rappresentazione approssimata xn di xn
scegliendo i vettori di base ui ed i coefficienti bi, una volta
determinati i valori di zi dalla (1), in media sull'intero data
set
d
E = x − x =∑i=M 1  z i −bi  u i
n
n
n
n
"
L'errore è dato da
"
La migliore approssimazione è quella che minimizza la
somma dei quadrati su tutto il data set
EM
1 N n ~n
  x x
2 n 1
2
1 N d n
2
   zi  bi 
2 n 1 i  M 1
(2)
dove abbiamo usato la relazione (1) di ortonormalità tra i
vettori ui ed uj
Analisi delle componenti
principali
"
Se mettiamo le derivate di EM rispetto ai bi a zero,
otteniamo
N
1
bi 
N
z
n 1
T
 ui x
1
x
N
dove abbiamo definito
"
n
i
(3)
N
n
x

n 1
Usando la (1) e la (3) l'errore somma-di quadrati (2)
diventa
d
N
2
1
T
n
E M = ∑ ∑ {ui  x − x  }
2 i=M 1 n=1
d
=
d
1
1
T
u

u
=
i
∑
∑
i
i
2 i=M 1
2 i=M 1
(4)
dove abbiamo usato le relazioni e definizioni seguenti
u i  i u i

 x
n
uTi u j =ij
 x x  x 
n
n
1
x
N
N
x
n 1
n
T
Analisi delle componenti
principali
"
Il minimo della funzione di errore EM si ottiene
scegliendo i d - M autovalori più piccoli ed i corrispondenti
autovettori da scartare
"
La procedura così derivata si chiama trasformazione di
Karhunen-Loéve o analisi delle componenti principali
(PCA)
"
Ciascuno dei vettori ui è è chiamato componente
principale
"
Nel caso di punti bi-dimensionali, la tecnica è illustrata in
figura
"
In pratica, il primo passo dell'algoritmo è di calcolare la
media dei vettori input e di sottrarla dai dati
"
Poi si calcola la matrice di covarianza con gli autovettori
ed autovalori
"
Infine, si mantengono gli autovettori corrispondenti agli M
autovalori massimi e si proiettano i dati sugli autovettori
selezionati, ottenendo i vettori trasformati zn
Analisi delle componenti
principali
"
Esempio di analisi delle componenti principali nel caso di
punti bi-dimensionali
Schematic illustration of principal component analysis applied to data
in two dimensions. In a linear projection down to one dimension, the
optimum choice of projection, in the sense of minimizing the sum-ofsquares error, is obtained by first subtracting off the mean of the
x
data set, and then projecting onto the first eigenvector u1 of the
covariance matrix.
Analisi delle componenti
principali
"
L'errore introdotto dalla riduzione di dimensione usando la
PCA può essere calcolato usando la (4)
d
1
E M = ∑ i
2 i=M 1
"
Quando si effettua una riduzione notevole della
dimensione e necessitano solo poche componenti, esistono
alcune tecniche che calcolano solo gli autovettori necessari
(Press et al., 1992)
"
È possibile usare anche altri criteri incluse le misure di
covarianza e l'entropia della popolazione, che portano agli
stessi risultati in termini di proiezioni sugli autovettori di 
corrispondenti agli autovalori maggiori (Fukunaga, 1990)
Analisi delle componenti
principali
Dimensione intrinseca dei dati
"
Se abbiamo vettori in uno spazio d-dimensionale e
troviamo che i primi d' autovalori sono significativamente
maggiori dei rimanenti d - d', allora i dati possono essere
rappresentati con alta accuratezza dalla proiezione sui primi
d' autovettori
"
Si vede che la dimensione effettiva è minore della
dimensione apparente d dei dati
"
Tuttavia la PCA è limitata dall'essere una tecnica lineare e
non può catturare correlazioni non lineari come mostrato in
figura e quindi sovrastimare la vera dimensione dei dati
"
Un data set in d dimensioni ha una dimensione intrinseca
d' se i dati giacciono interamente in un sottospazio d'
dimensionale (Fukunaga, 1990)
"
Se i dati sono rumorosi, la dimensione intrinseca può
aumentare come si vede nella figura successiva
Analisi delle componenti
principali
Dimensione intrinseca dei dati
"
Esempio in cui la PCA non può catturare correlazioni non
lineari e quindi sovrastima la vera dimensione dei dati
"
In questo caso, la PCA dà due autovettori con uguali
autovalori (come risultato della simmetria dei dati), mentre i
dati possono essere specificati non solo in termini di x1 ed
x2 ma anche di un singolo parametro 
Analisi delle componenti
principali
Dimensione intrinseca dei dati
"
Esempio di dati che sono rumorosi, per cui la dimensione
intrinseca può aumentare
Analisi delle componenti
principali
Tecniche non supervisionate per la PCA
"
Tecniche di PCA lineare e non lineare portano notevoli
miglioramenti nelle prestazioni dei sistemi di regressione e
classificazione
"
In alcuni casi la perdita di informazione, anche se bassa
per la rappresentazione dei dati, può essere significativa
"
Un esempio è illustrato in figura
Analisi delle componenti
principali
Tecniche non supervisionate per la PCA
"
In generale le tecniche non supervisionate di PCA lineare
e non lineare non hanno gli stessi problemi
"
Il discriminante lineare di Fisher che funziona meglio nel
caso illustrato, può trovare solo c-1 direzioni indipendenti
per problemi con c classi
"
In molti casi, soprattutto quando si lavora con immagini,
per i dati non sono disponibili i valori target
"
È possibile realizzare la PCA lineare con reti neurali non
supervisionate con apprendimento hebbiano (Oja, 1982,
1989; Sanger, 1989)
"
È possibile realizzare anche la PCA non lineare con reti
neurali non supervisionate con apprendimento hebbiano
(Karhunen e Joutsensalo, 1994, 1995)
"
È possibile realizzare l'analisi delle componenti
indipendenti (ICA) lineare e non lineare con reti neurali non
supervisionate (proceedings di ICA 2000)