Variational Inference, KLD, and ELBO
Variational Inference, KLD (Kullback–Leibler divergence), and ELBO
위 세가지 개념을 서로 밀접하게 연관되어 있다.
특히 ELBO는 어떤 확률 분포 p(X)에 대한 최적화를 우회적으로 가능하게 하므로 제법 많이 쓰이는지라 알아두어야 한다.
KLD (Kullback–Leibler divergence)
KLD는 두 분포의 차이를 측정하는 지표로 사용하며 아래와 같이 나타낸다.
왼쪽 분포 $P(X)$를 기준으로 오른쪽 분포 $Q(X)$가 얼마나 다른지를 나타낸다.
$D_{KL}(P(X) | Q(X)) = \sum P(X) log \frac{P(X) }{Q(X) }$
= $\sum P(X) log P(X) - \sum P(X) log Q(X)$
= $- \sum P(X) log Q(X) -$ ($- \sum P(X) log P(X)$)
= $H(P, Q) - H(P)$
즉 두 분포가 지니는 섀넌 엔트로피의 차이로 두 분포의 차이를 측정하게 된다는 의미다.
Variational Inference
실제 우리가 알고자 하는 복잡한 posterior distribution 사후 분포 $p(z | x)$를 보다 간단하고 우리에게 잘 알려진 분포 (예를 들어 정규분포)인 $q(z)$로 approximation 근사하고자 한다. ragtsgo 님의 블로그 (링크)에 VI와 ELBO에 대한 내용과 식의 유도과정이 워낙 자세하게 잘 나와있으니 참고하면 된다. 혹은 아래의 레퍼런스 페이지들도 참고하면 되니 여기선 자세한 유도과정은 패스한다.
잘 알려진 분포 $q(z)$를 기준으로 사후 분포 $p(z | x)$를 평가하는 KLD는 아래처럼 표기한다.
$D_{KL}(q(z) | p(z | x)) = \sum_z q(z) log \frac{q(z)}{p(z | x)}$ ... (1)
위 식은 여러가지 연산을 통해서 다시 아래처럼 정리할 수 있다.
= $D_{KL}(q(z) | p(z)) + log(p(x)) - E_{z \sim p(z)} \left[ log(p(x | z)) \right] $ ... (2)
Evidence Lower Bound (ELBO or ELB)
이때 (2) 식을 $log(p(x))$에 대해서 다시 정리하면 다음와 같다.
$log(p(x))$
= $E_{z \sim p(z)} \left[ log(p(x | z)) \right] + D_{KL}(q(z) | p(z | x)) - D_{KL}(q(z) | p(z)) $
이때 KLD는 항상 0이거나 0보다 큰 값을 가지므로
$ \geq E_{z \sim p(z)} \left[ log(p(x | z)) \right] - D_{KL}(q(z) | p(z)) $
의 부등식이 성립한다.
따라서 아래와 같이 다시 정리할 수 있다.
$log(p(x)) \geq E_{z \sim p(z)} \left[ log(p(x | z)) \right] - D_{KL}(q(z) | p(z))$
이때 $log(p(x)) = logp(x)$는 베이즈 정리에서 evidence라고 부르는 항이므로 이 값의 lower bound인
$E_{z \sim p(z)} \left[ log(p(x | z)) \right] - D_{KL}(q(z) | p(z))$를 evidence lower bound라고 부르게 된다.
따라서 부등식 우변을 줄이면 evidence인 $logp(x)$도 줄일 수 있게 된다.
우변향을 줄이는 방법은 $E_{z \sim p(z)} \left[ log(p(x | z)) \right] $의 최소화와 $D_{KL}(q(z) | p(z))$의 최대화로 달성할 수 있다.
References:
고려대학교 XAI502: Probability and Statistics
https://ratsgo.github.io/generative%20model/2017/12/19/vi/
https://modulabs.co.kr/blog/variational-inference-intro
https://en.wikipedia.org/wiki/Variational_Bayesian_methods
https://velog.io/@chulhongsung/VI
https://en.wikipedia.org/wiki/Jensen%27s_inequality
https://en.wikipedia.org/wiki/Kullback%E2%80%93Leibler_divergence
https://ratsgo.github.io/statistics/2017/09/22/information/
https://en.wikipedia.org/wiki/Entropy_(information_theory)