'공부/Pattern recognition'에 해당되는 글 2건

  1. 2013.09.04 [펌] GPLVM
  2. 2013.09.03 Dimensionality Reduction and Classification

출처 : http://valley.egloos.com/viewer/?url=http://hackos.egloos.com/157662


GPDM(Gaussian Process Dynamical models)

 

아래의 글은 Neil Lawrence "Probabilistic Non-linear Principal Component Analysis with Gaussian Process Latent Variable Models"를 기초로하여 이해한 내용을 정리한 것입니다.

우선 내가 하고자하는 목표는 High dimensional space상에 존재하는 데이터를 Low dimensional space (Latent Variable)에 나타내고자 한다. 이러한 방법은 기계 학습, 패턴 인식 분야에서 많이 사용되는 방법이다. 나는 GPLVM(Gaussian Process Latent Variable Models)에서 더 나아간 GPDM(Gaussian Process Dynamical models)를 이해하기 위해 공부를 하고 있다.

용어 정리
-----------------------------------------------
Y : High dimensional space data or Observed data
X : Low dimensional space data or Latent data
-----------------------------------------------

PCA(Principal Component Analysis)는 데이터의 차원을 축소시키는 방법 중 하나로 널리 사용되고 있다. 하지만 PCA는 데이터와 Latent variable 사이에 선형적(Linear)인 관계가 있을 때에 잘 작동한다.

 

 

데이터와 Latent variable가 비선형적(Non-linear)인 관계를 지니고 있다면 다른 방법으로 접근해야한다. 비선형 차원 축소 방법에는 Kernel PCA GPLVM이 있는데 Kenel PCA은 행렬 연산을 통해 Latent Variable를 구하고, GPLVM은 확률적 모델을 기반으로 Latent Variable를 구한다는 큰 차이가 있다.

그렇다면 똑같이 비선형 차원 축소 방법인데 왜 두가지 방법에 대한 연구가 진행 되었을까? 그 답은 용도의 차이이다.
데이터에서 Latent Variable로의 변환 ( Y -> X ) Latent Variable을 이용하여 데이터를 근사( X -> Y' )할 수 있는 PCA와는 달리 비선형적인 데이타 분포를 나타내기 위해서는 둘 중에 한가지만이 가능하다. Kernel PCA ( Y -> X ), GPLVM ( X -> Y )가 가능하다.

Kernel PCA는 여러 데이터를 분류하는 패턴 인식 분야에서 많이 사용된다. 현재 데이터의 Latent variable이 이전에 학습된 데이터들의 Latent variables과 어떤 관계를 가지는에 대해서만 관심을 가지고 있다면 Kernel PCA을 사용해야한다. 예를 들어, 사람의 얼굴 사진에 대한 데이터가 있다, 이 사진에 나타난 인물이 남자인지 여자인지를 구분하는 분류기를 만들고 싶다. 분류기를 만들기 위해서 인터넷에서 얻은 남녀 사진 1000장을 가지고 학습을 하려고 한다. 하지만 사진은 (width * hight * RGB )의 정보를 가지고 있는 High dimensional space 상의 데이터이다. Kernel PCA를 통해 데이터들의 비선형적인 관계까지 고려하여 차원을 축소시킬 수 있고 우리가 학습시킨 Kernel function을 통해 특정 사진의 Latent variable ( Y -> X )를 구할 수 있다. Latent variable가 학습시킬때 사용되었던 데이터들의 Latent variables들 중 남자 사진에 유사한지 여자 사진에 유사한지를 판단하면 되는 문제이다. 하지만 이 경우 임의의 Latent variable X3에 대응하는 Y3의 값을 알 수 없다. 예를 들어 Y1 Y2의 사진 데이터가 있고 Kernel function를 통해 X1, X2를 구했다고 하자. Y1 Y2의 중간값 (단순한 영상의 중간값이 아닌, Non-linear space상의 평균값)을 알고 싶어 X3 = 0.5*(X1+X2)를 한다고 하더라도 Y3를 구할 수 없다

반면에 GPLVM은 데이터를 분류할 수는 없지만, Low dimensional space상의 임의의 Latent variable X를 생성하여 학습된 데이터와 유사한 데이터를 생성( X -> Y )해낼 수 있다.

나는 사람의 동작 데이터(High dimensional data)를 학습 시키고 이와 유사한 자세 생성( X-> Y)을 효율적으로 하여 최적화의 성능을 높이기 위해 GPLVM을 사용하려한다.

GPLVM을 이해하기 위해서 필요한 과정인 PPCA, DPPCA에 대해서 설명하고 GPLVM을 진행도록 하겠다.

 

 

출처http://valley.egloos.com/viewer/?url=http://hackos.egloos.com/157662

 

'공부 > Pattern recognition' 카테고리의 다른 글

[펌] GPLVM  (0) 2013.09.04
Dimensionality Reduction and Classification  (0) 2013.09.03
Posted by 그래제길

matlab 을 이용한 차원 축소와 이와 관련된 분류 문제를 할 수 있도록 구현해 놓은 matlab Toolbox이다.

연구에 필요한 분들이 참고하면 좋을 것 같다.


차원 축소 ( Dimensionality Reduction )


http://homepage.tudelft.nl/19j49/Matlab_Toolbox_for_Dimensionality_Reduction.html


Currently, the Matlab Toolbox for Dimensionality Reduction contains the following techniques:

? Principal Component Analysis (PCA)

? Probabilistic PCA

? Factor Analysis (FA)

? Sammon mapping

? Linear Discriminant Analysis (LDA)

? Multidimensional scaling (MDS)

? Isomap

? Landmark Isomap

? Local Linear Embedding (LLE)

? Laplacian Eigenmaps

? Hessian LLE

? Local Tangent Space Alignment (LTSA)

? Conformal Eigenmaps (extension of LLE)

? Maximum Variance Unfolding (extension of LLE)

? Landmark MVU (LandmarkMVU)

? Fast Maximum Variance Unfolding (FastMVU)

? Kernel PCA

? Generalized Discriminant Analysis (GDA)

? Diffusion maps

? Neighborhood Preserving Embedding (NPE)

? Locality Preserving Projection (LPP)

? Linear Local Tangent Space Alignment (LLTSA)

? Stochastic Proximity Embedding (SPE)

? Multilayer autoencoders (training by RBM + backpropagation or by an evolutionary algorithm)

? Local Linear Coordination (LLC)

? Manifold charting

? Coordinated Factor Analysis (CFA)

? Gaussian Process Latent Variable Model (GPLVM)

? Stochastic Neighbor Embedding (SNE)

? Symmetric SNE (SymSNE)

? t-Distributed Stochastic Neighbor Embedding (t-SNE)


분류기 ( Classifier, Classification)


http://www.prtools.org/

The Matlab Toolbox for Pattern Recognition.


출처 : http://kimbellw.tistory.com/26


'공부 > Pattern recognition' 카테고리의 다른 글

[펌] GPLVM  (0) 2013.09.04
Dimensionality Reduction and Classification  (0) 2013.09.03
Posted by 그래제길
이전버튼 1 이전버튼