ABSTRACT
1. INTRODUCTION
GAN
장점: high sample quality
단점: 안정적인 학습을 위해 세심한 최적화, 모델 아키텍처 세팅 필요
DDPM, NCSN
GAN에 상응할만한 high quality sample, without adversarial training
Generative Markov Chain Process를 사용하여 Noise로 부터 Sample을 생성하는 방식 (Denoising)
단점: high quality sample을 생성하는 데에 많은 iteration 필요 → one pass로 생성해내는 GAN보다 훨씬 느림
DDIM
DDPM과 동일한 objective function으로 학습하는 DDIM 제시
DDPM의 Markovian forward diffusion process을 non-Markovian으로 일반화
smaller number of steps
거의 sample quality 손실 없이, 효율 크게 증가 가능
DDPM과 비교했을 때의, DDIM의 장점
DDPM보다 10~100배 빠르면서 샘플 퀄리티 또한 좋았음
Consistency: 동일 initial latenet를 넣으면, 비슷한 결과가 나옴
consistency 성질로 initial latent 변수를 조작하여 의미적으로 유의미한 보간 가능
2. BACKGROUND - DDPM
데이터의 분포 q ( x 0 ) q(x_0) q ( x 0 ) 가 주어질 때 모델 분포 p θ ( x 0 ) p_{\theta}(x_0) p θ ( x 0 ) 가 q ( x 0 ) q(x_0) q ( x 0 ) 를 근사하도록 학습
파라미터 θ \theta θ 는 variational lower bound를 최대화하는 방향으로 학습
DDPM은 $q(x_{(1:T)}|x_0)을 고정시키고 학습 진행 (= 고정된 방식으로 forward process)
x t x_t x t = x 0 x_0 x 0 와 ϵ \epsilon ϵ 의 선형결합
α T \alpha_T α T 을 0에 가깝게 설정하면 임의의 x 0 x_0 x 0 에 대하여 q ( x T ∣ x 0 ) q(x_T|x_0) q ( x T ∣ x 0 ) 는 표준 가우시안 분포로 수렴 → p θ ( x T ) : = N ( 0 , I ) p_θ(x_T):=N(0,I) p θ ( x T ) : = N ( 0 , I )
모든 단계에서 예측할 분포가 gaussian으로 모델링된다면, 아래의 Simplified Objective Function
생성 성능을 최대화하기 위해 γ \gamma γ 를 1로 설정
3. VARIATIONAL INFERENCE FOR NON-MARKOVIAN FORWARD PROCESSES
목표 : Iteration 수 감소
Key Observation : DDPM의 objective L γ L_{\gamma} L γ 는 marginal( q ( x t ∣ x 0 ) ) (q(x_t|x_0)) ( q ( x t ∣ x 0 ) ) 에만 의존, joint( q ( x 1 : T ∣ x 0 ) ) (q(x_{1:T}|x_0)) ( q ( x 1 : T ∣ x 0 ) ) 에는 직접 의존 X
DDPM의 경우 같은 주변 분포에 대해서 많은 결합 분포가 존재하기 때문에, non-Markovian인 새로운 inference process & 이에 대응되는 새로운 generative process 필요
3.1 NON-MARKOVIAN FORWARD PROCESSES
q σ ( x 1 : T ∣ x 0 ) : = q σ ( x T ∣ x 0 ) ∏ t = 2 T q σ ( x t − 1 ∣ x t , x 0 ) q_\sigma(x_{1:T} \mid x_0) := q_\sigma(x_T \mid x_0) \prod_{t=2}^T q_\sigma(x_{t-1} \mid x_t, x_0) q σ ( x 1 : T ∣ x 0 ) : = q σ ( x T ∣ x 0 ) t = 2 ∏ T q σ ( x t − 1 ∣ x t , x 0 )
non-Markovian forward process
q σ ( x 1 : T ∣ x 0 ) : = q σ ( x T ∣ x 0 ) ∏ t = 2 T q σ ( x t − 1 ∣ x t , x 0 ) q_\sigma(x_{1:T} \mid x_0) := q_\sigma(x_T \mid x_0) \prod_{t=2}^T q_\sigma(x_{t-1} \mid x_t, x_0) q σ ( x 1 : T ∣ x 0 ) : = q σ ( x T ∣ x 0 ) ∏ t = 2 T q σ ( x t − 1 ∣ x t , x 0 )
Proof
(좌변) q ( x 1 ∣ x 0 ) q ( x 2 ∣ x 1 , x 0 ) q ( x 3 ∣ x 2 , x 0 ) … q ( x T ∣ x T − 1 , x 0 ) q(x_1 \mid x_0) q(x_2 \mid x_1, x_0) q(x_3 \mid x_2, x_0) \dots q(x_T \mid x_{T-1}, x_0) q ( x 1 ∣ x 0 ) q ( x 2 ∣ x 1 , x 0 ) q ( x 3 ∣ x 2 , x 0 ) … q ( x T ∣ x T − 1 , x 0 )
→ bayesian rule 적용 q σ ( x t ∣ x t − 1 , x 0 ) = q σ ( x t − 1 ∣ x t , x 0 ) q σ ( x t ∣ x 0 ) q σ ( x t − 1 ∣ x 0 ) q_\sigma(x_t \mid x_{t-1}, x_0) = \frac{q_\sigma(x_{t-1} \mid x_t, x_0) \, q_\sigma(x_t \mid x_0)}{q_\sigma(x_{t-1} \mid x_0)} q σ ( x t ∣ x t − 1 , x 0 ) = q σ ( x t − 1 ∣ x 0 ) q σ ( x t − 1 ∣ x t , x 0 ) q σ ( x t ∣ x 0 )
= q ( x 1 ∣ x 0 ) q ( x 1 ∣ x 2 , x 0 ) q ( x 2 ∣ x 0 ) q ( x 1 ∣ x 0 ) q ( x 2 ∣ x 3 , x 0 ) q ( x 3 ∣ x 0 ) q ( x 2 ∣ x 0 ) ⋯ q ( x T − 1 ∣ x T , x 0 ) q ( x T ∣ x 0 ) q ( x T − 1 ∣ x 0 ) q(x_1 \mid x_0) \frac{q(x_1 \mid x_2, x_0) \, q(x_2 \mid x_0)}{q(x_1 \mid x_0)} \, \frac{q(x_2 \mid x_3, x_0) \, q(x_3 \mid x_0)}{q(x_2 \mid x_0)} \, \cdots \, \frac{q(x_{T-1} \mid x_T, x_0) \, q(x_T \mid x_0)}{q(x_{T-1} \mid x_0)} q ( x 1 ∣ x 0 ) q ( x 1 ∣ x 0 ) q ( x 1 ∣ x 2 , x 0 ) q ( x 2 ∣ x 0 ) q ( x 2 ∣ x 0 ) q ( x 2 ∣ x 3 , x 0 ) q ( x 3 ∣ x 0 ) ⋯ q ( x T − 1 ∣ x 0 ) q ( x T − 1 ∣ x T , x 0 ) q ( x T ∣ x 0 )
(우변) q σ ( x T ∣ x 0 ) ∏ t = 2 T q σ ( x t − 1 ∣ x t , x 0 ) q_\sigma(x_T \mid x_0) \prod_{t=2}^T q_\sigma(x_{t-1} \mid x_t, x_0) q σ ( x T ∣ x 0 ) ∏ t = 2 T q σ ( x t − 1 ∣ x t , x 0 )
q σ ( x t − 1 ∣ x t , x 0 ) q_\sigma(x_{t-1} \mid x_t, x_0) q σ ( x t − 1 ∣ x t , x 0 )
Proof
① x t − 1 = α ˉ t − 1 x 0 + 1 − α ˉ t − 1 z t − 1 \mathbf{x}_{t-1} = \sqrt{\bar{\alpha}_{t-1}} \mathbf{x}_0 + \sqrt{1 - \bar{\alpha}_{t-1}} \mathbf{z}_{t-1} x t − 1 = α ˉ t − 1 x 0 + 1 − α ˉ t − 1 z t − 1 from DDPM
→ x t = α ˉ t x 0 + 1 − α ˉ t z t ⇒ z t = x t − α ˉ t x 0 1 − α ˉ t \mathbf{x}_t = \sqrt{\bar{\alpha}_t} \, \mathbf{x}_0 + \sqrt{1 - \bar{\alpha}_t} \, \mathbf{z}_t \;\Rightarrow\; \mathbf{z}_t = \frac{ \mathbf{x}_t - \sqrt{\bar{\alpha}_t} \, \mathbf{x}_0 }{ \sqrt{1 - \bar{\alpha}_t} } x t = α ˉ t x 0 + 1 − α ˉ t z t ⇒ z t = 1 − α ˉ t x t − α ˉ t x 0
→ z t − 1 ≈ z t − σ t 2 1 − α ˉ t − 1 z t + σ t 1 − α ˉ t − 1 z \mathbf{z}_{t-1} \approx \mathbf{z}_t - \frac{\sigma_t^2}{\sqrt{1 - \bar{\alpha}_{t-1}}} \, \mathbf{z}_t + \frac{\sigma_t}{\sqrt{1 - \bar{\alpha}_{t-1}}} \, \mathbf{z} z t − 1 ≈ z t − 1 − α ˉ t − 1 σ t 2 z t + 1 − α ˉ t − 1 σ t z
② x t − 1 = α ˉ t − 1 x 0 + 1 − α ˉ t − 1 ( z t − σ t 2 1 − α ˉ t − 1 z t + σ t 1 − α ˉ t − 1 z ) \mathbf{x}_{t-1}= \sqrt{\bar{\alpha}_{t-1}}\, \mathbf{x}_0 + \sqrt{1 - \bar{\alpha}_{t-1}} \left( \mathbf{z}_t - \frac{\sigma_t^2}{\sqrt{1 - \bar{\alpha}_{t-1}}} \, \mathbf{z}_t + \frac{\sigma_t}{\sqrt{1 - \bar{\alpha}_{t-1}}} \, \mathbf{z} \right) x t − 1 = α ˉ t − 1 x 0 + 1 − α ˉ t − 1 ( z t − 1 − α ˉ t − 1 σ t 2 z t + 1 − α ˉ t − 1 σ t z )
= α ˉ t − 1 x 0 + 1 − α ˉ t − 1 − σ t 2 z t + σ t z = \sqrt{\bar{\alpha}_{t-1}} \mathbf{x}_0 + \sqrt{1 - \bar{\alpha}_{t-1} - \sigma_t^2} \mathbf{z}_t + \sigma_t \mathbf{z} = α ˉ t − 1 x 0 + 1 − α ˉ t − 1 − σ t 2 z t + σ t z
③ x t − 1 = α ˉ t − 1 x 0 + 1 − α ˉ t − 1 − σ t 2 ⋅ x t − α ˉ t x 0 1 − α ˉ t + σ t z \mathbf{x}_{t-1}= \sqrt{\bar{\alpha}_{t-1}} \mathbf{x}_0 + \sqrt{1- \bar{\alpha}_{t-1}} - \sigma_t^2 \cdot \frac{\mathbf{x}_t -\sqrt{\bar{\alpha}_t} \mathbf{x}_0}{\sqrt{1 - \bar{\alpha}_t}} + \sigma_t \mathbf{z} x t − 1 = α ˉ t − 1 x 0 + 1 − α ˉ t − 1 − σ t 2 ⋅ 1 − α ˉ t x t − α ˉ t x 0 + σ t z
④ q σ ( x t − 1 ∣ x t , x 0 ) = N ( α ˉ t − 1 x 0 + 1 − α ˉ t − 1 − σ t 2 ⋅ x t − α ˉ t x 0 1 − α ˉ t , σ t 2 I ) q_\sigma(\mathbf{x}_{t-1} \mid \mathbf{x}_t, \mathbf{x}_0) = \mathcal{N} \left( \sqrt{\bar{\alpha}_{t-1}} \mathbf{x}_0 + \sqrt{1 - \bar{\alpha}_{t-1} - \sigma_t^2} \cdot \frac{\mathbf{x}_t - \sqrt{\bar{\alpha}_t} \mathbf{x}_0}{\sqrt{1 - \bar{\alpha}_t}}, \; \sigma_t^2 \mathbf{I} \right) q σ ( x t − 1 ∣ x t , x 0 ) = N ( α ˉ t − 1 x 0 + 1 − α ˉ t − 1 − σ t 2 ⋅ 1 − α ˉ t x t − α ˉ t x 0 , σ t 2 I )
<주어진 수식을 Bishop 정리에 적용하기>
Given
1. q σ ( x t ∣ x 0 ) = N ( α ˉ t x 0 , ( 1 − α ˉ t ) I ) q_\sigma(x_t \mid x_0) = \mathcal{N}\left( \sqrt{\bar{\alpha}_t} \, x_0,\ (1 - \bar{\alpha}_t)\, \mathbf{I} \right) q σ ( x t ∣ x 0 ) = N ( α ˉ t x 0 , ( 1 − α ˉ t ) I ) ← same form as DDPM
2. q σ ( x t − 1 ∣ x t , x 0 ) = N ( α ˉ t − 1 x 0 + 1 − α ˉ t − 1 − σ t 2 ⋅ x t − α ˉ t x 0 1 − α ˉ t , σ t 2 I ) q_\sigma(\mathbf{x}_{t-1} \mid \mathbf{x}_t, \mathbf{x}_0) = \mathcal{N} \left( \sqrt{\bar{\alpha}_{t-1}} \mathbf{x}_0 + \sqrt{1 - \bar{\alpha}_{t-1} - \sigma_t^2} \cdot \frac{\mathbf{x}_t - \sqrt{\bar{\alpha}_t} \mathbf{x}_0}{\sqrt{1 - \bar{\alpha}_t}}, \; \sigma_t^2 \mathbf{I} \right) q σ ( x t − 1 ∣ x t , x 0 ) = N ( α ˉ t − 1 x 0 + 1 − α ˉ t − 1 − σ t 2 ⋅ 1 − α ˉ t x t − α ˉ t x 0 , σ t 2 I )
Bishop 정리:
① p ( x ) = N ( x ∣ μ , Λ − 1 ) p(x)=N(x∣μ,Λ ^{−1}) p ( x ) = N ( x ∣ μ , Λ − 1 ) : q σ ( x t ∣ x 0 ) = N ( α ˉ t x 0 , ( 1 − α ˉ t ) I ) q_\sigma(x_t \mid x_0) = \mathcal{N}\left( \sqrt{\bar{\alpha}_t} \, x_0,\ (1 - \bar{\alpha}_t)\, \mathbf{I} \right) q σ ( x t ∣ x 0 ) = N ( α ˉ t x 0 , ( 1 − α ˉ t ) I )
② p ( y ∣ x ) = N ( y ∣ A x + b , L − 1 ) p(y∣x)=N(y∣Ax+b,L^{-1}) p ( y ∣ x ) = N ( y ∣ A x + b , L − 1 ) : q σ ( x t − 1 ∣ x t , x 0 ) = N ( α ˉ t − 1 x 0 + 1 − α ˉ t − 1 − σ t 2 ⋅ x t − α ˉ t x 0 1 − α ˉ t , σ t 2 I ) q_\sigma(\mathbf{x}_{t-1} \mid \mathbf{x}_t, \mathbf{x}_0) = \mathcal{N} \left( \sqrt{\bar{\alpha}_{t-1}} \mathbf{x}_0 + \sqrt{1 - \bar{\alpha}_{t-1} - \sigma_t^2} \cdot \frac{\mathbf{x}_t - \sqrt{\bar{\alpha}_t} \mathbf{x}_0}{\sqrt{1 - \bar{\alpha}_t}}, \; \sigma_t^2 \mathbf{I} \right) q σ ( x t − 1 ∣ x t , x 0 ) = N ( α ˉ t − 1 x 0 + 1 − α ˉ t − 1 − σ t 2 ⋅ 1 − α ˉ t x t − α ˉ t x 0 , σ t 2 I )
Bishop 정리 변수 치환
μ = α ˉ t x 0 , L − 1 = σ t 2 I , Λ − 1 = ( 1 − α ˉ t ) I , A = 1 − α ˉ t − 1 − σ t 2 1 − α ˉ t , B = α ˉ t − 1 x 0 − 1 − α ˉ t − 1 − σ t 2 1 − α ˉ t ⋅ α ˉ t x 0 \mu = \sqrt{\bar{\alpha}_t}\, x_0, \quad L^{-1} = \sigma_t^2 \mathbf{I}, \quad \Lambda^{-1} = (1-\bar{\alpha}_t)\mathbf{I}, \quad A = \frac{1 - \bar{\alpha}_{t-1} - \sigma_t^2}{\sqrt{1 - \bar{\alpha}_t}}, \quad B = \sqrt{\bar{\alpha}_{t-1}}\, x_0 - \frac{1 - \bar{\alpha}_{t-1} - \sigma_t^2}{\sqrt{1 - \bar{\alpha}_t}} \cdot \sqrt{\bar{\alpha}_t}\, x_0 μ = α ˉ t x 0 , L − 1 = σ t 2 I , Λ − 1 = ( 1 − α ˉ t ) I , A = 1 − α ˉ t 1 − α ˉ t − 1 − σ t 2 , B = α ˉ t − 1 x 0 − 1 − α ˉ t 1 − α ˉ t − 1 − σ t 2 ⋅ α ˉ t x 0
③ p ( y ) = N ( y ∣ A μ + b , L − 1 + A Λ − 1 A ⊤ ) p(y)=N(y∣Aμ+b,L^{-1}+AΛ ^{−1}A ^⊤) p ( y ) = N ( y ∣ A μ + b , L − 1 + A Λ − 1 A ⊤ ) : q σ ( 𝑥 𝑡 − 1 ∣ 𝑥 0 ) = 𝑁 ( α ˉ t − 1 𝑥 0 , ( 1 − α ˉ t − 1 ) I ) q_\sigma(𝑥_{𝑡−1}∣𝑥_0)=𝑁(\sqrt{\bar{\alpha}_{t-1}}𝑥_0,(1−{\bar{\alpha}_{t-1}})I) q σ ( x t − 1 ∣ x 0 ) = N ( α ˉ t − 1 x 0 , ( 1 − α ˉ t − 1 ) I )
수식 의미 정리
① & ②
모든 timestep에서 q σ ( x t ∣ x 0 ) = N ( α ˉ t x 0 , ( 1 − α ˉ t ) I ) q_\sigma(x_t \mid x_0) = \mathcal{N}\left( \sqrt{\bar{\alpha}_t} \, x_0,\ (1 - \bar{\alpha}_t)\, \mathbf{I} \right) q σ ( x t ∣ x 0 ) = N ( α ˉ t x 0 , ( 1 − α ˉ t ) I ) 성립
③
mean of distribution = linear combination of xt and x0
which means non-Markov
⇒ trained DDPM model can be directly used for diffusion process in DDIM even non-Markov forward process! 별도의 모델을 학습할 필요 없음!
<σ \sigma σ 의 의미>
“σ의 크기” → forward process가 얼마나 stochastic한지를 조절
σ=0이면, deterministicq σ ( x t − 1 ∣ x t , x 0 ) = N ( α ˉ t − 1 x 0 + 1 − α ˉ t − 1 − σ t 2 ⋅ x t − α ˉ t x 0 1 − α ˉ t , σ t 2 I ) q_\sigma(x_{t-1} \mid x_t, x_0) =\mathcal{N}\!\left( \sqrt{\bar{\alpha}_{t-1}}\,x_0 +\sqrt{1 - \bar{\alpha}_{t-1} -\cancel{\sigma_t^2}}\;\cdot\frac{x_t - \sqrt{\bar{\alpha}_t}\,x_0}{\sqrt{1 - \bar{\alpha}_t}},\;\cancel{\sigma_t^2} \mathbf{I}\right) q σ ( x t − 1 ∣ x t , x 0 ) = N ( α ˉ t − 1 x 0 + 1 − α ˉ t − 1 − σ t 2 ⋅ 1 − α ˉ t x t − α ˉ t x 0 , σ t 2 I )
x0와 xt를 알면, 고정된 x t − 1 x_{t-1} x t − 1 을 알 수 있음
no variance at any time step
3.2 GENERATIVE PROCESS AND UNIFIED VARIATIONAL INFERENCE OBJECTIVE
Generative Process
xt가 주어짐
xt로 x0 예측
예측한 x0로 reverse conditional distribution q σ ( x t − 1 ∣ x t , x 0 ) q_σ(x_{t-1}|x_t,x_0) q σ ( x t − 1 ∣ x t , x 0 ) 로 x t − 1 x_{t-1} x t − 1 샘플링
x0 대신 xt로부터 예측한 x0 사용하기 (f θ ( t ) ( x t ) f_θ(t)(x_t) f θ ( t ) ( x t ) =predicted x 0 x_0 x 0 )
x t = α ˉ t x 0 + 1 − α ˉ t z t \mathbf{x}_{t} = \sqrt{\bar{\alpha}_{t}} \mathbf{x}_0 + \sqrt{1 - \bar{\alpha}_{t}} \mathbf{z}_{t} x t = α ˉ t x 0 + 1 − α ˉ t z t 전개 결과
고정된 prior p θ ( x T ) = N ( 0 , I ) p_θ(x_T)=N(0,I) p θ ( x T ) = N ( 0 , I ) 에 대한 generative process
DDIM은 DDPM에서 학습된 모델을 그대로 사용
학습 objective : L γ L_\gamma L γ
J σ = L γ + C J_σ=L_γ+C J σ = L γ + C (theorem에 의해 증명됨)
→ 같은 파라미터 θ에 대해 두 objective의 최적해가 동일
새로 학습할 필요 없이 DDPM 모델로 deterministic 샘플링 가능
L 1 L_1 L 1 을 objective function으로 두었을 때,
σ의 값 설정에 따라 forward process를 markovian혹은 Non-markovian으로 학습시킬 수 있음
4. SAMPLING FROM GENERALIZED GENERATIVE PROCESSES
4.1 DENOISING DIFFUSION IMPLICIT MODELS
① q σ ( x t − 1 ∣ x t , x 0 ) = N ( α ˉ t − 1 x 0 + 1 − α ˉ t − 1 − σ t 2 ⋅ x t − α ˉ t x 0 1 − α ˉ t , σ t 2 I ) q_\sigma({x}_{t-1} \mid {x}_t, {x}_0) = \mathcal{N} \left(\sqrt{\bar{\alpha}_{t-1}} \mathbf{x}_0 + \sqrt{1 -\bar{\alpha}_{t-1} - \sigma_t^2} \cdot \frac{\mathbf{x}_t -\sqrt{\bar{\alpha}_t} \mathbf{x}_0}{\sqrt{1 - \bar{\alpha}_t}}, \;\sigma_t^2 \mathbf{I}\right) q σ ( x t − 1 ∣ x t , x 0 ) = N ( α ˉ t − 1 x 0 + 1 − α ˉ t − 1 − σ t 2 ⋅ 1 − α ˉ t x t − α ˉ t x 0 , σ t 2 I )
② q σ ( x t ∣ x 0 ) = N ( α ˉ t x 0 , ( 1 − α ˉ t ) I ) q_\sigma(x_t \mid x_0) = \mathcal{N}\left( \sqrt{\bar{\alpha}_t} \, x_0,\ (1 - \bar{\alpha}_t)\, \mathbf{I} \right) q σ ( x t ∣ x 0 ) = N ( α ˉ t x 0 , ( 1 − α ˉ t ) I )
③ x t − 1 = α ˉ t − 1 x 0 + 1 − α ˉ t − 1 ϵ {x}_{t-1} = \sqrt{\bar{\alpha}_{t-1}} {x}_0 + \sqrt{1 - \bar{\alpha}_{t-1}} \epsilon x t − 1 = α ˉ t − 1 x 0 + 1 − α ˉ t − 1 ϵ
④ x 0 = x t − 1 − α ˉ t ⋅ ϵ α ˉ t x_0 = \frac{x_t - \sqrt{1 - \bar{\alpha}_t} \cdot \epsilon}{\sqrt{\bar{\alpha}_t}} x 0 = α ˉ t x t − 1 − α ˉ t ⋅ ϵ
①에 ④ 적용
q σ ( x t − 1 ∣ x t , x 0 ) = N ( α ˉ t − 1 x t − 1 − α ˉ t ⋅ ϵ α ˉ t + 1 − α ˉ t − 1 − σ t 2 ⋅ ϵ , σ t 2 I ) q_\sigma(x_{t-1} \mid x_t, x_0) = \mathcal{N} \left(\sqrt{\bar{\alpha}_{t-1}} \frac{x_t - \sqrt{1 - \bar{\alpha}_t}\cdot \epsilon}{\sqrt{\bar{\alpha}_t}}+ \sqrt{1 - \bar{\alpha}_{t-1} - \sigma_t^2} \cdot \epsilon,\; \sigma_t^2\mathbf{I}\right) q σ ( x t − 1 ∣ x t , x 0 ) = N ( α ˉ t − 1 α ˉ t x t − 1 − α ˉ t ⋅ ϵ + 1 − α ˉ t − 1 − σ t 2 ⋅ ϵ , σ t 2 I )
x t x_t x t 를 trained DDPM 모델에 넣어 노이즈 ϵ 예측
p θ ( x t − 1 ∣ x t ) = N ( α ˉ t − 1 x t − 1 − α ˉ t ϵ θ ( t ) α ˉ t + 1 − α ˉ t − 1 − σ t 2 ϵ θ ( t ) , σ t 2 I ) p_\theta(x_{t-1} \mid x_t)=\mathcal{N}\!\left(\sqrt{\bar{\alpha}_{t-1}}\frac{x_t-\sqrt{1-\bar{\alpha}_t}\,\epsilon_\theta^{(t)}}{\sqrt{\bar{\alpha}_t}}+\sqrt{1-\bar{\alpha}_{t-1}-\sigma_t^2}\,\epsilon_\theta^{(t)},\,\sigma_t^2\mathbf{I}\right) p θ ( x t − 1 ∣ x t ) = N ( α ˉ t − 1 α ˉ t x t − 1 − α ˉ t ϵ θ ( t ) + 1 − α ˉ t − 1 − σ t 2 ϵ θ ( t ) , σ t 2 I )
Reparameterization Trick
x t − 1 = α ˉ t − 1 ( x t − 1 − α ˉ t ϵ θ ( t ) ( x t ) α ˉ t ) + 1 − α ˉ t − 1 − σ t 2 ϵ θ ( t ) ( x t ) + σ t ϵ t \boxed{x_{t-1}=\sqrt{\bar{\alpha}_{t-1}}\left(\frac{x_t-\sqrt{1-\bar{\alpha}_t}\,\epsilon_\theta^{(t)}(x_t)}{\sqrt{\bar{\alpha}_t}}\right)+\sqrt{1-\bar{\alpha}_{t-1}-\sigma_t^2}\,\epsilon_\theta^{(t)}(x_t)+\sigma_t\epsilon_t} x t − 1 = α ˉ t − 1 ( α ˉ t x t − 1 − α ˉ t ϵ θ ( t ) ( x t ) ) + 1 − α ˉ t − 1 − σ t 2 ϵ θ ( t ) ( x t ) + σ t ϵ t
Update step for DDIM sampling
σ t = 1 − α t − 1 1 − α t 1 − α t α t − 1 \sigma_t = \sqrt{ \frac{1 - \alpha_{t-1}}{1 - \alpha_t} } \sqrt{ \frac{1 - \alpha_t}{\alpha_{t-1}} } σ t = 1 − α t 1 − α t − 1 α t − 1 1 − α t for all t
forward process = “Markovian” ⇒ DDPM
σ t = 0 \sigma_t=0 σ t = 0 for all t
forward process가 x t − 1 x_{t−1} x t − 1 , x 0 x_0 x 0 에 대해 determinisitic (t=1 제외)
σ t ϵ t = 0 \sigma_t\epsilon_t=0 σ t ϵ t = 0 → implicit probabilistic model
sample이 생성되는 과정(xT→x0) fixed
⇒ DDIM
4.2 ACCELERATED GENERATION PROCESSES
DDPM의 경우, forward process가 T step으로 고정되어 있기 때문에 generative process도 T step으로 강제됨
L1은 q σ ( x t ∣ x 0 ) q_σ(x_t|x_0) q σ ( x t ∣ x 0 ) 가 고정되어 있는 한, 특정 forward 방식에 의존하지 않음
→ T보다 작은 길이의 forward process도 고려 가능
forward process를 모든 latent variables x 1 : T x_{1:T} x 1 : T 가 아닌 subset { x τ 1 , … , x τ S } \{ x_{\tau_1}, \dots, x_{\tau_S} \} { x τ 1 , … , x τ S } 에 대해 정의
τ (sampling trajectory) : 길이가 S인 [1,⋯,T]의 부분 수열
sampling trajectory의 길이가 T보다 많이 짧다면, sampling 과정의 computational efficiency의 유의미한 증가를 보임
4.3 RELEVANCE TO NEURAL ODES
DDIM 샘플링 식을 다음과 같이 다시 쓸 수 있으며, ODE(상미분방정식)을 풀기 위한 Euler intergration과 유사해짐
x t − Δ t = α ˉ t − Δ t ( x t − 1 − α t ϵ θ ( t ) ( x t ) α ˉ t ) + 1 − α ˉ t − Δ t ϵ θ ( t ) ( x t ) = α ˉ t − Δ t α ˉ t x t + α ˉ t − Δ t ( 1 − α t α t − Δ t − 1 − α t α t ) ϵ θ ( t ) ( x t ) x t − Δ t α ˉ t − Δ t = x t α ˉ t + ( 1 − α t α t − Δ t − 1 − α t α t ) ϵ θ ( t ) ( x t ) \begin{aligned} x_{t-\Delta t} &= \sqrt{\bar{\alpha}_{t-\Delta t}} \left( \frac{x_t - \sqrt{1-\alpha_t}\,\epsilon_\theta^{(t)}(x_t)}{\sqrt{\bar{\alpha}_t}} \right) + \sqrt{1-\bar{\alpha}_{t-\Delta t}}\,\epsilon_\theta^{(t)}(x_t) \\ &= \frac{\sqrt{\bar{\alpha}_{t-\Delta t}}}{\sqrt{\bar{\alpha}_t}}\,x_t + \sqrt{\bar{\alpha}_{t-\Delta t}} \left( \sqrt{\frac{1-\alpha_t}{\alpha_{t-\Delta t}}} - \sqrt{\frac{1-\alpha_t}{\alpha_t}} \right)\epsilon_\theta^{(t)}(x_t) \\ \frac{x_{t-\Delta t}}{\sqrt{\bar{\alpha}_{t-\Delta t}}} &= \frac{x_t}{\sqrt{\bar{\alpha}_t}} + \left( \sqrt{\frac{1-\alpha_t}{\alpha_{t-\Delta t}}} - \sqrt{\frac{1-\alpha_t}{\alpha_t}} \right)\epsilon_\theta^{(t)}(x_t) \end{aligned} x t − Δ t α ˉ t − Δ t x t − Δ t = α ˉ t − Δ t ( α ˉ t x t − 1 − α t ϵ θ ( t ) ( x t ) ) + 1 − α ˉ t − Δ t ϵ θ ( t ) ( x t ) = α ˉ t α ˉ t − Δ t x t + α ˉ t − Δ t ( α t − Δ t 1 − α t − α t 1 − α t ) ϵ θ ( t ) ( x t ) = α ˉ t x t + ( α t − Δ t 1 − α t − α t 1 − α t ) ϵ θ ( t ) ( x t )
→ ( 1 − α ) / α = σ , x / α = x ˉ \sqrt{(1−α)/α}=σ, x/\sqrt{α}=\bar{x} ( 1 − α ) / α = σ , x / α = x ˉ 로 치환
x ˉ t − Δ t = x ˉ t + ( σ t − σ t − Δ t − σ t ) ϵ θ ( t ) ( x t ) \bar{x}_{t-\Delta t} = \bar{x}_t + (\sigma_t - \sigma_{t-\Delta t} - \sigma_t)\,\epsilon_\theta^{(t)}(x_t) x ˉ t − Δ t = x ˉ t + ( σ t − σ t − Δ t − σ t ) ϵ θ ( t ) ( x t )
x ˉ t − x ˉ t − Δ t = ( σ t − σ t − Δ t ) ϵ θ ( t ) ( x ˉ t 1 + σ t 2 ) \bar{x}_t - \bar{x}_{t-\Delta t} = (\sigma_t - \sigma_{t-\Delta t})\,\epsilon_\theta^{(t)}\left(\frac{\bar{x}_t}{\sqrt{1+\sigma_t^2}}\right) x ˉ t − x ˉ t − Δ t = ( σ t − σ t − Δ t ) ϵ θ ( t ) ( 1 + σ t 2 x ˉ t )
∴ d x ˉ ( t ) = ϵ θ ( t ) ( x ˉ ( t ) σ 2 + 1 ) d σ ( t ) \therefore \; d\bar{x}(t) = \epsilon_\theta^{(t)}\left(\frac{\bar{x}(t)}{\sqrt{\sigma^2+1}}\right) d\sigma(t) ∴ d x ˉ ( t ) = ϵ θ ( t ) ( σ 2 + 1 x ˉ ( t ) ) d σ ( t )
⇒ discretization steps을 충분히 거치면 ODE를 reverse해서 generation process의 reverse, 즉 encoding (x 0 → x T x_0→x_T x 0 → x T )도 가능
5. EXPERIMENTS
DDPM과의 공통점
T=1000으로 학습된 동일 모델 사용
동일 목적 함수 사용 ( L1 )
DDPM과의 차이점
모델로부터 샘플을 생성하는 과정 → τ와 σ의 control
τ와 σ를 조절 가능하도록 정의한 분산 식
5.1 SAMPLE QUALITY AND EFFICIENCY
sample quality와 computational costs는 trade-off 관계
dim(τ)가 클수록 샘플의 품질이 좋아지지만 더 많은 계산 필요
sample trajectory의 길이가 늘어날수록 generation에 필요한 시간이 선형적으로 증가 → DDIM이 효율적으로 샘플 생성
DDPM이 1,000 steps정도 필요한 퀄리티의 sample을 DDIM은 20-100 steps면 생성 가능 → DDPM 대비 10~50배 정도 빠른 속도
5.2 SAMPLE CONSISTENCY IN DDIMS
x 0 x_0 x 0 가 초기 상태 x T x_T x T 에만 의존 → genreative process는 deteministic
Generative trajectory가 다르더라도 같은 x T x_T x T 에 대하여 샘플의 결과가 거의 비슷함
Generative trajectory가 길면 샘플의 품질이 더 좋지만 high-level feature에 큰 영향을 주지 않음
즉, x T x_T x T 가 image의 informative latent encoding 역할
5.3 INTERPOLATION IN DETERMINISTIC GENERATIVE PROCESSES
DDPM과 달리, DDIM은 interpolation 가능
DDPM은 stochastic → x T x_T x T 를 통해 생성된 이미지가 다양하기 때문에 불가능
DDIM은 deterministic → latent variable을 통해 interpolation 가능
5.4 RECONSTRUCTION FROM LATENT SPACE
DDIM이 ODE로 Euler integraion을 하므로, x 0 x_0 x 0 를 x T x_T x T 로 encoding하거나 반대로 reconstruction하는 것도 가능
step이 커질수록 이에 대한 에러가 낮음 (= reconstruction이 잘됨)