Diffusion模型学习

  参考资料:

  https://huggingface.co/blog/annotated-diffusion

  注:本文只为了给作者自己记录简洁的高层模型要点,如有未注明的符号请参考参考资料。

  1. 两个过程,前向和后向

  2. 前向过程是一个代数的马尔科夫过程,是一个加高斯噪声的纯代数的过程。经过精密的数学推导,有一个极其好的性质

$$q(x_t|x_0)=\mathcal{N}(x_t;\sqrt{\overline{\alpha}_t}x_0,(1-\overline{\alpha}_t)\mathrm{I})$$

  3. 反向过程需要用人工神经网络来建模,通过一系列数学推导,人工神经网络可以不预测均值,而是预测noise。如下式所示,均值和神经网络预测的噪声之间有如下关系。

$$\mu_\theta(x_t,t)=\frac{1}{\sqrt{\alpha_t}}(x_t-\frac{\beta_t}{\sqrt{1-\overline{\alpha}_t}}\epsilon_\theta(x_t,t))$$

  4. 目标函数是一堆KL散度$L=L_0+L_1+\cdots+L_T$,其中$L_t$如下式:

$$||\epsilon-\epsilon_\theta(x_t,t)||^2=||\epsilon-\epsilon_\theta(\sqrt{\overline{\alpha_t}}x_0+\sqrt{(1-\overline{\alpha_t})}\epsilon,t)||^2$$

  5. $x_t$和$x_0$的前向关系如下:

$$x_t=\sqrt{\overline{\alpha}_t}x_0+\sqrt{(1-\overline{\alpha}_t)}\epsilon$$

  6. 后向采样(生成的时候就靠这个啦)

  需要注意这里的$z_\theta$和前面预测噪声的模型是同一个模型。   

posted @ 2022-09-03 18:07  思念殇千寻  阅读(306)  评论(0编辑  收藏  举报