1주차에서는 Stable Diffusion(스테이블 디퓨전)을 이해하기 위한 이론적 기초를 다지는데 집중합니다. 가능한 한 상세하게, 그리고 핵심 용어는 항상 한국어(영어) 병기하여 설명드리겠습니다.
확산 모델(diffusion model) 이란 무엇인가
본래 물리학(physics)에서의 확산(diffusion) 개념을 차용하여,
데이터에 점진적으로 노이즈(noise)를 추가하여 분포를 파악하고,
다시 그 노이즈를 제거(reverse diffusion)하는 확률적 과정(probabilistic process) 기반의 생성 모델(generative model)입니다.
전통적인 생성 모델인 GAN(Generative Adversarial Network, 적대적 생성 신경망)이나 VAE(Variational Autoencoder, 변분 오토인코더)와는 달리,
직접 확률 분포를 점진적으로 학습한다는 점에서 차별화됩니다.
핵심 아이디어
DDPM(Denoising Diffusion Probabilistic Model)
2020년 Jonathan Ho 등이 제안한, 확산 모델의 대표적 변형입니다.
노이즈 스케줄(noise schedule) 을 설계하여,
각 스텝(timestep)에 따라 노이즈 분산(noise variance)을 조절하고,
네트워크(neural network) 가 그 노이즈를 예측하도록 학습합니다.
수식 요약
Forward:
q(xt∣xt−1)=N(xt;1−βt xt−1, βtI) q(\mathbf{x}t \mid \mathbf{x}{t-1}) = \mathcal{N}(\mathbf{x}t; \sqrt{1 - \beta_t}\,\mathbf{x}{t-1},\;\beta_t \mathbf{I})
Reverse:
pθ(xt−1∣xt)=N(xt−1;μθ(xt,t), Σθ(xt,t)) p_\theta(\mathbf{x}{t-1} \mid \mathbf{x}t) = \mathcal{N}(\mathbf{x}{t-1}; \boldsymbol{\mu}\theta(\mathbf{x}t,t),\,\Sigma\theta(\mathbf{x}_t,t))
Loss:
L=Et,x0,ϵ[∥ϵ−ϵθ(xt,t)∥2] L = \mathbb{E}_{t,\mathbf{x}0,\epsilon}\bigl[\|\epsilon - \epsilon\theta(\mathbf{x}_t,t)\|^2\bigr]
Stable Diffusion 은 DDPM을 잠재 공간(latent space) 상에서 동작하도록 설계한 모델입니다.
이미지 차원(image space)이 아닌, VAE(Variational Autoencoder, 변분 오토인코더)로 인코딩된 낮은 차원의 잠재 벡터(latent vector) 상에서 노이즈 처리하므로,
계산 비용(computational cost)과 메모리 소비(memory footprint)를 크게 줄였습니다.
주요 구성 요소
pytorch-ddpm 예제 레포(repo)를 클론(clone)하여, 노이즈 추가·제거 과정을 시각화하세요.