DDPM: Denoising Diffusion Probabilistic Models
DDPM: Denoising Diffusion Probabilistic Models1. Introduction2. Background2-1. Forward Diffusion Process ()2-2. Reverse Diffusion Process ()2-3. Objective Function ()3. Diffusion models and denoising autoencoders3-1. Objective Function ()3-2. Forward Diffusion Process ()3-3. Reverse Diffusion Process ()4. ExperimentsReferences
1. Introduction
간단히 결론부터 설명하면 DDPM은 주어진 이미지에 time에 따른 상수의 파라미터를 갖는 작은 가우시안 노이즈를 time에 대해 더해나가는데, image가 destroy하게 되면 결국 noise의 형태로 남을것이다. (normal distribution을 따른다.) 이런 상황에서 normal distribution 에 대한 noise가 주어졌을때 어떻게 복원할 것인가에 대한 문제이다. 그래서 주어진 Noise를 통해서 완전히 이미지를 복구가 된다면 image generation하는 것이 된다.
이 논문에서는 diffusion probabilistic models의 과정을 보여준다. diffusion model은 유한한 시간 뒤에 이미지를 생성하는 variational inference을 통해 훈련된 Markov chain을 parameterized한 형태이다. Markov Chain은 이전의 샘플링이 현재 샘플링에 영향을 미치는 형식을 의미한다. 그래서 이 diffusion model에서의 한 방향에 대해서는 주어진 이미지에 작은 gaussian noise를 점진적으로 계속 더해서 완전히 image가 destroy 되게하는 과정을 의미한다.
2. Background
2-1. Forward Diffusion Process ()
우선 주어진 이미지를 이라고 하자. 그럼 서서히 noise를 추가해가는 과정을 라고 해보자. 그럼 에 noise를 적용해서 를 만드는 것을 이라고 표현 할 수 있다. 이를 time t에 대해 general 하게 표현한다면 으로 표현할 수 있다. 이를 forward process(diffusion process)라고 부른다. 이 때 끝까지 가면 즉 완전히 destroy 된 형태가 나온다. 이는 normal distribution 를 따른다. 수식은 이전 post 참고
2-2. Reverse Diffusion Process ()
Reverse process는 이 제목 그대로 와는 반대로 noise를 점진적으로 걷어내는 denoising process이다. 그래서 와는 반대로 time이 뒤바뀐 로 표현이 된다. 이는 자명하다. 주의할 점. 들은 서로 resolution이 같다. 수식은 이전 post 참고
2-3. Objective Function ()
이제 이 모델의 목적을 생각을 해보면, 결국 주어진 noise에 대해 어떻게 noise를 점진적으로 걷어낼 것이냐의 문제이기 때문에, 우리는 그 방법을 위의 를 통해서 해결 할 것이다.
가 들어왔을 때 을 예측할 수 있게 된다면, 우리는 또한 예측할 수 있다.
그리고 그 과정은 mean과 variance를 파라미터를 갖는 Gaussian에 대해 이루어진다. Generative model인 만큼 생성된 이미지의 log likelihood를 최대화하면 되는데, (data distribution에 알맞은 이미지인가에 대한 측도) 이를 논문에서는 negative log likelihood로 최소화하는 방안으로 표기한다.
Loss Function
수식에 의해 Variational bound는 우항과 같이 나오고 이를 풀어내면
와 같은 결과가 나온다.
특이한 점은 forward process의 posterior와 reverse process를 KL Divergence를 통해 직접 비교한다는 것이다. 생각해보면 forward process에 대한 정보를 가지고 있고 forward process의 posterior는 reverse process와 연관이 깊은 형태이기 때문에 tractable하다.
잠깐 posterior(사후확률)의 의미를 알아보고 가자
1. Posterior
말 그대로 사후확률입니다. 반대로 prior(사전확률)이 있고, 비교하는 것은 liklihood(우도)가 있죠.
커튼에 비친 형상을 관찰할 수 있다고 합니다. 이 때, 두 가지 경우를 생각 할 수 있습니다.
P(형상|철수), P(철수|형상)
실제로 우리가 알고 싶은 것은 P(철수|형상) 입니다.
또한, 이를 사후확률, posterior라고 부릅니다. 근데 실제로 이 확률은 우리가 알 수 없어요. variational inference나 이를 사용하는 다른 방법론에서도
확률을 구하는 것에 초점을 맞추는 것보다는 근사하는 방법을 택하죠.
그래서 우리는 근사할때 P(형상|철수)를 씁니다. 또한, 이를 liklihood(우도)라고 부를 수 있습니다.
- 형상이 철수일 수 있다는 확률은 직관적으로 이해가 될 수 있는데, 후자는 그러지 않을 수 있어요.
- P(형상|철수)의 의미는 철수가 여러가지 형상을 가질 수 있는데, 동물 형상, 사람 형상, 비행기 형상 등등.
- 이러한 형상들 중, 커튼에 비쳐져 있는 형상일 확률을 뜻하는 겁니다.
따라서, 사후확률은 우리가 잘아는 베이즈 정리로 근사할 수 있습니다.
흔히 말하는 조건부확률과 모양이 비슷하죠? 네 동일합니다. 똑같다고 생각하셔도 문제될게 없습니다.
여기서 그치지 않고, 대게 내가 구하고 싶은 값을 근사하기 위해 여기서 한번 더 변형시켜주게 됩니다.
분모에 해당하는 P(형상)의 값은 분자에 무엇이 오던간에 변하지 않는 상수에 해당하게 됩니다,
결국,
이와 같은 형식으로 근사하게 되고, 이를 수학적 표현을 이용하여 좀 더 멋지게 표현하면..
가 됩니다!
위의 식에서도 구할 수 있듯이, P(철수), P(영희)와 같은 우리가 이미 알고 있고 정의된 확률을 Prior(사전 확률)이라고 합니다.
따라서, 베이지안 확률은 posterior를 liklihood와 prior를 활용해 구해주는 방법이라고 할 수 있겠습니다.
☞ likelihood: p(z|x), 어떤 모델에서 해당 데이터(관측값)이 나올 확률
☞ 사전확률(prior probability): p(x), 관측자가 관측을 하기 전에 시스템 또는 모델에 대해 가지고 있는 선험적 확률. 예를 들어, 남여의 구성비를 나타내는 p(남자), p(여자) 등이 사전확률에 해당한다.
☞ 사후확률(posterior probability): p(x|z), 사건이 발생한 후(관측이 진행된 후) 그 사건이 특정 모델에서 발생했을 확률
그럼 위의 Variational bound에 대해 생각해보자.
3. Diffusion models and denoising autoencoders
3-1. Objective Function ()
- 여기서 가장 중요한 term은 이다. 우리는 부터 시작하여 conditional하게 식을 전개하다보면, tractable한 forward process posterior 의 정규분포를 알 수 있는데, 이를 바탕으로 KL divergence를 계산하면 우리가 결과적으로 학습하고자 하는 를 학습시킬 수 있다.
3-2. Forward Diffusion Process ()
- Objective Function의 첫번째 term
- 논문에서는 forward process variances인 를 learnable한 파라미터로 두는게 아니라 상수로서 Fix하기 때문에 는 고려를 하지 않아도 된다.
- 이유
- DDPM에서의 forward process는 가 항상 gaussian distribution을 따르도록 하기 때문에 사실상 tractable한 distribution, 는 prior 와 거의 유사하다. 또한, DDPM에서는 forward process variance를 constant로 고정시킨 후 approximate posterior를 정의하기 때문에 이 posterior에는 learnable parameter가 없다.
- 따라서 이 loss term은 항상 0에 가까운 상수이며, 학습과정에서 무시된다.
3-3. Reverse Diffusion Process ()
- Objective Function의 두번째 term
- 이를 계산하기 위해서 첫 번째로 의 분포를 알아내고, 두 번째로 를 알아내기 위해 와 를 알아내야 한다. 이를 순서대로 하나씩 살펴보겠다.
- (1)
이는 우리가 기존 diffusion model에서 알아보았던 것처럼 다음과 같은 형태로 정의할 수 있다.
- (2)
이는 우리가 기존 diffusion model에서 알아보았던 것처럼 다음과 같은 형태로 정의할 수 있다.
- (3)
다음으로, 의 표준편차는 라는 상수 행렬로 정의한다. 그러므로 이에 대해서는 학습이 필요하지 않다.
(를 로 표현하는게 맞지만 로 사용해도 무방)
- (4)
마지막으로 의 평균 는 다음과 같이 정의한다.
증명
- (5) Sampling
이렇게 위 과정을 통해서 를 얻어내면, 이를 활용해서 우리는 로 부터 을 샘플링할 수 있다. 이 과정은 다음과 같은 알고리즘으로 표현할 수 있다.
- (6)
아래 식을 보면 expectation의 기준이 q에서 , 으로 달라지는데, forward process에 있어서 어떤 time에 대한 Gaussian Distribution이 time과 만 주어진다면 reparameterize를 통해 표현할 수 있기 때문에 이렇게 표현하는 것은 자연스럽다.
- (7)
그리고 마지막으로, 우리는 위의 loss function을 epsilon에 대한 식의 형태로 다시 한 번 표현할 수 있다. 이를 simplified objective function이라고 부르고, 이러한 loss function을 통해 training을 하면 학습이 좀 더 잘 된다는 것을 확인할 수 있다.
아래와 같은 simplified objective을 통해 diffusion process를 학습하면 매우 작은 t 에서뿐만 아니라 큰 t에 대해서도 network 학습이 가능하기 때문에 매우 효과적이라고 한다.
- (8) Training
결론적으로, DDPM의 training 과정을 몇 줄의 알고리즘으로 요약하면, 다음과 같다.
- (9)
마지막으로, loss function의 마지막 구성 요소인 에 대해 알아보자. 이는 그냥 간단한 두 normal 분포 사이의 KL divergence이기 때문에 다음과 같은 간단한 형태로 표현할 수 있다.
4. Experiments
DDPM논문의 핵심은 reverse process의 을 예쁜 형태로 다시 정의한 것에 있다. 이렇게 forward diffusion process와 reverse diffusion process를 정의하여 generative 모델을 구성하고, 이들로부터 사진 데이터를 만들어보면, 좋은 퀄리티의 사진을 만들어 냄을 알 수 있다.
References
- Ho, J., Jain, A., & Abbeel, P. (2020). Denoising diffusion probabilistic models. Advances in Neural Information Processing Systems, 33, 6840-6851.