Langevin Dynamics Sampling을 하는 이유
Langevin Dynamics sampling이 생성모델에서 자주 보이는 것 같습니다. 왜 Langevin Dynamics Sampling 을 사용하고 있을까요? 아 그전에 Langevin Dynamics sampling이 뭔지부터 봐야겠죠.
Langevin Dynamics Sampling이란?
내가 어떤 특정 p(\mathbf{x}) 로 부터 샘플을 생성하고 싶습니다. 그럴 때 아래와 같은 simulation 을 통해 p(\mathbf{x}) 로부터 데이터 샘플을 생성할 수 있습니다.
\begin{align*}\text{for } & i =1,2,3,...,T \\ & x_{i}= x_{i-1} + \frac{\epsilon}{2} \nabla_{\mathbf{x}} \log p ( \mathbf{x}) + \sqrt{\epsilon} \mathbf{z}_i \end{align*}
식 (1)에서 \mathbf{z}_i 는 평균이 \mathbf{0} 이고 covariance 가 \mathbf{I} 인 가우시안 분포에서 나온 샘플입니다. 여기서 T>0 가 엄청크고 \epsilon > 0 가 엄청작으면 원하는 분포 p(\mathbf{x})로 부터 데이터 샘플이 생성됩니다.
Langevin Dynamics sampling 이 의미 있는 이유
그러면 생각을 할 수 있죠. 과연 Langevin Dynamics Sampling 을 이용하면 내가 원하는 분포에서부터 데이터 샘플을 생성할 수 있을까? 자료를 찾아보니 이 사실을 지지하는 Theorem 이 있었습니다. 아래의 Reference [1]의 Theorem 2.1에서 찾을 수 있습니다. Theorem 2.1 에 대해 자세히 얘기하기전에 Langevin Dynamics 에 대해 알아보겠습니다. Langevin Dynamics는 확률미분방정식을 의미합니다. 아래와 같이 생긴 SDE(Stochastic Differential Equation, 확률미분방정식)을 Langevin Dynamics 라고 말하는데요.
\begin{align} d\mathbf{x} = d\mathbf{w} + \frac{1}{2} \nabla_\mathbf{x} \log p(\mathbf{x}) \end{align}
이 SDE에서 dt = \epsilon 으로 두고 simulation 한 것이 바로 Langevin Dynamics Sampling 입니다. 그러면, 이렇게 샘플링을 하면 과연 분포 p(\mathbf{x} 에서부터 데이터 샘플이 될까요? 정답은 특정조건에서 된다! 입니다. 이것이 앞서 말씀드린 Reference [1]의 Theorem 2.1에서 나오는 이야기입니다. Theorem 2.1 의 내용은 어려우니까 적당히 요약해서 작성해보겠습니다.
Theorem 2.1 in [1]
특정 조건을 만족할 때 식 (1)을 구성하는 process \mathbf{x}_t 에 대하여 다음을 만족한다.
- p(\mathbf{x}) 는 stochastic process \mathbf{x}_t 의 Stationary distribution 이 된다.
- p(\mathbf{x}_t | \mathbf{x}_0) 는 t \to \infty 일 때, p(\mathbf{x}_t | \mathbf{x}_0) \to p(\mathbf{x}) 이다.
Theorem 2.1 에서 언급하는 특정 조건에 대해서는 어려운 면이 있어 설명을 그만두겠습니다. 궁금하시면 논문을 한번 찾아보세요. 어쨋든 Theorem 2.1 에 의해 식 (1) 의 \mathbf{x}(t) 의 conditional pdf p(\mathbf{x}_t | \mathbf{x}_0) 는 t 가 무한대로 커지면 p (\mathbf{x}) 와 가까워 지므로 식 (1)을 따라 시뮬레이션을 쭉하면 p(\mathbf{x}) 로 부터 데이터 샘플이 생성되죠.
Reference
[1] Roberts, G. O., & Tweedie, R. L. (1996). Exponential convergence of Langevin distributions and their discrete approximations. Bernoulli, 341-363.