1. Reverse Process
역방향 프로세스는 모델이 데이터를 생성하는 방법을 나타냅니다.
즉, 노이즈가 많이 섞인 latent 변수 x T x_T x T 에서 시작해, 점진적으로 “노이즈를 제거(denoising)”하면서 데이터 x 0 x_0 x 0 를 복원하는 과정입니다.
역방향 프로세스는 마르코프 체인(Markov chain)으로 정의되며, 조인트 분포는 다음과 같이 분해됩니다:
p θ ( x 0 , x 1 , … , x T ) = p ( x T ) ∏ t = 1 T p θ ( x t − 1 ∣ x t ) 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 θ ( x 0 , x 1 , … , x T ) = p ( x T ) t = 1 ∏ T p θ ( x t − 1 ∣ x t )
여기서:
p ( x T ) = N ( x T ; 0 , I ) p(x_T) = \mathcal{N}(x_T; 0, I) p ( x T ) = N ( x T ; 0 , I ) 는 마지막 latent x T x_T x T 에 대한 사전 분포(prior)입니다.
각 조건부 분포 p θ ( x t − 1 ∣ x t ) p_\theta(x_{t-1} \mid x_t) p θ ( x t − 1 ∣ x t ) 는 Gaussian 분포로 파라미터화되며,
p θ ( x t − 1 ∣ x t ) = N ( x t − 1 ; μ θ ( x t , t ) , Σ θ ( x t , t ) ) p_\theta(x_{t-1} \mid x_t) = \mathcal{N}(x_{t-1}; \mu_\theta(x_t, t), \Sigma_\theta(x_t, t)) p θ ( x t − 1 ∣ x t ) = N ( x t − 1 ; μ θ ( x t , t ) , Σ θ ( x t , t ) )
로 정의됩니다.
해석:
이 분해는 x T x_T x T 를 표준 정규분포에서 샘플링한 후, 각 단계별로 이전 상태 x t − 1 x_{t-1} x t − 1 을 예측하여 최종적으로 x 0 x_0 x 0 를 생성하는 (즉, 노이즈를 제거하는) 과정을 의미합니다.
2. Forward Process
전방 프로세스는 원래 데이터 x 0 x_0 x 0 에서 시작하여 점진적으로 Gaussian 노이즈를 추가하는 과정입니다.
x 0 x_0 x 0 는 주어진(observed) 데이터이므로, 전방 프로세스의 조건부 조인트 분포는 x 0 x_0 x 0 를 조건으로 한 형태로 표현됩니다.
2.1 조건부 체인 룰을 이용한 전개
조건부 분포의 체인 룰에 따르면,
q ( x 1 , x 2 , … , x T ∣ x 0 ) = q ( x 1 ∣ x 0 ) q ( x 2 ∣ x 0 , x 1 ) ⋯ q ( x T ∣ x 0 , x 1 , … , x T − 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}). q ( x 1 , x 2 , … , x T ∣ x 0 ) = q ( x 1 ∣ x 0 ) q ( x 2 ∣ x 0 , x 1 ) ⋯ q ( x T ∣ x 0 , x 1 , … , x T − 1 ) .
여기서 각 항은 "이전의 모든 변수와 x 0 x_0 x 0 "를 조건으로 한 확률입니다.
q ( x 1 , x 2 , … , x T ) q(x_1, x_2, \dots, x_T) q ( x 1 , x 2 , … , x T ) 와 같은 Joint 분포의 Chain rule에 대해서는 q ( x 1 ) q ( x 2 ∣ x 1 ) ⋯ q ( x T ∣ x 1 , … , x T − 1 ) q(x_1) \; q(x_2 \mid x_1) \; \cdots \; q(x_T \mid x_1, \dots, x_{T-1}) q ( x 1 ) q ( x 2 ∣ x 1 ) ⋯ q ( x T ∣ x 1 , … , x T − 1 ) 가 되는 것은 모두가 알지만 x0가 given될때 즉 조건부 joint 분포에 대해서는 어떻게 위의 수식처럼 전개가 되는지 알아보겠습니다.
2.2 조건부 체인 룰의 유도 (Bayes 정리 사용)
우리는 다음과 같이 전방 조인트 분포를 조건부로 나타낼 수 있습니다.
우선, 전체 조인트 분포는 베이즈 정리에 의해
q ( x 0 , x 1 , … , x T ) = q ( x 0 ) q ( x 1 , … , x T ∣ x 0 ) q(x_0, x_1, \dots, x_T) = q(x_0) \, q(x_1, \dots, x_T \mid x_0) q ( x 0 , x 1 , … , x T ) = q ( x 0 ) q ( x 1 , … , x T ∣ x 0 )
로 표현되며, 이를 x 0 x_0 x 0 에 대해 풀면
q ( x 1 , x 2 , … , x T ∣ x 0 ) = q ( x 0 , x 1 , … , x T ) q ( x 0 ) . q(x_1, x_2, \dots, x_T \mid x_0) = \frac{q(x_0, x_1, \dots, x_T)}{q(x_0)}. q ( x 1 , x 2 , … , x T ∣ x 0 ) = q ( x 0 ) q ( x 0 , x 1 , … , x T ) .
체인 룰을 적용하면,
q ( x 0 , x 1 , … , x T ) = q ( x 0 ) q ( x 1 ∣ x 0 ) q ( x 2 ∣ x 0 , x 1 ) ⋯ q ( x T ∣ x 0 , x 1 , … , x T − 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 ( x 0 , x 1 , … , x T ) = q ( x 0 ) q ( x 1 ∣ x 0 ) q ( x 2 ∣ x 0 , x 1 ) ⋯ q ( x T ∣ x 0 , x 1 , … , x T − 1 ) .
따라서,
q ( x 1 , x 2 , … , x T ∣ x 0 ) = q ( x 0 ) q ( x 1 ∣ x 0 ) q ( x 2 ∣ x 0 , x 1 ) ⋯ q ( x T ∣ x 0 , … , x T − 1 ) q ( x 0 ) . 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 ( x 1 , x 2 , … , x T ∣ x 0 ) = q ( x 0 ) q ( x 0 ) q ( x 1 ∣ x 0 ) q ( x 2 ∣ x 0 , x 1 ) ⋯ q ( x T ∣ x 0 , … , x T − 1 ) .
q ( x 0 ) q(x_0) q ( x 0 ) 가 약분되므로 최종적으로 조건부 체인 룰은
q ( x 1 , x 2 , … , x T ∣ x 0 ) = q ( x 1 ∣ x 0 ) q ( x 2 ∣ x 0 , x 1 ) ⋯ q ( x T ∣ x 0 , x 1 , … , x T − 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}) q ( x 1 , x 2 , … , x T ∣ x 0 ) = q ( x 1 ∣ x 0 ) q ( x 2 ∣ x 0 , x 1 ) ⋯ q ( x T ∣ x 0 , x 1 , … , x T − 1 )
가 됩니다.
2.3 Markov 가정 적용
전방 프로세스에서는 Markov 가정을 적용합니다.
즉, 각 단계에서
q ( x t ∣ x 0 , x 1 , … , x t − 1 ) = q ( x t ∣ x t − 1 ) q(x_t \mid x_0, x_1, \dots, x_{t-1}) = q(x_t \mid x_{t-1}) q ( x t ∣ x 0 , x 1 , … , x t − 1 ) = q ( x t ∣ x t − 1 )
가 성립합니다.
x 0 x_0 x 0 는 주어진 데이터이므로, 첫 번째 항은 q ( x 1 ∣ x 0 ) q(x_1 \mid x_0) q ( x 1 ∣ x 0 ) 로 남고, 이후 항들은 오직 바로 이전 변수에만 의존하게 됩니다.
따라서, 전방 프로세스의 조인트 분포는 다음과 같이 단순화됩니다.
q ( x 1 , x 2 , … , x T ∣ x 0 ) = q ( x 1 ∣ x 0 ) ∏ t = 2 T q ( x t ∣ x t − 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 ( x 1 , x 2 , … , x T ∣ x 0 ) = q ( x 1 ∣ x 0 ) t = 2 ∏ T q ( x t ∣ x t − 1 ) .
혹은, 이를 간단히
q ( x 1 , x 2 , … , x T ∣ x 0 ) = ∏ t = 1 T q ( x t ∣ x t − 1 ) q(x_1, x_2, \dots, x_T \mid x_0) = \prod_{t=1}^{T} q(x_t \mid x_{t-1}) q ( x 1 , x 2 , … , x T ∣ x 0 ) = t = 1 ∏ T q ( x t ∣ x t − 1 )
라고 표현할 수 있으며, 여기서 q ( x 1 ∣ x 0 ) q(x_1 \mid x_0) q ( x 1 ∣ x 0 ) 는 t = 1 t=1 t = 1 일 때의 조건부 분포입니다.
2.4 전방 프로세스의 구체적 정의
DDPM 논문에서는 전방 프로세스를 다음과 같이 정의합니다:
q ( x t ∣ x t − 1 ) = N ( x t ; 1 − β t x t − 1 , β t I ) q(x_t \mid x_{t-1}) = \mathcal{N}\Bigl(x_t; \sqrt{1-\beta_t}\, x_{t-1}, \beta_t I\Bigr) q ( x t ∣ x t − 1 ) = N ( x t ; 1 − β t x t − 1 , β t I )
여기서 β t \beta_t β t 는 각 시간 단계에서 추가되는 노이즈의 양(분산)을 나타냅니다.
해석:
데이터 x 0 x_0 x 0 가 주어지면, 첫 번째 조건부 분포 q ( x 1 ∣ x 0 ) q(x_1 \mid x_0) q ( x 1 ∣ x 0 ) 가 정의됩니다. 그리고 Markov 가정에 따라 이후 단계에서는 오직 바로 이전 상태에만 의존하여, 전체 조인트 분포가 각 단계의 확률분포의 곱으로 나타납니다.