Variational Inference, 베이지안 딥러닝

네이버 커넥트 재단에서 최성준 박사님이 강의한 베이지안 딥러닝의 내용입니다.

Variational Inference

Variational inference 라는 단어를 들어 본 지는 사실 꽤 되었다. 이게 뭘까 하면서 한 번 본 적은 있지만, 난무하는 수식에 그냥 하던거나 하자는 생각으로 덮었다. 그래서 사실 variational inference가 뭔지도 모르고 이 variational이 variance와 관련 있는건가 하는 궁금증도 들고 그랬다. 어쨋든 이 둘은 다른 것이다.

강의에서는 4개의 논문을 소개하며 결국 4개 모두 variational inference를 보여주는 것을 보여준다. 모두 베이지언의 토대를 이룬 논문들로 심심하면 읽어볼만 할 거 같은데 읽어볼 거 같진 않다. 첫 논문은 variational inference의 가장 첫 논문이라고 여겨지는 것들인데 지금의 것과는 많이 다르고 variational 이라는 용어 자체도 나오지 않는다. 분야도 생소한 분야라 난 잘 모르겠다. 내가 가장 좋았던 내용은 그래서 variational inference 뭔지를 알아가는 과정이었다.

Bayesian

이야기는 베이지언에서 시작된다. 대부분의 베이지언 문제들에서 posterior를 구하고 싶지만 사실상 그게 되질 않는다. 그래서 여러 방법들이 나오는데 variational inference가 그 중의 한 방법이다. 우리가 구하고자하는 posterior는 다음과 같다.

$$ P(Z|X) = \frac {P(Z,X)} {\int _ {z} P(Z _ {z} | X)} $$

보통 대부분 분모에 있는 적분을 구하는건 불가능하다. 먼저 이걸 쉽게  근사하는 방법은 Markov chain Monte Carlo(MCMC) 로 posterior 분포에서 샘플을 가져와 계산을 한 후 그것의 평균을 내는 방법이다. Metropolis-Hastings algorithm 혹은 Gibbs sampling이 MCMC의 예이다. 하지만 이 방법은 파라미터가 많으면 수렴이 매우 늦어진다. 그래서 나온 것이 variational inference

variational distribution

Variational inference에서는 variational distribution이라는 것을 만든다. 이건 posterior에 근사하는 분포이다. Gaussian으로 근사하는 거 같은데 정확히는 모르겠다. 다른 것도 되지만 gaussian을 사용한 거 아닐까. variational distribution은 다음과 같이 나타낸다. X는 데이터이고 Z는 근사하는데 사용되는 변수이다.

$$ P(Z|X) \approx Q(Z|V) = \prod _ {i} Q(Z _ {i} | V _ {i} $$

이제 우리의 목표는 true posterior에 근접한 variational distribution을 만드는 것이다. 이 두 분포의 비슷함의 정도는 Kullback-Leibler Divergence 로 계산된다. KL-Divergence 는 간단히 분포간의 거리를 측정하는 것이다. 즉, $KL(Q||P)$를 최소화하는 것이 목표다. 그런데 이 $KL(Q||P)$를 구하는 것도 불가능하다. 다른 방법을 써야한다.

그런데 $p(Z|X)$는 다음과 같이 표현이 가능하다.

notation이 조금 다르나. 이해 가능하다.

이 맨 마지막 식을 Evidence Lower Bound, ELBO라고 한다. 이 ELBO를 Variational free energy로 정의한다.

그런데 아까 있던 $KL(Q||P)$ 는 다음과 같이 표현할 수 있다.

신기하게 Variational free energy와 posterior의 로그 합이 $KL(Q||P)$이다. 밑 그림과 같은 표현이 가능한 것이다.

그래서 posterior도 못구하고 $KL(Q||P)$ 도 못구하니 아래 Variational free energy를 최대로 만들어 Variational distribution 을 posterior에 근사시키는 것이다.

모든 그림과 수식은 최성준 박사님 강의자료에서 따왔다.

사실 이 모든 식을 유도해 나가는 과정은 몇 개 안된다고 하시지만 굉장히 복잡해 보인다…

참조

최성준 박사님 강의노트

Variational inference – David M Blei