본문 바로가기
AI 딥러닝/ML

[GP-1] 가우시안 프로세스 (Gaussian Process)의 개념

by 깊은대학 2022. 6. 26.

랜덤변수(random variable)는 확률 실험의 결과에 실숫값을 대응시키는 함수로 정의된다. 또한 랜덤 프로세스(random process)는 어떤 파라미터로 인덱스(index)된 무한개의 랜덤변수의 집합으로 정의된다.

 

 

즉 랜덤 프로세스는 확률 실험 결과와 인덱스 파라미터 등 두 개의 변수로 구성된 함수로 생각할 수 있다. 보통 인덱스로 시간 파라미터가 많이 사용되지만 공간 파라미터도 인덱스가 될 수 있다. 여기서는 인덱스를 공간 파라미터인 x 로, 랜덤 프로세스를 f 로 표기하겠다. 그러면 랜덤 프로세스를 다음과 같이 함수 형태로 쓸 수 있다.

 

f(e,x)

 

여기서 e 는 확률 실험을 나타낸다. 하지만 일반적으로 확률 실험을 명시적으로 나타내지 않고 인덱스만을 표시한 f(x) 로 표기한다.

인덱스 파라미터를 고정시킨다면 랜덤 프로세스는 랜덤변수가 된다. 또한 확률 실험 결과를 고정시킨다면 랜덤 프로세스는 확정적 함수가 된다. 이 함수를 샘플함수(sample function)라고 한다.

 

 

가우시안 프로세스(GP, Gaussian process)는 프로세스 집합 내에 있는 랜덤변수들의 임의의 조합이 모두 결합(joint) 가우시안 분포를 갖는 랜덤 프로세스로 정의된다.

예를 들어서 인덱스 x1,x2,...,xm 에 해당하는 랜덤변수가 fi=f(xi) 일 때, 이로부터 가능한 모든 부분 집합 {f1},{f2,f3},...,{f1,f2,fm} 이 모두 결합 가우시안 분포를 갖는 프로세스이다. 달리 설명하자면, fi 을 성분으로 하는 벡터 f1:m=[f1f2...fm]T 가 가우시안 랜덤벡터인 프로세스이다. 여기서 m 은 프로세스에서 임의로 선정한 인덱스의 갯수이므로, 가우시안 랜덤벡터는 무한 차원을 가질 수 있다. 즉 가우시안 프로세스는 가우시안 랜덤벡터를 무한 차원으로 확장한 것으로 설명할 수도 있겠다.

가우시안 랜덤벡터의 특성을 평균과 공분산으로 표현하듯이 가우시안 프로세스도 평균함수 μ(x) 와 공분산 k(x,x) 로 특징지울 수 있다.

 

f(x)GP(μ(x),k(x,x))

 

여기서 공분산 k(x,x) 는 다음과 같다.

 

k(x,x)=E[(f(x)μ(x))(f(x)μ(x))]

 

공분산은 프로세스 내에서 서로 다른 두 점 xx 의 상호 연관성을 나타낸다. 가우시안 프로세스에서는 공분산 k(x,x) 을 커널함수(kernel function)라고 한다. 다음 그림은 μ(x)=0, k(x,x)=exp(12(xx)2) 일 때의 가우시안 프로세스의 샘플함수10개를 그린 것이다.

 

 

여기까지가 가우시안 프로세스의 일반적인 설명이다. 이제 기계학습에서 사용되는 가우시안 프로세스에 대해서 알아보기로 하자.

 

 

가우시안 프로세스는 회귀(regression) 문제, 분류(classification) 문제, 차원축소(dimensionality reduction) 문제 등에 적용할 수 있다. 이 중에서 가우시안 프로세스 회귀(GP regression) 문제를 먼저 다루어 보기로 하자.

다음 그림과 같이 m 개의 데이터셋 D={(x1,f1),(x2,f2),...,(xm,fm)} 이 주어졌다고 하자.

 

 

회귀 문제는 데이터셋에 없는 독립변수의 특정 값 x 에 대응하는 종속변수 값 f 을 추정하는 문제다. 일반적으로 생각할 수 있는 방법은 함수 피팅(fitting)이다. 데이터의 추세에 따라서 미지의 목표 함수(target function) g(x) 를 1차, 2차 함수 등의 다항식 또는 비다항식 함수로 가정하고, 선정된 함수 모델의 파라미터를 최소제곱법 등을 이용하여 추정한다. 그리고 그 추정된 함수를 이용하여 f=g(x) 를 계산한다.

 

 

반면에 GP 회귀 문제에서는 이와 다른 접근 방법을 사용한다. 목표 함수가 특정 형태를 갖는다고 가정하는 대신에 가우시안 프로세스 f(x) 로 간주한다. 구현 가능한 모든 함수에 대해 확률을 부여하는 접근 방법이라고 볼 수 있겠다. 미지의 함수를 가우시안 프로세스 f(x) 로 표현한다는 것은 데이터셋에서 m 개의 관측값 f1:m=[f1f2...fm]T 을 어떤 가우시안 프로세스의 특정 인덱스 x1:m 에서 샘플링된 값으로 간주하는 것이다. 즉,

 

f1:mN(μ(x1:m),K)

 

여기서

 

x1:m={x1,x2,...,xm}K=[k(x1,x1)k(x1,x2)k(x1,xm)k(x2,x1)k(x2,x2)k(x2,xm)k(xm,x1)k(xm,x2)k(xm,xm)]

 

이다.

 

 

GP 회귀 문제에서는 인덱스 파라미터 x 를 입력이라고 한다. 그림의 예와는 다르게 일반적으로 입력은 많은 입력 변수가 있기 때문에 벡터로 표시한다. 관측값 또는 출력 fi 는 연속값(continuous value)을 갖는다. 참고로 GP 분류 문제에서는 관측값이 이산값(discrete value)이다. 평균함수 μ(x) 는 관측값의 전반적인 추세를 나타내고 커널함수 k(x,x) 는 두 관측값의 사이의 기하학적인 유사도를 나타낸다.

미지의 목표함수에 대한 사전 정보가 없는 경우에는 평균함수는 μ(x)=0 으로 놓는다. 커널함수로 많이 사용되는 함수는 다음과 같이 가우시안 확률밀도함수와 유사한 RBF (radial basis function) 이다.

 

k(x,x)=σf2exp(xx222λ2)

 

여기서 σf2 는 커널이 표현할 수 있는 최대 공분산의 크기를 나타낸다. xx 이면 커널은 최대값 σf2 에 가까워진다. 두 점이 서로 밀접하게 관련되어 있다는 뜻이다. xx 가 서로 멀리 떨어질 수록 커널값은 0 에 가까워지는데 이는 두 점 사이의 관련성이 떨어진다는 뜻이다. 이 관련성의 정도를 조절할 수 있는 값이 λ2 이다. 두 점 사이의 거리가 같더라도 이 값이 클수록 두 점의 관련성이 높아진다. σf2λ2 를 커널 파라미터라고 한다.

GP 회귀 문제는 m 개의 데이터셋 D={(xi,fi), i=1,...,m} 이 주어졌을 때, p 개의 입력 {xm+1,...,xm+p} 에 대응하는 출력 f=[fm+1...fm+p]T 를 추정하는 문제로서 가우시안 프로세스 틀에서 다음과 같이 정식화 할 수 있다.

즉, 다음과 같이 가우시안 분포가 주어졌을 때,

 

[f1:mf]N([μ(x1:m)μ(xm+1:m+p)],[KKKTK])

 

f 의 조건부 확률밀도함수 p(f|x1:m,xm+1:m+p,f1:m) 를 구하는 문제다. 여기서

 

K=[k(x1,xm+1)k(x1,xm+p)k(xm,xm+1)k(xm,xm+p)]K=[k(xm+1,xm+1)k(xm+1,xm+p)k(xm+p,xm+1)k(xm+p,xm+p)]

 

이다.

다음 포스팅에서는 조건부 확률밀도함수를 계산하는 방법, 주어진 데이터셋을 이용하여 커널 파라미터를 학습하는 방법, 미지의 목표함수를 효과적으로 추정하기 위한 입력 x 의 선정 방법, GP 회귀 문제의 응용 등에 대해서 차례로 알아보기로 한다.

 

 

 

'AI 딥러닝 > ML' 카테고리의 다른 글

[GP-4] 베이지안 최적화 (Bayesian Optimization)  (0) 2022.07.09
[GP-3] GP 커널 학습  (0) 2022.07.05
[GP-2] GP 회귀 (GP Regression)  (0) 2022.06.30

댓글