(3) Variational Inference - [1]

김민솔·2024년 3월 2일
0

Bayesian

목록 보기
3/4

변분 추론(Variational Inference)은 확률 모델의 근사적 추론 방법 중 하나입니다. posterior가 복잡하여 직접적으로 구할 수 없는 경우에, 확률 분포를 근사하는 방법입니다. (실제로 posterior를 직접 계산하는 것은 거의 불가능에 가깝습니다.)

이번 포스트에서는 posterior 근사를 위해 ELBO가 사용되는 이유 및 kernel function의 관점으로 변분 추론이 multi-layer에서 이루어지는 과정을 살펴보고, 다음 포스트에서는 실제로 변분 추론이 어떻게 사용되고 있는지 VAE의 관점에서 다뤄보겠습니다.



ELBO

우리는 posterior p(wX,y)p(\mathbf{w}|\mathbf{X},\mathbf{y})를 직접 계산하지 않고, 이에 근사하는 분포인 variational dist. q(w)q(\mathbf{w})를 구해야 합니다. 따라서 두 분포의 KL divergence 값을 최소화하는 방향으로 최적화 문제를 접근해보겠습니다.

KL(q(w)p(wX,y))=q(w)logq(w)p(wX,y)dwKL(q(\mathbf{w})||p(\mathbf{w}|\mathbf{X},\mathbf{y}) ) = \int q(\mathbf{w})\log{\frac {q(\mathbf{w})} {p(\mathbf{w}|\mathbf{X},\mathbf{y}) }}d\mathbf{w}

하지만, posterior p(wX,y)p(\mathbf{w}|\mathbf{X},\mathbf{y})를 구할 수 없기 때문에 해당 적분 계산이 불가능합니다. 따라서 직접적으로 KL 값을 최소화하지 않고, ELBO(Evidence of Lower Bound)를 도입하여 문제를 해결합니다.

logp(D)=q(w)logp(D)dw =q(w)logp(Dw)p(w)p(wD)dw  =q(w)logq(w)p(Dw)p(w)q(w)p(wD)dw=q(w)logq(w)p(wD)dw+q(w)logp(Dw)p(w)q(w)dw=KL(q(w)p(wX,y))+ELBO\log {p(D)} = \int q(\mathbf{w}) \log{p(D)} d\mathbf{w} \\ \quad\quad\quad\quad\quad\quad\quad \ = \int q(\mathbf{w}) \log {\frac {p(D|\mathbf{w})p(\mathbf{w})} {p(\mathbf{w}|D)}} d\mathbf{w} \\ \quad\quad\quad\quad\quad\quad\quad\quad\quad \ \ = \int q(\mathbf{w}) \log {\frac {q(\mathbf{w})p(D|\mathbf{w})p(\mathbf{w})} {q(\mathbf{w})p(\mathbf{w}|D)}} d\mathbf{w} \\ \quad\quad\quad\quad\quad\quad\quad\quad\quad= \int q(\mathbf{w})\log{\frac {q(\mathbf{w})} {p(\mathbf{w}|D )}}d\mathbf{w} + \int q(\mathbf{w})\log{\frac {p(D|\mathbf{w})p(\mathbf{w})} {q(\mathbf{w})}}d\mathbf{w} \\ \quad\quad\quad\quad\quad\quad\quad\quad\quad = KL(q(\mathbf{w})||p(\mathbf{w}|\mathbf{X},\mathbf{y}) ) + ELBO

log marginal likelihood logp(D)\log{p(D)}를 전개하면 다음과 같이 근사 분포와 사후 분포 간의 KL divergence 값과 lower bound의 합으로 나타낼 수 있습니다. 이때 marginal likelihood는 고정이기 때문에, ELBO를 최대화하여 q(w)q(\mathbf{w})p(wX,y)p(\mathbf{w}|\mathbf{X},\mathbf{y}) 분포 차를 최소화하는 문제를 해결하는 것이 가능합니다.

Untitled

그렇다면, ELBO 식을 더 자세히 살펴보겠습니다.

ELBO=q(w)logp(Dw)p(w)q(w)dw  =q(w)(logp(Dw)+logp(w)q(w))dw  =q(w)logp(yX,w)dwKL(q(w)p(w))ELBO = \int q(\mathbf{w})\log{\frac {p(D|\mathbf{w})p(\mathbf{w})} {q(\mathbf{w})}}d\mathbf{w} \\ \quad \quad \quad \quad \quad \quad \ \ = \int q(\mathbf{w}) (\log{ p(D|\mathbf{w})} + \log{\frac {p(\mathbf{w})} {q(\mathbf{w})}} )d\mathbf{w} \\ \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \ \ = \int q(\mathbf{w}) \log{ p(\mathbf{y}|\mathbf{X},\mathbf{w})}d\mathbf{w} - KL(q(\mathbf{w})||p(\mathbf{w}))
  • q(w)logp(yX,w)dw\int q(\mathbf{w}) \log{ p(\mathbf{y}|\mathbf{X},\mathbf{w})}d\mathbf{w}: likelihood under q(w) / reconstruction error
  • KL(q(w)p(w))KL(q(\mathbf{w})||p(\mathbf{w})): prior fitting term / regularization parameter

첫 번째 term에서는 근사 분포 q(w)에 대한 기댓값으로, reconstruction error에 해당하게 됩니다. 두 번째 term에서는 근사 분포 q(w)와 prior p(w)의 kl divergence 값이 작아지도록 목적 함수가 설정되어 regularization 역할을 수행합니다.



Variational Inference in multi-layer (with kernel function)

prior fitting term은 근사 분포와 사전 확률 분포가 가까워지도록 학습시킵니다. 따라서 우리가 주목해야 할 term은 q(w)q(\mathbf{w})에 대한 likelihood 함수입니다.(regularization term에 대해서 따로 kernel을 도입하지 않아도 되기 때문입니다.) 가능도 함수를 구하기 위해 아래의 kernel function을 도입하겠습니다.

  • K(x,y)=p(w)p(b)σ(wTx+b)σ(wTy+b)dwdbK(x, y) = \int p(\mathbf{w})p(b)\sigma(\mathbf{w}^Tx+b)\sigma(\mathbf{w}^Ty+b)d\mathbf{w}db
  • K^(x,y)=1Kk=1Kσ(wkTx+bk)σ(wkTy+bk)\hat{K}(x, y) = \frac 1 K \sum^K_{k=1} \sigma(\mathbf{w}^T_kx+b_k)\sigma(\mathbf{w}^T_ky+b_k) ← Monte carlo Intergration

이때 커널을 K^(X,X)=ΦΦT\hat{K}(X, X) = \Phi\Phi^T로 치환하여 single, multi layer에 대한 likelihood를 표현하면 다음과 같이 됩니다.

single layer

P(YX)=N(Y;0,ΦΦT+τ1)p(w)p(b)dwdbP(Y|X) = \int \mathcal{N}(Y; 0, \Phi\Phi^T+ \tau^{-1})p(\mathbf{w})p(b)d\mathbf{w}db

multi layer

N(yd;0,ΦΦT+τ1)=N(yd;0,Φwd+τ1I)N(wd;0,I)dwd\mathcal{N}(y_d; 0, \Phi\Phi^T+\tau^{-1}) = \int \mathcal{N}(y_d; 0, \Phi w_d+ \tau^{-1}\mathbf{I})\mathcal{N}(w_d;0,\mathbf{I})dw_d
P(YX)=P(YX,w1,...wd,b)p(w1)...p(wd)p(b)dw1...dwddbP(Y|X) = \int P(Y|X, w_1,...w_d,b)p(w_1)...p(w_d)p(b) dw_1...dw_ddb

d개의 layer를 통해서 구한 likelihood를 recon error에 활용하여 ELBO를 최대화하는 문제를 해결할 수 있습니다. 하지만 해당 방법은 Neural network로 문제를 해결하는 것보단, GP prior로 문제를 해결한 것이라고 볼 수 있습니다. 따라서 다음 포스트에서는 VAE 모델을 중점으로 Neural network에서 변분 추론이 어떻게 이루어지는지 알아보겠습니다.



Reference

[1] Bayesian Deep Learning, 최성준, https://www.edwith.org/bayesiandeeplearning/joinLectures/14426

[2] Pattern recognition and machine learning, https://www.microsoft.com/en-us/research/uploads/prod/2006/01/Bishop-Pattern-Recognition-and-Machine-Learning-2006.pdf

[3] Kernel method, Wikipeida, https://en.wikipedia.org/wiki/Kernel_method

profile
Interested in Vision, Generative, NeRFs

0개의 댓글