Sunteți pe pagina 1din 6

TRANSFORMAREA KARHUNEN-LOEVE

(ANALIZA COMPONENTELOR PRINCIPALE)


PENTRU REDUCEREA DIMENSIONALITATII DATELOR
(LAB4)

Selecţia caracteristicilor este definită ca un proces de transformare


liniară sau neliniară a spaţiului iniţial al observaţiilor într-un spaţiu cu
dimensionalitate redusă în care functionează algoritmul de clasificare a
datelor. Această transformare este necesară deoarece unii algoritmi de
clasificare/explorare /analiză care sunt eficienţi într-un spaţiu cu un număr
redus de dimensiuni pot deveni nepractici într-un spaţiu cu multe
dimensiuni. În plus, în multe cazuri, se dorește obținerea unor decizii în timp
real, astfel că reducerea volumului computational este esențial.
Cele mai multe transformări utilizate pentru selecţia caracteristicilor sunt
liniare. Transformările neliniare, deşi mai dificil de implementat, promit să
realizeze o eficienţă mai ridicată, exprimând mai bine natura dependenţei
dintre caracteristicile semnificative şi datele observate.
Algoritmii de selectie a caracteristicilor pot fi clasificati in: supervizati si
nesupervizati.
O metodă nesuperizata de selecție a caracteristicilor din această
categorie este transformarea Karhunen-Loeve (KLT), numita si Analiza
Componentelor Principale (Principal Component Analysis-PCA)
Metoda PCA poate fi folosita nu numai ca etapa preliminara pentru
clasificare, ci si pentru compresia datelor.

1. Teoria KLT (PCA)


Fie X un vector aleator n-dimensional. Se caută o transformare ortogonală
care să permită reprezentarea optimă (decorelare) a vectorului X în raport cu
criteriul erorii medii pătratice. minime. Această eroare se referă la diferența
între vectorul original și vectorul reconstruit dupa transformarea prin PCA într-
un spatiu cu dimensionalitate redusă si apoi revenirea în spațiul original.
Fie K transformarea KLT (PCA) căutată

K =(1,  2 ,...,  n )t (1)

unde  i sunt vectori n-dimensionali, deocamdată necunoscuți.


Se impune ca vectorii coloană ai lui K să formeze un sistem
ortonormat, adică:
1, i= j
i   j = 
t
(2)
0, i j
Fiecare vector X se transformă în
Y = K X = ( y1 , y2 ,..., yn )t (3)

cu yi =  i  X .
t

Relaţiile (1) şi (2) conduc la concluzia ca matricea K este ortogonală,


adică avem
K K = K K = In, (4)
t t

unde I n este matricea unitate de dimensiuni n x n; rezultă


n
X = K  Y =  yi   i
t
(5).
i =1

Se vor reţine numai m < n componente ale lui Y , restul de n - m


componente fiind înlocuite cu 0. Fie
𝑋̂(𝑚) = ∑𝑚
𝑖=1 𝑦𝑖 ⋅ 𝛷𝑖 .

Eroarea corespunzătoare acestei estimări este


𝛥𝑋(𝑚) = 𝑋 − 𝑋̂(𝑚) (6)
Se consideră criteriul minimizării erorii pătratice medii intre
𝑋 𝑠𝑖 𝑋̂(𝑚) 𝑛𝑜𝑡𝑎𝑡𝑎 𝜀 2 (𝑚)
Rezultă
𝛴𝑋 ⋅ 𝛷𝑖 = 𝜆𝑖 ⋅ 𝛷𝑖 . (7)
unde  i este un vector propriu al matricii de covariaţie  X , iar 𝜆𝑖 este
valoarea proprie corespunzătoare, unde 1  i  n .
Rezultă
[𝜀 2 (𝑚)] = ∑𝑛𝑖=𝑚+1 𝜆𝑖 (8)

Observaţii:
a. Importanţa fiecărei caracteristici este determinată de valoarea
proprie corespunzătoare. Dacă o caracteristică, de exemplu y i , este
eliminată, atunci eroarea pătratică medie creşte cu  i . Aşadar
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 incât
1   2  ...   n  0 , (9)
atunci prioritatea reţinerii caracteristicilor y i este în ordinea naturală
a indicilor;
b. Dacă
Y =KX, (10)
atunci între matricile de covariaţie ale lui X şi Y există relaţia
Y = K   X  K . (11)
t

Pentru transformarea Karhunen-Loève, deducem că Y are


componentele necorelate, adică Y este o matrice diagonală şi
anume
 y = diag ( ,  ,..., n ) . (12)
1 2

2. Algoritmul PCA
Fie setul de vectori n-dimensionali
ξ ={X1...XL}
1. Se calculează matricea de covariaţie
1 L
( )( X i −  x )
t
x =  Xi − x , (13)
L i =1

unde X i  Rn sunt vectorii de intrare n-dimensionali (i = 1,..,L) şi


1 L
x =  Xi (14)
L i =1

este media vectorilor de intrare.


2. Se determină valorile proprii i (i = 1,..,n) ale matricei  x ca soluţii
ale ecuaţiei
x −   I n = 0 , (15)
unde I n este matricea unitate n-dimensională şi  este necunoscuta;
Se ordonează descrescător rădăcinile ecuației, reprezentând valorile
proprii și se reţin cele mai mari m valori proprii dintre ele.
3. Se deduc vectorii proprii din ecuațiile
 x  i = i  i , (16)

unde
i  i = 1
t (17)

cu 1,.., m , m+1,.., n vectorii proprii ai matricei  x corespunzând


valorilor proprii considerate în ordine descrescătoare.
Se deduce matricea ortogonală a transformării KLT
K = ( 1 ..  n ) .
t (18)

În urma reducerii la m vectori proprii, corespunzători primelor m valori


proprii, se obţine matricea KLT trunchiată denumită mai departe PCA
PCA = ( 1 ..  m )
t
(19)

Aplicând transformarea PCA cu ajutorul matricii cu același nume, se


obţin vectorii cu dimensionalitate redusă în spațiul m-dimensional (m
< n)
Z i = PCA  X i . (20)

În fig. 1 este reprezentată diagrama algoritmului.

Calcul: Calcul Calcul vectori


Deducere set de
{Xi} lot de și ordonare proprii { },
L vectori – medie descrescatoare vectori m-dim
(i=1…m) transformati
n-dim valori proprii
– matrice de și construcția Zi=PCA*Xi
covarianță matricii PCA

Figura 1. Diagrama algoritmului PCA

4. Evaluarea performantelor

a) Factorul de prezervare a energiei (informatiei)


m
 i
 = =n1  100%
i
(21)

i =1 i
b) Eroarea medie pătratica ideala
∑𝑛
𝑖=𝑚+1 𝜆𝑖
𝜀 = 100 − 𝜂 = ∑𝑛
∙ 100 (22)
𝑖=1 𝜆𝑖

c) Eroarea medie pătratica de reconstrucție pentru o imagine I de


dimensiuni MxN

1
𝜀𝑅 = ∑𝑀 𝑁
̂𝑖𝑗 )2
𝑖=1 ∑𝑗=1(𝑥𝑖𝑗 − 𝑥 (23)
𝑀𝑁

unde 𝑥𝑖𝑗 pixelul aflat la pozitia (i,j) in imaginea originala, iar 𝑥̂𝑖𝑗 este
pixelul aflat la locatia (i,j) in imaginea reconstruita.
d) Raportul semnal zgomot pentru o imagine cu 256 de nivele de gri
255
𝑅𝑆𝑍 = 20𝑙𝑔
√𝜀𝑅
5. Desfășurarea lucrării

Desfășurarea lucrării se va realiza in mediul de lucru Matlab. Se dorește


aplicarea transformării KLT (PCA) pentru compresia imaginilor. Se vor
utiliza imagini cu 256 tonuri de gri.
1) Se incarca imaginea lena512.bmp aflata in directorul platformei
I = imread('lena512.bmp');
2) Se determina matricea transformării PCA pentru imaginea incarcata.
[ K, val_propri ] = gaseste_transf( I );
3) Vom aproxima imaginea I incarcata anterior folosind transformarea
PCA si blocuri de dimensiunea n= 8x8 pixeli. Se vor retine un număr
variabil de componente m. Pentru cazul in care se rețin 4
componente, codul va fi:
[ img_aprox, mse, rsz ] = aproximeaza_imagine(I, K, 4);
Pe langa imaginea aproximata, functia calculeaza si eroarea medie
patratica de reconstructie si raportul semnal zgomot al imaginii
aproximate.
4) Se va afisa imaginea reconstituita
figure, image(img_aprox), colormap(gray(256));
5) Se vor repeta pasii 3 si 4 pentru cazul in care se rețin intre 1 si 64
componente in spatial PCA. Pentru ficare caz se vor calcula:
a. Factorul de prezervare al energiei
b. Eroarea medie pătratica ideala
c. Eroarea medie pătratica de reconstrucție
d. Raportul semnal zgomot al imaginii aproximate
Acești indicatori de performanta se vor reprezenta grafic in funcție de
numărul de componente reținute.
6) Se incarca imaginea baboon512.bmp aflata in directorul platformei
J = imread('baboon512.bmp');
7) Vom aproxima imaginea J incarcata anterior folosind transformata
PCA si blocuri de dimensiunea 8x8 pixeli. Se va folosi matricea
transformării PCA calculata pentru imaginea I. Se vor retine un
număr variabil de componente. Pentru cazul in care se rețin 4
componente codul va fi:
[ img_aprox, mse, rsz ] = aproximeaza_imagine(J, K, 4);
8) Se va afisa imaginea reconstituita
figure, image(img_aprox), colormap(gray(256));
9) Se vor repeta pasii 7 si 8 pentru cazul in care se rețin intre 1 si 64
componente. Pentru ficare caz se vor calcula
a. Factorul de prezervare al energiei
b. Eroarea medie pătratica ideala
c. Eroarea medie pătratica de reconstrucție
d. Raportul semnal zgomot al imaginii aproximate

Acești indicatori de performanta se vor reprezenta grafic in funcție de m


numărul de componente reținute.
10) Se vor repeta pasii 6,7,8 si 9 pentru imaginiile girl512.bmp,
fruit512.bmp, sailboat512.bmp.

BIBLIOGRAFIE
1. V. Neagoe, O. Stănășilă, Teoria recunoașterii formelor, Editura Academiei Române, București, 1992.
2. C.M. Bishop, Pattern recognition and machine learning, Springer, New York, 2006.
3. V.Neagoe, Retele neurale pentru explorarea datelor, Matrix Rom, Bucuresti, 2018.

S-ar putea să vă placă și