https://cheerplay.tistory.com/27
[Generation] Diffusion Model의 이해 (DPM, DDPM)
0. 확산 확률 모델 (Diffusion Probabilistic Model, DPM, 2015)목표: 확산 모델은 노이즈가 추가된 상태에서 역방향으로 진행하여 노이즈를 제거하면서 원본 데이터 x_0을 복원하는 것이다. 이 과정은 X_T부
cheerplay.tistory.com
0. DDPM 한계점
- 느린 생성 과정 : 5만 개의 32 x 32 크기 이미지 생성을 위해 20시간이 필요
- 조건부 생성 불가 : DDPM은 Unconditional 모델이다.
- 품질-다양성 조절 불가
1. DDIM (Denoising Diffusion Implicit Model, 2021)
- DDPM의 T=1000 보다 적은 시점을 거쳐서 데이터를 생성하고 싶다.
- DDPM과 같은 손실 함수를 가지며, 생성 속도만 빠르게 할 수 있는 방법이다.
- DDPM은 마르코프 체인(Markov chain)의 가정을 두고 있다. 이는 현 상태는 직전 상태에만 영향을 받기 때문에 즉, DDPM에서는 T=1000 시점을 다 거쳐야지 데이터를 생성할 수밖에 없다는 것이다. 따라서 이 마르코프 체인을 없애야지 우리가 원하는 생성 속도를 빠르게 가져갈 수 있다.
- 식 (1)을 보면 샘플링 과정에서 마르코프 체인이 등장하는 것을 알 수 있다. 즉 x_t만 의존해서 x_t-1을 구하니 식을 보고 마르코프 가정을 거친다고 확인할 수 있다.
- DDIM에서는 이 마르코프 가정하지 않는 모델을 정의하여 직전 시점에만 의존하지 않고 일부 시점만 거쳐도 데이터를 생성 가능하도록 하는 것이 목적이다 -> 생성 속도 개선
- x_1을 생성 시 x_2로부터 오는 게 아니라 x_3에서 와도 되도록 한다. 따라서 T=1000을 거치지 않고 생략하여 생성속도를 10배 50배씩 더욱더 빠르게 할 수 있다.
- 학습은 DDPM처럼 하지만 마르코프 가정을 제거함으로 써 빠른 sampling을 원한다. 그러기 위해 DDPM이 활용하는 중요 특성 - 식(2)을 만족해야 한다.
- 노이즈가 점진적으로 추가되면서도 데이터와 노이즈의 결합이 정규분포를 유지하기 때문에, x_t의 분포가 정규분포로 남아 있는 상태에서 표준편차를 조절하여 샘플링할 수 있어야 하므로 이 특성을 만족하는 것이 중요하다.
2. DDIM의 생성 과정
- 식(3) 은 DDIM은 x_t-1을 구하는데, x_t만 있는 게 아니라 x_0까지도 영향을 미치기 때문에 더 이상 마르코프 가정을 만족하지 않는다.
- (4) : (3)에서 노이즈 ϵ은 (2)로부터 노이즈에 대해 정리된 식을 사용한다. 즉 DDPM이 활용하는 특성을 유지한다.
- DDIM에서는 (5)를 이용해 x_t-1을 x_t에서 생성할 수 있다.
- (5): 여기서 "predicted x_0" 부분은 (6)으로부터 나온 식이다.
- 전개를 해보면, ϵ을 그냥 쓸 수도 있지만, 우리 모델로 학습해서 추정한 ϵ_θ을 써야 생성하는 과정이 된다.
- (5)에 대해 정리하면 첫 번째 항 x_t-1을 만들 때 x_t에서 x_0을 예측한 부분에, 두 번째 항은 x_0에 일정량 noise를 더하여 x_t-1을 만든다. 마지막 항은 랜덤성을 더해준다.
3. DDIM의 영상 생성
- 하늘색 라인이 DDIM인데 T를 적게 가져가도 충분히 성능이 좋다는 지표를 보여준다.
- dim()가 클수록 샘플의 품질이 좋아지지만 더 많은 계산이 필요하다.
4. Denoising Diffusion GANs (2022)
- Diffusion 모델은 아주 작은 정규를 활용해서 정방향, 역방향 모두가 잘 정의되도록 한 것인데, 여기서 각 step을 매우 크게 가져갈 수 있으면 샘플링의 속도가 아주 빠르지만, 아주 복잡한 분포로 바뀌기 때문에 조건부 GAN을 활용하여 복잡한 디노이징 분포를 학습한다.
- 즉, 아래 그림에서 노란색 분포는 1 step을 거쳤기 때문에 정규분포처럼 생겼지만, 빨간색 분포를 보면 여러 step을 건너뛰어서 정규분포가 아니기 때문에 이 확률 분포는 쉽게 샘플링할 수가 없다. 따라서 조건부 GAN을 활용하여 이 노이즈 분포를 추정할 수 있다면 훨씬 더 빠르게 샘플 할 수 있다
- 적대적 학습으로 t시점의 데이터 x_t가 주어졌을 때 t-1 시점의 데이터 x_t-1의 분포를 학습한다.
reference
https://arxiv.org/pdf/2010.02502
https://arxiv.org/pdf/2112.07804
'DL' 카테고리의 다른 글
Transformer 이해하기 (0) | 2024.09.23 |
---|---|
Attention 이해하기 (1) | 2024.09.17 |
[Generation] Diffusion Model의 이해 (DPM, DDPM) (2) | 2024.08.25 |
[Generation] Generative Adversarial Network (GAN) (1) | 2024.08.20 |
[Generation] Variational Autoencoder (VAE) (0) | 2024.08.18 |