이러한 간단한 변화로 inference와 train을 align 시키고, 모델이 더 원래 데이터 분포에 맞는 생성을 할 수 있게 한다고 주장한다.
디퓨전은 최근들어 매우 좋은 성능을 내고 있지만, 중간 밝기의 이미지만 생성하고 있음. 예를 들어 “Solid background”, “A white background”를 생성하라고 하면 잘 생성하지 못함.
저자들은 이 문제가 noise schedule과 sampling 과정에서 생긴다는 것을 발견. 일반적인 scheuler는 signal-to-noise (SNR)을 zero로 만들도록 last timstep을 강제하지 않는다. → 예를 들어 1000step을 forward해도 정보가 남아있음. 따라서 학습시 마지막 timestep에서 정보가 모두 지워지지 않음.
따라서 lowest frequency information(long-wavelength) 들이 학습할 때 남아있게 된다. → 완전한 noise로부터 시작하지 않음. 하지만 inference 시에는 pure한 noise (평균 0, 가우시안 1)로부터 시작한다. 이는 모델이 중간 밝기의 이미지를 생성하도록 제약한다. 최신 샘플러들은 모든 timesteps를 거치며 샘플링 하지 않음(non-markovian). DDIM, PNDM과 같은 경우 샘플링 프로세스가 마지막 타임스텝에서 시작하지 않아 더욱 심한 문제가 발생.
저자들은 signal-to-noise (SNR)가 마지막 timestep에서 0이어야 하며, 샘플러는 diffusion training과 inference 과정을 align 시키기 위해 정확히 last timestep(T)에서 시작해야 한다고 주장함.
저자들은 zero terminal SNR을 만족시키도록 기존 schedule을 재조정하는 간단한 방법을 제안하고, SNR이 0으로 갈때 image의 (over-exposure)를 해결하기 위해 classifier-free guidance rescaling 테크닉을 제안한다.
SNR이 0이되면 예측은 사소한 task가 되고 loss는 데이터로부터 유의미한 것을 배울 수 없다.
Tim Salimans and Jonathan Ho. Progressive distillation for fast sampling of diffusion models, 2022 에서 제안된 대로 모델 학습을 v prediction과 v loss로 변경.
zero terminal SNR이 되도록 schedule을 rescaling 한 후에 t=T, =0 에서 이다. 이제 모델은 pure한 noise 을 input으로 를 예측하게 된다. t=T에서는 이제 어떠한 signal도 가지고 있지 않기 때문에 denosing을 수행하지 않고, prompt를 통해서 data distribution의 mean을 예측하는 역할을 하게 된다.
SD에서 가 1일때 v loss를 사용하는 것이 loss를 사용하는 것과 유사한 퀄리티를 가지는 것을 발견했다. 저자들은 항상 v loss를 사용하고 를 조정하는 것이 좋다고 말한다.