Gaussian Process(줄여서 GP라고도 한다)는 비모수방법의 일종으로, 사전분포를 표현하여 베이즈 정리를 바탕으로 사후확률을 추론하는 기법으로 사용된다. 길이 N의 가우시안 랜덤 벡터(Gaussian Random Vector)란
f=[f1,…,fN]
의 형태로 주어지며, 평균벡터 μ=E[f], 공분산행렬 Σ=Cov[f] 가 정의된다.
Input data X={xn∈X}n=1N 에서 정의되는 함수 f:X→R 의 형태가 주어진다고 하자. 이때
fX=[f(x1),…,f(xN)]
으로 주어진 벡터의 각 성분은 해당 데이터셋에서의 unknown function value이고, 이는 random variable에 각각 대응되므로, 이는 앞서 정의한 가우시안 랜덤 벡터이다. 만일 위 랜덤 벡터가 임의의 N≥1 개의 점들에 대해서 모두 jointly Gaussain이라면, 함수 f:X→R 을 Gaussain Process 라고 정의한다. 또한, GP에 대해 다음과 같이 mean function, covariance function이 정의된다.
m(x)∈R,K(x,x′)≥0
이때 covariance function은 Mercer Kernel(=Positive definite kernel)로 주어지는데, 예를 들어 Gaussian RBF kernel
또한, Gaussan Process의 정의에 의해 Input points X={x1,…,xN} 에 대해
p(fX∣X)=N(fX∣μX,KX,X)
이 성립한다(각각 GP의 평균함수, 공분산함수에 Input을 대입한 벡터, 행렬을 의미함).
Kernels
Mercer Kernel
커널에 대한 기본적인 설명은 예전에 다룬 글로 대체하고, 여기서는 주로 사용되는 커널들에 대해 다루어보도록 하자. 우선, 만약 입력벡터가 유클리드공간(RD)인 경우 stationary kernel이 주로 사용된다. Stationary kernel은 K(x,x′)=K(x−x′)=K(r) 꼴로 표현되는 커널함수를 의미한다.
Examples
Squared Exponential(SE) Kernel
K(r;l)=exp(2l2−r2)
Automatic Relevance Determination(ARD) Kernel
: RBF 커널에서 유클리드 거리를 마할라노비스 거리로 대체
K(r;Σ,σ2)=σ2exp(−21rTΣ−1r)
Matern Kernel
: SE kernel보다 더 rough한 커널로, 더 널리 사용.
K(r;ν,l)=Γ(ν)21−ν(l2νr)νKν(l2νr)
(Kν 는 수정된 Bessel function)
Mercer's Theorem
고유값분해(eigendecomposition)를 이용하면 p.d인 kernel matrix K를 분해햐여 (i,j) 번째 성분을 다음과 같이 나타낼 수 있다.
kij=ϕ(xi)Tϕ(xj)whereϕ(xi)=Λ21U:i,
이러한 아이디어를 기반으로 Kernel Matrix가 아닌, kernel function 자체에 대한 eigendecomposition을 생각할 수 있다. 우선, kernel function K 에 대한 eigenfunction ϕ 및 이에 대응하는 고유값(eigenvalue) λ를 다음 관계에서 정의하자.
∫K(x,x′)ϕ(x)dμ(x)=λϕ(x′)
이렇게 구해진 eigenfunction들은 서로 orthogonal하다. 즉,
∫ϕi(x)ϕj(x)dμ(x)=δij
을 만족한다(우변은 Kronecker delta 함수).
Mercer's Theorem은 이를 바탕으로 한 정리인데, 이는 임의의 p.d인 커널함수는 모두 다음과 같은 무한합으로 나타낼 수 있음을 의미한다.
K(x,x′)=m=1∑∞λmϕm(x)ϕm(x′)
GP Regression
Noise-Free observation
Training data D={(xn,yn):n=1:N,xi∈RD} 이 주어지고, 이때 noise-free인(오차항이 없는) 함수 yn=f(xn) 로 관계식이 주어진다고 하자. 이때, 이미 관측된(Training data) x에 대한 함수값 f(x)를 추정하는 문제가 주어진다고 하자. 이 경우에는 GP를 가정한 함수 f를 추정하는 것이 비교적 간단하다. 오차항이 없으므로 Training data를 보간(Interpolate)하는 함수를 찾으면 된다.
반면, 이번에는 Training data 외부에서 관측된 x,에서의 문제를 생각해보자. 예컨대 N∗×D 크기의 test dataseet X∗의 원소들에 대응하는 가우시안 벡터
f∗=[f(x1),…,f(xn)]
를 추정하는 상황을 가정하자. 그러면 GP의 정의에 의해 joint distribution p(fX,f∗∣X,X∗)은 다음과 같은 joint Gaussian이다.
(fXf∗)∼N((μXμ∗),(KX,XKX,∗TKX,∗K∗,∗))
또한, Joint Gaussian Distribution의 성질로부터(수리통계학 참고) 다음 식들이 성립한다.
이번에는 일반적인 경우, 즉 Training data가 yn=f(xn)+ϵn 의 형태로 주어지는 경우를 다루어보도록 하자. 여기서 오차항은 정규분포(N(0,σy2))를 따른다고 가정하자. 이 경우, 앞선 케이스와 같이 Interpolation은 불가능하지만, 관측 데이터들에 어느정도 가까운 Regression이 이루어진다. 우선, 관측값들의 공분산은 다음과 같이 주어진다.