Sunteți pe pagina 1din 11

Lucrarea 2

Analiza Componentelor Principale (PCA)


1. Baza teoretica
n recunoaterea formelor, selecia i extragerea caracteristicilor reprezint o alegere
decisiv pentru proiectarea oricrui clasificator. Selecia caracteristicilor poate fi vzut i ca un
proces de compresie de date, fiind asimilat cu o transformare liniar din spaiul iniial al
observaiilor ntr-un spaiu cu mai puine dimensiuni. O astfel de transformare este necesar
deoarece poate conserva o mare parte din informaie i permite aplicarea unor algoritmi n timp
real, algoritmi eficieni fiind doar n spaii cu dimensiuni reduse.
Cele mai multe transformri utilizate pentru selecia caracteristicilor sunt cele liniare, n
timp ce transformrile neliniare au o complexitate mai ridicat, sunt mai greu de implementat, dar
pot avea o eficien mai ridicat, exprimnd mai bine dependena dintre formele observate, datele
primare observate i caracteristicile selectate ale acestor forme.
Transformata Karhunen-Love (Principal Component Analysis PCA) este o metod
liniar de selecie a caracteristicilor. Fie X un vector aleator n-dimensional. Se caut o
transformare ortogonal care s permit reprezentarea optim a vectorului X n raport cu criteriul
erorii medii ptratice minime.
Fie K transformarea cutat:
T
n
K ) ,...,
2
,
1
( = (1)
unde
i
sunt vectori n-dimensionali, deocamdat nedeterminai.
Presupunem n plus c vectorii coloan ai lui K formeaz un sistem ortonormat,
adic:

=
=
j i
j i
j
T
i
, 0
, 1
(2)
Fiecare vector X se transform n:
T
n
y y y X K Y ) ,..., , (
2 1
= = (3),
cu X y
T
i i
= .
Relaiile (1) i (2) conduc la
n
T T
I K K K K = = ,
unde
n
I este matricea unitate n x n; rezult:

=
= =
n
i
i i
T
y Y K X
1
(4).
Se vor reine numai m < n componente ale lui Y , restul de n - m componente fiind
nlocuite cu constantele preselectate
i
b , astfel c se estimeaz X ca:

= + =
+ =
m
i
n
m i
i i i i
b y m X
1 1
) (

.
Eroarea corespunztoare acestei estimri este:

+ =
= =
n
m i
i i i
b y m X X m X
1
) ( ) (

) ( .
Se va considera criteriul erorii ptratice medii:
)
`

= =

+ = + =
n
m i
n
m j
j
T
i j j i i
b y b y E m X E m
1 1
2
2
) ( ) ( } ) ( { ) (
care, innd cont de relaia (2), devine } ) {( ) (
2 2
i i
b y E m = . Funcia eroare ) (
2
m se
minimizeaz alegnd n mod adecvat
i
i
i
b . Acest proces se realizeaz n dou etape:
A) Se minimizeaz ) (
2
m n raport cu
i
b , punnd condiia necesar
0 ] } { [ 2 } ) {(
2
= =

i i i i
i
b y E b y E
b
, de unde, conform relaiei (3), deducem
} { } { X E y E b
T
i i i
= = cu n i 1 . Atunci eroarea ptratic medie devine:

+ =
=
n
m i
i X
T
i
m
1
2
) ( ,
unde
X
este matricea de covariaie a vectorului X , adic:
{ } { } } ) ( )) {(
T
X
X E X X E X E = ,
unde {} E reprezint media.
B) Pentru a determina
i
optimali, se minimizeaz ) (
2
m n raport cu
i
,
adugnd restriciile 1 =
i
T
i
pentru n i 1 . Se utilizeaz metoda multiplicatorilor Lagrange,
obinndu-se:

+ =
=
n
m i
i
m
1
min
2
)] ( [ (5)
Formula (4) se mai numete dezvoltarea Karhunen-Love, iar transformarea definit
de relaia (3) se numete transformarea Karhunen-Love. Problema minimizrii lui ) (
2
m se
numete n statistic analiz factorial (sau analiza componentelor principale).
Observaii:
Importana fiecrei caracteristici este determinat de valoarea proprie corespunztoare. Dac o
caracteristic, de exemplu
i
y , este eliminat, atunci eroarea ptratic medie crete cu
i
. Aadar
caracteristicile cu cele mai mici valori proprii trebuie eliminate primele. Dac valorile proprii (care
sunt reale i pozitive deoarece matricea
X
este simetric) sunt indexate astfel:
0 ...
2 1
> > > >
n
, atunci prioritatea reinerii caracteristicilor
i
y este n ordinea natural a
indicilor;
Dac X K Y = , atunci ntre matricele de covariaie ale lui X i Y exist relaia
T
X Y
K K = . Pentru transformarea Karhunen-Love deducem c Y are componentele
necorelate, adic
Y
este o matrice diagonal i anume:
) ,...,
2
,
1
(
n
diag
Y
= ;
Vectorii proprii ai lui
X
minimizeaz ) (
2
m pentru orice alegere a unor baze ortonormate de
vectori. Factorul de prezervare a energiei se poate bine aproxima cu formula:
% 100
1
1

=
=
n
i
i
m
i
i


unde
i
sunt valorile proprii ordonate descresctor, factorul de prezervare a energiei.
Dezvoltarea Karhunen-Loeve presupune urmatoarele etape:
se calculeaz matricea de covariatie a formelor de intrare;
se calculeaz valorile proprii si se ordoneaza descrescator:
n
> > > ...
2 1

se calculeaza vectorii proprii asociati valorilor proprii: | |
n
,..., ,
2 1

se construiete matricea K a vectorilor proprii: K=| |
n
,..., ,
2 1
T
;
numrul "m" de trsturi care se rein dup transformarea unitar se obine din
valoarea maxim admisibil a erorii medii ptratice de estimare: % p >
fiecarei forme de intrare X i se va aplica transformarea Karhunen-Love:
T
n
y y y X K Y ] ,..., , [
2 1
= =

Se vor reine numai m < n componente ale lui Y , restul de n - m componente fiind nlocuite cu
valoarea 0;
T
m n m
y y y X K Y ] 0 ,..., 0 , 0 , ,..., , [
~
2 1 2 1
= =
Pentru vizulaizarea rezultatului in spatiul initial, se va aplica dezvoltarea Karhunen-Love:
Y K X
T
~ ~
=





2. Probleme
Problema 1. Fie vectorii:
(

=
3
0
A ,
(

=
1
1
B ,
(

=
5
1
C ,
(

=
3
2
D
a) sa se calculeze media vectorilor de intrare si matricea de covariatie
b) sa se calculeze valorile proprii si vectorii proprii
c) sa se scrie matricea transformrii Karhunen-Love i sa se verifice ortonormalitatea ei
d) sa se reprezinte punctele A, B, C si D in spatiul KL pentru m = 1
Problema 2. Fie un set de vectori tri-dimensionali, care au matricea de covariaie:
(
(
(

=
1 0
1
0 1



, ( ) 1 , 0
a) S se calculeze valorile proprii ale matricei de covariaie;
b) Pentru
2
1
= , s se calculeze factorul de prezervare a energiei la m = 2 i
m = 1;
c) S se calculeze vectorii proprii;
d) Scrierea matricei transformrii Karhunen-Love i verificarea ortonormalitatii ei;
e) Admind c mediile claselor sunt
(
(
(

=
5
5
5
1
i
(
(
(

=
5
5
5
2
, s se clasifice vectorii
(
(
(

=
4
4
5
A ,
(
(
(

=
3
1
3
B i
(
(
(

=
2
1
2
C n spaiul Karhunen-Loeve pentru m = 2 i pentru m = 1.

3. Aplicatii de laborator
3.1. Aplicatie demo a transformatei PCA pentru vectori bidimensionali

Obiective:
- reprezentarea grafica a spatiului PCA (in spatiul original) pentru vectori bidimensionali
- proiectia vectorilor bidimensionali in spatiul PCA
Desfasurarea lucrarii:
- se deschide programul Matlab si se ruleaza fisierul PCA_demo.m
- inainte de initializarea vectorilor se reseteaza toate valorile prin apasarea butonului Reset
- dupa initializarea vectorilor, pentru a vedea spatiul PCA, apasati butonul Spatiu PCA
Odata cu afisarea grafica a spatiului PCA, se vor afisa si proiectiile vectorilor in acest spatiu
precum si: media, covarianta, valorile proprii si matricea trasformarii Karhunen-Love.
Exemplu
1. Se apasa butonul de Reset
2.
Se introduc punctele: A = [1 1]
T
, B = [2 2]
T
, C = [4 1]
T
, D = [5 2]
T
3. Pentru afisarea vectorilor in spatiu PCA se apasa butonul Spatiu PCA
Pentru punctele din exemplu de mai sus, aplicatia va arata astfel:

Figura 3.1. Aplicatie demo PCA

3.2. Aplicatie de recunoastere a vinurilor folosind compresia in spatiul PCA

Obiective:
- procentul de recunoastere a tipurilor de vin in functie de numarul de componente principale
pastrate
- clasificarea unui esantion de vin necunoscut, in una dintre cele 3 clase de vinuri folosind distanta
euclidiana in spatiul PCA

S-a folosit baza de date Wine recognition data, ce contine 3 tipuri de vinuri, fiecare avand cate 13
parametri:
1) Alcohol 2) Malic acid 3) Ash 4) Alcalinity of ash
5) Magnesium 6) Total phenols 7) Flavanoids 8) Nonflavanoid phenols
9) Proanthocyanins 10) Color intensity 11) Hue
12) OD280/OD315 of diluted wines 13) Proline
Baza de date contine: in Clasa1 59 de vectori, in Clasa2 71 de vectori iar in Clasa3 48 de vectori.
Toti vectorii sunt 13-dimensionali.

Antrenare
In faza de antrenare s-a calculat matricea KL a tuturor vectorilor din cele 3 clase. Pentru o mai buna
clasificare s-au normat cei 13 parametri in intervalul [0..1].
Testare
In etapa de testare s-a folosit ca si clasificator distanta euclidiana intre vectorii de test si mediile
claselor in spatiul PCA. S-au urmarit 2 lucruri:
- scorul de recunoastere a vectorilor de test in functie de numarul de componente principale
pastrate
- clasificarea unui nou vector de test in una din cele 3 clase, in functie de numarul de
componente principale pastrate
Desfasurarea lucrarii:
- se porneste programul Matlab si se ruleaza aplicatia PCA_WINE.m
- se introduce un vector de test continand cei 13 parametri; se alege apoi numarul de
componente principale ce se vor pastra. Se apasa butonul Clasifica
Observatie: vectorii de test pot fi cei indexati din Tabelul1, sau orice alt vector ales de
utilizator.
- dupa clasificare, aplicatia va calcula mediile celor 3 clase in spatiu PCA pentru numarul de
componente principale selectat. De asemenea se va proiecta si vectorul de test in spatiul
PCA folosind matricea KL calculata in etapa de antrenare. Folosind ca si clasificator
distanta euclidiana in spatiul PCA, se va determina apartenenta vectorului de test la una
dintre clase.
- Odata cu selectarea numarului de componente principale pentru vectorul de test, aplicatia va
calcula si scorul de recunostere pentru intregul lot de test, pentru numarul de componente
principale selectat.

Tabel 1. Vectori de test indexati
Clasa1: 14.23,1.71,2.43,15.6,127,2.8,3.06,.28,2.29,5.64,1.04,3.92,1065
Clasa1: 13.2,1.78,2.14,11.2,100,2.65,2.76,.26,1.28,4.38,1.05,3.4,1050
Clasa2: 12.37,1.17,1.92,19.6,78,2.11,2,.27,1.04,4.68,1.12,3.48,510
Clasa2:13.34,.94,2.36,17,110,2.53,1.3,.55,.42,3.17,1.02,1.93,750
Clasa3: 12.25,4.72,2.54,21,89,1.38,.47,.53,.8,3.85,.75,1.27,720
Clasa3: 12.53,5.51,2.64,25,96,1.79,.6,.63,1.1,5,.82,1.69,515
Aplicatia va arata ca in captura de mai jos:

Figura 3.2. Aplicatiea de recunoastere a vinurilor folosind compresia in spatiul PCA
3.3. Aplicatie de vizualizare a EigenFaces
(EigenVectors pentru imagini grayscale)

Obiective:
- vizualizarea unei fee obtinute prin pastrarea primelor m componente principale;
- vizualizarea unei fee obtinute prin pastrarea doar a unei anumite componente principale.
Pentru calculul matricii KL s-au folosit 10 imagini cu faa aceluiasi individ, in diverse ipostaze.
Fiecare imagine a setului a fost vectorizata pentru a permite calculul vectorilor proprii, care in acest
caz se numesc EigenFaces.

Figura 3.3. Aplicatie de vizualizare a EigenFaces

Desfasurarea lucrarii:
- se porneste programul Matlab si se ruleaza aplicatia PCA_aplicatie.m;
- se selecteaza o imagine de test (care va fi vectorizata pentru prelucrari ulterioare);
- se alege apoi numarul de componente principale ce se vor pastra. Se apasa butonul Afiseaza,
aparand imaginea reconstituita din primele m EigenFaces;
- se alege apoi numarul componentei principale ce se doreste a fi vizualizata. Se apasa
butonul Afiseaza, aparand imaginea celei de-a k EigenFace calculate.


3.4. Selecia caracteristicilor folosind PCA. Aplicatie in recunoasterea feelor

Obiectiv: Selecia caracteristicilor folosind PCA cu aplicatie in recunoasterea feelor.

Introducere. Pentru clasificarea automat a imaginilor sunt necesare dou etape:
Selecia caracteristicilor (PCA)
Clasificare

Pentru clasificarea imaginilor s-a calculat distana euclidian fa de mediile claselor. Distana
euclidian este dat de relaia:
||X-C
k
||
2
=

=

N
i
kj j
c x
1
2
) (
unde C
k
= (c
k1
, c
k2
, , c
kN
) i X = (x
1
, x
2
,..., x
N
), C
k
= media clasei k
Imaginea va aparine acelei clase pentru care distana euclidian este minim.

Desfurarea Lucrrii
Lucrarea propune testarea algoritmului pentru baza de date ORL.
Baza de date ORL conine cte 10 imagini distincte pentru un numr total de 40 de persoane,
prezentnd variaii din punctul de vedere al orientrii, rotaiei n planul imaginii (de pn la 20),
scalei de reprezentare (de pn la 10%) i expresiei feei, n condiii de iluminare controlate.
Dimensiunile fiecrei imagini sunt de 112x92 pixeli, folosind 256 nivele de gri. n experimentele
efectuate am alocat primele 5 imagini (din totalul de 10) ale fiecrei persoane setului de antrenare,
iar restul au format setul de test.


Figura 3.4. Exemple de imagini din baza de date ORL

n urma antrenrii, au fost salvai urmtorii parametri:
matricea Transformrii Karhunen-Loeve, stocat n KL.txt
numrul de componente pstrate n urma reducerii dimensiunii, stocat n
catepastrez.txt
mediile claselor, pstrate n medii.txt
Atenie! Aceti parametri nu pot fi citii prin deschiderea direct a fiierelor, ci pe bii cu
funcii specifice (fread).
Modificri ca schimbarea setului imaginilor de antrenare sau cantitatea de informaie ce se
dorete a fi pstrat prin transformarea Karhunen-Loeve necesit o rulare a algoritmului de
antrenare i o rescriere a fiierelor amintite mai sus, n vederea obinerii de rezultate semnificative.
Programul de testare se apeleaz din consol prin comanda testare_utilizator. Atentie!
Trebuie ca directorul curent s fie calea ctre fiierul MATLAB testare_utilizator.m
Sunt disponibile 4 opiuni:
1 - testarea imaginilor de antrenare
2 - testarea imaginilor de test
3 - testarea unei anumite imagini (calea va fi indicata de utilizator)
4 - iesire din program
Prin selectarea opiunilor 1 sau 2, va fi calculat i afiat procentajul de recunoatere corect
a imaginilor de antrenare, respectiv de test. Pentru revenirea la opiuni, apsai orice tasta.
Opiunea 3 v cere s introducei calea complet ctre imaginea ce se dorete a fi testat.
Calea poate s fie absolut (ex. C:\RNRF\PCA\ORL\s09\089.bmp) sau relativ la directorul de
lucru (ex. s09\089.bmp).
Programul de testare va returna numrul clasei n care imaginea propus a fost clasificat i
va afia cele 5 imagini de antrenare ale clasei respective mpreun cu imaginea propus. Pentru
revenirea la opiuni, apsai orice tasta.

Bibliografie:
[1] V.Neagoe, O. Stnil, Recunoasterea formelor si retele neurale algoritmi fundamentali, Ed.
Matrix Rom, Bucureti, 1998.
[2] CVRVV. Portuguese Wine - Vinho Verde. Comissao de Viticultura da Regiao dos Vinhos
Verdes (CVRVV), http://www.vinhoverde.pt, July 2008.