다음은 DDPM에서 역확산 단계의 평균 \(\mu_q(x_t,x_0)\)가 \[ \mu_q(x_t,x_0)=\frac{1}{\sqrt{\alpha_t}}\left(x_t-\frac{1-\alpha_t}{\sqrt{1-\bar{\alpha}_t}}\epsilon\right) \] 로 계산되는 과정을 단계별로 유도하는 방법입니다. \(\\\) 1. Forward Process에서 \(x_t\) 표현 \(\\\) DDPM의 forward process에서는 \[ x_t = \sqrt{\bar{\alpha}_t}\,x_0 + \sqrt{1-\bar{\alpha}_t}\,\epsilon,\quad \epsilon\sim\mathcal{N}(0,I), \] 로 정의됩니다. 여기서 \[ \bar{\alpha}_t=\prod_{s=1}^t \alpha_s. \] 이를 \(x_0\)에 대해 풀면, \[ x_0 = \frac{1}{\sqrt{\bar{\alpha}_t}}\Bigl(x_t - \sqrt{1-\bar{\alpha}_t}\,\epsilon\Bigr). \] --- \(\\\) 2. 역확산 단계의 평균 \(\mu_q(x_t,x_0)\) 기본 식 \(\\\) 논문 등에서 증명된 바에 따르면, \[ q(x_{t-1}\mid x_t,x_0)=\mathcal{N}\Bigl(x_{t-1};\,\mu_q(x_t,x_0),\,\tilde{\beta}_t I\Bigr), \] 의 평균은 \[ \mu_q(x_t,x_0) = \frac{\sqrt{\bar{\alpha}_{t-1}}\beta_t}{1-\bar{\alpha}_t}\,x_0 + \frac{\sqrt{\alpha_t}\,(1-\bar{\alpha}_{t-1})}{1-\bar{\alpha}_t}\,x_t, \] 로 주어집니다. 여기서\(\beta_t=1-\alpha_t\)이며, \(\bar{\alpha}_t=\bar{\alpha}_{t-1}\alpha_t\) 관계를 사용합니다. \(\\\) 3. \(x_0\)를 \(\epsilon\)로 표현하여 대입 \(\\\) 1. \(x_0\)를 위의 forward process 식에서 표현한 결과를 대입합니다. \[ x_0 = \frac{1}{\sqrt{\bar{\alpha}_t}}\Bigl(x_t - \sqrt{1-\bar{\alpha}_t}\,\epsilon\Bigr). \] 2. 이를 \(\mu_q(x_t,x_0)\)에 대입하면: \[ \begin{aligned} \mu_q(x_t,x_0) &= \frac{\sqrt{\bar{\alpha}_{t-1}}\beta_t}{1-\bar{\alpha}_t}\frac{1}{\sqrt{\bar{\alpha}_t}}\Bigl(x_t-\sqrt{1-\bar{\alpha}_t}\,\epsilon\Bigr) + \frac{\sqrt{\alpha_t}\,(1-\bar{\alpha}_{t-1})}{1-\bar{\alpha}_t}\,x_t\\[1mm] &= \frac{\sqrt{\bar{\alpha}_{t-1}}\beta_t}{\sqrt{\bar{\alpha}_t}(1-\bar{\alpha}_t)}\,x_t - \frac{\sqrt{\bar{\alpha}_{t-1}}\beta_t}{1-\bar{\alpha}_t}\frac{\sqrt{1-\bar{\alpha}_t}}{\sqrt{\bar{\alpha}_t}}\,\epsilon + \frac{\sqrt{\alpha_t}\,(1-\bar{\alpha}_{t-1})}{1-\bar{\alpha}_t}\,x_t. \end{aligned} \] 3. \(x_t\)에 대한 계수를 묶어 정리하면: \[ \begin{aligned} \text{Coefficient of }x_t &= \frac{\sqrt{\bar{\alpha}_{t-1}}\beta_t}{\sqrt{\bar{\alpha}_t}(1-\bar{\alpha}_t)} + \frac{\sqrt{\alpha_t}\,(1-\bar{\alpha}_{t-1})}{1-\bar{\alpha}_t}. \end{aligned} \] **여기서** \(\bar{\alpha}_t=\bar{\alpha}_{t-1}\alpha_t\)이므로, \(\sqrt{\bar{\alpha}_t}=\sqrt{\bar{\alpha}_{t-1}}\sqrt{\alpha_t}\)이고, \(\beta_t=1-\alpha_t\)임을 고려하면, \[ \frac{\sqrt{\bar{\alpha}_{t-1}}\beta_t}{\sqrt{\bar{\alpha}_t}(1-\bar{\alpha}_t)} = \frac{1-\alpha_t}{\sqrt{\alpha_t}(1-\bar{\alpha}_t)}. \] 따라서 두 항의 합은: \[ \frac{1-\alpha_t}{\sqrt{\alpha_t}(1-\bar{\alpha}_t)} + \frac{\sqrt{\alpha_t}\,(1-\bar{\alpha}_{t-1})}{1-\bar{\alpha}_t} = \frac{1}{1-\bar{\alpha}_t}\left(\frac{1-\alpha_t}{\sqrt{\alpha_t}}+\sqrt{\alpha_t}(1-\bar{\alpha}_{t-1})\right). \] \(\\\) **주목할 점:** \(\\\) \(1-\bar{\alpha}_t\)는 다음과 같이 쓸 수 있습니다. \[ 1-\bar{\alpha}_t=1-\alpha_t\bar{\alpha}_{t-1}=(1-\alpha_t)+\alpha_t(1-\bar{\alpha}_{t-1}). \] 그러므로, \[ \frac{1-\alpha_t}{\sqrt{\alpha_t}}+\sqrt{\alpha_t}(1-\bar{\alpha}_{t-1}) = \frac{(1-\alpha_t)+\alpha_t(1-\bar{\alpha}_{t-1})}{\sqrt{\alpha_t}} = \frac{1-\bar{\alpha}_t}{\sqrt{\alpha_t}}. \] 최종적으로 \(x_t\)의 계수는: \[ \frac{1}{1-\bar{\alpha}_t}\cdot\frac{1-\bar{\alpha}_t}{\sqrt{\alpha_t}}=\frac{1}{\sqrt{\alpha_t}}. \] \(\\\) 4. \(\epsilon\)에 대한 항은: \(\\\) \[ \frac{\sqrt{\bar{\alpha}_{t-1}}\beta_t}{1-\bar{\alpha}_t}\frac{\sqrt{1-\bar{\alpha}_t}}{\sqrt{\bar{\alpha}_t}}\,\epsilon. \] 동일하게 \(\beta_t=1-\alpha_t\)와 \(\sqrt{\bar{\alpha}_t}=\sqrt{\bar{\alpha}_{t-1}}\sqrt{\alpha_t}\)를 사용하면, \[ \frac{\sqrt{\bar{\alpha}_{t-1}}(1-\alpha_t)}{1-\bar{\alpha}_t}\cdot\frac{\sqrt{1-\bar{\alpha}_t}}{\sqrt{\bar{\alpha}_{t-1}}\sqrt{\alpha_t}} = \frac{1-\alpha_t}{\sqrt{\alpha_t}\sqrt{1-\bar{\alpha}_t}}. \] \(\\\) 5. 따라서 최종적으로 \(\\\) \[ \mu_q(x_t,x_0) = \frac{1}{\sqrt{\alpha_t}}\,x_t - \frac{1-\alpha_t}{\sqrt{\alpha_t}\sqrt{1-\bar{\alpha}_t}}\,\epsilon, \] 즉, \[ \boxed{\mu_q(x_t,x_0)=\frac{1}{\sqrt{\alpha_t}}\left(x_t-\frac{1-\alpha_t}{\sqrt{1-\bar{\alpha}_t}}\epsilon\right)}. \] \(\\\) 4. 노이즈 예측 네트워크와의 연결 \(\\\) 실제 학습에서는 네트워크 \(e_\theta(x_t,t)\)가 \(\epsilon\)를 예측하도록 설계합니다. 따라서 위 식에서 \(\epsilon\)를 \(e_\theta(x_t,t)\)로 대체하여 \[ \mu_q(x_t,x_0)=\frac{1}{\sqrt{\alpha_t}}\left(x_t-\frac{1-\alpha_t}{\sqrt{1-\bar{\alpha}_t}}e_\theta(x_t,t)\right) \] 와 같이 사용하게 됩니다. \(\\\) 요약 \(\\\) 1. **Forward process**에서 \(x_t\)를 \(x_0\)와 \(\epsilon\)의 선형 결합으로 표현한 후, 2. **역확산 단계**의 평균 \(\mu_q(x_t,x_0)\)가 \(x_0\)와 \(x_t\)의 선형 결합으로 주어짐을 확인합니다. 3. \(x_0\)를 \(x_t\)와 \(\epsilon\)로 표현한 식을 대입하고, 계수를 정리하면 \(x_t\)의 계수가 \(1/\sqrt{\alpha_t}\)가 되고, \(\epsilon\)에 대한 항이 \((1-\alpha_t)/(\sqrt{\alpha_t}\sqrt{1-\bar{\alpha}_t})\)가 되어 최종 식이 도출됩니다. 이와 같이, 위 유도 과정을 통해 DDPM의 역확산 단계에서 \(\mu_q(x_t,x_0)\)가 위와 같이 계산되는 이유를 알 수 있습니다.
'학술 > deep learning' 카테고리의 다른 글
[질문/답] DDPM에서 pθ(xt−1∣xt)를 학습할 때는 q(xt−1∣x0)에 일치 시키면 안되는가? (0) | 2025.03.24 |
---|---|
DDPM에서 원본 데이터 복원 신경망에서 x_0를 예측 하는 이유 (0) | 2025.03.21 |
윈도우에서 tensorrt 설치 하기 및 python 확인 (2) | 2022.05.20 |