What — Forward Process란?
- Forward Process(전방 과정)는 원본 이미지 x_0에 가우시안 노이즈를 T번 점진적으로 더해, 최종적으로 순수 노이즈 x_T \sim \mathcal{N}(0, I)로 만드는 과정
- 각 스텝 t에서의 변환은 마르코프 체인(Markov Chain)으로, 오직 직전 상태 x_{t-1}에만 의존한다 (Ho et al., 2020)
- 학습이 필요 없는 고정된 과정이며, 역방향(Reverse Process)을 학습시키기 위한 '정답지' 역할을 한다
Why — 왜 노이즈를 점진적으로 추가하는가?
- 한 번에 노이즈를 추가하면, 모델이 역으로 복원할 수 있는 단서가 전혀 남지 않음
- 아주 작은 노이즈를 여러 번 더하면, 각 스텝의 변화가 미세 → 역방향에서 "한 스텝 전 상태"를 추정하기 쉬워짐
- 비유: 깨끗한 칠판 위에 분필 가루를 한 줌씩 뿌리는 것. 첫 몇 번은 글씨가 보이고, 수십 번 뿌리면 완전히 가려짐
How — 한 스텝의 수학적 정의
- 노이즈 스케줄 \beta_t (보통 \beta_1 = 10^{-4}, \beta_T = 0.02로 선형 증가)
- 한 스텝 전이 분포:
q(x_t | x_{t-1}) = \mathcal{N}(x_t;\ \sqrt{1 - \beta_t}\, x_{t-1},\ \beta_t I)
- \sqrt{1 - \beta_t}: 원본 신호를 약간 줄이는 스케일링 계수
- \beta_t: 추가되는 노이즈의 분산 — t가 커질수록 노이즈 비중 증가
How — 임의 시점으로의 점프 (Closed-Form)
- \alpha_t = 1 - \beta_t, 누적곱 \bar{\alpha}_t = \prod_{s=1}^{t} \alpha_s 로 정의하면
- t=0에서 t까지 중간 스텝을 거치지 않고 한 번에 계산 가능:
q(x_t | x_0) = \mathcal{N}(x_t;\ \sqrt{\bar{\alpha}_t}\, x_0,\ (1 - \bar{\alpha}_t) I)
- 재매개변수화(Reparameterization): \epsilon \sim \mathcal{N}(0, I)를 샘플링하면
x_t = \sqrt{\bar{\alpha}_t}\, x_0 + \sqrt{1 - \bar{\alpha}_t}\, \epsilon
- 이 식 덕분에 학습 시 임의의 t를 뽑아 즉시 x_t를 만들 수 있어 효율적 (Sohl-Dickstein et al., 2015)
시각화 — Forward Process 진행 다이어그램
[여기에 다이어그램]
다이어그램 구성:
- 가로축: 시간 스텝 $t = 0, 1, 2, \ldots, T$
- 상단 행: 이미지가 점점 흐려지는 과정을 5단계로 표현
- t=0: 선명한 고양이 이미지 (원본 x_0)
- t=250: 윤곽은 보이나 디테일 손실
- t=500: 형체가 희미하게 남음
- t=750: 거의 노이즈, 실루엣만 약간
- t=1000: 순수 가우시안 노이즈 $x_T$
- 각 이미지 사이에 화살표, 화살표 위에 q(x_t | x_{t-1}) 표기
- 하단 그래프: \bar{\alpha}_t 값의 감소 곡선
- t=0에서 \bar{\alpha}_0 \approx 1 (신호 100%)
- t=T에서 \bar{\alpha}_T \approx 0 (신호 0%, 노이즈 100%)
- 곡선 아래 영역을 '신호 비율', 위 영역을 '노이즈 비율'로 색 구분
- 우측에 핵심 수식 x_t = \sqrt{\bar{\alpha}_t} x_0 + \sqrt{1-\bar{\alpha}_t} \epsilon 박스
신호 대 노이즈 비율 (SNR) 관점
- $\text{SNR}(t) = \frac{\bar{\alpha}_t}{1 - \bar{\alpha}_t}$
- t가 작을 때: SNR 높음 → 원본 신호가 지배적
- t가 클 때: SNR 낮음 → 노이즈가 지배적
- Kingma et al. (2021)은 노이즈 스케줄을 SNR 관점에서 재정의하여 다양한 스케줄을 통합 비교
Latent Diffusion에서의 Forward Process
- Stable Diffusion은 픽셀 공간이 아닌 VAE 잠재 공간에서 Forward Process 수행 (Rombach et al., 2022)
- 원본 이미지 → VAE Encoder → 잠재 벡터 z_0 → 여기에 노이즈 추가
- 512×512 이미지가 64×64×4 잠재 공간으로 압축 → 연산량 약 48배 감소
- Forward Process 수식 자체는 동일: $z_t = \sqrt{\bar{\alpha}_t} z_0 + \sqrt{1-\bar{\alpha}_t} \epsilon$