머신러닝&딥러닝/베이지안

Gaussian Process Regression

Like_Me 2021. 8. 22. 16:08

지난 gaussian process regression 글은 weight space view로 설명하여 어려운 느낌이 든다.

이번에는 좀 더 쉽게 정리해 보려고 한다.

 

Purpose

gpr의 목적은 데이터(x, y)를 몇 개 가지고 있고 새로운 x가 있을 때 y를 구하고 싶은 것이 목적이다. 사실 이런 목적은 gpr 뿐 아니라 다른 방법으로도 달성할 수는 있다. linear regression 같은 것이 대표적이다. 하지만 gpr의 장점은 좀 더 복잡한 분포를 잡아낼 수 있다는 것이다.

 

 

How

가지고 있는 데이터(x,y)를 가지고 새로운 x에 대해 y를 추론하는 게 목적이라면 기존 데이터를 어떻게 사용할 것인지 정해야 한다. gpr의 핵심은 기존 데이터들의 관계를 gaussiankernel을 이용하여 나타내고 새로운 x가 들어왔을 때도 그런 관계를 따른다고 생각하는 것이다.

 

우선 kernel을 알아야 한다. kernel은 (rough 하게 설명하면) 데이터 x와 x'의 관계를 나타내 주는 function이라고 이해하면 된다. 보통 식으로는 $K(x, x')$으로 나타낸다. function은 여러 가지가 될 수 있으며 대표적으로는 RBF kernel ($exp(-\frac {|x-x'|^{2}} {L^{2}})$)이 있다. kernel function은 복잡한 관계를 나타낼 수 있다는 장점이 있다.

 

다양한 gaussian 분포 (위키 참조)

gaussian 가정은 (식을 간단히 만드는데 유리하여) gaussian process regression을 유도할 때 여러번 사용된다. 먼저 linear regression에서의 weight distribution, 관측 데이터의 distribution이 gaussian이라고 가정하고 식을 유도한다. 관측 데이터 T에 대한 분포가 multivariate normal distribution이라는 가정으로 관측 데이터에 대한 gaussian 분포를 구할 수 있다.

$$ P(T) = N(T|0, (\beta I_{N})^{-1}+K) $$

위의 식은 관측 데이터 T에 대한 gaussian distribution을 나타낸 것이다. $\beta$는 precision을 나타내고 K가 input x와 kernel function이 숨어져있는 행렬이다. 즉, input data에 대한 관계를 kernel로 나타낸 것이 관측 데이터의 multivariate gaussian distribution의 variance를 나타내는 데 사용되는 것이다.

 

이제 기존 데이터(x,y)를 가지고 distribution을 나타내는 데 성공했으니 새로운 x가 들어왔을 때 y를 유도하는 것을 알아야 한다. 확률 분포로 나타내면 기존 데이터가 $T_{N}$이고 새로운 input이 $t_{N+1}$일 때 $P(t_{N+1}|T_{N})$를 구하는 것이다. 이 또한 multivariate gaussian distribution이기 때문에 theorem을 사용하면 간단히 할 수 있다. 

 

 

Result

결과적으로 새로운 input $t_{N+1}$에 대한 distribution의 mean과 variance는 다음과 같다.

$$ \mu_{t_{N+1}} = k^{T} cov_{N}^{-1}T_{N} $$

$$ \sigma^{2}_{t_{N+1}} = c-k^{T}cov_{N}^{-1}k $$

여기서 k는 새로운 input과 기존 데이터(N개)의 관계를 kernel로 표현한 행렬이고 $cov_{N}$은 기존 데이터 간의 관계를 kernel로 표현한 행렬이다.

 

 

Bayesian?

이렇게 새로운 input x에 대해 y를 구하는 과정과 결과를 살펴봤다. 그런데 gaussian process regression은 왜 bayesian 방법인가? 베이지안 방법은 prior를 통해 posterior의 분포를 추론하는 것이다. 그럼 여기서 prior는 무엇일까?

Gaussian process (gp) prior는 다음과 같이 나타낼 수 있다. $$P(Y|X) = N(Y|0,K)$$ Y에 대한 확률 분포가 X에 dependent 하며, mean이 0이고 variance가 해당 X들로 만들어지는 kernel matrix일 때 gp prior 라고 한다. (X가 비슷하면 Y가 비슷한 부드러운 곡선을 정의한다) 이런 prior를 사용하여 gaussian process regression은 베이지안 방법이라 할 수 있다.

 

이 글은 gaussian process regression의 전체적인 그림을 보기 위한 글이라 생략을 많이 했다.

자세한 내용은 아래의 참조 강의를 확인해주세요.

 

참조:

www.edwith.org/bayesiandeeplearning/joinLectures/14426

 

Bayesian Deep Learning 강좌소개 : edwith

- 최성준

www.edwith.org

https://www.youtube.com/watch?v=4vuweopUd_o