상세 컨텐츠

본문 제목

[5주차/임청수/논문리뷰] Denoising Diffusion Probabilistic Model

2023 Summer Session/CV Team 3

by 임청수 2023. 8. 3. 22:30

본문

 

 

작성자 : 17기 임청수

 

0. Diffusion Overview

  •  Diffusion model은 backward process를 통해서 explicit(가우시안)한 분포에서 sampling한 random noise로부터 denoising을 통해 데이터를 만들어내는 생성 방식.
  •  Forward process(=diffusion process)와 backward process(denoising)으로 구성.
  • 이미지에 noise를 주입하는 forward process는 쉽게 정의할 수 있지만, backward process는 정의하기 어려움. 따라서
  • DDPM은 backward process를 diffusion probabilistic model로 학습하는 것을 의미함.
  •  위 그림에서 q는 noise를 더하는 forward process(=diffusion process)이고,
  •  P는 gaussian noise를 원래 이미지로 되돌리는 reverse process를 나타냄.

 

 

1. Forward Process

- Forward process q는 미세한 Gaussian noise를 원본 이미지 에 점차적으로 추가하는 과정을 의미함.
- Noise를 주입하고 제거하는 과정은 큰 변화이기 때문에 한번에 적용하기 어려움. 따라서 T=1000 step으로 변화를 매우 작게 하여 학습을 쉽게 만듦. 이때 Markov Chain으로 표현됨.

1. Markov Chain
정의 : Markov 성질을 갖는 이산 확률과정
Markov 성질 : 특정 상태의 확률(t+1)은 오직 현재t)의 상태에 의존한다. 이산 확률과정 : 이산적인 시간(0초, 1초, 2초 ...) 속에서의 확률적인 현상

 

0시점에서 T시점으로 noise를 주입하고 제거하는 과정에서 1000번의 step으로 나누어 수행하고 이때 Markov chain을 적용

 

 

Markov Chain 수식
  •  Gaussian noise를 서서히 주입하는 과정
  •  Forward process는 조건부 가우시안 의 Markov chain으로 구성됨.
Forward Process 수식

  •  주입되는 gaussian noise의 크기는 사전에 정의되고. 로 표현됨.
  •  따라서 Forward process는 따로 학습할 필요가 없음.

 

 

Forward process 수식2

 

 

 

2. Backward Process

 

  •  Noise로부터 이미지를 복원하는 과정.
  •  q와 반대로 noise를 점진적으로 걷어내는 denoising process를 의미함.
  •  따라서 조건부 확률 q와 time이 반대로 뒤바뀐 p로 표현됨.

 

  •  사전에 정의된 q와는 달리 p는 알기 어렵기 때문에 p_theta로 근사하여 구하고 p_theta는 학습된 모델을 통해 구함.

 

위 식에서 평균과 표준편차는 학습되어야 하는 parameter임.

 

 

 

3. Diffusion Objective Function

- Maximize log likelihood

DDPM은 Loss를 굉장히 간단하게 정의하여 성능을 개선함.

DDPM으로 간단하게 정의된 loss function

4. DDPM Loss

- L_T는 p가 generate하는 noise와 q가 가 주어졌을 때 generate하는 T시점의 noise간의 분포 차이
- DDPM에서는 beta를 학습 가능한 파라미터가 아니라 사전에 정의한 상수로 fix하기 때문에 고려하지 않아도 됨

 

- 이유
1000 step으로 나누고 noise를 linear하게 증가시키도록 linear noise scheduling을 설정할 경우 최종적인 X_T는 isotropic gaussian(원형 대칭) 분포와 매우 유사하게 형성되기 떄문에 굳이 학습 필요 X

 

 

- L_(t-1)는 p와 q의 reverse / forward process의 분포 차이를 의미함. Forward대로 Denoising하기 때문에 두 값이 최대한 비 슷해지는 방향으로 학습을 진행. 총 4가지에 대해서 최적화 진행

 

(1) 표준편차의 상수화


- P의 표준편차는 상수 행렬에 대응함. 따라서 학습 대상이 하나 줄어듦.

 

상수행렬은 beta와 일치한다.

(2) q(x_(t-1)|x_t, x_0)
앞서 정의한 것처럼 표현할 수 있음

 

forward process와 같이 사전 정의된 beta로 정리 가능함.

 

(3) p_theta(x_(t-1)|x_t)

(4) 평균(x_t,t)

증명 : https://jang-inspiration.com/ddpm-2

 

 

(5) sampling

 

 

(6) L_(t-1) 정리

(7) L_simple(theta)

Loss function을 epsilon에 대한 식의 형태로 다시 한 번 표현할 수 있음.
한 형태를 simplified objective function이라 부고 더 효율적인 학습이 가능함.

simplified objective function

 

 

 

 

 

Reference

[blog] : https://process-mining.tistory.com/188

[blog] : https://velog.io/@sjina0722/%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0-Denoising-Diffusion-Probabilistic-Models

[Youtube] : https://www.youtube.com/watch?v=_JQSMhqXw-4 

[paper] : https://arxiv.org/abs/2006.11239

 

 

관련글 더보기

댓글 영역