본문 바로가기
A.I./생성형 인공지능 공부

오블완 2일차) How diffusion models work: the math from scratch 읽기

by 채소장사 2024. 11. 8.

Awesome-Diffusion-models 레포Introductory Posts에서 How diffusion models work: the math from scratch를 읽고 정리해본다.


Diffusion 모델은 기존의 생성형 모델들과 기본적으로 차이점이 있다. 이미지 생성 과정(샘플링)많은 수의 작은 "노이즈 제거(denoising)" 단계로 분해하는 것을 목표로 한다.
  • 모델은 이러한 작은 단계를 거쳐가면서 스스로를 수정해가고, 점진적으로 좋은 샘플을 생성하게 된다.
    • 하지만 반복적인 단계로 인하여 GAN과 같은 방식과 비교할 때, 샘플링 과정이 느리다는 단점이 있을 수 있다.

Diffusion Process

  • forward process
    • 입력 이미지 $\mathbf{x}_0$에 점차적으로 가우시안 노이즈(Gaussian noise)를 연속된 $T$ 단계에 걸쳐 추가해간다.
      • 이 과정은 학습시킬 신경망이 사용할 타겟을 생성하기 위해 필요하다.
        • $T$보다 작은 $t$ 만큼의 노이즈 추가 단계가 적용된 이미지
    • 신경망은 노이즈 추가 단계를 반대로 진행하여, 원래의 데이터(=원본 이미지)를 복구시키도록 훈련된다.
    • 이처럼 반대과정을 모델링함으로써, (학습된 생성모델을 통해) 새로운 데이터를 생성할 수 있게 된다.
      • 노이즈를 제거하는 단계를 reverse diffusion process라고 부르며, 생성 모델의 샘플링 과정에 해당한다.

Forward diffusion

  • Diffusion models은 잠재 변수 모델(latent variable models)로 볼 수 있다.
    • 숨겨진 연속된 특성 공간을 잠재(latent) (공간)으로 부른다.
    • 이러한 측면에서 diffusion model은 VAE(Variational Auto-Encoder)와 유사하게 생각할 수 있다.
  • Diffusion models은 $T$ 단계의 마르코프 연쇄(Markov chain)로써 표현할 수 있다.
    • 마르코프 연쇄는 각 단계의 상태는 오직 바로 이전 단계에만 의존한다는 가정을 가진다.
  • Diffusion models은 특정한 종류의 신경망을 사용할 수 있는 flow-based 생성모델과 달리, 사용할 수 있는 신경망에 제한을 받지 않는다.
  • 실제 데이터 분포 $q(x)$에서 뽑은 데이터 포인트 $\mathbf{x}_0$에 대해서 생각한다.
    • 이 데이터는 원래의 데이터 확률 분포를 따른다는 의미에서 $\mathbf{x}_0 \sim q(x)$ 로 표시한다.
  • forward diffusion process는 노이즈를 추가하는 과정으로 정의할 수 있다.
    • 특히 마르코프 연쇄의 각 단계에서, 이전 단계의 데이터 $\mathbf{x}_{t-1}$에 분산 $\beta_t$를 가진 가우시안 노이즈(Gaussian Noise)를 추가하여, 조건부 확률분포 $q(\mathbf{x}_t | \mathbf{x}_{t-1})$로부터의 새로운 잠재 변수 $\mathbf{x}_t$를 생성한다.

댓글