이번 포스팅은 Gaussian process regression under Localization uncertainty에 나오는 식을 유도하는 것이지만, 사실 일반적인 regression model에 적용될 수 있다. Conditional independence를 자주 사용하니, 이에 대해서 먼저 집고 넘어가자.
Directed graph 1
Directed graph 2
만약 위와 같은 두 graphical model (Directed graph)이 있다면, '$X$'와 '$Z$'는 '$Y$'가 주어졌을 때 conditional independent하다. 즉 다음과 같이 쓸 수 있다.
$$X \perp Z || Y$$
그리고 다음의 두 관계식을 유도할 수 있다.
$$P(X, Z|Y) = P(X|Y)P(Z|Y)$$
$$P(X|Y, Z) = P(X|Y)$$
* Sum rule and Chain rule
'$P(X) = \int_Y P(X, Y) dY = \int_Y P(X|Y)P(Y)dY $'
'$P(X|Z) = \int_Y P(X|Y, Z)P(Y|Z) dY $'
그럼 이번 포스팅의 목적인 regression에 이 성질을 적용해보자. 먼저 다음의 graphical model을 갖는 regression model이 있다고 하자.
위에 그림에서 '$X$'와 '$Y$'는 어떤 input output을 의미한다. 즉 regression model에서 원래 input과 output을 의미한다. 일반적인 regression model에선 Y에 특정한 에러 모델 (Gaussian or Laplace)를 가정하고 X와 Y의 관계 (Linear model)를 찾는다. Least square가 가장 대표적인 예일 것이다.
Bayesian non-parametric regression인 Gaussian process regression (GPR)도 이와 비슷하지만, 이는 기존의 '$X$'사이에 Gaussian relation이 있다고 가정하고, 새로운 입력 '$x_{\star}$'와 '$X$'사이에 kernel 함수로 정의된 covariance가 있다고 할 때 conditional distribution의 mean과 variance를 통해서 regression을 한다.
하지만 여기서 조금 더 나아가서 만약 input '$X$'가 부정확하다면 어떨까? 바로 이 문제에 대한 대답이 이번 포스팅의 유도의 목적이다. 실제 '$X$'가 있을 때 '$\bar{X}$'가 에러가 섞인 우리의 관측값이라고 하자.
그러면 (편의상 '$Y$'와 '$\bar{Y}$'의 관계를 생략한다. 이는 최종 식에서 다루겠다.),
'$p(y_{\star}|x_{\star}, \bar{X}, Y) = \int p(y_{\star}| x_{\star}, X, \bar{X}, Y) p(X | x_{\star}, \bar{X}, Y) dX$'
이고, '$y_{\star} \perp \bar{X} | X $'를 이용하면, '$p(y_{\star}|X, \bar{X}) = p(y_{\star}|X)$'이다. 정리해보면,
[0] 최종식
$$p(y_{\star}|x_{\star}, \bar{X}, Y) = \int p(y_{\star}| x_{\star}, X, Y) p(X | x_{\star}, \bar{X}, Y) dX$$
[1] 위에 식에서 앞 부분인 '$p(y_{\star}| x_{\star}, X, Y)$'은 기존의 Gaussian process regression과 같고, GPR의 mean과 variance를 갖는 normal distribution이다.
* Gaussian process regression
$$p(y_{\star}| x_{\star}, X, Y) = N(\mu_{GPR}, var_{GPR})$$
이고, '$\mu_{GPR} = k(x_{\star}, X) (k(X, X) + \sigma_w^2I)^{-1} Y$', '$var_{GPR} = k(x_{\star}, x_{\star}) + k(x_{\star}, X) (k(X, X) + \sigma_w^2I)^{-1} k(X, x_{\star})$' 이다.
여기서 '$\sigma_W^2$'가 '$Y$'의 expected white noise의 variance이다.
[2] 위 식에서 뒷부분인 '$p(X | x_{\star}, \bar{X}, Y)$'은 다음과 같이 풀어서 쓸 수 있다.
먼저 '$x_{star} \perp X | Y$'를 이용해서
'$p(X|x_{\star}, \bar{X}, Y) = p(X|\bar{X}, Y)$' 를 얻을 수 있다.
* Bayes rule
$$p(X | Y, Z) = \frac{p(Y|X, Z)p(X|Z)}{p(Y|Z)}$$
Bayes rule을 이용해서 다시 풀어보면,
'$p(X|\bar{X}, Y) = \frac{p(\bar{X}|X, Y)p(X|Y)}{p(\bar{X}|\bar{Y})} = \frac{p(\bar{X}|X, Y)p(X|Y)}{ \int_X p(\bar{X}|X, Y)p(X|Y) dX } $' 이고,
다시 한번, '$Y \perp \bar{X} | X $' 를 이용해서
'$p(\bar{X}|X, Y) = p(\bar{X}|X)$' 를 대입하면
$$p(X|\bar{X}, Y) = \frac{p(\bar{X}|X)p(X|Y)}{ \int_X p(\bar{X}|X)p(X|Y) dX } $$
블로그에 Latex로 정리하려니 힘들다..
여튼 위의 식을 살펴보면 왼쪽에 '$p(\bar{X}|X)$'와 오른쪽에 '$p(X|Y)$'에 있다.
[3] 먼저 '$p(\bar{X}|X)$'은 단순히 실제 input data와 우리가 관측한 input data와의 관계식이다. 우리가 이 둘 사이의 관계를
$$\bar{X} = X + w $$
, '$w = N(0, \sigma^2_x)$' 와 같이 모델링하였으므로, 이는 쉽게 확률식으로 쓸 수 있다.
[4] 어려운 부분이 '$p(X|Y)$' 이다. 이는 위의 graphical model에서 역행하는 방향 (출력값이 주어졌을 때 입력의 확률)이므로 역시 Bayes rule을 이용해서 다시 원래 방향으로 풀어줄 필요가 있다.
'$p(X|Y) = \frac{p(Y|X)p(X)}{p(Y)} = \frac{p(Y|X)p(X)}{\int p(Y|X)p(X) dX}$'이고, 여기서
$$p(Y|X) = N(0, k(X, X))$$
로 Gaussian process prior이다.
그림 이 식을 다 넣어서 '$p(X|\bar{X}, Y)$' 를 다시 정리해보면, [2]는
$$p(X|\bar{X}, Y) = \frac{p(\bar{X}|X)p(X|Y)}{ \int_X p(\bar{X}|X)p(X|Y) dX } = \frac{p(\bar{X}|X)\frac{p(Y|X)p(X)}{\int p(Y|X')p(X') dX'}}{ \int_X p(\bar{X}|X)\frac{p(Y|X)p(X)}{\int p(Y|X')p(X') dX'} dX } = \frac{p(\bar{X}|X)p(Y|X)p(X)}{ \int_X p(\bar{X}|X)p(Y|X)p(X) dX } $$
로 정리될 수 있고, Bayes rule을 적용하면,
$$p(X|\bar{X}, Y) = \frac{p(X|\bar{X})p(Y|X)}{ \int_X p(X|\bar{X})p(Y|X) dX }$$
이다.
자 거의 다 왔다. 위의 식을 [0]에 대입하면,
[5] 진짜 최종식
$$p(y_{\star}|x_{\star}, \bar{X}, Y) = \int p(y_{\star}| x_{\star}, X, Y) p(X | x_{\star}, \bar{X}, Y) dX = \int p(y_{\star}| x_{\star}, X, Y) \frac{p(X|\bar{X})p(Y|X)}{ \int_{X'} p(X'|\bar{X})p(Y|X') dX' } dX $$
$$ p(y_{\star}|x_{\star}, \bar{X}, Y) = \frac{\int_X p(y_{\star}| x_{\star}, X, Y) p(X|\bar{X})p(Y|X) dX}{\int_{X} p(X|\bar{X})p(Y|X) dX} $$
를 얻을 수 있다. 위의 식의 first, second momentum (mean and variance)을 구해보면 다음과 같다.
[6] 진짜 최종식의 mean과 variance
$$E(y_{\star} | x_{\star}, \bar{X}, Y) = \frac{\int_X \mu(y_{\star}| x_{\star}, X, Y) p(X|\bar{X})p(Y|X) dX}{\int_{X} p(X|\bar{X})p(Y|X) dX} $$
$$Var(y_{\star} | x_{\star}, \bar{X}, Y) = \frac{\int_X (\mu^2(y_{\star}| x_{\star}, X, Y) + var(y_{\star}| x_{\star}, X, Y)) p(X|\bar{X})p(Y|X) dX}{\int_{X} p(X|\bar{X})p(Y|X) dX} - E^2(y_{\star} | x_{\star}, \bar{X}, Y) $$
위의 두 식은 Monte Carlo Importance Sampling 등을 이용해서 쉽게 구할 수 있다.
위 식의 의미를 살펴보자. 우리가 regression을 할 때, 특히나 Bayesian regression을 할 땐 어떤 input data와 output data를 연결해주는 mapping function을 찾는 것이 그 목표이다. 그리고 이 둘 사이의 관계를 주어진 학습용 데이터를 통해서 푸는 것이다. 일반적으로 출력 데이터에 대한 에러만을 가정하고, 해당 확률 분포를 이용해서 문제를 푼다.
문제는 만약 입력 데이터에 에러가 있다면 어떻게 할 것인가이다. 우리가 가지고 있는 데이터가 입력, 출력 데이터 뿐이 없기 때문에 이 둘에 에러가 섞였다면 사실 못 푸는 문제다. 하지만 우리는 Bayesian이므로 이 둘 사이의 관계에 대한 가정을 있다. 그리고 이 경우는 이것이 Gaussian process prior이다.
이 관계는 매우 직관적인 관계로, 만약 입력 데이터들 사이의 거리가 가까우면, 출력 값 역시 가까울 것이라는 가정이다. 그리고 이 거리의 가까움의 정도를 확류를 covariance, 혹은 correlation을 나타내는 kernel을 통해서 정한다. 바로 이 가정을 통해서 위의 모든 식이 돌아갈 수 있게 되는 것이다.
한번 모든 것을 확률 분포를 통해서 표현할 수 있다면, 아무리 복잡해 보이는 꼴 [6] 이라도 MC sampling 기법을 통해서 풀 수 있다. 특히 [6]과 같이 주어진 모양이라면 데이터를
$$X_{sample} \sim p(X|\bar{X}) $$
를 통해서 sampling 한 후에 [6]의 integral을 summation으로 변경해서 풀 수 있다. 이것이 바로 Importance sampling이다. 이는 proposal distribution과 target distribution이 같은 특수한 경우이다. 자세한 것은 위키(http://en.wikipedia.org/wiki/Importance_sampling)를 참조하자.
'Enginius > Machine Learning' 카테고리의 다른 글
Infinite Mixture of Gaussian process experts + Hybrid MCMC (0) | 2014.04.20 |
---|---|
PAC-Bayes bound 발표자료 (0) | 2014.04.19 |
PAC Bayes Analysis of Classification (1) | 2014.04.11 |
Sparse Distributed Memory Framework (0) | 2014.04.09 |
Generative vs. Discriminative model (0) | 2014.03.28 |