본문 바로가기

Enginius/Machine Learning

Gaussian Process Latent Variable Model (GPLVM)

 이번 포스팅은 GPLVM에 대한 내용이다. 

 큰 그림부터 그려보자면, GPLVM은 어떤 Latent space X에서부터 우리의 observation Y가 도출되었다면, 역으로 X를 찾는 문제를 푸는 것이다. mapping은 단순한 linear form이 아니라 non-linear (general) mapping을 가정한다. 


 Gaussian process는 non-parametric Bayesian regression 알고리즘이다. 엄청 어려워 보이지만 실상 어떤 input과 output 데이터가 주어졌을 때 새로운 input에 대한 output을 예측하는 알고리즘에 불과하다. 열심히 뜯어보면 결국 weighted sum의 형태로 나타난다. 

 물론 이 식이 어떻게 유도되었는지에 대해 알기 위해선 random process와 Conditional distribution에 대한 분명한 이해가 필요하다.  kernel function이 stationary random process의 autocorrelation function (acf)에 해당한다.. 아마...???!?!?


 Gaussian Process Latent Variable Model (GPLVM)이란 것이 있다. GPLVM은 이름에 GP가 들어가긴 하지만 regression 알고리즘은 아니다. 이는 기본적으로 dimension reduction 알고리즘으로 PCA의 일종이다. 내 기억이 맞다면, dual probabilistic PCA의 generalized 방법..정도로 볼 수 있을 것이다. 


 아래는 작년 1월에 발표했던 GPLVM 관련 자료이다. 

어떤건지 느낌만 설명을 하자면 Probabilistic PCA (PPCA)란 것의 dual version을 살펴봤더니, Gaussian process에 들어가는 식과 비슷한 곳이 있어서 이 부분을 GP로 바꾼 것이다. 

1. PPCA

 이름에서도 알 수 있듯이 확률적으로 PCA를 하겠다는 것이다. 무슨 말인고 하니, 주어진 데이터가 X가 있을 때 해당 데이터의 dimension을 줄이고 싶다. 이 줄어들은 공간의 데이터 (혹은 공간)를 Y라 했을 때 이를 Mapping해주는 W를 찾고 싶은 것이다. 물론 우리는 Bayesian이기 때문에 이 모든 conditional distribution이 정의되어 있어야 하고, (모든 이라기 보단 X의 prior와 Y의 likelihood) 이 분포를 통해 MLE를 풀어서 W를 찾는 것이다. 


2. GPLVM

 문제는 만약 우리가 nonlinear 매핑을 가정하면 어떻게 되겠냐는 것이다. 그리고, 이를 해결하는 것이 Dual PPCA이다. 즉 PPCA가 MLE를 통해서 W를 찾는다면, PPCA는 미리 W에 대한 prior를 주고, X에 대해서 MLE를 푸는 것이다. 이 식을 잘 들여다보면 XX'가 나온다. 바로 이 부분의 kernel trick을 써주면 Dual PPCA가 GPLVM으로 변한다. 

 즉 DPPCA는 GPLVM의 한 예라고 볼 수 있다.