Processing math: 100%

상세 컨텐츠

본문 제목

Diffusion Model 정리 (Generative model)

PROGRAMMING/AI

by koharin 2023. 7. 28. 17:04

본문

728x90
반응형

Markov Chain

  • Markov 성질을 갖는 이산 확률 과정
  • Markov 성질: 특정 상태의 확률(t1)은 현재 상태(t)에만 의존한다.
  • 이산 확률 과정: 이산적 시간(0초, 1초, …) 속 확률적 현상

Diffusion model

  • 분류: 생성 모델
  • 학습된 모델의 패턴을 생성
  • 패턴 생성 과정 학습 위해 고의로 패턴을 무너뜨리고(noising)(diffusion process), 이를 다시 복원하는 조건부 PDF를 학습(denoising)(reverse process)
  • 학습 목표: reverse process pΘ(Xt1|Xt)q(Xt1|Xt)로 approximate하도록 학습하는 것

1. forward process (diffusion process) q(xt1|xt)

  • diffusion process: gaussian noise를 점진적으로 추가 (= Conditional Gaussian Distribution)하여 X0를 조건부로 다수의 latent variable(X1, X2, …, XT, X1:T)를 생성하는 과정
  • 샘플 데이터를 가우시안 노이즈로 변환하는 과정
  • 조건부 가우시안 q(Xt|Xt1)의 Markov chain으로 구성
  • βt
    • 가우시안 노이즈 크기
    • 사전적 정의 (scheduling) → Linear schedule, Quad Schedule, Sigmoid Schedule
    • 재파라미터화로 학습하거나 hyperparameter로 상수 취급 가능
  • 사전에 정의된 노이즈에 따라 형성되기 때문에 diffusion 과정은 학습하지 않고도 알 수 있음
  • q(Xt|Xt1) 가 gaussian이면, q(Xt1|Xt) 도 gaussian임이 증명됨
  • Markov chain 과정 → variance schedule β에 따라 점진적으로 Gaussian noise를 데이터에 추가하여 (T 스텝만큼) noise smaple x1,xT 생성
  • 데이터 샘플 x0은 스텝 t가 커짐에 따라 noise가 커지면서 구별할 수 있는 특성을 잃어감

코드: 이전 시점의 x를 받아서 다음 시점의 x를 각 시점의 노이즈 beta_t를 통해 reparameterization trick으로 만듦

 

2. reverse process pΘ(x0:T)

  • diffusion process의 역(reverse) 과정으로, gaussian noise를 제거하면서 패턴 생성
  • 조건부가 바뀐 q(Xt1|Xt) 는 inference 과정에서 활용 불가능
  • 데이터: x0\textasciitildeq(x0)
  • forward process를 reverse하여 q(xt1|xt)를 샘플링하면, Gaussian noise 입력 xT\textasciitilde\Nu(0,I)로부터 true sample 재생성 가능
  • loss: Negative log likelihood를 최대화(데이터에 대한 fitting 최대화)함

 

Training

  • 효과적인 학습은 랜덤인 Lstochastic gradient descent로 최적화하는 것
728x90
반응형

관련글 더보기