Variational

수학이나 물리학, AI 등 다양한 분야에서 Variational이라는 용어가 쓰이는데, 이것은 오일러의 변분법(Variational Principle)에서 시작한 개념이다. 변분법은 주어진 함수의 극값을 찾기 위해 함수의 변화율을 연구하는 분야로, 오일러-라그랑주 방정식은 이러한 변분 문제의 해를 찾는데 사용된다.

참고로 오일러-라그랑주 방정식은 다음과 같은 형태를 갖는다. 아래 식에서 $L$은 라그랑지안이며, $y$는 최적화하려는 함수, $y'$는 해당 함수의 도함수를 의미한다.

$$ {\partial L \over \partial y} - {d\over dx} \left({\partial L \over \partial y'} \right) = 0 $$

이것은 함수의 최적화 문제로 볼 수 있으며, 주어진 조건을 만족하는 동안 함수를 최대화하거나 최소화하는 함수의 형태를 찾는 것을 목적으로 한다.

Variational Inference

AI 분야에서 Variational Inference라고 하면 모델에서 posterior 분포를 근사하는 분포를 찾는 방법이라고 할 수 있다. 일반적으로 구하려는 분포 $p(\bold{x})$를 계산하기 어려울 때 이를 근사하는 계산하기 쉬운 분포(일반적으로 가우시안)으로 $q(\bold{x})$를 정의하고 둘 사이의 KL divergence를 최소화 함. ($p(\bold{x})$가 가우시안이 아닐 때 가우시안인 $q(\bold{x})$로 근사하는 것은 물론 한계가 있다. 이것이 바로 variational 방법의 한계 중 하나이다.)

알려지지 않은 latent 변수 $\bold{z}$와 알려진 변수 $\bold{x}$와 고정된 파라미터 $\boldsymbol{\theta}$를 갖는 모델이 있다고 하자. 이 모델에 대해 prior는 $p_{\boldsymbol{\theta}}(\bold{z})$이고 likelihood는 $p_{\boldsymbol{\theta}}(\bold{x}|\bold{z})$라고 하자. 베이즈 규칙에 따라 이 모델에 대한 unnormalized 결합 분포는 다음과 같다.

$$ p_{\boldsymbol{\theta}}(\bold{x},\bold{z}) = p_{\boldsymbol{\theta}}(\bold{z})p_{\boldsymbol{\theta}}(\bold{x}|\bold{z}) $$

이 모델에 대한 정규화된 posterior $p_{\boldsymbol{\theta}}(\bold{z}|\bold{x})$는 정규화 상수 $p_{\boldsymbol{\theta}}(\bold{x})$를 이용하여 다음과 같이 계산된다.

$$ p_{\boldsymbol{\theta}}(\bold{z}|\bold{x}) = {p_{\boldsymbol{\theta}}(\bold{x},\bold{z}) \over p_{\boldsymbol{\theta}}(\bold{x})} = {p_{\boldsymbol{\theta}}(\bold{z})p_{\boldsymbol{\theta}}(\bold{x}|\bold{z}) \over \int p_{\boldsymbol{\theta}}(\bold{x},\bold{z})d\bold{z}} $$

여기서 정규화 상수 $p_{\boldsymbol{\theta}}(\bold{x}) = \int p_{\boldsymbol{\theta}}(\bold{x},\bold{z})d\bold{z}$를 계산하는 것이 까다롭기 때문에 다음과 같이 posterior $p_{\boldsymbol{\theta}}(\bold{z}|\bold{x})$와 가깝도록 분포 $q(\bold{z})$를 구하는 식을 구성할 수 있다.

$$ q = \argmin_{q\in\mathcal{Q}} D_\text{KL}(q(\bold{z})\|p_{\boldsymbol{\theta}}(\bold{z}|\bold{x})) $$

이것은 함수(즉 분포 $q$)에 관해 최소화 하기 때문에 variational method라고 부른다.

실제에서 variational parameter라고 하는 $\boldsymbol{\psi}$를 사용하여 사용하는 계열의 수를 지정하는 파라메트릭 계열 $\mathcal{Q}$를 고른다. $\bold{x}$가 주어질 때 best variational 파라미터를 다음처럼 계산할 수 있다.

$$ \begin{aligned} \boldsymbol{\psi}^* &= \argmin_{\boldsymbol{\psi}} D_\text{KL}(q_{\boldsymbol{\psi}}(\bold{z})\|p_{\boldsymbol{\theta}}(\bold{z}|\bold{x})) \\ &= \argmin_{\boldsymbol{\psi}} \mathbb{E}{q{\boldsymbol{\psi}}(\bold{z})} \left[ \log q_{\boldsymbol{\psi}}(\bold{z}) - \log \left( {p_{\boldsymbol{\theta}}(\bold{x}|\bold{z})p_{\boldsymbol{\theta}}(\bold{z}) \over p_{\boldsymbol{\theta}}(\bold{x})} \right) \right] \\ &= \argmin_{\boldsymbol{\psi}} \underbrace{\mathbb{E}{q{\boldsymbol{\psi}}(\bold{z})}[\log q_{\boldsymbol{\psi}}(\bold{z}) - \log p_{\boldsymbol{\theta}}(\bold{x}|\bold{z})-\log p_{\boldsymbol{\theta}}(\bold{z})]}{\mathcal{L}(\boldsymbol{\theta},\boldsymbol{\psi}|\bold{x})} + \log p{\boldsymbol{\theta}}(\bold{x}) \end{aligned} $$

마지막 항 $\log p_{\boldsymbol{\theta}}(\bold{x}) = \log(\int p_{\boldsymbol{\theta}}(\bold{x},\bold{z})d\bold{z})$는 일반적으로 계산하기 까다롭다. 다행히 이것은 $\boldsymbol{\psi}$에 독립이고 따라서 제외할 수 있다. 다음과 같이 작성되는 첫 번째 항만 남긴다. ($p(x, z) = p(x)p(z|x) = p(z)p(x|z)$이므로)

$$ \mathcal{L}(\boldsymbol{\theta},\boldsymbol{\psi}|\bold{x}) = \mathbb{E}{q{\boldsymbol{\psi}}(\bold{z})}[-\log p_{\boldsymbol{\theta}}(\bold{x},\bold{z}) + \log q_{\boldsymbol{\psi}}(\bold{z})] $$

이 목적을 최소화하면 KL 다이버전스가 최소화되어 근사가 실제 posterior에 접근하게 된다.