Download presentation
Presentation is loading. Please wait.
1
Rozpoznávanie obrazcov šk.r. 2015-16
PCA a LDA Doc. RNDr. Milan Ftáčnik, CSc.
2
Redukcia počtu príznakov
Principal Component Analysis – PCA Independent Component Analysis – ICA Kernel PCA Linear Discriminant Analysis – LDA Rozpoznávanie obrazcov
3
PCA otočí súradnicovú sústavu tak, aby prvá os bola v smere najväčšej variability a ďalšie boli na ňu kolmé v smeroch najväčšej zvyšnej variability Rozpoznávanie obrazcov
4
PCA – motivačný príklad
Rozpoznávanie obrazcov
5
PCA – motivačný príklad II
Pohyb pružiny sa dá opísať ako rovnica s premennou x Troma kamerami budeme zaznamenávať dvojrozmernú polohu červenej gule 2 min Pohľady kamier nie sú na seba kolmé Ako môžeme z týchto dát získať rovnicu závislú iba od x? Rozpoznávanie obrazcov
6
PCA – motivačný príklad III
Máme príliš veľa dimenzií problému, teda zbytočne viacrozmerné dáta A dáta sú ešte zaťažené šumom, lebo kamery ani pohyb pružiny nie sú dokonalé PCA má pomôcť inak vyjadriť zašumené a skomolené dáta a nájsť ten dôležitý smer dynamiky javu, ktorým je os x Rozpoznávanie obrazcov
7
Dáta v motivačnom príklade
12 tisíc 6 rozmerných vektorov (za každú kameru dve súradnice) Vo všeobecnosti máme n záznamov m-rozmerných vektorov Každé meranie je vektor v m-rozmernom vektorovom priestore, ktorý má svoju bá-zu a vektor je jej lineárnou kombináciou Rozpoznávanie obrazcov
8
Úloha pre PCA Existuje iná báza, ktorá je lineárnou kom-bináciou pôvodnej bázy, ktorá najlepšie vyjadruje dáta? Hľadáme lineárnu transformáciu P, ktorá zobrazuje pôvodné dáta X na lepšie vyjadrené dáta Y, tak že platí PX = Y Geometricky P je otočenie a natiahnutie Rozpoznávanie obrazcov
9
Úloha pre PCA II Riadky matice P sú nové bázové vektory a nazývajú sa hlavné komponenty X Okrem linearity treba ďalšie predpoklady, aby sme „najlepšie“ vyjadrili X: chceme odstrániť šum a nadbytočnosť dát Ukážeme obrázok na šum a nadbytočnosť dát Rozpoznávanie obrazcov
10
Šum a nadbytočnosť dát Rozpoznávanie obrazcov
11
Ako riešiť šum a nadbytočnosť
Šum budeme riešiť cez rozptyl (varianciu) jednotlivých dát a nadbytočnosť cez kovariančnú maticu vyjadrujúcu závislosť meraní navzájom Na diagonále matice máme rozptyl (varianciu) jednotlivých meraní Ak je na ostatných miestach kovariancia = 0, tak je táto dvojica meraní nekorelovaná Rozpoznávanie obrazcov
12
Sumarizácia predpokladov
Linearita – ako od nej upustíme, tak dostaneme inú metódu, kernel PCA Rozptyl dostatočne charakterizuje rozde-lenie pravdepodobnosti, to platí iba ak majú normálne (Gaussovské) rozdelenie Väčšie rozptyly majú väčšiu dynamiku – tie s menšími rozptylmi vyjadrujú šum Rozpoznávanie obrazcov
13
Sumarizácia predpokladov II
Hlavné komponenty sú na seba kolmé – preto sa dajú dobre počítať metódami lineárnej algebry Samotný výpočet PCA bol na prednáške, buď cez kovariančnú maticu, alebo cez SVD Ako sa dospeje k redukcii príznakov? Rozpoznávanie obrazcov
14
PCA MATLAB [COEFF,SCORE] = princomp(X)
[COEFF,SCORE,latent] = princomp(X), kde COEFF je usporiadaná matica hlavných komponentov, SCORE je vyjadrenie pôvodných dát v novej báze a latent obsahuje vlastné hodnoty kovariančnej matice ako ich príspevok ku variancii dát Rozpoznávanie obrazcov
15
PCA MATLAB – príklad data=rand(10,1000); data=data-repmat(mean(data,2),1,size(data,2)); [W, EvalueMatrix] = eig(cov(data)); Evalues = diag(EvalueMatrix); Evalues = Evalues(end:-1:1); W = W(:,end:-1:1); W=W'; pc = W * data; figure, plot(pc(1,:),pc(2,:),'.')
16
PCA MATLAB – príklad II X = [ ; ; ; ; ; ; 2 1.6; 1 1.1; ; ]; figure, plot(X(:,1), X(:,2),'.'); [COEFF,SCORE,latent] = princomp(X) figure, plot(SCORE(:,1), SCORE(:,2),'r.'); Rozpoznávanie obrazcov
17
PCA MATLAB – príklad III
Tento príklad ukazuje, že PCA naozaj predstavuje otočenie súradnicových osí do takého smeru, ktorý predstavuje najväčšiu variabilitu dát a nezávisí od translácie dát Rozpoznávanie obrazcov
18
Limity a rozšírenia PCA
Je to neparametrická metóda, odpoveď je deterministická a nezávisí od používateľa, to je jej sila ale aj slabosť Pri upustení od linearity – dostaneme parametrickú metódu kernel PCA, kde používateľ vyberá jadro Rozpoznávanie obrazcov
19
Limity a rozšírenia PCA II
Ak upustíme od ortogonality osí a Gaussovského charakteru dát, tak môžeme riešiť situácie, kde PCA zlyhá a dostaneme metódu ICA – požadujeme štatistickú nezávislosť Rozpoznávanie obrazcov
20
PCA vs. LDA Rozpoznávanie obrazcov
21
PCA vs. LDA II PCA nepotrebuje informáciu o zaradení jednotlivých meraní do tried LDA ju potrebuje, pretože maximalizuje medzitriednu vzdialenosť a minimalizuje vnútrotriednu vzdialenosť Ak je C tried, tak LDA transformuje m-roz-merný priestor na C-1 -rozmerný Rozpoznávanie obrazcov
22
LDA pre dve triedy Rozpoznávanie obrazcov
23
LDA pre dve triedy - príklad
Rozpoznávanie obrazcov
24
LDA pre dve triedy – príklad II
Rozpoznávanie obrazcov
25
LDA pre dve triedy – príklad III
Rozpoznávanie obrazcov
26
LDA pre dve triedy – príklad IV
Rozpoznávanie obrazcov
27
LDA pre dve triedy – príklad V
Rozpoznávanie obrazcov
28
LDA pre C tried Rozpoznávanie obrazcov
29
LDA pre C tried II Rozpoznávanie obrazcov
30
Toolboxy Matlab Toolbox for Dimensionality Reduction
Statistical Pattern Recognition Toolbox
31
Matlab Toolbox for Dimensionality Reduction
[X, labels] = generate_data('helix', 2000); figure, scatter3(X(:,1), X(:,2), X(:,3), 5, labels); title('Original dataset'), drawnow no_dims = round(intrinsic_dim(X, 'MLE')); disp(['MLE estimate of intrinsic dimensionality: ' num2str(no_dims)]); [mappedX, mapping] = compute_mapping(X, 'PCA', no_dims); figure, scatter(mappedX(:,1), mappedX(:,2), 5, labels); title('Result of PCA'); [mappedX, mapping] = compute_mapping(X, 'Laplacian', no_dims, 7); figure, scatter(mappedX(:,1), mappedX(:,2), 5, labels(mapping.conn_comp)); title('Result of Laplacian Eigenmaps'); drawnow
32
Statistical Pattern Recognition Toolbox
% Generate data distrib.Mean = [[5;4] [4;5]]; % mean vectors distrib.Cov(:,:,1) = [1 0.9; 0.9 1]; % 1st covariance distrib.Cov(:,:,2) = [1 0.9; 0.9 1]; % 2nd covariance distrib.Prior = [ ]; % Gaussian weights data = gmmsamp(distrib,250); % sample data lda_model = lda(data,1); % train LDA lda_rec = pcarec(data.X,lda_model); lda_data = linproj(data,lda_model); pca_model = pca(data.X,1); % train PCA pca_rec = pcarec(data.X,pca_model); pca_data = linproj( data,pca_model); figure; hold on; axis equal; % visualization ppatterns(data);
33
Statistical Pattern Recognition Toolbox
h1 = plot(lda_rec(1,:),lda_rec(2,:),’r’); h2 = plot(pca_rec(1,:),pca_rec(2,:),’b’); legend([h1 h2],’LDA direction’,’PCA direction’); figure; hold on; subplot(2,1,1); title('LDA'); ppatterns(lda_data); pgauss(mlcgmm(lda_data)); subplot(2,1,2); title('PCA'); ppatterns(pca_data); pgauss(mlcgmm(pca_data));
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.