Score-based generatie modeling (SBGM)이란 무엇일까? 먼저 역사를 거슬러 올라가 볼 필요가 있다. 2014년 Kingma는 Variational Autoencoder 논문에서 autoencoder에 대한 접근을 variational inference를 통해 수행했다. 우리가 알고자 하는 것은 data의 distribution, $p(x)$이다. 하지만, 이를 direct하게 얻는 것은 불가능하다(이를 intractible이라고 부른다.). 따라서 우리는 정보량은 똑같은(1-1 대응이 있는) $\log p(x)$를 유추하게 되는데 이 과정이 variational inference (VI) 라고 불리는 과정이다. 구체적으로는 다음처럼 구성된다.
먼저, $\log p(x)$를 추론하기 위해 다음과 같은 트릭을 쓴다.
$$ \log p(x) = 1\cdot \log p(x) $$
너무나도 쉬운 수식이다. 이제, 모든 확률분포는 전체 영역에 대해 적분하면 1이 나온다는 사실을 바탕으로
$$ \begin{align*}\log p(x) &= 1\cdot\log p(x)\\ &=\int_{\Omega}q(z|x)\log p(x)dz \end{align*} $$
라는 수식을 생각해볼 수 있다. 여기서 또 한번의 트릭을 쓰면,
$$ \begin{align*}\log p(x) &= 1\cdot\log p(x)\\ &=\int_{\Omega}q(z|x)\log p(x)dz\\ &=\int_{\Omega}q(z|x)\log \bigg(p(x)\frac{q(z|x)}{q(z|x)}\bigg)dz \end{align*} $$
가 되는데, Bayes’ rule을 적용하면 $p(x)=p(x|z)p(z)/p(z|x)$가 되므로 위 식은
$$ \begin{align*}\log p(x) &= 1\cdot\log p(x)\\ &=\int_{\Omega}q(z|x)\log p(x)dx\\ &=\int_{\Omega}q(z|x)\log \bigg(p(x)\frac{q(z|x)}{q(z|x)}\bigg)dz\\ &=\int_{\Omega}q(z|x)\log\bigg(\frac{p(x|z)p(z)}{p(z|x)}\frac{q(z|x)}{q(z|x)}\bigg)dz \end{align*} $$
로 정리할 수 있다. $\log$안의 식들을 잘 재분배하면 위 식은
$$ \begin{align*}\log p(x) &= 1\cdot\log p(x)\\ &=\int_{\Omega}q(z|x)\log p(x)dx\\ &=\int_{\Omega}q(z|x)\log \bigg(p(x)\frac{q(z|x)}{q(z|x)}\bigg)dz\\ &=\int_{\Omega}q(z|x)\log\bigg(\frac{p(x|z)p(z)}{p(z|x)}\frac{q(z|x)}{q(z|x)}\bigg)dz\\ &=\int_{\Omega}q(z|x)\log\bigg(\frac{q(z|x)}{p(z|x)}\frac{p(x|z)p(z)}{q(z|x)}\bigg)dz \end{align*} $$
가 될 것이다. 이제 $\log(ab)=\log a + \log b$라는 성질을 이용하면
$$ \begin{align*}\log p(x) &= 1\cdot\log p(x)\\ &=\int_{\Omega}q(z|x)\log p(x)dx\\ &=\int_{\Omega}q(z|x)\log \bigg(p(x)\frac{q(z|x)}{q(z|x)}\bigg)dz\\ &=\int_{\Omega}q(z|x)\log\bigg(\frac{p(x|z)p(z)}{p(z|x)}\frac{q(z|x)}{q(z|x)}\bigg)dz\\ &=\int_{\Omega}q(z|x)\log\bigg(\frac{q(z|x)}{p(z|x)}\bigg)dz + \int_{\Omega}q(z|x)\log\bigg(\frac{p(x|z)p(z)}{q(z|x)}\bigg)dz \end{align*} $$
로 찢을 수 있고, Kullback-Leibler divergence (KLD)가 $D_{KL}(f_1||f_2)=\int f_1\log(f_1/f_2)$라는 것을 상기하면 위 식은
$$ \begin{align}\log p(x) &= 1\cdot\log p(x)\nonumber\\ &=\int_{\Omega}q(z|x)\log p(x)dz\nonumber\\ &=\int_{\Omega}q(z|x)\log \bigg(p(x)\frac{q(z|x)}{q(z|x)}\bigg)dz\nonumber\\ &=\int_{\Omega}q(z|x)\log\bigg(\frac{p(x|z)p(z)}{p(z|x)}\frac{q(z|x)}{q(z|x)}\bigg)dz\nonumber\\ &=\int_{\Omega}q(z|x)\log\bigg(\frac{q(z|x)}{p(z|x)}\bigg)dz + \int_{\Omega}q(z|x)\log\bigg(\frac{p(x|z)p(z)}{q(z|x)}\bigg)dz\nonumber\\ &=D_{KL}(q(z|x)\|p(z|x)) + \int_{\Omega}q(z|x)\log\bigg(\frac{p(x|z)p(z)}{q(z|x)}\bigg)dz\nonumber\\ &=D_{KL}(q(z|x)\|p(z|x))-D_{KL}(q(z|x)\|p(z))+\mathbb{E}_{q(z|x)}\big[\log p(x|z)\big] \end{align} $$
가 된다. 이것이 variational inference이다. 그렇다면 $q$라는 분포는 무엇을 의미하는가? 우리가 디자인한 뉴럴 네트워크를 의미한다. 하지만 이 글은 VAE에 대한 글은 아니기 때문에 VI는 이정도로 마치고, 이것이 이후 SBGM에서 어떻게 쓰이는지 살펴보는 것이 낫겠다는 생각이 든다.
VI의 문제점은 무엇일까? 본인이 생각하기에 가장 큰 문제점은 $D_{KL}(q(z|x)\|p(z|x))$를 포함한 KLD 항이지 않을까 한다. 실제로 데이터의 분포는 아까도 말했듯 intractible하다. 하지만 KLD를 정확하게 계산하기 위해서는 distribution의 closed form을 알아야 한다. 이는 적분을 통해 KLD가 계산이 되기 때문이다. 이렇게 data distribution의 likelihood를 추론하여 generation을 진행하는 모델은 태초부터 강력한 분포에 대한 가정을 끌고 들어가기 때문이다. Generative adversarial network (GAN) 은 이러한 문제를 좀 우회하기는 하지만 학습에 대한 안정성이 문제가 된다.
따라서 본 논문에서는 이 문제들을 극복하는 방법으로 score-based modeling을 사용하였다. Score이라는 것은 Stein score을 줄여 말하는 것으로, 쉽게 말하면 network의 gradient matching을 수행하는 것을 말한다. 각설하고 score-based classification model의 핵심적인 아이디어를 보자. 기본적으로 classification model $p(x)$는 확률을 뱉어 주는 함수이므로 probability의 약자 $p$를 쓰도록 하자. 이 모델의 output이 softmax라면 해당 모델은 다음과 같은 형태를 띄고 있을 것이다:
$$ p(x)=\frac{e^{f(x)}}{Z} $$