Search
Duplicate

AI/ Variational Inference

Variational

수학이나 물리학, AI 등 다양한 분야에서 Variational이라는 용어가 쓰이는데, 이것은 오일러의 변분법(Variational Principle)에서 시작한 개념이다. 변분법은 주어진 함수의 극값을 찾기 위해 함수의 변화율을 연구하는 분야로, 오일러-라그랑주 방정식은 이러한 변분 문제의 해를 찾는데 사용된다.
참고로 오일러-라그랑주 방정식은 다음과 같은 형태를 갖는다. 아래 식에서 LL은 라그랑지안이며, yy는 최적화하려는 함수, yy'는 해당 함수의 도함수를 의미한다.
Lyddx(Ly)=0{\partial L \over \partial y} - {d\over dx} \left({\partial L \over \partial y'} \right) = 0
이것은 함수의 최적화 문제로 볼 수 있으며, 주어진 조건을 만족하는 동안 함수를 최대화하거나 최소화하는 함수의 형태를 찾는 것을 목적으로 한다.

Variational Inference

AI 분야에서 Variational Inference라고 하면 모델에서 posterior 분포를 근사하는 분포를 찾는 방법이라고 할 수 있다. 일반적으로 구하려는 분포 p(x)p(\bold{x})를 계산하기 어려울 때 이를 근사하는 계산하기 쉬운 분포(일반적으로 가우시안)으로 q(x)q(\bold{x})를 정의하고 둘 사이의 KL divergence를 최소화 함. (p(x)p(\bold{x})가 가우시안이 아닐 때 가우시안인 q(x)q(\bold{x})로 근사하는 것은 물론 한계가 있다. 이것이 바로 variational 방법의 한계 중 하나이다.)
알려지지 않은 latent 변수 z\bold{z}와 알려진 변수 x\bold{x}와 고정된 파라미터 θ\boldsymbol{\theta}를 갖는 모델이 있다고 하자. 이 모델에 대해 prior는 pθ(z)p_{\boldsymbol{\theta}}(\bold{z})이고 likelihood는 pθ(xz)p_{\boldsymbol{\theta}}(\bold{x}|\bold{z})라고 하자. 베이즈 규칙에 따라 이 모델에 대한 unnormalized 결합 분포는 다음과 같다.
pθ(x,z)=pθ(z)pθ(xz)p_{\boldsymbol{\theta}}(\bold{x},\bold{z}) = p_{\boldsymbol{\theta}}(\bold{z})p_{\boldsymbol{\theta}}(\bold{x}|\bold{z})
이 모델에 대한 정규화된 posterior pθ(zx)p_{\boldsymbol{\theta}}(\bold{z}|\bold{x})는 정규화 상수 pθ(x)p_{\boldsymbol{\theta}}(\bold{x})를 이용하여 다음과 같이 계산된다.
pθ(zx)=pθ(x,z)pθ(x)=pθ(z)pθ(xz)pθ(x,z)dzp_{\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θ(x)=pθ(x,z)dzp_{\boldsymbol{\theta}}(\bold{x}) = \int p_{\boldsymbol{\theta}}(\bold{x},\bold{z})d\bold{z}를 계산하는 것이 까다롭기 때문에 다음과 같이 posterior pθ(zx)p_{\boldsymbol{\theta}}(\bold{z}|\bold{x})와 가깝도록 분포 q(z)q(\bold{z})를 구하는 식을 구성할 수 있다.
q=arg minqQDKL(q(z)pθ(zx))q = \argmin_{q\in\mathcal{Q}} D_\text{KL}(q(\bold{z})\|p_{\boldsymbol{\theta}}(\bold{z}|\bold{x}))
이것은 함수(즉 분포 qq)에 관해 최소화 하기 때문에 variational method라고 부른다.
실제에서 variational parameter라고 하는 ψ\boldsymbol{\psi}를 사용하여 사용하는 계열의 수를 지정하는 파라메트릭 계열 Q\mathcal{Q}를 고른다. x\bold{x}가 주어질 때 best variational 파라미터를 다음처럼 계산할 수 있다.
ψ=arg minψDKL(qψ(z)pθ(zx))=arg minψEqψ(z)[logqψ(z)log(pθ(xz)pθ(z)pθ(x))]=arg minψEqψ(z)[logqψ(z)logpθ(xz)logpθ(z)]L(θ,ψx)+logpθ(x)\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}
마지막 항 logpθ(x)=log(pθ(x,z)dz)\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(zx)=p(z)p(xz)p(x, z) = p(x)p(z|x) = p(z)p(x|z)이므로)
L(θ,ψx)=Eqψ(z)[logpθ(x,z)+logqψ(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에 접근하게 된다.

Variational Free Energy(VFE)

Eθ(z)=logpθ(z,x)\mathcal{E}_{\boldsymbol{\theta}}(\bold{z}) = -\log p_{\boldsymbol{\theta}}(\bold{z},\bold{x})를 에너지로 정의하면 위 식을 다음과 같이 재작성할 수 있다.
L(θ,ψx)=Eqψ(z)[Eθ(z)]H(qψ)=expcted energyentropy\mathcal{L}(\boldsymbol{\theta},\boldsymbol{\psi}|\bold{x}) = \mathbb{E}_{q_{\boldsymbol{\psi}}(\bold{z})}[\mathcal{E}_{\boldsymbol{\theta}}(\bold{z})]-\mathbb{H}(q_{\boldsymbol{\psi}}) = \text{expcted energy} - \text{entropy}
물리학에서 이것은 variational free energy(VFE)라고 한다. 이것은 free energy(FE)의 상한, logpθ(x)-\log p_{\boldsymbol{\theta}}(\bold{x})이며 다음 사실에서 따른다.
DKL(qψ(z)pθ(zx))=L(θ,ψx)+logpθ(x)0L(θ,ψx)VFElogpθ(x)FE\begin{aligned} D_\text{KL}(q_{\boldsymbol{\psi}}(\bold{z}) \|p_{\boldsymbol{\theta}}(\bold{z}|\bold{x})) &= \mathcal{L}(\boldsymbol{\theta},\boldsymbol{\psi}|\bold{x})+\log p_{\boldsymbol{\theta}}(\bold{x}) \ge 0 \\ \underbrace{\mathcal{L}(\boldsymbol{\theta},\boldsymbol{\psi}|\bold{x})}_{\text{VFE}} &\ge \underbrace{-\log p_{\boldsymbol{\theta}}(\bold{x})}_{\text{FE}} \end{aligned}
Variational 추론은 VFE를 최소화하는 것과 동등하다.

Evidence Lower Bound (ELBO)

VFE의 negative가 evidence lower bound(ELBO) 함수이다.
Ł(θ,ψx)Eqψ(z)[logpθ(x,z)logqψ(z)]=ELBOŁ(\boldsymbol{\theta},\boldsymbol{\psi}|\bold{x}) \triangleq \mathbb{E}_{q_{\boldsymbol{\psi}}(\bold{z})} [\log p_{\boldsymbol{\theta}}(\bold{x},\bold{z})-\log q_{\boldsymbol{\psi}}(\bold{z})]=\text{ELBO}
ELBO라는 이름은 다음 때문에 일어난다.
Ł(θ,ψx)logpθ(x)Ł(\boldsymbol{\theta},\boldsymbol{\psi}|\bold{x}) \le \log p_{\boldsymbol{\theta}}(\bold{x})
여기서 logpθ(x)\log p_{\boldsymbol{\theta}}(\bold{x})는 ‘evidence(증거)’라고 부른다. logpθ(x)\log p_{\boldsymbol{\theta}}(\bold{x})ψ\boldsymbol{\psi}에 관해 상수이기 때문에 ELBO를 ψ\boldsymbol{\psi}에 관하여 최대화하면 원래의 KL이 최소화 된다.
ELBO를 다음처럼 재작성할 수 있다.
Ł(θ,ψx)=Eqψ(z)[logpθ(x,z)]+H(qψ(z))Ł(\boldsymbol{\theta},\boldsymbol{\psi}|\bold{x}) = \mathbb{E}_{q_{\boldsymbol{\psi}}(\bold{z})} [\log p_{\boldsymbol{\theta}}(\bold{x},\bold{z})] + \mathbb{H}(q_{\boldsymbol{\psi}}(\bold{z}))
이것을 다음처럼 해석할 수 있다.
ELBO=expected log joint+entropy\text{ELBO} = \text{expected log joint} + \text{entropy}
두 번째 항은 posterior가 엔트로피를 최대화하는 것을 권장하는 반면, 첫 번째 항은 결합 MAP 구성이 되도록 권장한다.
또한 ELBO를 다음처럼 재작성할 수 있다.
Ł(θ,ψx)=Eqψ(z)[logpθ(xz)+logpθ(z)logqψ(z)]=Eqψ(z)[logpθ(xz)]DKL(qψ(z)pθ(z))\begin{aligned} Ł(\boldsymbol{\theta},\boldsymbol{\psi}|\bold{x}) &=\mathbb{E}_{q_{\boldsymbol{\psi}}(\bold{z})} [\log p_{\boldsymbol{\theta}}(\bold{x}|\bold{z}) + \log p_{\boldsymbol{\theta}}(\bold{z})-\log q_{\boldsymbol{\psi}}(\bold{z})] \\ &= \mathbb{E}_{q_{\boldsymbol{\psi}}(\bold{z})} [\log p_{\boldsymbol{\theta}}(\bold{x}|\bold{z})]-D_\text{KL}(q_{\boldsymbol{\psi}}(\bold{z})\|p_{\boldsymbol{\theta}}(\bold{z})) \end{aligned}
이것을 다음처럼 해석할 수있다.
ELBO=expected log likelihoodKL from posterior to prior\text{ELBO} = \text{expected log likelihood} - \text{KL from posterior to prior}
KL 항은 posterior가 prior로부터 너무 멀리 떨어지는 것을 방지하는 regularizer 처럼 행동한다.

참고