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.