[PDF] , Generative Model, Jascha Sohl-Dickstein, Eric A. Weiss, Niru Maheswaranathan, Surya Ganguli (Stanford, ICML 2015)
Summary
Diffusion model의 원조 논문이다. 비평형 통계물리학(non-equilibrium statistical physics)의 아이디어를 가져와서, 데이터 분포를 Markov chain으로 천천히 파괴(forward diffusion) 한 다음 그 역과정(reverse diffusion)을 신경망으로 학습하면 임의의 복잡한 분포도 tractable 하게 모델링할 수 있다는 프레임워크를 처음 제시했다.
- forward process를 아주 작은 step으로 쪼개면, 각 step의 reverse도 forward와 같은 함수 형태(Gaussian이면 Gaussian)를 가진다는 것이 핵심 관찰이다. 그래서 reverse의 (평균, 공분산)만 신경망으로 추정하면 된다.
- 학습은 log likelihood의 lower bound 를 최대화하는 것으로 하고, 이 bound가 forward posterior와 reverse 사이의 KL divergence 합으로 정리된다는 것을 유도한다. (이 유도가 5년 뒤 DDPM의 그대로다)
- 학습된 분포에 다른 분포 를 곱하는 연산(posterior 계산)이 쉽다는 것도 보이는데, 이것이 나중에 classifier guidance의 수학적 원형이 된다.
2015년 당시에는 MNIST/CIFAR-10 수준의 실험으로 끝났고 주목을 못 받다가, 2020년 DDPM[2]이 이 프레임워크를 다듬어서 고품질 이미지 생성에 성공하면서 다시 발굴된 논문이다. 계보를 따라가려면 이 논문 → DDPM 계열 정리 + Diffusion Models Beat GANs 리뷰 순서로 읽는 것을 추천.
[1] Abstract & Introduction
Abstract
-
머신러닝에서 가장 중요한 문제는 learning, sampling, inference, evalution에서 계산하기 쉬운 유연하고 친숙한 확률분포를 사용해서 복잡한 데이터셋을 모델링하는 것과 관련이 깊다.
-
다루기쉬우면서 동시에 유연한 접근법을 개발했다. 가장 중요한 아이디어는 non-equilibrium statistical physical로 부터 영감을 받았다. 이 아이디어는 반복적인 forward diffusion process를 통해 전체적인 데이터 분포 구조를 천천히 파괴한다.
-
그런 이후 매우 유연하고 다루기 쉬운 데이터의 generative model을 생성하기 위해 데이터에 저장된 구조인 reverse diffusion process를 학습한다.
-
이 접근 방식을 통해 수천 개의 계층 또는 시간 단계가 있는 심층 생성 모델에서 확률을 빠르게 학습, 샘플링 및 평가할 수 있을 뿐만 아니라 학습된 모델에서 조건부 및 사후 확률을 계산할 수 있습니다.
Introduction
-
확률 모델은 tractability, flexibilty의 2개의 상반된 목표로 부터 고통받았다. tractable한 모델은 데이터를 쉽게 학습하지만 이러한 모델은 풍부한 데이터셋에서 전체 구조를 적절하게 묘사하는 것은 불가능하다.
-
반면에 flexible한 모델은 arbitrary한 data에 잘 학습된다. 예를들어 모델을 어떤 non-negative한 flexible distribution 로 부터 추출된 함수 로도 정의가 가능하다. 여기서 는 normalization constant이다.
- 하지만 이러한 normalization constant는 일반적으로 매우 다루기 어렵다(intractable).
- 이런 flexible model로 evaluating, trainging, drawing sample을 하는건 매우 많은 비용을 요구하는 Monte Carlo process를 필요로 한다.
-
분석적인 근사법의 다양성은 이런 제거하지 못하는 trade-off를 개선하기 위해 존재하는데 예를들어 mean field theory and its expansions (T. 1982; Tanaka, 1998), variational Bayes(Jordan et al., 1999), constrasive divergence(Welling & Hinton, 2002; Hinton, 2002), minimum probability flow(Sohl-Dickstein et al. 2011b;a), minimum KL-constraction (Lyu, 2011), proper scoring rules (Gneiting & Raftery, 2007; Parry et al., 2012), score matching( Hyvarinen, 2005) psedolikelihood(Besag, 1975), loopy belief propagation(Murphy et al. 1999) 등 많고 Non-parametric methods (Gershman & Blei, 2012) 역시 매우 효과적이다.
1.1 Diffusion probabilistic models
-
다음을 따르는 probabilistic model를 정의하는 뛰어난 방법을 제안한다.
- extreme flexibility in model structure
- exact sampling
- posterior를 계산하기 위해 다른 확률 분포 끼리 쉬운 곱셈
- the model log likelihood와 the probability of individual states를 평가하기 매우 쉬움
-
이 방법은 Markov chain을 사용해서 점진적으로 어떤 분포로부터 다른 분포로 변환하는 것이다. 이 방법은 non-equilibrium statistical physics(Harzynski, 1997)와 sequential Monte Carlo (Neal, 2001)에서 사용되었다.
-
diffusion process를 사용해서 잘 알려진 단순한 분포에서 (예를들어 Gaussian) target data 분포로 변환하는 generative Markov chain을 만든다.
-
다르게 정의된 모델을 대략적으로 평가하기 위해 이 Markov chain을 사용하는 대신 확률 모델을 Markov chain의 끝점으로 명시적으로 정의한다.
-
diffusion chain에서 각 단계는 analytically evaluable probability을 가지고 있기 때문에 full-chain 역시 analytically evaluable이다.
- 이 framework에서 학습하는 것은 diffusion process에서 작은 방해(perturbations) Noise을 추정하는 것과 관련있다.
- small perturbation을 추정하는 것은 single, non-analytically-normalizable의 가능성을 내포한 함수의 전체 확률을 추정하는 것보다 더 다루기 쉽다.
- 게다가 diffusion process은 any smooth target distribution을 목적으로 하기 때문에 어떠한 arbitrary한 형태의 data distribution도 정확히 담아낼수 있다.
- 이런 diffusion probabilistic model의 유용함을 보이기 위해 2차원의 스위스 롤 형태, binary sequence, MNIST를 위한 log likelihood 모델을 학습해보았다.
1.2 Relationship to other work
- The wake-sleep 알고리즘(Hinton, 1995; Dayan et al., 1995)은 각각 서로 대응되는 추론 확률 모델과 생성 확률 모델을 학습하는 방법을 제시했다.
- 이 접근법은 간간히 작은 연구들은(Sminchisescu et al. 2006; Kavukcuoglu et al., 2010) 있었지만 거의 20년동안 크게 연구되고 있지 않은채 남아 있었다.
- 최근에 이 방법을 개발하는데 많은 연구가 진행되고 있다.
- (Kingma &Welling, 2013; Gregor et al., 2013; Rezende et al., 2014; Ozair & Bengio, 2014) variational learning 및 inference 알고리즘은 잠재 변수(latent variable)에 대한 유연한 생성 모델 및 사후 분포를 서로에 대해 직접 훈련할 수 있도록 개발되었습니다.
-
이러한 논문들의 variational bound은 우리의 training objective에서 사용된 것과 유사하거나 더 이전의 연구된 것(Sminchisescu et al., 2006)과 유사하다.
-
하지만 우리의 motivation과 model 형태 둘다 다르고 현재의 연구들은 다음의 이러한 technique와 관련된 차이점과 이점을 채택하고 있다.
- 우리는 변형 베이지안 방법이 아닌 물리학, quasi-static process 및 annealed importance sampling의 아이디어를 사용하여 프레임워크를 개발합니다.
- 서로 다른 확률 분포와 학습된 분포의 곱셈이 얼마나 쉽게 수행되는지 보인다.(사후 확률을 계산하기 위해 조건부 확률과의 곱셈)
- inference와 generative model간의 objective에서의 불균형 때문에 varaiational inference method에서 특히 infernece model을 학습하는 것이 어렴다는 것을 설명한다.
- 몇개 안되는 layer를 다루기 보다 수천개의 layer를 가진 모델을 학습한다.
- 각 layer에서 entropy production의 하한 상한 경계선을 준다.
-
물리학 쪽 관련 아이디어로는 Jarzynski equality(Jarzynski, 1997)가 있다. 머신러닝에서는 Annealed Importance Sampling(AIS)(Neal, 2001)로 알려져 있는데, 중간 분포들의 sequence를 거쳐가며 importance weight를 곱해나가면 두 분포 사이의 ratio(물리에서는 자유에너지 차이)를 계산할 수 있다는 내용이다. 아래 2.3에서 model probability를 계산하는 트릭이 정확히 이 구조다.
-
그 외에도 Langevin dynamics(Neal, 2011), score matching과 denoising autoencoder의 관계(Vincent, 2011), Kolmogorov forward/backward equation 등과 연결된다. 특히 denoising autoencoder를 무한히 쌓은 것으로 해석할 수 있다는 점이 이후 연구(DDPM의 예측)로 이어지는 포인트다.
[2] Algorithm
표기법: 논문은 timestep을 위첨자로 쓴다. 가 원본 데이터, 가 완전히 파괴된 노이즈다. (DDPM 표기로는 에 대응)
2.1 Forward Trajectory
- 데이터 분포 를 Markov diffusion kernel 를 반복 적용해서 analytically tractable한 분포 로 점진적으로 변환한다.
- 는 step 에서의 diffusion rate이다. 논문은 Gaussian과 Binomial 두 종류의 kernel로 실험한다.
| Gaussian (연속 데이터) | Binomial (이진 데이터) | |
|---|---|---|
- Gaussian kernel이 바로 DDPM의 forward 그 식이다. 로 수축시키면서 만큼 노이즈를 넣으면 분산이 1로 유지되면서 에서 로 수렴한다.
2.2 Reverse Trajectory
- 생성 모델은 같은 궤적을 역방향으로 되짚는 Markov chain으로 정의된다. 시작점은 tractable한 다.
- 이 논문의 핵심 관찰: continuous diffusion에서 가 충분히 작으면(step을 잘게 쪼개면),
reverse kernel도 forward kernel과 동일한 함수 형태를 가진다. (Feller, 1949)
- forward가 Gaussian이면 reverse도 Gaussian, forward가 binomial이면 reverse도 binomial.
- step이 클수록 reverse는 복잡한 multimodal 분포가 되지만, 잘게 쪼개면 단순한 unimodal로 근사 가능하다는 것.
- 그래서 학습해야 할 것은 각 step의 Gaussian의 평균과 공분산 (binomial이면 bit flip 확률) 뿐이다.
- 를 신경망(아래 [3]에서 구조 설명)으로 추정한다. 이 두 함수를 정의하는 것이 알고리즘의 전부고, 계산 비용도 이 함수들의 비용 × 가 전부다.
2.3 Model Probability
- 생성 모델이 데이터에 주는 확률은 중간 궤적을 전부 적분(marginalize)해야 해서 그대로는 intractable 하다.
- 여기서 annealed importance sampling / Jarzynski equality 트릭을 쓴다. forward 궤적 를 곱하고 나누면, forward에서 샘플링한 궤적 하나로 평가 가능한 기대값 형태가 된다.
- 즉 forward로 노이즈를 입혀보면서 각 step에서 reverse/forward 확률 비율만 곱해나가면 된다. 가 작으면 forward와 reverse가 거의 같은 분포라 이 비율이 1에 가깝고, single sample로도 평가가 잘 된다 (quasi-static process에 대응).
2.4 Training — Lower Bound 유도
- 학습은 log likelihood를 최대화하는 것인데, 위 식에 Jensen’s inequality를 적용하면 lower bound 가 나온다.
- 그리고 이 는 (Sohl-Dickstein 논문 Appendix B에서) KL divergence와 entropy들의 합으로 정리된다.
lower bound K 전체 유도 (Jensen → Bayes 뒤집기 → entropy 정리) 펼치기/접기
- Step 1 — Jensen’s inequality. 2.3의 식을 로그 안에 넣고 기대값을 밖으로 꺼낸다.
- Step 2 — 항 분리와 Bayes 뒤집기. 곱을 풀고, 의 forward 항을 posterior로 뒤집는다. (Markov 성질 때문에 를 조건에 추가해도 같다)
- 대입하면 부분이 telescoping으로 연쇄 약분되어 만 남는다.
-
Step 3 — KL과 entropy로 정리. 기대값 안의 각 항을 모으면
- 항 →
- →
- → (부호 주의)
- → : reverse 시작 분포가 로 고정이라 학습과 무관한 상수
- ( 항은 논문에서 edge effect로 처리, DDPM의 에 대응)
-
결국 학습으로 줄일 수 있는 것은 KL 항들 뿐이고, 이는 “각 step에서 reverse 가 forward posterior 를 얼마나 잘 흉내내는가”이다. forward posterior 는 Gaussian으로 정확히 계산되므로 (유도는 Diffusion Models Beat GANs 리뷰의 2.2 접기 참고) 두 Gaussian 사이의 KL → closed form으로 학습이 된다. 이 구조가 DDPM의 와 완전히 동일하다.
- forward와 reverse가 정확히 일치하는 quasi-static 극한에서 등호가 성립한다(). 즉 를 잘게 쪼갤수록 bound가 tight 해진다.
2.5 Diffusion Rate 설정
- forward의 스케줄은 성능에 중요하다. (AIS나 열역학에서도 중간 분포 스케줄이 결과 품질을 좌우하는 것과 동일)
- Gaussian: 를 에 대한 gradient ascent로 직접 학습한다.
- 단 은 overfitting 방지를 위해 작은 상수로 고정하고,
- 에 대한 미분이 잘 흐르도록 sampling 시 frozen noise를 사용한다 (VAE의 reparameterization trick과 같은 아이디어).
- Binomial: 매 step 원본 신호의 씩을 지우는 schedule 을 사용한다.
- 참고로 DDPM은 이걸 학습하지 않고 linear schedule 상수로 고정했고, IDDPM에서 cosine schedule로 개선한다.
2.6 학습된 분포에 다른 분포 곱하기 (→ classifier guidance의 원형)
- inpainting이나 denoising을 하려면 모델 분포 에 다른 분포 (관측된 픽셀 고정, 노이즈 모델 등)를 곱한 새로운 분포 에서 샘플링해야 한다.
- 보통의 생성 모델에서 이건 매우 어려운 일인데, diffusion은 각 step에 을 끼워넣는 것으로 해결된다. 각 timestep의 분포를 로 정의하면 reverse kernel만 수정하면 된다.
r(x)가 완만할 때 perturbed Gaussian이 되는 증명 펼치기/접기
- 이 reverse kernel의 분산 대비 충분히 완만(smooth)하면, Gaussian 평균 근처에서 1차 Taylor 전개가 가능하다.
- reverse kernel 의 log density와 더하고 완전제곱식으로 정리하면 (전개 과정은 Diffusion Models Beat GANs 리뷰의 Perturbed Gaussian 증명과 완전히 동일)
- 즉 평균만 방향으로 shift 하면 된다.
- 2021년 ADM의 classifier guidance는 로 둔 정확히 이 정리의 응용이다. 6년 전에 수학은 이미 다 준비되어 있었던 셈.
- 가 완만하지 않은 경우(예: inpainting에서 관측 픽셀을 delta로 고정)에도, 관측 픽셀을 매 step 강제로 세팅하는 방식으로 정확히 처리 가능하다. 논문의 inpainting 실험이 이 방식이다.
2.7 Entropy 상한/하한
- forward process가 알려져 있으므로 각 step의 조건부 entropy에 대한 analytic한 상한/하한을 줄 수 있고, 이걸로 log likelihood 자체의 상한/하한도 계산할 수 있다.
- 상한/하한 모두 의 알려진 Gaussian들로만 구성되어 있어서 계산 가능하다. (유도는 논문 Appendix A)
[3] Model Architecture — 네트워크 뜯어보기
reverse kernel의 , 를 어떻게 만들었는지. (논문 Appendix D) 요즘 UNet 기반 diffusion과 비교하면 소박하지만 구조적 아이디어는 이미 다 들어있다.
- Multi-scale convolutional network: 이미지 실험에서는 conv layer들을 여러 scale에서 병렬로 돌린다.
- 각 scale branch는
mean pooling으로 downsample → conv → upsample(복제)구조로, 넓은 receptive field를 싸게 확보한다. - 지금 UNet의 down/up path가 하는 역할을 단순화한 형태라고 보면 된다.
- 각 scale branch는
- Readout head 분리: 공통 feature를 뽑은 뒤 용, 용 head를 따로 둔다.
- 출력은 sigmoid를 거쳐 근처에서 안정적으로 파라미터화한다. (분산이 음수가 되거나 폭주하는 것 방지)
- Timestep 의존성: 마다 네트워크를 따로 두는 게 아니라, 시간축 basis function(bump function)들의
선형결합으로 readout weight가 에 따라 부드럽게 변하게 한다.
- 형태 (는 soft한 시간 bump).
- 지금의 sinusoidal timestep embedding + MLP 주입과 같은 문제(“하나의 네트워크로 모든 를 처리”)를 푸는 2015년식 해법이다.
- 이미지가 아닌 저차원 실험(swiss roll 등)에서는 그냥 MLP(radial basis 포함)를 쓴다.
[4] Experiments
- 다양한 종류의 데이터로 프레임워크의 범용성을 보인다. 전부 같은 알고리즘으로 학습된다.
- Swiss roll (2D toy): forward가 나선 구조를 서서히 지워 Gaussian이 되고, 학습된 reverse가 Gaussian에서 나선을 복원하는 과정을 시각화. reverse의 drift(평균 이동)가 데이터 manifold를 향하는 것을 보여준다.
- Binary heartbeat sequence: 주기 5의 이진 시퀀스. binomial diffusion으로 학습해서 이산 데이터에도 동작함을 확인.
- 자연 이미지: MNIST, CIFAR-10, dead leaves 모델, 나무껍질(bark) 텍스처.
- MNIST 정량 비교 (Parzen window 기반 log likelihood, 당시 표준 프로토콜):
| Model | Log Likelihood |
|---|---|
| Stacked CAE | 121 ± 1.6 |
| DBN | 138 ± 2 |
| Deep GSN | 214 ± 1.1 |
| Diffusion (이 논문) | 220 ± 1.9 |
| Adversarial net (GAN, 같은 해) | 225 ± 2 |
- 당시 기준으로 GSN을 넘고 갓 나온 GAN과 비등한 수준이었다.
- Inpainting / Denoising: 2.6의 분포 곱하기를 이용해 bark 이미지의 가운데 100×100을 지우고 복원하거나, Gaussian 노이즈가 낀 dead leaves 이미지를 denoising 한다. 별도 재학습 없이 학습된 모델 그대로 수행된다는 게 포인트.
[5] 의의와 한계 & 개인적인 생각
- 이 논문이 만든 것: forward/reverse Markov chain 프레임워크, posterior 기반 KL 학습 objective(의 원형), 분포 곱하기(guidance의 원형), 이산/연속 diffusion 둘 다. 사실상 diffusion model의 뼈대 전부다.
- DDPM(2020)이 바꾼 것과 비교하면 이 논문의 위치가 명확해진다.
| 이 논문 (2015) | DDPM (2020) | |
|---|---|---|
| 예측 대상 | 평균 , 공분산 직접 예측 | 노이즈 예측 (재파라미터화) |
| 공분산 | 학습 | 상수 고정 |
| gradient ascent로 학습 | linear schedule 고정 | |
| Loss | (전체 variational bound) | (weight 버린 MSE) |
| 네트워크 | multi-scale conv + bump 시간 basis | UNet + sinusoidal embedding |
| 결과 | MNIST 수준 | 고해상도 자연 이미지 |
- 프레임워크는 2015년에 완성됐는데 결과가 터진 건 5년 뒤라는 게 흥미롭다. 바뀐 건 수학이 아니라 파라미터화( 예측)와 objective 단순화, 그리고 네트워크/컴퓨팅이었다.
- 2.6의 “분포 곱하기”가 classifier guidance(ADM 리뷰 4장)로, 의 KL 분해가 DDPM의 로 그대로 이어지므로, diffusion 수식의 출처가 궁금할 때 돌아와서 읽기 좋은 논문이다.
Reference
- [1] J. Sohl-Dickstein et al., “Deep Unsupervised Learning using Nonequilibrium Thermodynamics” (ICML 2015)
- [2] J. Ho et al., “Denoising Diffusion Probabilistic Models” (NeurIPS 2020)
- [3] A. Nichol & P. Dhariwal, “Improved Denoising Diffusion Probabilistic Models” (ICML 2021)
- [4] P. Dhariwal & A. Nichol, “Diffusion Models Beat GANs on Image Synthesis” (NeurIPS 2021)
- [5] R. Neal, “Annealed Importance Sampling” (2001) / C. Jarzynski, “Equilibrium free-energy differences from nonequilibrium measurements” (1997)