Presentation is loading. Please wait.

Presentation is loading. Please wait.

Rozpoznávanie obrazcov šk.r

Similar presentations


Presentation on theme: "Rozpoznávanie obrazcov šk.r"— Presentation transcript:

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));


Download ppt "Rozpoznávanie obrazcov šk.r"

Similar presentations


Ads by Google