Diffusion model原理剖析

论文:Dnoising Diffusion Probabilistic Models

1. DDPM的训练过程

Diffusion model的训练,即noise predictor的训练

训练即重复下面的过程直至收敛:

  • #2:取一张干净图片作为样本
  • #3:从1到T之间sample出
  • #4:生成噪声(shape和相同)
  • #5:将噪声叠加到,让noise predictor尽量准确地估计噪声。
    红色框内将和做带权的叠加得到一个带噪声的图片,权重是事先定义的(由指定);是noise predictor,它以混入噪声的latent为输入,估计当前图片中的噪声(噪声的ground truth即前一步生成的噪声)。

注意,实际在DDPM方法的训练过程中,噪声并不是一步一步加入的,而是一次性加入的。

2. DDPM的推理过程

  • #1:生成一个纯噪声的图
  • #2~#4:重复步去噪过程,(有一些预先定义的仅和相关的系数),当前的图片减去预测的噪声再加上这一步的随机噪声,得到新的图片。
    DDPM的推理

上述过程的合理性见李宏毅老师的数学推导(分集2、3)和猜测(分集4)。


部分数学推导

给模型一个随机噪声,我们希望能输出一个尽量真实的图像。生成的图像的分布应该尽量接近真实图像的分布。如下图,我们通过极大似然估计(Maximum Likelihood Estimation)来达到这个目的,表示生成图片的分布,表示真实图片的分布。
从中sample数据其实就是收集真实的图片。

我们计算真实图片为生成图片的概率,我们的目标是得到让真实图片被认为是生成图片的概率最大的模型。

通过极大似然估计找出最好的模型

  • 第2个=,取log不影响argmax

  • 第4个=,m足够大,期望的定义
    不断取真实图像,计算的期望

  • 第5个=,关于X的随机变量期望的计算(取的概率乘上做积分)。后一项是真实分布的期望,与无关,不影响argmax,减去它是为了凑KL散度。

    优化目标的推导

    极大似然估计的结果等价于最小化KL散度。所以,优化目标直接设置为极大似然,就相当于让生成数据的分布尽量接近真实数据了。

  • VAE对的计算
    对于某个图片,它被生成出来的概率是。是容易算的,可以是从高斯分布sample出来的。但若定义为“当且仅当输入恰好让生成了则为1,否则为0”,那可能算出来的几乎都是0。所以VAE做了一个假设:

你可能感兴趣的:(Diffusion model原理剖析)