Diffusion implicit modeling
Published on April 20, 2023 by JunYoung
DDIM DDPM Generative model AI Deep learning
11 min READ
DDPM은 adversarial training과 같이 직접 latent prior를 지정해줄 수 없는 GAN 모델과는 다르게 collapse가 발생하지 않고 안정적인 학습이 가능하다는 장점을 통해 generative model의 새로운 기대주로 떠오를 수 있었다.
그러나 DDPM의 경우 학습 시 많은 iteration($T = 1000$)을 거치면서 아주 작은 가우시안 노이즈를 픽셀 별로 더하고, 각 step에 대한 noised input($x_t$)을 기반으로 샘플링을 진행하기 때문에 Markov process를 벗어날 수 없었다.
Markov process가 안정적인 prior $p(z)$를 만들어줄 수 있는 방법이지만, 세상 모든 것에는 득이 있다면 실이 있듯이 DDPM은 샘플링 속도가 현저하게 느리다는 단점이 있었다. 왜냐하면 Markov process는 이전 state에 대해 다음 state가 의존하는 cascade 구조를 가지는데, 이는 GPU와 같은 hardward 가속기로 병렬 처리가 불가능하기 때문이다. 실제로 같은 resolution을 가지는 이미지를 생성하는데 있어서 GAN과 같은 implicit model에 비해 천 배 많은 연산량이 필요한 것을 볼 수 있다(예컨데 $32 \times 32$ 크기의 이미지를 $50k$ 만큼 만들기 위해서는 GAN으로는 1분 미만으로 생성할 수 있지만 DDPM으로는 20시간이 걸린다). 수식 전개 및 디퓨전과 관련된 자세한 내용은 DDPM에 대한 소개글과 DDPM 수식 조지기 글을 참고하면 좋다.
아무튼 이 논문에서는 DDPM의 샘플링 과정이 너무 느리다는 점을 지적하여, DDPM과 objective는 동일하게 가져갈 수는 있되 샘플링 과정에서 non-Markovian process를 보장할 수 있는 새로운 방법을 제시한다. 이때 DDPM의 완전히 stochastic한 샘플링 과정과는 대비되는 deterministic(원래 이미지인 $x_0$에 대한 조건부가 적용됨)하다는 점에서 신경망의 decoder 구조와 같은 $1$ to $1$ mapping trajectory를 생성하였고, 이를 이른바 DDIM(Denoising diffusion implicit model)이라고 불렀다.
DDPM의 아이디어는 Markov process인 forward process를 tractable하게 바꾼 posterior $q(x_{t-1} \vert x_t, x_0)$를 reverse process가 따라가게끔 학습하는 것이었다. DDIM은 non-Markov process를 상정하여 deterministic한 샘플링을 가능하게 하므로 다음과 같이 time $t$에 대한 noised input이 $x_0$로부터 온 녀석임을 명시해줌으로써 이전 state에만 의존했던 방법에서 벗어날 수 있다.
즉 원래의 $p_\theta(x_{t-1} \vert x_{t})$이 따라가는 분포가 Markovian이 아닌 non-Markovian임을 보장할 수 있게 되므로 sampling 과정에서 복구해야할 이미지 $x_0$에 대한 정보를 디퓨전 프로세스가 implicit하게 인지할 수 있다는 것이다.
그리고 가장 중요한 점은 이런 식으로 바꿈으로 인한 objective function의 변화가 없었기 때문에, 굳이 다른 objective function으로 다시 학습할 필요는 없고 그냥 위의 그림을 통해 전개한 샘플링 방법만 사용하면 pre-trained DDPM을 그대로 사용할 수 있다는 장점이 있다. 또다른 장점이라고 한다면 $x_0$를 인지하고 있는 deterministic sampling이기 때문에 굳이 noised sample을 만들기 위해 거친 forward process의 $T = 1000$를 전부 reverse process를 통해 거치지 않더라도 그의 부분집합인 sub-sequence $T_\text{sub} = [\tau_n,~\tau_{n-1}, \cdots,~\tau_0]$를 거치더라도 큰 quality 손상 없이 샘플링이 가능하다는 장점이 있다.
마지막으로 샘플링 과정에서 $x_{t(t < T)}$인 noised image가 모두 $x_0$에 조건화된 샘플링이기 때문에 latent space에서의 interpolation이 유의미한 semantic interpolation으로 이어질 수 있다는 것이다.
예컨데 GAN inversion처럼 GAN 모델에서 image editing이 보다 간편했던 이유는 latent $z$가 mapping되는 과정이 단순하게 style mapper $F$와 image synthesizer $G$에 의해 implicit하게 생성된 $x = F(G(z))$가 $z$의 공간상의 정보와 $x$의 공간상의 정보를 non-linear warping할 수 있었기 때문이다. 따라서 정도의 차이는 있지만 $x_1$과 $x_2$를 만드는 두 latent $z_1$, $z_2$를 interpolation하는 $\alpha \cdot z_1 + (1-\alpha) \cdot z_2$가 image 공간에서도 $\beta \cdot x_1 + (1-\beta)x_2$와 같은 효과를 보여줄 수 있다는 것이었다. 물론 non-linearity이기 때문에 Affine이 수식 상으로는 정확하게 맞아떨어지지는 않지만 semantic하게 금발의 여자와 흑발의 여자 중간의 갈색 머리 여자가 나온다는 직관적인 연산이 가능한 것이다.
이러한 직관적 sampling이 diffusion process에서는 stochasticity 때문에 불가능하다는 한계가 있었는데, 이를 극복할 수 있는 방법 중 하나가 바로 DDIM이 될 수 있다는 것이다.
DDIM에서는 DDPM과 다른 notation을 사용하기 때문에 조금 혼란스러울 수도 있다. 본인은 DDPM의 notation을 선호하는 편이라 DDIM에 있는 수식 증명을 죄다 DDPM notation으로 대체할 생각이다.
[ q(x_{1:T} \vert x_0) := \prod_{t=1}^T q(x_t \vert x_{t-1}) , \text{ where }q(x_t \vert x_{t-1}):= \mathcal{N}(\sqrt{\alpha_t}x_{t-1}, ~(1-\alpha_t)I) ]
위에서 볼 수 있는 $\alpha_t$는 각 time step $t$에 대해 scheduling된 variance인 $\beta_t$를 $1$에서 뺀 값으로, 수식 증명 게시글에서도 밝힌 바 있듯이 위와 같이 forward process를 통해 noise를 만들어가게 되면 variance를 $1$로 유지하면서 가우시안 분포를 만들어낼 수 있다. 위와 같은 방식으로 noise를 쌓아가게 되면 $q(x_t \vert x_0)$에 대해 다음과 같이 정리할 수 있다. 아래의 식에서 $\bar{\alpha}_t = \prod_{\tau=1}^t \alpha_\tau$가 된다.
[ q(x_t \vert x_0) := \int q(x_{1:t} \vert x_0)dx_{1:(t-1)} = \mathcal{N}(x_t;~\sqrt{\bar{\alpha}}_t x_0, (1-\bar{\alpha}_t)I) ]
그리고 실제로는 위와 같은 stochastic process(분포에서 랜덤하게 뽑는 과정)이 아니라 reparameterization metric을 사용하는 것은 DDPM에서와 동일하다.
[ x_t = \sqrt{\bar{\alpha}_t} x_0 + \sqrt{1-\bar{\alpha}_t} \epsilon, \text{ where }\epsilon \sim \mathcal{N}(0, I) ]
놀랍게도 요 식에서 바로 DDIM 식을 유도할 수 있다. 해당 내용에 대한 증명은 Bishop의 pattern recognition 책의 2절 115번 공식을 토대로 한다(가우시안 분포, 조건부 확률에서 특정 변수에 대한 marginal을 구하는 방법). 간단하게 해당 수식을 보이자면 다음과 같다.
[ \begin{aligned} p(x) =& \mathcal{N}(x \vert \mu,~\Lambda^{-1}) \newline p(y \vert x) =& \mathcal{N}(y \vert Ax+b,~\mathrm{L}^{-1}) \end{aligned} ]
위와 같은 분포가 있을 때, $x$에 대해 projection한 $y$ 분포는 다음과 같다.
[ p(y) = \mathcal{N}(y \vert A\mu+b,~\mathrm{L}^{-1}+\Lambda \Lambda^{-1}A^\top) ]
조건부의 평균이 $x$에 대해 변수화가 되었는데 이게 prior의 평균으로 수렴하고, 분산은 꽁다리에 붙는 형태가 되었다. 다시 DDIM으로 돌아와서, 우리는 귀납적으로 다음과 같은 constraint를 만족하는 non-Markovian process의 ‘posterior’를 학습하고자 한다.
[ q_\sigma(x_{t-1} \vert x_t,~x_0) ]
이거 어디서 봤는데? 싶다면 바로 DDPM 식에서는 이를 원래 forward였던 $q(x_{t-1} \vert x_t)$를 $t>1$인 모든 time step에 대해 $x_0$에 조건화시키면서 Markov process를 유지한 상태로 Baye’s rule을 전개하는데 사용했었다(아래와 같음).
[ q(x_{t-1} \vert x_t,x_0) = q(x_t \vert x_{t-1},x_0) \frac{q(x_{t-1} \vert x_0)}{q(x_t \vert x_0)} ]
그런데 조금 다른 점이라면 이번에는 모든 time step $t$에 대해 같은marginal인 $q(x_{t} \vert x_0)$를 가지는 새로운 non-Markovian 분포 $q_{\sigma}(x_{t} \vert x_{t-1}, x_0)$을 찾고자 하는 것이다. 이걸 찾을 때 귀납적으로 증명하기 위해서는 다음과 같은 process를 거치게 된다.
앞서 Bishop 책에서 본 공식을 머리 속에 박아넣은 채로 우리가 통일시켜야할 marginal을 살펴보면 다음과 같다.
[ q(x_{t-1} \vert x_0) = \mathcal{N}(x_{t-1};~\sqrt{\bar{\alpha}}_{t-1} x_0, (1-\bar{\alpha}_{t-1})I) ]
이 상태에서 $x_{t}$를 조건부로 박아넣게 되면 다음과 같이 정리된다. 참고로 $q(x_t \vert x_0)$의 확률과 같이 나타내면 다음과 같이 표현 가능하다.
[ \begin{aligned} q(x_t \vert x_0) =& \mathcal{N}(x_{t};~\sqrt{\bar{\alpha}_t}x_0,(1-\bar{\alpha}_{t})I) \newline q_\sigma(x_{t-1} \vert x_t, x_0) =& \mathcal{N}(x_{t-1};~\sqrt{\bar{\alpha}_{t-1}}x_0 + C\cdot(x_t - \sqrt{\bar{\alpha}_t}x_0),\sigma_t^2 I) \end{aligned} ]
위의 식에서 $\sigma_t$는 같은 marginal을 만족하는 모든 가우시안 분포의 임의의 standard deviation이라고 생각하면 된다. 평균 부분에 $C$라는 constant를 붙여서 위와 같이 식을 쓴 이유는 다음과 같다. Bishop 책 2절의 115번 공식에 따르면 위와 같은 식을 만족하는 두 분포에 대해,
[ \mathbb{E}\left(q_\sigma(x_{t-1} \vert x_0)\right) = \mathbb{E}\left(q_\sigma(x_{t-1} \vert x_t, x_0)\right) \rvert_{x_t = \mathbb{E}(q(x_t \vert x_0))} ]
위와 같기 때문에 $\sqrt{\bar{\alpha}_{t-1}}x_0 + C\cdot(x_t - \sqrt{\bar{\alpha}_t}x_0)$ 식에서 $x_t$ 대신 $\sqrt{\bar{\alpha}_t}x_0$를 대입했을 때 $\sqrt{\bar{\alpha}_{t-1}}x_0$가 나올 수 있드록 의도적으로 만들어준 것이다. $C$라는 constant를 우리가 임의로 지정했기 때문에 이를 구하고자 variance에 대한 식을 마찬가지로 적용하면,
[ \mathrm{Var}(q_\sigma(x_{t-1} \vert x_0) = \mathrm{Var}(q_\sigma(x_{t-1} \vert x_t, x_0))+C^2 \cdot \mathrm{Var}(q(x_t \vert x_0)) ]
이고, 우리가 미리 알고 있는 marginal 분포의 variance를 사용하여 위의 식을 다시 나타내면,
[ (1-\bar{\alpha}_{t-1})I = \sigma_t^2I + C^2 \cdot (1-\bar{\alpha}_t)I ]
Identity matrix($I$) 부분을 제외하고 $C$를 coefficient에 대해서 다시 표현하면,
[ C = \frac{\sqrt{1-\bar{\alpha}_{t-1}-\sigma_t^2}}{\sqrt{(1-\bar{\alpha}_t)}} ]
위와 같이 나타낼 수 있다. 따라서 임의의 variance $\sigma_t^2$에 대한 non-Markovian posterior를 다음과 같이 정리할 수 있다.
[ q_\sigma(x_{t-1} \vert x_t, x_0) = \mathcal{N}(x_{t-1};~\sqrt{\bar{\alpha}_{t-1}}x_0 + \frac{\sqrt{1-\bar{\alpha}_{t-1}-\sigma_t^2}}{\sqrt{(1-\bar{\alpha}_t)}} \cdot(x_t - \sqrt{\bar{\alpha}_t}x_0),\sigma_t^2 I) ]
다시 한번 언급하자면 위의 식은 DDPM에서 유도했던 posterior와 전혀 다른 의미를 가진다. 이번에는 반대로 위의 non-Markov process posterior를 likelihood로 바꿔주게 되면,
[ q_\sigma(x_{t} \vert x_{t-1}, x_0) = q_\sigma(x_{t-1} \vert x_t,x_0) \times \frac{q_\sigma(x_t \vert x_0)}{ q_\sigma(x_{t-1} \vert x_0)} ]
위와 같다. 결국 논문에서 하고자 했던 Markov forward process $q$와 동일한 Margin을 가지는 non-Markovian forward process $q_\sigma$를 구해낼 수 있게 되었다.
이제 실제로 왜 위와 같은 $q$에 대한 최적화가 DDPM loss와 동일한지 확인해보자. 참고로 DDPM loss를 기준으로 바뀌는 부분은 $q$ 부분만 해당되므로 다음과 같이 표현할 수 있다. DDPM의 lower bound를 non-Markovian forward process로 대체한 것이다.
[ \mathbb{E}(-\log p_\theta (x_0)) \leq \mathbb{E}_q \left( -\log p_\theta(x_T) - \sum_{t \ge 1}\log \frac{p_\theta(x_{t-1} \vert x_t)}{q_\sigma(x_t \vert x_{t-1}, x_0)} \right) ]
이걸 posterior로 바꾸고 지지고 볶는 과정은 DDPM에서 이미 다 했기 때문에 굳이 증명할 필요는 없고 결론부터 보자면 variational inference loss는 다음과 같이 나온다.
[ D_{KL}(q(x_T \vert x_0) \vert\vert p_\theta(x_T)) -\sum_{t > 1} D_{KL} (q_\sigma(x_{t-1} \vert x_t, x_0) \vert\vert p_\theta(x_{t-1} \vert x_t)) -\mathbb{E}_q\left(\log p_{\theta}(x_0 \vert x_1) \right) ]
결국 바뀐 것은 forward process를 나타내는 분포 $q$에 $\sigma$라는 non-Markovian posterior의 standard deviation만 붙은 것이다. DDPM에서 했던 것처럼 첫번째 term은 날려버리고 나머지 term에 대한 디퓨전 모델의 학습을 reverse process $p_\theta$에 대해 다음과 같이 표현 가능함.
[ p_\theta^{(t)}(x_{t-1} \vert x_t) = \begin{cases} \mathcal{N}(x_0(x_t, \epsilon_\theta), \sigma_1^2I), &\text{if }t = 1\newline q_\sigma (x_{t-1} \vert x_t,~x_0(x_t,\epsilon_\theta)),& \text{otherwise}\end{cases} ]
참고로 위의 식에서 $x_0(x_t, \epsilon_\theta)$는 네트워크가 각 $x_t$에 대해 더해졌을 것이라고 예측한 noise인 $\epsilon_\theta^{(t)}$를 통해 역으로 추적한 $x_0 = (x_t - \sqrt{1-\bar{\alpha}_t} \cdot \epsilon_\theta^{(t)}(x_t)) / \sqrt{\bar{\alpha}_t}$를 의미한다. 이를 통해 $t>1$인 부분에 대해서만 확인해보면 가우시안 분포에 대한 KL divergence는 exponential을 벗겨버리므로 간단하게 표현된다.
[ \begin{aligned} &D_{KL} (q_\sigma(x_{t-1} \vert x_t, x_0) \vert\vert p_\theta^{(t)}(x_{t-1} \vert x_t)) \newline &=D_{KL} (q_\sigma(x_{t-1} \vert x_t, x_0) \vert\vert q_\sigma(x_{t-1} \vert x_t,~x_0(x_t,~\epsilon_\theta))) \newline &=\mathbb{E}_q\left(\frac{\parallel x_0 - x_0(x_t,\epsilon_\theta) \parallel_2^2}{2\sigma_t^2} \right) \end{aligned} ]
Reparameterization으로 식을 $\epsilon$(실제로 더해진 noise)을 통해 다시 정리하면,
[ =\mathbb{E}_q\left( \frac{\parallel (x_t-\sqrt{1-\bar{\alpha}_t}\epsilon)/\sqrt{\bar{\alpha}_t} - (x_t-\sqrt{1-\bar{\alpha}_t}\epsilon_\theta^{(t)}(x_t))/\sqrt{\bar{\alpha}_t} \parallel_2^2}{2\sigma_t^2} \right) ]
슬슬 어디서 많이 본 애가 나타나기 시작했다. 계수로 붙는 애들을 정리하고 나면 simplified version인 익숙한 친구가 눈에 보인다.
[ =\mathbb{E}_q \left( (1-\bar{\alpha}_t)\cdot\frac{\parallel \epsilon - \epsilon_\theta^{(t)}(x_t) \parallel^2}{2\sigma_t^2\bar{\alpha}_t} \right) = \mathbb{E}_q\left( \frac{1-\bar{\alpha}_t}{2\sigma_t^2\bar{\alpha}_t} \cdot \parallel \epsilon - \epsilon_\theta^{(t)}(x_t) \parallel^2 \right) ]
결국 DDIM sampling을 하기 위해 설정한 non-Markovian posterior가 실제로 DDPM loss로 수렴한다는 사실이 입증된다.
앞서 상정한 non-Markovian forward process에 predicted $\epsilon_\theta$를 써서 샘플링 과정을 보면 다음과 같다.
[ x_{t-1} = \sqrt{\bar{\alpha}_{t-1}}\underset{\text{predicted }x_0}{\left( \frac{x_t - \sqrt{1-\bar{\alpha}_t}\epsilon_\theta^{(t)}(x_t)}{\sqrt{\bar{\alpha}_t}} \right)} + \underset{\text{direction pointing to }x_t}{\sqrt{1-\bar{\alpha}_{t-1} - \sigma_t^2} \cdot \epsilon_\theta^{(t)}(x_t)} + \underset{\text{random noise}}{\sigma_t z},~z \sim \mathcal{N}(0, I) ]
식을 보게 되면 $x_0$를 예측하고 $x_t$를 다시 복구하는 형태를 가지는데, 이때 굳이 $t-1$번째 샘플을 예측할 것이 아니라 $t-2$번째 샘플을 예측하더라도 큰 무리가 없는 것을 볼 수 있다. 이처럼 DDIM 샘플링은 $T$의 time step을 전부 소모하지 않고도 일부 $t$만 샘플링 용도로 사용할 수 있다. 예컨데 만약 길이가 $T$인 전체 time sequence $[1,~2,~\cdots,~T]$의 sub-sequence인 $[x_{\tau_1},~\cdots,~x_{\tau_S}] (S < T)$가 있을 때, non-Markov process인 forward process를 새롭게 $q(x_{\tau_i} \vert x_0) = \mathcal{N}(\sqrt{\bar{\alpha}_{\tau_i}}x_0,~(1-\bar{\alpha}_{\tau_i})I)$로 정의할 수 있으며, 더이상 이전 state에만 의존하지 않기 때문에 연속 sequence에 대한 의존성도 없어진다.
Sampling 식을 보게 되면 $\sigma$라는 새로운 hyperparameter가 등장한 것을 볼 수 있다.
[ x_{t-1} = \sqrt{\bar{\alpha}_{t-1}}\underset{\text{predicted }x_0}{\left( \frac{x_t - \sqrt{1-\bar{\alpha}_t}\epsilon_\theta^{(t)}(x_t)}{\sqrt{\bar{\alpha}_t}} \right)} + \underset{\text{direction pointing to }x_t}{\sqrt{1-\bar{\alpha}_{t-1} - \sigma_t^2} \cdot \epsilon_\theta^{(t)}(x_t)} + \underset{\text{random noise}}{\sigma_t z},~z \sim \mathcal{N}(0, I) ]
해당 식에서 variance를 따로 계산해보면 다음과 같이 엡실론에 붙은 애들을 제곱해서 더한 결과와 같다.
[ \mathrm{Var}(x_{t-1}) = \frac{\bar{\alpha}_{t-1} \cdot (1-\bar{\alpha}_t)}{\bar{\alpha}_t} + (1-\bar{\alpha}_{t-1} - \sigma_t^2) + \sigma_t^2 = \frac{(1+\alpha_t-2\bar{\alpha}_t)}{\alpha_t} ]
즉 해당 식이 시사하는 바는 $\sigma$는 DDPM과 DDIM의 stochastic와 deterministic을 조절해주는 역할을 수행하고, 실질적으로 sampling variance에는 변화를 주지 않는 것을 확인할 수 있다. DDPM의 샘플링 식을 recap 해보면 다음과 같다.
[ x_{t-1} = \frac{1}{\sqrt{\alpha_t}}\left( x_t - \frac{\beta_t}{\sqrt{1-\bar{\alpha}}_t} \epsilon_\theta(x_t, t)\right)+\sigma_tz ]
그리고 이 식이 나오게 되면 Markovian forward process에 대한 tractable probability distribution $q(x_{t-1} \vert x_t, x_0)$의 표준편차는 다음과 같았다.
[ \tilde{\sigma}_t^2 = \beta_t \times \left( \frac{1-\bar{\alpha}_{t-1}}{1-\bar{\alpha}_t} \right) ]
놀랍게도 DDIM의 $\sigma_t$가 위의 형태가 되면 정확하게 DDPM의 샘플링 식과 동일해진다. 그래서 다음과 같이 $\eta$를 hyperparameter로 정의하게 되면 DDPM과 DDIM 샘플링을 조절할 수 있게 된다.
[ \sigma_{t} = \eta\sqrt{(1-\alpha_t) \times \left( \frac{1-\bar{\alpha}_{t-1}}{1-\bar{\alpha}_t} \right)} ]
$\eta = 1$이면 완전한 DDPM이 되고 $0$이면 완전한 DDIM이 된다.
DDPM($\eta = 1$)과 DDIM($\eta = 0$)은 그리고 그 중간에 대해서 $T < 1000$에 대해서는 적은 step만큼 학습시킨 결과를 FID로 나타내었고 DDPM이 급격하게 성능이 안좋아지는 모습을 볼 수 있지만 DDIM은 퀄리티를 유지하는 것을 볼 수 있다.
당연하겠지만 step 수를 늘릴수록 샘플링 성능은 더 좋음 근데 샘플링 시간이 오바라서….
대략 $20 \sim 100$ step에서 $1000$ step에 필적할 생성 성능이 보이는데, 단순 계산으로 10배에서 50배 속도 향상과 같음.
그리고 가장 좋은 점인 latent interpolation이 생성된 이미지의 semantic과 유의미한 관계를 가지게 되었다. 그와중에 Shutterstock 조금씩 드러나는게 개웃김 ㅋㅋㅋㅋㅋ(나만 그런가 ㅠ)
놀랍게도 DDIM과 DDPM은 diffusion인데 diffusion을 discrete하게 사용하기 때문에 미분 방정식이라고 보긴 힘들다. 그런데 DDIM은 오일러 근사(추정)이 가능한 샘플링의 형태를 보여준다. 예컨데 샘플링 식을 다시 끌고와보면,
[ x_{t-1} = \sqrt{\bar{\alpha}_{t-1}}\underset{\text{predicted }x_0}{\left( \frac{x_t - \sqrt{1-\bar{\alpha}_t}\epsilon_\theta^{(t)}(x_t)}{\sqrt{\bar{\alpha}_t}} \right)} + \underset{\text{direction pointing to }x_t}{\sqrt{1-\bar{\alpha}_{t-1} - \sigma_t^2} \cdot \epsilon_\theta^{(t)}(x_t)} + \underset{\text{random noise}}{\sigma_t z},~z \sim \mathcal{N}(0, I) ]
오 보인다 보여 DDIM은 앞서 말했던 것처럼 $\sigma = 0$으로 두면 된다.
[ \frac{x_{t-1}}{\sqrt{\bar{\alpha}_{t-1}}} = \frac{x_t - \sqrt{1-\bar{\alpha}_t}\epsilon_\theta^{(t)}(x_t)}{\sqrt{\bar{\alpha}_t}} + \frac{\sqrt{1-\bar{\alpha}_{t-1}} \cdot \epsilon_\theta^{(t)}(x_t)}{\sqrt{\bar{\alpha}_{t-1}}} ]
애초에 discrete한 샘플링에 대한 식이었기 때문에 시간 간격을 죄다 $\Delta$로 바꿔주면 differential equation 형태로 바꿔볼 수 있다.
[ \frac{x_{t-\Delta}}{\sqrt{\bar{\alpha}_{t-\Delta}}} = \frac{x_t }{\sqrt{\bar{\alpha}_t}} + \left(\frac{\sqrt{1-\bar{\alpha}_{t-\Delta}} }{\sqrt{\bar{\alpha}_{t-\Delta}}} - \frac{\sqrt{1-\bar{\alpha}_t}}{\sqrt{\bar{\alpha}_t}} \right)\cdot \epsilon_\theta^{(t)}(x_t) ]
$x_t/\sqrt{\bar{\alpha}_t} = \bar{x}_t,~\frac{\sqrt{1-\bar{\alpha}_t}}{\sqrt{\bar{\alpha}_t}} = \sigma$라고 식을 바꾸게 되면,
[ d\bar{x}(t) = \epsilon_\theta^{(t)}\left(\frac{\bar{x}(t)}{\sqrt{\sigma^2+1}}\right)d\sigma(t) ]
위와 같은 미분 방정식이 된다. SDE를 통한 continous diffusion process 논문을 보게 되면 DDPM과 차이가 있는 점이 바로 Neural ODE의 solution으로써 $x(T)$를 제시하기 때문에 one to one mapping(deterministic)이 성립할 수 있다는 것이다.
아무래도 ODE가 성립하다보니 $x_0$를 $x_T$로 바로 인코딩하거나 $x_0$로 리컨이 가능한데, 결국 trajectory도 $\Delta$에 따라 오차가 정해지기 때문에 $S$가 클수록(시간 간격이 짧을수록) 실제 미분 방정식의 솔루션에 가까워지는 것을 볼 수 있다. 위는 CIFAR-10에 대한 리컨 error를 의미한다.