Soohyun’s Machine-learning

[PRML] 6.4.1~6.4.4 Kernel Methods 본문

Machine Learning/PRML

[PRML] 6.4.1~6.4.4 Kernel Methods

Alex_Rose 2021. 4. 4. 21:28

가우시안 프로세스에서는 parametric model을 쓸 것이다. (함수에 prior distribution을 direct하게 적용하지 않는다.)

이럴 경우 함수에서 uncountably infinite space를 생각할 수 있는데, finite data set만 생각하면 된다. 

 

ARMA, Kalman filters, radial basis function networks 도 가우시안 프로세스 모델의 형태라고 볼 수 있다. 

 

 

6.4.1 Linear regression revisited

linear regression으로 돌아가서 y(x, w) 함수에 대한 predictive distribution을 다시 유도해보자. 

 

M개의 고정된 기저 함수들(fixed basis functions)간의 linear combination 측면에서 모델을 정의해보자

여기서 x와 phi(x)는 벡터이다. phi는 basis function. 

w는 M-차원 weight vector. 

 

이제 w에 대한, 아래와 같은 isotropic Gaussian 형태의 prior distribution을 생각해보자.

TLDR: An isotropic gaussian is one where the covariance matrix is represented by the simplified matrix Σ=σ2I.

math.stackexchange.com/questions/1991961/gaussian-distribution-is-isotropic#:~:text=TLDR%3A%20An%20isotropic%20gaussian%20is,%CE%A3%20is%20the%20covariance%20matrix.

0는 mean,

alpha^(-1) * Identity matrix는 covariance를 나타낸다. 

alpha는 하이퍼파라미터이며, 분포의 precision (inverse variance)을 나타낸다.

 

w가 어떤 값이든지간에, 위의 수식 (6.49)는 x에 대한 특정한 함수를 정의한다. 

w의 확률 분포는 (6.50)에서 (가우시안으로) 정의되어 있으며, 그래서 y(x) 함수의 확률 분포를 유도해낼 수 있다. 

 

이 함수를 특정한 데이터 포인트 x = (x1, ... , xn)에 대해서 evaluate 하기 위해서,

함수값인 y(x1),...,y(xn)의 joint distribution을 보자. 

 

벡터 y = y(x1),...,y(xn)이다.

큰 phi는 design matrix이다

 

y에 대한 확률 분포..

y는 주어진 w에 대한, 가우시안 분포된 variables의 선형 결합(linear combination)이다. 

 

때문에 그 자체로 가우시안이라 mean과 covariance만 있으면 정의가 가능하다. (아래 수식)

 

 

K는 gram matrix이며, 아래와 같은 요소들로 이루어져 있다.

여기서 k(x, x')은 커널 함수이다.

 

 

일반적으로 가우시안 프로세스는 함수 y(x)에 대한 확률 분포로 정의된다.

(물론 y(x)값은 인풋 데이터 포인트 (x1,...,xn)와 가우시안 분포의 joint이다)

 

 

여기서 인풋 벡터가 2-차원이면, 가우시안 랜덤 필드(Gaussian random field)로도 알려져 있다. 

더 일반적으로는, y(x)의 stochastic process는, y(x1),...,y(xn)의 joint probability로 주어진다.

 

 

가우시안 확률 프로세스(gaussian stochastic processes)의 키 포인트는 N개의 값들에 대한 joint distribution은 second-order statistics(mean과 covariance라고 이름하는)로 명시된다는 것이다. 

 

 

대부분의 경우 mean값이 알려져 있지 않으므로 (as a prior) 0으로 두는데,

weight values p(w|α)에 대한 prior의 mean도 0으로 두는 것도 이와 같다. (기저 함수 측면에서)

 

 

세부적인 가우시안 프로세스의 내용들은 y(x)의 covariance에서 완성된다. 

 

 

(여기서 x_n과 x_m은 그냥 어떤 두 개의 값이다.)

 

 

weight prior(6.50)를 가진 선형 회귀 모델(6.49)과 커널 함수(6.54)로, 가우시안 프로세스의 특수한 케이스를 정의할 수 있다. 

그런데 이걸 기저 함수(basis function)를 통해 우회적으로 정의하는게 아니라, 커널 함수를 직접적으로 정의해서 할 수도 있다.

 

 

이 그래프들은 커널 함수를 각기 다르게 정의(왼쪽 - 가우시안 커널 // 오른쪽 - 지수 커널)했을 때의 모습을 보여주고 있다.

 

 

첫번째 가우시안 커널의 형태는 아래와 같다. 

 

두번째 지수 커널(exponential kernel)은 아래와 같이 주어진다.

(6.56)의 수식은 오른슈타인-울렌벡 프로세스(Ornstein-Uhlenbeck process)에 해당한다.

 

 

 

 

 

 

 

 

6.4.2 Gaussian processes for regression

가우시안 프로세스 모델을 회귀 문제에 적용하기 위해서는, 타겟값 관측을 위한 noise를 취하는게 필요하다.

여기서 y_n은 y(x_n)이다.  (n번째의 x가 y라는 함수안에 들어간 것) 그리고 epsilon_n은 데이터와는 무관한 random noise variable이다. 

 

 

여기서 노이즈를 만들때 가우시안 분포를 따르게 해보면, 아래와 같은 수식이 된다.

 

beta는 noise의 precision을 나타내는 하이퍼파라미터이다.  (노이즈값은 데이터 포인트와는 무관하기 때문에)

 

타겟값은 y값에 의존하며, 위와 같은 isotropic Gaussian 형태(6.59)로 주어진다.

위의 수식에서 I_n은, N by N의 unit matrix(identity matrix의 다른 명칭)이다. 

 

 

가우시안 프로세스의 정의로부터, marginal distribution p(y)는 가우시안으로 주어진다. 

 

K는 gram matrix이며, 여기에서는 covariance의 역할을 한다. mean은 역시 0이다. 

 

 

포인트 x_n과 x_m이 비슷하고, 해당하는 값 y(x_n)과 y(x_m)이 (비슷하지 않은) 다른 포인트들보다 더 강하게 연결되어 있다는 특성을 표현하기 위해서 --- K를 만들어내는 커널 함수가 결정된다. 

 

marginal distribution p(t)를 찾기 위해서, (인풋값 x1,...,xn 조건을 받은) y에 대해 전체를 합쳐야 한다. 

이는 선형-가우시안 모델(2.115)을 써서 해낼 수 있다. 

 

normalize or evidence vector

위의 수식에서 A는 어떤 matrix,  큰 lambda와 L은 precision matrix이다. 

mu, A, b는 means를 다루는 파라미터들이고, AL은 covariance를 다룬다. 

 

하단 (2.109)와 (2.110)을 보면 알겠지만, 그냥 y에 대한 mean과 covariance이다. 

 

 

 

위의 수식(2.115)을 사용해서 t에 대한 marginal distribution을 적어보자.

 

 

위의 수식에서 C는 covariance matrix를 나타내며, 해당 행렬의 요소들은 아래 수식에서 볼 수 있다.

 

여기서 델타는 크로네커 델타 (n과 m이 같으면 1, 다르면 0)

 

이 결과는 y(x)와 관련된 것들과 epsilon과 관련된 것들이, 서로 독립적이라는 걸 나타낸다.

그래서 이 두 개의 covariance는 그냥 더해서 만든다. 

 

 

(gaussian process regression를 하기 위해서) 많이 쓰이는 커널 함수는 2차식에 exponential을 취한것으로 주어진다. 

 

 

여기서 theta3은 parametric model에 해당하는데, 인풋값에 대한 선형 함수(linear function)이다. 

다양한 파라미터 theta0, ..., theta3로 샘플한 결과는 아래 그래프에 있다.

 

theta0의 영향력은 거의 없으며, theta1의 변화에 따라 그래프 형태가 많이 달라지고, theta3이 크냐 작냐에 따라 variance가 함께 커지거나 작아짐을 볼 수 있다.

 

 

regression에서의 목표는 새로운 인풋값(x_(N+1))에 대해 prediction을 하는 것(t_(N+1))이다.

 

그럴려면 predictive distribution p(t_(N+1) | t_N) 을 evaluate해야한다. 

 

 

위의 conditional distribution을 찾기 위해서, joint distribution p(t_(N+1))을 적어봅시다. 

t_(N+1)은 벡터로, t1, ..., t_N, t_(N+1) 이다. 

 

 

위의 (6.61)수식으로부터 t1,...,t_(N+1)의 joint distribution은 아래와 같이 주어진다.

 

여기서 C_(N+1)은, 아래 수식의 elements를 갖고 있는, (N+1) by (N+1)의 covariance matrix이다. 

 


joint distribution이 가우시안이기 때문에, 이 결과를 conditional Gaussian distribution을 찾는데에 쓸거다. 

이를 위해 covariance matrix를 아래처럼 나눕니다 (partition)

 

C_N : N by N의 covariance matrix이다.

벡터 k : k(x_(n), x_(n+1))

c는 스칼라이고, 하단 수식으로 정의된다. 

 

 

C_(N+1)로 새로운 matrix이기는 하지만, (symmetric 성질에 따라) k가 각각 들어갔으며

c의 정의는 covariance matrix element의 정의와 크게 다를 것이 없고,

 

delta가 있느냐 없느냐 (즉, beta^(-1)을 0으로 없애버리냐 1로 냅두냐의 차이만 있는, 근데 i=j이기 때문에 어차피 1이라 안 쓴듯하다.) 뿐임을 볼 수 있다.

 

 

 

아래 conditional distribution 정의 (2.81)과 (2.82)를 사용해서

 

 

conditional distribution p(t_(N+1) | t)의 gaussian의 mean과 variance를 적어보자 

 

(기존의 mu는 0이었기 때문에 사라졌고.... covariance는 새로운 요소인 c에서 기존의 mean까지의 거리를 체크하는 듯)

 

 

 

 

가우시안 프로세스 회귀(gaussian process regression)의 예시는 위의 그림에서 볼 수 있다. 

 

gaussian process regression을 sinusoidal data에 적용한 것인데,

녹색 커브가 함수이며, 동그란 것들이 가우시안 노이즈에서 추출한 데이터 포인트들이다. 

붉은 선이 가우시안 프로세스 predictive distribution의 mean을 보여주고,

붉은색 면은 두 standard deviations (= variance)를 보여준다. 

 

데이터 포인트가 많을수록 variance가 좁은 걸 볼 수 있고, 우측으로 갈 수록 데이터가 없어서 variance가 커진 걸 볼 수 있다.

(= uncertainty가 커졌다.)

 

 

 

커널 함수의 유일한 제약은 covariance matrix가 positive definite여야 한다는 점이다. 

 

예전에 snu 수업 들을때 정리해뒀던 것

 

만약 K의 eigenvalue를  λ _i라고 한다면, C(covariance matrix)에 해당하는 eigenvalue는  λ _i  +  β ^(-1)일 것이다.

 

 

이 수식으로 kernel matrix k(x_n, x_m)이 positive definite라는 걸 알 수 있다.

λ _i는 eigenvalue이므로 0보다 크거나 작을 것이고, 설령 그 값이 0이라고 하더라도 β ^(-1)은 variance라서 0보다 클 것이기 때문에 결과값은 무조건 양수로 나오기 때문이다. 

 

 

 

predictive function의 mean (6.66)을

 

x_(N+1)에 대한 함수로 다시 써보면 아래처럼 나온다.

 

만약 커널 함수 k(x_n, x_m)이 오로지 distance ||x_n - x_m||에만 의존한다면, radial basis functions으로 확장을 얻을 수 있다.

 

 

큰 데이터 셋에 대해서 gaussian process 방법을 직접적으로 사용하는 건 infeasible하다. 그래서 트레이닝 셋에 대해서 approximation schemes의 범위를 스케일링하는 방법이 발달했다. 

 

 

 

가우시안 프로세스의 central computational operation은 N by N 매트릭스의 inversion과 관련이 있으며, 보통 O(N^(3)) 컴플렉시티를 가진다. 반대로, basis function model에서, M by M 사이즈의 행렬 S_(N)를 invert하는데, O(N^(2))의 컴플렉시티가 있다. 

 

두 경우 모두 다, matrix의 inversion은 각 트레이닝 세트에 대해서 단 한 번만 이루어진다. 

 

테스트시에는 두 방법 모두 vector-matrix 곱셈이 필요한데, 가우시안 프로세스 케이스에서는 O(N^(2))의 cost가 필요하고, 

linear basis function model 케이스에서는 O(M^(2))의 cost가 필요하다.

 

만약 데이터 포인트의 개수 N보다 basis functions M이 더 작다면, basis function model에서 작업하는게 더 효율적일 것이다. 

 

 

하지만 가우시안 프로세스 측면의 advantage는 infinite number of basis functions를 표현해야 할 때만 covariance function을 고려하면 된다는 점이다. 

 

 

 

 

 

 

6.4.3 Learning the hyperparameters

 

가우시안 프로세스 모델의 predictions는 부분적으로 covariance function (공분산 함수)의 선택에 달려있다. 

 

실질적으로 covariance function을 fix하기보다, 함수들의 parametric family를 사용하는 게 좋고, data로부터 파라미터값들을 추론한다. (이 파라미터들은 correlations의 length scale이나 noise의 precision같은, 보편적인 parametric model의 하이퍼파라미터들에 해당한다.) 

 

 

하이퍼파라미터 학습을 위한 테크닉은 likelihood function p(t|theta)를 evaluation하는데에 기반을 두고 있다. 

(theta : 가우시안 프로세스를 위한 하이퍼파라미터들의 세트) 

 

theta의 포인트를 추정하기 위한 가장 간단한 접근법은 log likelihood function을 maximize하는 것이다. 

 

theta는 regression 문제에서 하이퍼파라미터들의 세트로 나타났는데, 선형 회귀 모델을 위한 type 2 maximum likelihood procedure로 볼 수 있다.

 

projecteuclid.org/journals/bayesian-analysis/volume-15/issue-4/Restricted-Type-II-Maximum-Likelihood-Priors-on-Regression-Coefficients/10.1214/19-BA1188.pdf
type II ML의 과정 

 

Log likelihood procedure의 maximization은, conjugate gradient같은 효율적인 gradient-based optimization algorithms을 사용해서 할 수 있다. 

 

multivariate gaussian distribution의 일반적인 형태를 취해서,

가우시안 프로세스 회귀 모델(gaussian process regression model)을 위한 log likelihood function을 쉽게 evaluate할 수 있다.

 

 

non-linear optimization을 위해, 파라미터 벡터 theta 각각에 대한 log likelihood functio의 gradient가 필요하다. 

여기서 C_(N)의 도함수의 evaluation은 직접적으로 적용한다고 가정한다, 

 

 

C_N^(-1)의 도함수를 위해, 결과 (C.21)을 쓰고,  ln|C_N|의 도함수를 위해 (C.22)의 결과와 합쳐보면.. 위의 (6.70) 수식을 얻어낼 수 있다. 

 

이 함수의 형태는 multivariate gaussian의 모습이므로, non-convex하고, 그래서 multiple maxima가 있다. 

 

 

 

gradient-base 방법을 써서 log posterior를 maximize하기 위해서(maxima 1개를 취하기 위해서), theta에 대한 prior를 알려주겠다. 

 

완전히 베이지안적인 접근법을 취하자면 theta에 대한 marginalization이 필요한데, 대부분의 경우 이게 intractable하기 때문에, approximation 해야한다. 

 

어떤 문제들에서는 각기 다른 모집단에서 추출된 noise의 분포가 서로 다르다. (heteroscedastic) 

 

https://blog.naver.com/jws2218/222139632277

 

그럼에도 가우시안 프레임워크로 모델링을 하기 위해서, 인풋 x에 대한 beta의 독립성을 나타내는 second Gaussian process를 소개한다. 

 

 

 

6.4.4 Automatic relevance determination

 

이전 기법들은 각 인풋 variable에 대해서 분리된 파라미터들을 조합하는 것으로 확장할 수 있다.

이전에는 데이터 추론을 위해, maximum likelihood를 사용해 위의 파라미터들을 최적화하고, 서로 다른 인풋들의 relative importance를 알아냈다. 

 

이는 automatic relevance determination(ARD)의 가우시안 프로세스 context의 한 예라고 볼 수 있으며, 적합한 인풋 데이터를 넣어줘야만 한다.

 

가우시안 프로세스의 인풋이 2-차원(x = (x1, x2))이라고 생각해보면, 커널 함수는 아래와 같은 형태가 된다. 

 

 

하단 그림에서 볼 수 있듯이, 함수 y(x)의 결과 prior로부터 나온 샘플들은, precision parameters  η_i의 서로 다른 두 개의 세팅이라고 볼 수 있다. 

 

eta를 어떻게 세팅하느냐에 따라서, distribution의 형태가 달라진다. 

 

위의 그림에서 볼 수 있듯이, eta( η )의 값이 작아짐에 따라, 함수가 인풋값 x에 반응하는 정도도 덜해짐을 볼 수 있다. (우측이 더 평온하다.)

 

maximum likelihood를 사용해 이 파라미터들을 데이터셋에 적용하게 되면, predictive distribution에 인풋값이 끼치는 영향도 줄어들게 할 수 있을 것이다. 

 

(Nabney, 2020)에서는 이런 성질을 이용해서, 인위적으로 만든 간단한 데이터를 쓴 결과물을 보여줬다. 

 

타겟값 t는 가우시안으로부터 100개의 x1값을 샘플링했으며, sin(2 * π * x1) 함수를 써서 evaluate했다. 그리고 gaussian noise를 더했다. 

 

x2값은 x1의 값을 카피하고 noise를 더했다. 

그리고 x3의 값은 Gaussian distribution으로부터 독립적으로 샘플링했다. 

 

여기서 x1(빨간색)이 t에 대한 good predictor임을 볼 수 있다. x2(녹색)은 좀 더 noisy했으며, x2는 t와의 찰나의 correlation만 있을 뿐이다. 

 

ARD와 함께하는 가우시안 프로세스를 위한 marginal likelihood는, scaled conjugate gradients 알고리즘을 사용해서 optimize할 수 있다. 

 

위의 그림에서 볼 수 있듯이 η1이 상대적으로 큰 값으로 converge했고, η2는 그보다 작은 값으로, η3는 매우 작은 값으로 갔다. (t를 predicting하는 데에는 쓸모가 없다)

 

ARD 프레임워크는 exponential-quadratic 커널(6.62)과 쉽게 결합할 수 있다.

 

그러면 아래와 같은 수식이 나온다.  (얘가 회귀 문제들에서 가우시안 프로세스를 용이하게 만든다.)

 

 

 

 

 

 

 

 

 

 

 

'Machine Learning > PRML' 카테고리의 다른 글

[PRML] 8.4 Inference in Graphical Models  (0) 2021.07.30
[PRML] 8. Graphical Models  (0) 2021.06.06
[PRML] 4.1.6 ~ 4.2.4.  (0) 2021.01.03
[PRML] 2.4~2.5  (0) 2020.10.25
[PRML] 2.1~2.2.1 Probability Distributions  (0) 2020.07.26
Comments