6.10.1 Analisi delle componenti principali (PCA)
Transcript
6.10.1 Analisi delle componenti principali (PCA)
6.10. TRASFORMATE BASATE SUGLI AUTOVETTORI 6.10.1 175 Analisi delle componenti principali (PCA) Rappresenta una tecnica statistica per semplificare i dati. I primi lavori si devono a Pearson [2] nel 1901 e successivamente sviluppata dallo psicologo Hotelling [3] nel 1933 che la introdusse con il nome di “Analisi delle Componenti Principali” (in alcuni casi nota anche come trasformata di Hotelling). Successivamente Karhunen [4] e poi Loève [5] hanno sviluppato trasformazioni analoghe per ottenere dai segnali continui un insieme di coefficienti significativi e non correlati. Tutte queste trasformazioni basate sull’analisi degli autovettori che generano coefficienti rappresentativi non correlati del segnale originale sono denominati in letteratura Principal Component Analisys (PCA) [6], anche se spesso sono chiamate trasformate con il seguente nome: Metodo alle Componenti Principali, Karhunen-Loeve (K-L), Hotelling, Eigenvector. Derivazione 1 Nei metodi di proiezione, siamo interessati a trovare un mapping che trasforma i dati di input a d dimensione, in un nuovo spazio a dimensione k << d, con l’obbiettivo di perdere poca informazione. La PCA trova una nuova base attraverso la ricerca di vettori che si orientano nella massima varianza dei dati. Sia x ∈ <d i nostri dati, siamo interessati a trovare il vettore di proiezione w che ci permette di ottenere un nuovo vettore: z = w> x. (6.68) Il valore atteso e la varianza di z sono dati dalle seguenti relazioni: E(z) = E(w> x) = w> E(x) = w> µ (6.69) con µ il vettore medio di x, mentre V ar(z) = = = = V ar(w> x) = E[(w> x − w> µ)2 ] E[(w> x − w> µ)(w> x − w> µ)] E[w> (x − µ)(x − µ)> w] = w> E[(x − µ)(x − µ)> ]w w> Σw (6.70) La PCA è una tecnica non supervisionata che conserva quanta più informazione possibile dei dati originali x. La massima informazione è sinonimo di varianza, quindi essa ricerca vettori w tali da disporsi nella direzione di massima varianza dei dati. Cominciamo ad estrarre il primo vettore w1 , considerando che i dati proiettati avranno massima varianza tra tutte le possibili versioni che si possono scegliere di w1 . Quindi cerchiamo w1 tale per cui V ar(z) sia massima, soggetta al vincolo w1> w1 = 1. Risolviamolo quindi come un problema di Lagrange, introducendo il relativo moltiplicatore α come segue max w1> Σw1 − α(w1> w1 − 1) (6.71) w1 derivando rispetto a w1 e ponendo a zero otteniamo 2Σw1 − 2αw1 = 0 ⇒ Σw1 = αw1 che è verificato se w1 è autovettore di Σ e λ il suo corrispondente autovalore. Poiché noi abbiamo w1> Σw1 = αw1> w1 = α (6.72) (6.73) scegliamo l’autovettore con il massimo autovalore, quindi λ1 = α. Ora dobbiamo estrarre la seconda componente principale w2 , la cui varianza deve essere massimizzata, e devono essere soddisfatte le seguenti condizioni kw2 k = 1 w2 ⊥ w1 ⇔ w2> w1 = 0 (6.74) 176 CAPITOLO 6. TRAFORMATE LINEARI FONDAMENTALI La proiezione della seconda componente è z2 = w2> x (6.75) che è scorrelata da z1 poiché le due componenti w1 e w2 sono ortogonali. Ricercando la massima varianza in questa seconda componente otteniamo max w2> Σw2 − α(w2> w2 − 1) − β(w2> w1 − 0) w2 (6.76) e derivando rispetto a w2 e ponendo a zero abbiamo 2Σw2 − 2αw2 − βw1 = 0 (6.77) 2w1> Σw2 − 2αw1> w2 − βw1> w1 = 0. (6.78) e moltiplicando per w1 otteniamo Si noti che w1> w1 = 0 e w1 Σw2 è uno scalare uguale a w2 Σw1 , e poichè w1 è l’autovettore massimo di Σ, otteniamo Σw1 = λ1 w1 (6.79) perciò w1 Σw2 = w2 Σw1 = λ1 w2> w1 = 0 (6.80) quindi β = 0 e la (6.77) si riduce a Σw2 = αw2 (6.81) con w2 il secondo autovettore più grande di σ e relativo autovalore λ2 = α. Dal momento che Σ è simmetrica, per due differenti autovalori, gli autovettori sono ortogonali. Ricordiamo che se abbiamo n osservazioni di x ∈ <d , possiamo considerare la matrice x11 x12 ... x1d x21 x22 ... x2d . . . X(n×d) = (6.82) . . . . . . xn1 xn2 ... xnd e dalla quale calcolare la matrice di varianza/covarianza Σ di dimensione (d × d) i cui valori Cij sono definiti come segue 1 X (xki − µi )> (xkj − µj ), i, j = 1, . . . , d n−1 n Cij = (6.83) k=1 Pn con µi = n1 k=1 xki rappresenta la media del campione della componente (colonna della matrice X) i-esima. Una maniera di trovare gli autovettori e autovalori della matrice di varianza-covarianza, è mediante l’uso della singular value decomposition SVD trattata in appendice. Estratte tutte le componenti, notiamo che gli autovalori sono ordinati in maniera decrescente, λ1 ≥ λ2 ≥ . . . ≥ λd . Questo ci permette di analizzare quante componenti è possibile utilizzare. Spesso la PCA viene utilizzata per esplorare i dati che hanno una dimensione iniziale d > 3 e difficilmente graficabile, per cui è utile capire se le feature che sto analizzando hanno potere discriminante tra le popolazioni di oggetti che sto considerando. Oppure può essere usata semplicemente per eliminare rumore e ridurre la complessità computazionale, rappresentando il dato che deve poi essere inviato ad un classificatore con una dimensione ridotta. Nel caso di esplorazione, si usano i primi due o tre autovettori su cui proiettare i dati originali, ottenendo nuovi vettori in uno spazio 2D oppure 3D 6.10. TRASFORMATE BASATE SUGLI AUTOVETTORI 177 e facilmente graficabili. Nell’ultimo caso di riduzione del rumore1 e rappresentazione delle feature, bisogna capire quante componenti conservare. La percentuale di informazione catturata la si può calcolare in maniera incrementale sulla base degli autovalori, per esempio adottare un modello che 2 usa solo i primi due autovettori significa mantenere 100 · λP1 +λ λj di informazione. Spesso accade che j con le prime due componenti si supera il 99% di informazione catturata dai dati iniziali. PQuindi k λ se usiamo k << d autovettori, la percentuale di informazione catturata è data da 100 · Pdi=1 λi . j=1 j Un altro modo empirico di capire quante componenti ritenere, è dato dallo Scree Test raffigurato in figura 6.14, in cui sulle ascisse vi sono le d componenti estratte, mentre sulle ordinate gli autovalori calcolati. Ovviamente sono decrescenti, e partendo dagli ultimi autovalori, si interpola una retta come raffigurato. Tutte le componenti che risultano al di sopra di tale retta sono quelle che vanno mantenute, mentre le altre si scartano. Questa tecnica è utile quando si progetta un sistema di riconoscimento automatico per la rappresentazione delle feature, e per evitare di cestinare informazione utile contenuta nei dati. Eigenvalue vs. PC Number 5 4.5 4 3.5 Eigenvalue 3 2.5 2 1.5 1 0.5 0 1 1.5 2 2.5 3 PC Number 3.5 4 4.5 5 Figura 6.14: Illustrazione dello Scree Test. Derivazione 2 Una trasformata PCA ha la formula generale espressa da: FP CA (u, v) = N −1 N −1 X X S(j, k)A(j, k; u, v) (6.84) j=0 k=0 dove S(j,k) é l’immagine di input ed il Kernel della trasformata A(j,k;u,v) dovrá soddisfare la seguente equazione degli autovalori: λ(u, v)A(j, k; u, v) = N −1 N −1 X X KP CA (j, k; l, m)A(l, m; u, v) (6.85) l=0 m=0 dove KP CA (j,k;l,m) indica la funzione di covarianza dell’immagine S(j,k) e λ(u,v) é un valore costante per un fissato (u, v). L’insieme delle funzioni definite dal Kernel (6.85) sono le autofunzioni 1 Si noti che gli autovettori sono ordinati in base alla varianza catturata, dalla direzione con maggiore varianza e quella con minore varianza. Maggiore varianza significa bassa frequenza, e viceversa per le ultime componenti. Quindi la PCA, nel caso di riduzione della dimensionalità dei dati, può essere considerata come filtro passa-basso.