본문 바로가기

전체 글

VDM 정리 정리 MHVAE의 특수 케이스로 VDM을 도출함 VDM을 최적화하는 건 세가지 관점으로 신경망을 학습시키는 것과 같다는 것을 증명함 원본 이미지 원본 노이즈 score function score function을 학습시킨다는 게 어떤 의미인 지 봄 (score-based generative modeling) conditional modeling을 어떻게 하는 지 알아봄 Diffusion models의 단점들도 있음 일반적으로 사람이 이미지를 생성하는 방식과 다름. (당연히 사람이 random noise에서 하진 않쥬) 해석 가능한 latent를 주지 않음. VAE에서는 structured latent space를 학습할거라고 기대할 수 있지만, VDM에서는 매 timestep에서의 encoder가 이미 .. 더보기
Classifier Guidance and Classifier-Free Guidance Classifier Guidance score-based formulation에서 목표는 $\nabla \log p(x_t|y)$ 를 배우는거임. 베이즈 공식을 쓰면 를 얻고, unconditional score function 과 adversarial gradient로 나눠서 생각할 수 있다는 것을 알 수 있음 Classifier Guidance에서는 unconditional diffusion model 의 score를 먼저 배우고, arbitrary noisy $x_t$ 를 활용해서 conditional information $y$ 를 예측하려고 함. 샘플링 단계에서는 Langevin dynamics에 사용된 conditional score function이 저 두 term의 합으로 사용됨 여기서, .. 더보기
Guidance 이전까진 $p(x)$ 를 모델링하는 것만 배웠음. 근데 $p(x|y)$ 를 배우는 것도 중요함. 이걸 알면 어떤 결과값을 만들어낼 지 조절 가능하기 때문. 이게 Cascaded Diffusion Models, DALL-E 2, imagen 같은애들의 backbone 역할을 함 conditioning information을 더하는 첫번째 방법 : timestep information $p(x_{0:T})=p(x_T)\prod_{t=1}^Tp_\theta(x_{t-1}|x_t)$ 을 $p(x_{0:T}|y)=p(x_T)\prod_{t=1}^Tp_\theta(x_{t-1}|x_t,y)$ 로 바꾸면 됨 y의 예시 : text encoding in image-text generation , or low-resol.. 더보기
Score-based Generative Models $s_\theta(x_t,t)$ 를 Tweedie’s Formula 를 통해 도출하긴 했는데, 이게 과연 어떤 의미인가?? → Score-based generative model 일단 Energy-based models부터 생각해보면, 임의의 flexible probability distributions는 다음처럼 쓰인다 $p_\theta(x) = \dfrac{1}{Z_\theta}e^{-f_\theta(x)}$ $f_\theta(x)$ 는 임의의 flexible, parameterizable function = energy function. 보통 neural network로 모델링된다. $Z_\theta$ 는 $\int p_\theta(x)dx = 1$ 을 만들기 위한 normalizing consta.. 더보기
Three Equivalent Interpretations on Optimizing Variational Diffusion Models 첫번째 해석 지금까지 본 내용으로 미루어 봤을 때, VDM은 단순히, 임의의 $x_t$ 로부터 $x_0$ 를 예측하는 신경망을 학습하는 것으로 이해할 수 있다. 다만 $x_0$ 를 매개화하는 두가지 방법으로, VDM을 해석할 수도 있다. 두번째 해석 reparameterization trick을 활용하면, $x_0 = \dfrac{x_t - \sqrt{1-\bar\alpha_t\epsilon_0}}{\sqrt{\bar\alpha_t}}$ 를 $\mu_q(x_t,x_0)$ 에 대입하면 → \mu_\theta(x_t,t) = \dfrac{1}{\sqrt{\alpha_t}}x_t - \dfrac{1-\alpha_t}{\sqrt{1-\bar\alpha_t}\sqrt{\alpha_t}}\hat\epsilon_\t.. 더보기
Learning Diffusion Noise Parameters 자 그러면 학습은 어떻게 할까 argmin의 term 식은 다음과 같이 정리 가능 signal-to-noise ratio $SNR(t) = \dfrac{\mu^2}{\sigma^2} = \dfrac{\bar\alpha_t}{1-\bar\alpha_t}$ 로 치환하면 $\dfrac{1}{2\sigma_q^2(t)}\dfrac{\bar\alpha_{t-1}(1-\alpha_t)^2}{(1-\bar\alpha_t)^2}[||\hat{x}\theta(x_t,t)-x_0||^2_2] = \dfrac{1}{2}(SNR(t-1) - SNR(t))[||\hat{x}\theta(x_t,t) - x_0||^2_2]$ noise가 많으면 SNR이 낮고, signal이 크면 SNR이 크다. Diffusion model에서는 .. 더보기
Variational Diffusion Models Variational Diffusion Model (VDM) 은 Markovian Hierarchical Variational Autoencoder 인데, 걍 3가지 제약사항이 있는거임 latent dimension이 data dimension과 같다 latent encoder 은 학습되지 않고, linear Gaussian model로 pre-defined됨. latent encoder 의 Gaussian parameters은 timestep마다 다르다. timestep T에서 latent는 표준정규분포임 HVAE에서는 $q_\phi(z_t|x)$ 로 썼지만, 첫째 가정으로 인해 VDM에서는 $q_\phi(x_t|x_{t-1})$ 와 같이 쓴다. 두번째 가정에 의해, $q(x_t|x_{t-1)}$ 은 .. 더보기
Hierarchical Variational Autoencoders VAE에서 latent variable을 여러 층으로 만들어서 일반화 시킨 것. latent variables 자체가 더 추상적인 다른 higher level latent variables 에서 파생되어 나왔다는 것 (3차원의 그림자로 2차원의 상이 생기는 것과 같이) HVAE중 하나인 Markovian HVAE (바로 전 단계에만 영향 받고, 영향을 줌). 걍 VAE를 여러번 쌓은거 $p(x,z_{1:T})=p(z_T)p_\theta(x|z_1)\prod_{t=2}^{T}p_\theta(z_{t-1}|z_t)$ $q_\phi(z_{1:T}|x)=q_\phi(z_1|x)\prod_{t=2}^{T}q_\phi(z_t|z_{t-1})$ 이 Objective는 나중에 Variational Diffusion M.. 더보기