[Paper Review] DDIM : Denoising Diffusion Implicit Models

황영서·2024년 7월 23일
0

Diffusion

목록 보기
3/6

1 Introduction

이미지 생성의 경우, GAN이 VAE, autogressive model ( 자귀회귀모델) , normalizing flows( 정규화 흐름 ) 보다 더 높은 sample을 보인다. 그러나 GAN은 두개의 네트워크 ( Discriminator 와 Generator ) 가 adversarial training을 하여 균형을 이뤄야하고, GAN의 성능은 아키텍청 큰 영향을 받으며, 다양한 샘플을 생성하지 못하는 Mode Collapse 문제가 있다.

최근의 생성모델인 DDPM과 NCSN은 adversairal learning을 하지 않고 GAN에 견줄만한 sample을 생성할 수 있음을 보여주었다. 이를 위해 Gaussian noise 에의해 손상된 sample의 noise의 제거하도록 denoising autoencoding 모델을 train한다. sample은 Markov-chain에 의해 생성되며, Markov-chain 과정은 NCSN에서는 Langevin동역학을 DDPM에서는 foward process를 역으로 수행하며 이루어진다.

DDPM의 generation process는 foward process의 역을 근사하기 때문에 모든 단계를 반복해야 하나의 샘플을 생성할 수 있다는 단점이 있다. 네트워크를 한번 통과하면 되는 GAN과 비교할 때 훨씬 느리다. 예를 들어 같은 GPU를 사용할 때, DDPM으로 50k 32x32 크기 이미지를 샘플링하는데 약 20시간이 걸리지만, GAN으로는 1분이내에 가능하다. 더 큰이미지를 sampling 할 경우, 같은 GPU 에서 50k개의 256x256 크기 이미지를 sampling 하는데 거의 1000시간이 걸릴 수 있다.

DDPM과 GAN 간의 효율성 격차를 해소하기 위해 DDIM을 제안한다. DDPM의 foward process를 non-Markov chain으로 변경한다. 결과적으로 variational training objectives 는 DDPM을 훈련할때 사용했던 식과 일치한다. short generative chain을 사용하여, sampling 속도를 높일 수 있다. 속도가 DDPM에 비해서 훨씬 빠르다.

2 Background

DDIM에 대해서 본격적으로 들어가기전에 DDPM에 나왔던 개념, 수식등을 정리한다

DDPM 의 목표

pθ(x0)p_{\theta}(x_0) 가 실제 데이터 분포 q(x0)q(x_0)를 잘 근사하도록 학습하는 것이 목표

Forward Process

  • forward process ( diffusion process ) 에서는 점진적으로 노이즈를 추가하면서 변형된다. 특정단계에서의 상태 xtx_{t}xt1x_{t-1} 에 의존하여 어떻게 분포하는지 나타내며, 이 과정은 Gaussain 분포를 따른다.

  • Approximate Posterior : 전체 foward process 과정을 나타내며, x0x_0 로부터 x1x_1,x2x_2, x3x_3,,, xTx_T모든 latent vector 의 joint distrubution 나타낸다.

  • 특정 시점 t에서의 상태 xtx_tx0x_0 에 조건부로 어떻게 분포되는지?
    (*DDPM 논문에서는 αt{\alpha}_t의 누적곱을 αˉt\bar{\alpha}_t로 표시하지만 DDIM 논문에서는 그냥 αt{\alpha}_t로 표시하는 것 같다 )

  • Reparameterization Trick를 활용하여 다음과 같이 표현할 수 있음

Reverse Process

알고 싶은 것은 q(xt1xt)q(x_{t-1}|x_t)이나, 이를 알기는 어려워서 pθ(xt1xt)p_{\theta}(x_{t-1}|x_t)의 parmaeter를 예측 및 학습한다.

  • Reverse process :
    pθ(xt1xt)p_{\theta}(x_{t-1}|x_{t})xtx_t에서 xt1x_{t-1} 로 가는 조건부 분포를 나타내며, 이는 Gaussain 분포를 따르며, 평균과 공분산은 학습 parameter θ\theta 에 의해 결정된다.
    pθ(x1:Tx0)p_{\theta}(x_{1:T}|x_{0})xTx_{T} 부터 x0x_{0} 까지의 latent vector의 joint distribution 을 나타낸다.
  • q(xt1xt)q(x_{t-1}|x_t) 는 알 수 없지만, Bayes Rules 에 의해 q(xt1xt,x0)q(x_{t-1}|x_t,x_{0}) 는 다음과 같이 알 수 있다,

학습 목표

  • Eq(x0)[logpθ(x0)]\mathbb{E}_{q(\mathbf{x}_0)} \left[ \log p_{\theta}(\mathbf{x}_0) \right] 를 최대화하는 것이 목표이며, 이를 직접 최대화하는 것이 어려워 ELBO ( 변분 하한 ) 을 활용하여, ELBO를 최대화 하여 이를 근사한다.
  • ELBO를 negative log likelihodd 로 표현하여, 최소화 문제로 변환하였고, 이를 간단히 정리하면 다음과 같다.
    최종 Loss 함수라고 생각하면 된다. 예측된 노이즈와 실제 노이즈 ϵt\epsilon_{t} 간의 차이의 제곱 오차를 최소화하는 것이 목표이다.

Sampling

노이즈 상태 xTx_T에서 시작하여 단계별로 노이즈를 제거하면서 최종적으로 x0x_0를 sampling한다

3 Variational Inference for Non-Markovaion Foward Processes

3.1 Non-Markovian Foward Processes

marginal distribution q(xtx0)q(x_t|x_0)를 그대로 사용하되,

joint distribution을 다음과 같이 바꾼다

  • DDPM 에서는 xtx_{t}가 바로 이전 step xt1x_{t-1} 에 의해 결정되는 markovian chain 이다
  • DDIM 에서는 xtx_{t}가 바로 이전 step xt1x_{t-1}x0x_{0}의해 결정되는 non-markovian chain 으로 바꾼다

DDPM에 따르면 다음과 같은 식을 만족하고,
이를 만족하기 위해서는,

reverse process는 다음과 같이 정리되어야한다.

Forward Process

Foward process는 Bayes Rules에 의해 다음과 같이 표현할 수 있으며, 이는 gaussian distribution을 따른다.

  • DDIM의 Forward Process는 non- markovian 이다
  • σ\sigma는 forward process가 얼마나 stochastic 한지를 결정하며, 이 값이 0에 가까워질수록 무작위성이 없어져 x0x_0xtx_t가 알려진 경우 xt1x_{t-1}이 고정된다. 즉, deterministic 해진다

3.2 Generative process and Unified Variational Inference Objective

Generative Process

학습가능한 generative process pθ(x0:T)p_{\theta}(x_{0:T})를 정의해본다.
각 단계에서 pθ(t)(xt1xt)p_\theta^{(t)}(x_{t-1} \mid x_t)qσ(xt1xt,x0)q_\sigma (x_{t-1} \mid x_t, x_0) 를 활용한다.

xtx_t 가 주어지면 x0x_0 를 예측하고, qσ(xt1xt,x0)q_\sigma (x_{t-1} \mid x_t, x_0) 를 활용하여 xt1x_{t-1}를 구한다.

를 활용하여 위와 같이 식을 변형할 수 있고, xtx_t를 이용하여 x0x_0을 예측할 수 있다.

pθ(xT)=N(0,I)p_\theta(x_T) = N(0, I) 와 함께, 다음과 같이 정의할 수 있다.

Variational Inference Objective

Generative process 를 최적화 시키기 위해 이용되는 식은 다음과 같고,
이는 DDPM의 ELBO와 같다.

아래 두식을 활용하여 정리하면,


다음과 같은 식이 나온다.


DDIM의 Variational Inference Objective 인 JσJ_\sigma 에 대해서

σ\sigma 값이 달라질 때마다 다른 Variational Inference Objective JσJ_\sigma 를 가지므로, 이론적으로는 각 σ에 대해 다른 모델을 훈련해야할것 같지만,
위와 같이 정리1에 따라,
DDPM의 Variational Inference Objective LγL_\gamma을 활용하여

모든 σ\sigma >0 에 대해서 JσJ_\sigma= LγL_\gamma+C가 존재한다.

  • LγL_\gamma의 특성으로 인해, 모델의 파라미터가 각 시간 단계 𝑡 마다 공유되지 않는 경우, 가중치 𝛾에 의존하지 않는다는 특성을 가진다
  • LγL_\gamma 의 특성 덕분에, L1L_1 목표를 사용하여 JσJ_\sigma 를 최적화할 수 있다 ( 여기서 L1L_1 인경우는 DDPM의 Variational Inference Objective을 simple하게 한 경우 같음)

4 Sampling From Generalized Generative Processes

4.1 Denoising Diffusion Implicit Models

sampling

위에서 정리한,


를 활용하여,

x=u+σx = {{u}} + \sigma x ϵ\epsilon에 대입하여,

sample xtx_{t}로 부터 xt1x_{t-1}를 Sampling 하는 식은 다음과 같다

최종적으로 , sampling 하는 과정을 나타내보면

이 그림과 같다.

σ\sigma의 역할

  • ϵt\epsilon_{t}xtx_t 와 독립적인 gaussian noise이며 α\alpha = 1로 정의한다
  • σt\sigma_t일때, forward pass는 Markov-chain을 이루게 된다. DDPM 방식으로 generate한다.
  • σt\sigma_t = 0이면

    xt1=αt1x0+1αt1xtαtx01αtx_{t-1} = \sqrt{\alpha_{t-1}} x_0 + \sqrt{1 - \alpha_{t-1}} \cdot \frac{x_t - \sqrt{\alpha_t} x_0}{\sqrt{1 - \alpha_t}}와 같은 식이되고,
    random noise의 영향이 없어지기 때문에 implict probabilites model이 된다. 즉, t>=1에 대해 xt1x_{t-1}xtx_t와 예측된 x0x_0가 주어지면 ,deterministic ( stochastic x ) 방식으로 데이터를 생성한다.
    -> 즉 , DDPM의 obejctive로 학습된 implicit probabilistic 모델이기 때문에 DDIM(Denoising Diffusion Implicit Model)로 이름 붙였다.

4.2 Accelerated Generation Processes


generative process는 reverse process 와 매우 유사하다. 따라서 foward process가 T step을 거친다면 일반적으로 generative process도 T step 을 가져야한다.

qσ(xtx0)q_{\sigma}(x_{t}|x_{0}) 가 고정된다면(σ{\sigma}=0) forward process도 T보다 짧은 step으로 줄일 수 있기 때문에, generative process도 가속화 될 수 있다.

forward pass를 모든 latenet vector x1:Tx_{1:T}에 대해 정의하는 대신 xτ1x_{\tau_1},,, , xτsx_{\tau_s}의 subset에 대해서만 foward 와 generative process 가 진행되어, 계산량이 크게 줄어들게 된다.

또한 t를 continuous time variable로 설정하여, 시간에 따라 변화하는 데이터 분포를 학습할 수 있다. 이는 future work로 남겨둔다.

4.3 Relevance to Neural ODEs

DDIM은 오일러 근사 추정이 가능한 sampling의 형태를 보여준다.

앞서 말했던 것 처럼 σ\sigma= 0 으로 두고, 시간간격을 Δ\Delta로 바꿔주면 다음과 같은 식으로 바꿀수 있다.

xtαˉt=xˉt\frac{x_t}{\sqrt{\bar{\alpha}_t}} = \bar{x}_t
1αˉtαˉt=σ\frac{\sqrt{1 - \bar{\alpha}_t}}{\sqrt{\bar{\alpha}_t}} = \sigma 라고 두고, 식을 정리해보면

최종적으로 아래와 같은 식이 나오며 미분방정식이 됨을 확인할 수 있다.

초기조건은 매우 큰 σ(T)\sigma(T)에서 x(T)x(T) 가 정규분포 N(0,σ(T))N(0, \sigma(T))를 따르고, 충분한 이산화 단계까 있으면 생성과정을 역으로 수행할 수 있다.

DDIM이 SDE가 아니라 ODE를 사용함으로써, 시간 dt가 아니라 σ(t)\sigma(t)라는 변수를 사용하여 데이터를 업데이트 하여, sampling 단계의 수가 적을때 효과적이다.

5 Experimnets

DDIM이 DDPM 보다 이미지 생성에서 더 적은 반복 횟수로 더 나은 성능을 발휘하며, 원래의 DDPM 생성과정에 비해 10배에 100배까지 속도를 높일 수 있다.
DDIM은 xTx_T가 고정했을 때, 고수준의 이미지 특징을 유지할 수 있어서 latent space에서 interplolation 이 가능하고, latenet vector로 encoding 하고 이 벡터를 사용하여 이미지를 reconsturct 할 수 있다.

각 데이터셋에 대해서, T=1000, LγL_{\gamma} 에서 γ\gamma=1 이고, σ\sigmaτ\tau를 변경해가면서, sample을 생성한다.

5.1 Sample Quality And Efficiency


FID : 생성된 품질을 나타내는 지표 ( 낮을수록 좋음 )

  • 샘플을 생성하는데 사용되는 time step τ\tau가 증가 할수록 sample의 품질이 높아진다.
    DDIM( η\eta = 0 ) 인 경우, 작은 time step에서도 높은 샘플 품질을 생성해낸다.
    DDPM ( η\eta = 1) 인경우, 동일한 time step에서 덜 확률적인 모델에 비해 sample이 일반적으로 나쁘다. ( 여기서 σ^\hat{\sigma} 는 DDPM의 σ\sigma 보다 큰 값이다 )
  • time step τ\tau가 동일할때, 다양한 σ\sigma를 적용하여 실험한 결과,
    DDPM의 경우 time step τ\tau 가 작을때 sample 품질이 매우 나쁘다.


DDIM은 20에서 100스텝 내에 1000스텝 모델과 비교할 수 있는 품질을 생성할 수 있어 이는 DDPM에 비해 10배에서 50배 빠르다. CelebA 데이터셋에서 100스텝 DDPM의 FID 점수는 20 스텝DDIM 과 비슷하다.

5.2 Sample Consistency in DDIMs


DDIM의 경우 generate과정이 deterministic 이여서, 동일한 초기 xTx_T에서 시작한 경우, 대부분의 high level특징이 유사하다. 20단계로 생성된 샘플이 100단계로 생성된 샘플과 high level면에서 유사하다.

5.3 Interpolation in Deterministic Generative Processes


DDIM은 deterministic 하기 때문에, 단순한 interpolation이 두 샘플 간의 semantic interpolation을 생성할 수 있다.

5.4 Reconstruction from Latenet Space


S는 인코딩 및 디코딩 과정에서 사용된 단계로 , S가 증가할 수록 xTx_{T}에서 x0x_{0} 재구성하는 재구성 오차가 줄어든다. 이는 Neural ODE와 유사한 속성을 가지고 있음을 알 수 있다.
( Neral ODE : 시간에 따른 상태 변화를 모델링하여 초기상태에서 최종상태로 연속적으로 변환 )

0개의 댓글