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 1z 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 xn 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)