Joint Distribution Decomposition using Markov Chains: Reverse and Forward Processes

장현겸·2025년 3월 6일

1. Reverse Process

역방향 프로세스는 모델이 데이터를 생성하는 방법을 나타냅니다.
즉, 노이즈가 많이 섞인 latent 변수 xTx_T에서 시작해, 점진적으로 “노이즈를 제거(denoising)”하면서 데이터 x0x_0를 복원하는 과정입니다.

역방향 프로세스는 마르코프 체인(Markov chain)으로 정의되며, 조인트 분포는 다음과 같이 분해됩니다:

pθ(x0,x1,…,xT)=p(xT)∏t=1Tpθ(xt−1∣xt)p_\theta(x_0, x_1, \dots, x_T) = p(x_T) \prod_{t=1}^{T} p_\theta(x_{t-1} \mid x_t)

여기서:

  • p(xT)=N(xT;0,I)p(x_T) = \mathcal{N}(x_T; 0, I)는 마지막 latent xTx_T에 대한 사전 분포(prior)입니다.
  • 각 조건부 분포 pθ(xt−1∣xt)p_\theta(x_{t-1} \mid x_t)는 Gaussian 분포로 파라미터화되며,
pθ(xt−1∣xt)=N(xt−1;μθ(xt,t),Σθ(xt,t))p_\theta(x_{t-1} \mid x_t) = \mathcal{N}(x_{t-1}; \mu_\theta(x_t, t), \Sigma_\theta(x_t, t))

로 정의됩니다.

해석:
이 분해는 xTx_T를 표준 정규분포에서 샘플링한 후, 각 단계별로 이전 상태 xt−1x_{t-1}을 예측하여 최종적으로 x0x_0를 생성하는 (즉, 노이즈를 제거하는) 과정을 의미합니다.


2. Forward Process

전방 프로세스는 원래 데이터 x0x_0에서 시작하여 점진적으로 Gaussian 노이즈를 추가하는 과정입니다.
x0x_0는 주어진(observed) 데이터이므로, 전방 프로세스의 조건부 조인트 분포는 x0x_0를 조건으로 한 형태로 표현됩니다.

2.1 조건부 체인 룰을 이용한 전개

조건부 분포의 체인 룰에 따르면,

q(x1,x2,…,xT∣x0)=q(x1∣x0)  q(x2∣x0,x1)  ⋯  q(xT∣x0,x1,…,xT−1).q(x_1, x_2, \dots, x_T \mid x_0) = q(x_1 \mid x_0) \; q(x_2 \mid x_0, x_1) \; \cdots \; q(x_T \mid x_0, x_1, \dots, x_{T-1}).

여기서 각 항은 "이전의 모든 변수와 x0x_0"를 조건으로 한 확률입니다.

q(x1,x2,…,xT)q(x_1, x_2, \dots, x_T)와 같은 Joint 분포의 Chain rule에 대해서는 q(x1)  q(x2∣x1)  ⋯  q(xT∣x1,…,xT−1)q(x_1) \; q(x_2 \mid x_1) \; \cdots \; q(x_T \mid x_1, \dots, x_{T-1})가 되는 것은 모두가 알지만 x0가 given될때 즉 조건부 joint 분포에 대해서는 어떻게 위의 수식처럼 전개가 되는지 알아보겠습니다.

2.2 조건부 체인 룰의 유도 (Bayes 정리 사용)

우리는 다음과 같이 전방 조인트 분포를 조건부로 나타낼 수 있습니다.
우선, 전체 조인트 분포는 베이즈 정리에 의해

q(x0,x1,…,xT)=q(x0) q(x1,…,xT∣x0)q(x_0, x_1, \dots, x_T) = q(x_0) \, q(x_1, \dots, x_T \mid x_0)

로 표현되며, 이를 x0x_0에 대해 풀면

q(x1,x2,…,xT∣x0)=q(x0,x1,…,xT)q(x0).q(x_1, x_2, \dots, x_T \mid x_0) = \frac{q(x_0, x_1, \dots, x_T)}{q(x_0)}.

체인 룰을 적용하면,

q(x0,x1,…,xT)=q(x0)  q(x1∣x0)  q(x2∣x0,x1)  ⋯  q(xT∣x0,x1,…,xT−1).q(x_0, x_1, \dots, x_T) = q(x_0) \; q(x_1 \mid x_0) \; q(x_2 \mid x_0, x_1) \; \cdots \; q(x_T \mid x_0, x_1, \dots, x_{T-1}).

따라서,

q(x1,x2,…,xT∣x0)=q(x0)  q(x1∣x0)  q(x2∣x0,x1)  ⋯  q(xT∣x0,…,xT−1)q(x0).q(x_1, x_2, \dots, x_T \mid x_0) = \frac{q(x_0) \; q(x_1 \mid x_0) \; q(x_2 \mid x_0, x_1) \; \cdots \; q(x_T \mid x_0, \dots, x_{T-1})}{q(x_0)}.

q(x0)q(x_0)가 약분되므로 최종적으로 조건부 체인 룰은

q(x1,x2,…,xT∣x0)=q(x1∣x0)  q(x2∣x0,x1)  ⋯  q(xT∣x0,x1,…,xT−1)q(x_1, x_2, \dots, x_T \mid x_0) = q(x_1 \mid x_0) \; q(x_2 \mid x_0, x_1) \; \cdots \; q(x_T \mid x_0, x_1, \dots, x_{T-1})

가 됩니다.

2.3 Markov 가정 적용

전방 프로세스에서는 Markov 가정을 적용합니다.
즉, 각 단계에서

q(xt∣x0,x1,…,xt−1)=q(xt∣xt−1)q(x_t \mid x_0, x_1, \dots, x_{t-1}) = q(x_t \mid x_{t-1})

가 성립합니다.
x0x_0는 주어진 데이터이므로, 첫 번째 항은 q(x1∣x0)q(x_1 \mid x_0)로 남고, 이후 항들은 오직 바로 이전 변수에만 의존하게 됩니다.

따라서, 전방 프로세스의 조인트 분포는 다음과 같이 단순화됩니다.

q(x1,x2,…,xT∣x0)=q(x1∣x0)∏t=2Tq(xt∣xt−1).q(x_1, x_2, \dots, x_T \mid x_0) = q(x_1 \mid x_0) \prod_{t=2}^{T} q(x_t \mid x_{t-1}).

혹은, 이를 간단히

q(x1,x2,…,xT∣x0)=∏t=1Tq(xt∣xt−1)q(x_1, x_2, \dots, x_T \mid x_0) = \prod_{t=1}^{T} q(x_t \mid x_{t-1})

라고 표현할 수 있으며, 여기서 q(x1∣x0)q(x_1 \mid x_0)는 t=1t=1일 때의 조건부 분포입니다.

2.4 전방 프로세스의 구체적 정의

DDPM 논문에서는 전방 프로세스를 다음과 같이 정의합니다:

q(xt∣xt−1)=N(xt;1−βt xt−1,βtI)q(x_t \mid x_{t-1}) = \mathcal{N}\Bigl(x_t; \sqrt{1-\beta_t}\, x_{t-1}, \beta_t I\Bigr)

여기서 βt\beta_t는 각 시간 단계에서 추가되는 노이즈의 양(분산)을 나타냅니다.

해석:
데이터 x0x_0가 주어지면, 첫 번째 조건부 분포 q(x1∣x0)q(x_1 \mid x_0)가 정의됩니다. 그리고 Markov 가정에 따라 이후 단계에서는 오직 바로 이전 상태에만 의존하여, 전체 조인트 분포가 각 단계의 확률분포의 곱으로 나타납니다.

profile
생성 공부ing.. 피드백 주시면 언제나 확인하고 반영하겠습니다.

0개의 댓글