[Deep Bayes] TEST - Approximate Bayesian Inference

해당 내용은 https://deepbayes.ru/ (Deep Bayes 강의)를 듣고 정리한 내용이다.

Clustering Problem

문제를 풀기에 앞서서, Clustering에 대해서 알아보자. 많이들 알 고 있을 것이니 간단하게만 이야기하고 넘어갈 것이다. 우선 Clustering은 데이서셋 \(X = \{x_i\}_{i=1}^{N}\) 를 K개의 클러스터로 그룹핑하는 것을 의미한다. 대표적인 예시로 K-Means Clustering이 있다. 여기서 우리가 다루게 될 Clustering 기법은 GMM ( Gaussian Mixture Model )이다.

Gaussian Mixture Model

  • K 개의 Gaussian components로 구성 ( 각각의 probability : \(\pi = (\pi_1,...\pi_K)\) )

  • 각각의 Gaussian은 parameter \(\mu_k\)와 \(\lambda_k\)를 가짐

  • 모든 데이터는, 각각의 K개의 클러스터에 대한 소속 정도를 의미하는 latent variable을 가짐

    \[z_i \in \{0,1\}^K,\;\;\; \sum_{k=1}^{K}z_{ik}=1\]


GMM을 식으로 확인하면 다음과 같다.

\[p(X,Z \mid \pi, \mu, \lambda ) = \prod_{i=1}^{N}p(z_i \mid \pi)p(x_i \mid z_i, \mu, \lambda) = \prod_{i=1}^{N} \prod_{k=1}^{K} [ \pi_k N(x_i \mid \mu_k, \lambda_k^{-1})]^{z_{ik}}\]


이를 통해, 우리가 알고 싶은 것은 두 개이다.

  • 1 ) latent variable \(z\)에 대한 posterior distribution
  • 2 ) 최적의 parameter


Inference methods

우리가 풀고자 하는 문제는 크게 세 가지로 구분해볼 수 있을 것이다.

  • 1 ) Parameter만 구하고 싶은 경우
  • 2 ) Latent Variable만 구하고 싶은 경우
  • 3 ) Parameter와 Latent Variable을 모두 구하고 싶은 경우

1)의 경우에는, Maximum Likelihood 방법을 사용하면 된다.

2)의 경우에는, 또 다시 세 가지로 나눠 생각해볼 수 있다

  • a) Conjugacy가 있는 경우 : Full Bayesian Inference
  • b) Conditional Conjugacy가 있는 경우 : Mean field Variational Inference
  • c) Conjugacy가 없는 경우 : Parametric Variational Inference

3)의 경우, 위의 2)의 경우에다가, 저번 포스트에서 다룬 EM Algorithm을 적용하면 된다.

Clustering 및 GMM에 대한 내용과 저번 시간의 내용에 대한 정리는 여기까지 하고, 이제 문제를 풀어볼 것이다.


문제 풀이 시 참고할 수 있는 내용

figure2



Question 1. basic GMM

figure2


(a) Check that likelihood & prior are “CONJUGATE”

  • prior distribution : \(p(Z)\)
  • likelihood : \(p(X \mid Z,\pi, \mu, \lambda)\)

우선, GMM의 식을 확인해보자.

\[p(X,Z \mid \pi, \mu, \lambda ) = \prod_{i=1}^{N}p(z_i \mid \pi)p(x_i \mid z_i, \mu, \lambda) = \prod_{i=1}^{N} \prod_{k=1}^{K} [ \pi_k N(x_i \mid \mu_k, \lambda_k^{-1})]^{z_{ik}}\]


위 식에서, prior와 posterior는 다음과 같다.

  • prior : \(p(Z) = \prod_{i=1}^{N}\prod_{k=1}^{K} \pi_k^{z_{ik}}=\prod_{i=1}^{N}\prod_{k=1}^{K}C^{z_{ik}}\)

  • posterior : \(p(Z \mid X) \propto p(X,Z) = \prod_{i=1}^{N} \prod_{k=1}^{K} [ \pi_k N(x_i \mid \mu_k, \lambda_k^{-1})]^{z_{ik}} = \prod_{i=1}^{N} \prod_{k=1}^{K} C'^{z_{ik}}\)

따라서, 우리는 likelihood과 prior가 서로 conjugate함을 알 수 있다.


(b) E-step : derive \(p(Z\mid X, \pi, \mu, \lambda)\)

( Values of \(\pi, \mu, \lambda\) are fixed on this step )

위에서 우리는 posterior과 다음에 비례함(proportional to)을 확인했다.

\[p(Z \mid X) \propto p(X,Z) = \prod_{i=1}^{N} \prod_{k=1}^{K} [ \pi_k N(x_i \mid \mu_k, \lambda_k^{-1})]^{z_{ik}}\]


정확한 값을 구하기 위해서, 우리는 이를 정규화(Normalize) 해줄 필요가 있다

( \(\sum_{k=1}^{K}p(z_{ik}=1 \mid X) = 1\)가 되도록! )


그 결과, 최종적인 posterior \(p(Z\mid X)\) 는 다음과 같이 나오게 된다.

\[p(Z \mid X) = \prod_{i=1}^{N} \prod_{k=1}^{K} [ \frac{\pi_k N(x_i \mid \mu_k, \lambda_k^{-1})}{\sum_{j=1}^{K}\pi_j N(x_i \mid \mu_j, \lambda_k^{-1})}]^{z_{ik}}\]


(c) M-step : compute optimal values of \(\pi, \mu, \lambda\) by maximizing \(E_{p(Z\mid X, \pi, \mu, \lambda)} log\;p(X,Z \mid \pi, \mu, \lambda)\)

( posterior distribution on Z are fixed on this step )

\[\begin{align*} E_{p(Z\mid X)} log\;p(X,Z)&= E_{p(Z\mid X)} log\prod_{i=1}^{N} \prod_{k=1}^{K} [ \pi_k N(x_i \mid \mu_k, \lambda_k^{-1})]^{z_{ik}} \\ &=E_{p(Z\mid X)}\sum_{i=1}^{N}\sum_{k=1}^{K}z_{ik}[log \pi_k + logN(x_i \mid \mu_k, \lambda_k^{-1})]\\ &=E_{p(Z\mid X)}\sum_{i=1}^{N}\sum_{k=1}^{K}z_{ik}[log \pi_k + \frac{1}{2}log\lambda_k - \frac{1}{2}(x_i-\mu_k)^2\lambda_k] + C\\ &= \{E_{p(Z\mid X)}z_{ik} = p(z_{ik}=1 \mid X) = \gamma_{ik}\}\\ &=\sum_{i=1}^{N}\sum_{k=1}^{K}\gamma_{ik}[log \pi_k + \frac{1}{2}log\lambda_k - \frac{1}{2}(x_i-\mu_k)^2\lambda_k] + C\\ \end{align*}\]


우리는 위 식을 \(\pi, \mu, \lambda\)에 대해서 최소화해야한다.

우선, \(\pi\)에 대해서 구해보자. 그러기 위해, 다음과 같은 변환을 해주고 라그랑즈 승수를 사용하여 문제를 푼다.

\[\eta = log \pi_k\] \[L(\eta,\psi) = \sum_{i=1}^{N}\sum_{k=1}^{K}\gamma_{ik}\eta_k - \psi(\sum_{k=1}^{K}exp\; \eta_k -1)\]


위 식을 각각 \(\eta_k\)와 \(\psi\)에 대해 미분한 뒤 0이 되게끔 만들면 다음과 같이 나오게 된다.

\(0 = \frac{\partial\;L(\eta, \psi)}{\partial\;\eta_k} = \sum_{i=1}^{N}\gamma_{ik} - \psi exp\;\eta_k\) 이므로, \(\pi_k = exp\;\eta_k = \frac{\sum_{i=1}^{N}\gamma_{ik}}{\psi}\)

\(0 = \frac{\partial\;L(\eta, \psi)}{\partial\;\psi} = -\sum_{k=1}^{K}exp\;\eta_k +1\)이므로, \(\psi = \sum_{k=1}^{K}\sum_{i=1}^{N}\gamma_{ik} = N\)

따라서, \(\pi_k = \frac{\sum_{i=1}^{N}\gamma_{ik}}{N}\)가 나오게 된다.


위과 같은 방법으로 \(\mu\)와 \(\lambda\)도 구하게 되면, 다음과 같이 나온다.

\[\mu_k = \frac{\sum_{i=1}^{N}\gamma_{ik}x_i}{\sum_{i=1}^{N}\gamma_{ik}}\] \[\lambda_k = \frac{\sum_{i=1}^{N}\gamma_{ik}}{\sum_{i=1}^{N}\gamma_{ik}(x_i-\mu_k)^2}\]


Question 2. GMM with prior on \(\pi\)

이번 문제는 위 Question1. GMM에, \(\pi\)에 대한 prior가 있는 경우의 문제이다.

\(\pi\)가 Dirichlet Distribution을 따를 때의 경우를 적용해서 문제를 풀어보자.

우선, 우리의 probabilistic model은 다음과 같이 된다.

\[p(X,Z,\pi \mid \mu, \lambda ) = p(\pi)\prod_{i=1}^{N}p(z_i \mid \pi)p(x_i \mid z_i, \mu, \lambda) = Dir(\pi \mid \alpha) \prod_{i=1}^{N} \prod_{k=1}^{K} [ \pi_k N(x_i \mid \mu_k, \lambda_k^{-1})]^{z_{ik}}\]

이번 문제가 이전 문제와 가지는 또 다른 차이점은, 더 이상 prior와 likelihood가 conjugacy를 가지지 않는 다는 점이다. 대신, conditional conjugacy를 가진다.

(a) Check that likelihood & prior are not conjugate ( + Check that there is a onditional conjugacy if we use the factorization \(q(Z,\pi) = q(Z)q(\pi)\) )

  • prior distribution : \(p(Z,\pi)\)
  • likelihood : \(p(X,\pi \mid Z,\mu, \lambda)\)

우선, GMM의 식을 확인해보자.

\[p(X,Z,\pi \mid \mu, \lambda ) = Dir(\pi \mid \alpha) \prod_{i=1}^{N} \prod_{k=1}^{K} [ \pi_k N(x_i \mid \mu_k, \lambda_k^{-1})]^{z_{ik}}\]


위 식에서, prior와 posterior는 다음과 같다.

  • prior : \(p(Z,\pi) = Dir(\pi \mid \alpha) \prod_{i=1}^{N}\prod_{k=1}^{K} \pi_k^{z_{ik}}=C\prod_{k=1}^{K}[\pi_k^{\beta}\prod_{i=1}^{N}\pi_k^{z_{ik}}]\)

  • posterior :
    \(\begin{align*} p(Z, \pi \mid X) \propto p(X,Z, \pi) &= Dir(\pi \mid \alpha) \prod_{i=1}^{N} \prod_{k=1}^{K} [ \pi_k N(x_i \mid \mu_k, \lambda_k^{-1})]^{z_{ik}} \\ &= C'\prod_{k=1}^{K}[\pi_k^{\beta'}\prod_{i=1}^{N}\pi_k^{z_{ik}}\gamma^{z_{ik}}]\\ \end{align*}\)


따라서, 우리는 likelihood과 prior가 서로 conjugate하지 않음을 알 수 있다.

하지만, 여기서 만약 우리가 \(Z\)를 고정시킨다면, 다음과 같이 서로 conjugate함을 확인할 수 있다. ( Conditional Conjugate )

  • prior : \(p(Z,\pi) = C\prod_{k=1}^{K}[\pi_k^{\beta}\prod_{i=1}^{N}\pi_k^{z_{ik}}] = C \prod_{k=1}^{K}\pi_k^{\psi}\)
  • posterior : \(p(Z, \pi \mid X) \propto C'\prod_{k=1}^{K}[\pi_k^{\beta'}\prod_{i=1}^{N}\pi_k^{z_{ik}}\gamma^{z_{ik}}] = C^{''}\prod_{k=1}^{K}\pi_k^{\psi'}\)

반대로, 여기서 \(\pi\)로 고정 시킬 경우, 다음과 같이 마찬가지로 서로 conjuagte함을 확인할 수 있다.

  • prior : \(p(Z,\pi) = C\prod_{k=1}^{K}[\pi_k^{\beta}\prod_{i=1}^{N}\pi_k^{z_{ik}}] = C \prod_{k=1}^{K}\prod_{i=1}^{N}\xi^{z_{ik}}\)
  • posterior : \(p(Z, \pi \mid X) \propto C'\prod_{k=1}^{K}[\pi_k^{\beta'}\prod_{i=1}^{N}\pi_k^{z_{ik}}\gamma^{z_{ik}}] = C^{''}\prod_{k=1}^{K}\prod_{i=1}^{N}\xi{'z_{ik}}\)

결론 : Conditional Conjugacy ( \(q(Z,\pi) = q(Z)q(\pi)\) )


(b) E-step : write down update rules for \(q(Z)\) and \(q(\pi)\)

(a)에서 구한 것 처럼, 우리는 Mean Field Approximation을 사용하여 문제를 해결할 것이다.

즉, 다음과 같이 근사하는 함수 \(q\)를 찾아낼 것이다.

Approximation : \(p(Z,\pi \mid X, \mu, \lambda) \approx q(Z,\pi) = q(Z)q(\pi)\)

그리고 Variational Inference의 Update rule을 다시 생각해보자. 그 Updating equation은 다음과 같음을 우리는 저번 포스트에서 공부했었다

\(log\;q_j(\theta_j) = E_{q_{i\neq j}}logp(X,\theta) + Const\) ( 여기서 \(\theta\) = \((Z,\pi)\) 이다)


(1) \(q(Z)\) 에 대한 updating equation

\[\begin{align*} logq(Z) &= E_{q(\pi)}logp(X,Z,\pi) + Const \\ &= E_{q(\pi)}[\sum_{i=1}^{N} \sum_{k=1}^{K}z_{ik}(log\pi_k + logN(x_i \mid \mu_k, \lambda_k^{-1}))] + Const \\ &= \sum_{i=1}^{N} \sum_{k=1}^{K}z_{ik}(E_{q(\pi)}log\pi_k + logN(x_i \mid \mu_k, \lambda_k^{-1})) + Const\\ &=\sum_{i=1}^{N} \sum_{k=1}^{K}z_{ik}log\rho_{ik} + Const \end{align*}\]

\(q(Z) = \prod_{i=1}^{N}q(z_i)\) 으로 factorize 되므로, \(q(z_i)\) 는 다음과 같이 된다.

정답 : \(q(z_i) = \frac{\prod_{k=1}^{K}\rho_{ik}^{z_{ik}}}{\sum_{k=1}^{K}\rho_{ik}}\)


(2) \(q(\pi)\) 에 대한 updating equation

\[\begin{align*} logq(\pi) &= E_{q(Z)}logp(X,Z,\pi) + Const \\ &= E_{q(Z)}[\sum_{k=1}^{K}(\alpha_k -1) log\pi_k + \sum_{i=1}^{N}\sum_{k=1}^{K}z_{ik}log\pi_k] + Const\\ &= \sum_{k=1}^{K}(\alpha_k-1)log\pi_k + \sum_{i=1}^{N}\sum_{k=1}^{K}[E_{q(Z)}z_{ik}]log\pi_k + Const\\ &=\sum_{k=1}^{K}log\pi_k(\alpha_k -1 + \sum_{i=1}^{N}E_{q(Z)}z_{ik}) + Const \end{align*}\]

따라서, \(q(\pi)\) 는 \(\alpha_k' = \alpha_k + \sum_{i=1}^{N}E_{q(Z)}z_{ik}\) 인 \(Dir(\pi \mid \alpha')\) 이다.

정답 : \(q(\pi) = Dir(\pi \mid \alpha')\)


(c) M-step : compute optimal values of \(\mu, \lambda\) by maximizing \(E_{p(Z, \pi \mid X, \mu, \lambda)} log\;p(X,Z ,\pi \mid \mu, \lambda)\)

M-step에서는 parameter \(\mu\)와 \(\lambda\)를 update한다. 따라서, \(E_{q(Z,\pi \mid X)}logp(X,Z,\pi)\) 를 \(\mu\)와 \(\lambda\)에 대한 함수로 다시 쓴다. 구체적인 내용은 생략 ( 1-(c)와 같이 유사한 방식으로 풀면 된다 )

그렇게 하면, 우리는 다음과 같은 updating parameter값을 얻게 된다.

\[\mu_k = \frac{\sum_{i=1}^{N}\gamma_{ik}x_i}{\sum_{i=1}^{N}\gamma_{ik}}\] \[\lambda_k = \frac{\sum_{i=1}^{N}\gamma_{ik}}{\sum_{i=1}^{N}\gamma_{ik}(x_i - \mu_k)^2}\]