-
[논문 리뷰] Tackling the generative learning trilemma with denoising diffusion GANs논문 스터디 2023. 10. 31. 13:14
수업 때 발표할 논문으로, 간단하게 정리겸 리뷰하려고 한다. 예전에 논문스터디에서 다른 분이 발표하셨던 논문이기도 하다. generative model의 단점들을 해결할 수 있는 방법으로, Diffusion과 GAN을 결합한 방식이다. 부분적으로는 이해가 가는데, 전체적인 그림이 잘 안그려지는 듯하다. Training pipeline이 복잡해서 그런 것도 같다.
diffusion GAN Training 구조는 4가지로 이루어져 있다. 첫번째는 noise를 추가하는 diffusion process, 두번째는 real image와 fake image를 판별하는 Discriminator, fake image를 만드는 generator, 또한 fake image를 만드는 Posterior sampling이다. 아직 Diffusion도 GAN도 잘 몰라서 그런지 돌아가는 순서가 헷갈린다. 리뷰를 적으면서 생각을 정리해보겠다.
Backgrounds
forward diffusion process는 real image x0∼q(x0)에 noise를 gradually add한다. 이때 T step까지 predefined variance schedule βt로 수행된다. 기존 diffusion model의 backward process는 denoising하는 과정이다.
forward process :
q(x1:T|x0)=Πt≥1q(xt|xt−1),q(xt|xt−1)=N(x0;√1−βt,βt)
backward process :
pθ(x0:T)=p(xT)Πt≥1pθ(xt−1|xt),pθ(xt−1|xt)=xt−1;μθ(xt,t),σt2
여기서 μθ(xt,t),σt2는 denoising model의 mean과 variance이고, θ는 model parameter이다. 기존 diffusion model의 training의 goal은 ELBO(evidence lower bound)를 maximize하여 likelihood pθ(x0)=∫pθ(x0:T)dx1:T 를 maximizing한다. (L≥logp)θ(x0)) ELBO는 다음 식을 이용해서 parameterized denoising model pθ(xt−1|xt)과 함께 true denoising distribution q(xt−1|t) 으로 매칭한다. (? 여기서 매칭한다는 표현이 어떤 의미인지 모르겠다. 그냥 ELBO와 다음 식이 같다는 말로 생각하겠다.)
L=−∑t≥1Eq(xt)[DKL(q(xt−1|xt)||pθ(xt−1|xt))]+C
이 Objective function은 intractable하다. 왜냐면 아까 말했듯이, true denoising distribution q(xt−1|xt)가 있기 때문이다. 그래서 기존 diffusion 논문들은 score based model을 이용해 tractable하게 만들었다.
그러나 여기서 이 논문 제목에 따라 3중 딜레마가 발생한다. Variational autoencoder를 사용하건, diffusion을 사용하건, GAN을 사용하건, 항상 어딘가는 compute time, mode collapse, good quality issue를 해결하지 못한다. 왜냐하면, VAE를 사용하면 fast sampling과 mode coverage는 가능하지만 High quality sample을 얻기 어렵고, GAN을 사용하면 High quality sample과 fast sampling은 가능하지만 model collapse가 발생하고, Diffusion을 사용하면 high quality sample과 mode coverage는 가능한데 fast sampling이 어렵다. 따라서 이 논문에서는 diffusion과 GAN을 활용해 이 세가지 issue를 모두 해결하고자 한다.
Methods
방법은 diffusion의 slow sampling을 관찰하면서 시작된다. diffusion의 key assumption은 (1) denoising distribution pθ(xt−1|xt)가 Gaussian distribution을 따른다; (2) denoising step은 매우 커야한다. 그 이유를 분석해보자. 일단 bayes rule에 의해 q(xt−1|xt)∝q(xt|xt−1)q(xt−1) 이다. 첫번째 항 q(xt|xt−1) 은 forward gaussian diffusion의 distribution이고 두번째 항 q(xt−1) 은 step t에서의 marginal distribution이다. 여기서 우변은 첫번째 항에 dominant 된다. 그리고 reversal process도 forward process와 identical한 form을 가진다. 따라서, βt가 충분히 작을 때 (왜 이런 조건이 붙지?), q(xt|xt−1) 도 gaussian 이기 때문에, q(xt−1|xt) 도 gaussian이다. 그리고 또한, 만약 q(xt)가 gaussian이라면, q(xt−1|xt)도 마찬가지로 gaussian 이다. 하지만 data를 gaussian으로 transforming하는 것 역시 challenging하다.
따라서 q(xt−1|xt)를 gaussian으로 approximate하지 않고 conditional GAN으로 approximate 한다. 그 이유는 이 방법은 true distribution이 gaussian이어야 한다는 assumption이 필요하며 전체 step수가 매우 많아야한다. 그러니까, stepsize 를 아주 잘게 쪼개야만 1개 mode만 나오는 gaussian으로 근사할 수 있기 떄문이다. 만약 multi-modal을 cover하려 한다면, 이는 불가능하다.
결국 이 논문에서 하고싶은건, reverse process에서 stepsize T를 줄이고 싶은것이다. 따라서 multi mode를 cover하기 위해, conditional GAN을 사용하여 complex conditionial distribution을 modeling한다. 즉, 이를 true denoising distribution q(xt−1|xt) 를 근사하는데에 사용한다. 특별히 forward process는 T(T≤8)가 작아야한다는 main assumption을 원래 diffusion과 비슷하게 적용하고 each diffusion step은 larget βt를 갖는다. training은 conditional GAN generator pθ(xt−1|xt) 와 q(xt−1|xt)를 adversarial loss (denoising step마다 divergence Dadv를 최소화하는)를 사용하여 같도록 formulate한다.
minθ∑t≥1Eq(xt)[Dadv(q(xt−1|xt)||pθ(xt−1|xt))]
where Dadv can be Wasserstein distance, Jenson-shannon divergence or f-divergence depending on the adversarial training step. 이 논문에서는, non-saturating GAN을 사용하는데, 이 GAN은 styleGAN등에 사용되었다. non-saturating GAN이 뭘까.. 어쨌든 이 경우, Dadv는 f-divergence(called softened reverse KL)라는 특별한 것을 사용하는데, KL divergence를 사용하는 original diffusion과는 다르다.
adversarial training을 하기 위해서, time-dependent discriminator Dϕ(xt−1,x,t)를 설정하고, ϕ로 parameterized 되어있다. 이는 xt−1,xt 이라는 N dimensional input을 가지고 xt−1이 plausible denoised version of xt인지 결정한다.
minϕ∑t≥1Eq(xt)[Eq(xt−1|xt)[−log(Dϕ(xt−1,xt,t))]+Epθ(xt−1|xt)[−log(1−Dϕ(xt−1,xt,t))]]
where fake samples from pθ(xt−1|xt) are contrasted against real samples from q(xt−1|xt). First expectation은 unknown인 q(xt−1|xt)을 필요로 하지만, 저자들은 identity q(xt,xt−1)=∫dx0q(x0)q(xt,xt−1|x0)=∫dx0q(x0)q(xt−1|x0)q(xt|xt−1)를 사용한다. rewrite된 first expectation 은 다음과 같다.
Eq(xt)q(xt−1|xt)[−log(Dϕ(xt−1,xt,t))]=Eq(x0)q(xt−1|x0)q(xt|xt−1)[−log(Dϕ(xt−1,xt,t))]Given discriminator, 저자들은 generator를 maxθ∑t≥1Eq(xt)Epθ(xt−1|xt)[log(Dϕ(xt−1,xt,t))]로 업데이트하는데 이것이 non-saturating GAN objective이다.
마지막으로, diffusion model들은 denoising step에서 directly predicting xt−1하는 대신, denoising model을 다음과 같이 parmeterize 한다. pθ(xt−1|xt):=q(xt−1|xt,x0=fθ(xt,t)) 여기서 first x0은 denoising model fθ(xt,t)에 의해 predicted되고, 그런 다음 xt−1 은 posterior distribution q(xt−1|xt,x0) 를 이용해 sampling한다 (given xt, predicted x0). q(xt−1|xt,x0)는 xt를 x0로 denoising할 때 직관적으로 distribution over xt−1 이다. 그리고 이것은 diffusion process 를 위해 언제나 gaussian form을 가진다. 이와 비슷하게 pθ(xt−1|xt)를 정의한다.
pθ(xt−1|xt):=∫pθ(x0|xt)q(xt−1|xt,x0)dx0=∫p(z)q(xt−1|xt,x0=Gθ(xt,z,t))dz
where pθ(x0|xt) is the implicit distribution imposed by the GAN generator Gθ(xt,z,t,) that outputs x0 given xt and L dimensional latent variable z∼p(z):=N(z;0,I)
이 논문의 parameterization은 몇가지 advantages가 있다. 첫번째로, pθ(xt−1|xt)는 DDPM과 같이 formulated 되었다. 따라서 DDPM 에서 사용하는 network design과 같은 inductive bias를 빌려올수 있었다. 가장 다른점은, DDPM에서는 x0는 deterministic mapping으로 predicted되었다면, 이들의 x0는 random latent variable z를 가지고 generator에서 나왔다. 이것은 pθ(xt−1|xt)를 multimodal하고 complex하게 만들어줄 수 있게 되었다. 두번째로, 서로다른 t에 대하여, xt는 다른 levels of perturbation 을 가진다. 그러므로 different t에 single network를 이용하여 directly xt−1을 predict하는 것은 아마도 어려울 것이다. 하지만, 이들의 경우 generator가 unperturbed x0만 예측하면 되고 그다음 q(xt−1|xt,x0)를 이용하여 back perturbation을 더한다.
'논문 스터디' 카테고리의 다른 글