kh-mo's blog for machine learning

ELBO(Evidence LowerBOund)

|

Variational autoencoder를 구할 때 인코더의 $\phi$와 디코더의 $\theta$를 최적화 시켜야한다. Variational Inference를 수행하기 위해서 최적화 하는 것은 ELBO를 최대화하는 $\phi$를 찾는 것과 샘플링 된 Z로부터 입력과 동일한 x를 생성하는 $\theta$를 최적화시켜야 한다. 이 두 식을 합친것이 아래 수식이다.

\[argmin_{\phi, \theta} {\sum_{i} -E_{q_{\phi}(z|x_i)}[log(p(x_i|g_{\theta}(z))] + KL(q_{\phi}(z|x_i)||p(z))}\]

Jensen’s Inequality를 활용한 ELBO 구하기

함수 p(x)는 x에 대한 확률이며 p(z)라는 latent distribution에서 샘플링 된 z로부터 추정된 x의 분포이기도 하다.

\[log(p(x)) = log(\int\limits p(x|z)p(z))dz \geq \int\limits log(p(x|z))p(z)dz\]

Jensen’s inequality를 사용하여 위와 같은 수식을 얻을 수 있는데 이는 다음과 같은 수식으로 변경이 가능하다.

\[log(p(x)) = log(\int\limits p(x|z)\frac{p(z)}{q_{\phi}(z|x)}q_{\phi}(z|x)dz) \geq \int\limits log(p(x|z)\frac{p(z)}{q_{\phi}(z|x)})q_{\phi}(z|x)dz\]

$ q_{\phi}(z|x) $라는 함수가 추가로 도입된 것이다. 즉, 이는 수식을 정리하면 다음과 같이 나눠질 수 있다.

\[log(p(x)) \geq \int\limits log(p(x|z))q_{\phi}(z|x)dz - \int\limits log(\frac{q_{\phi}(z|x)}{p(z)})q_{\phi}(z|x)dz\]

그리고 이 수식은 기대값 수식과 KL divergence 수식으로 변경할 수 있다.

\[\int\limits log(p(x|z))q_{\phi}(z|x)dz - \int\limits log(\frac{q_{\phi}(z|x)}{p(z)})q_{\phi}(z|x)dz = E_{q_{\phi}(z|x)}[log(p(x|z))] - KL(q_{\phi}(z|x) || p(z))\]

이 수식이 $ELBO(\phi)$다. 구해진 수식이 항상 log(p(x))보다 작거나 같기 때문에 lowerbound라고 부른다.

부등식이 아닌 등식으로 ELBO 구하기

$ \int\limits q_{\phi}(z|x)dz = 1 $ 이라면 log(p(x))는 다음과 같이 정리될 수 있습니다.

\[log(p(x)) = \int\limits log(p(x))q_{\phi}(z|x)dz\]

$p(x)$는 $\frac{p(x, z)}{p(z|x)}$로 표현할 수 있기 때문에 수식은 다시 다음과 같이 변경 가능합니다.

\[log(p(x)) = \int\limits log(\frac{p(x, z)}{p(z|x)})q_{\phi}(z|x)dz\]

여기에 $q_{\phi}(z|x)$를 도입하여 다시 수식을 다음과 같이 변경합니다.

\[log(p(x)) = \int\limits log(\frac{p(x, z)}{q_{\phi}(z|x)}\frac{q_{\phi}(z|x)}{p(z|x)})q_{\phi}(z|x)dz\]

이 수식을 크게 두 부분으로 나눌 수 있습니다.

\[\int\limits log(\frac{p(x, z)}{q_{\phi}(z|x)})q_{\phi}(z|x)dz + \int\limits log(\frac{q_{\phi}(z|x)}{p(z|x)})q_{\phi}(z|x)dz\]

앞부분이 $ELBO(\phi)$이고 뒷부분이 $KL(q_{\phi}(z|x)||p(z|x))$입니다.

Comments