DDPM (Denoising Diffusion Probabilistic Model)

3 minute read

Published:

Paper Reading: Denoising diffusion probabilistic models.

本文主要介绍 Denoising Diffusion Probabilistic Model (DDPM), 以图片生成为例。

给定一张图片 x0, 采用一个加噪的过程将其变为Guassian分布:

p(x1:Tx0)=Tt=1p(xtxt1),xtxt1N(1βtxt1,βtI).

其中 βt 为噪声的调度。定义 αt=1βt 以及 ˉαt=ss=1αs.

经过如下推导

xTx0αTxT1+1αTϵT,ϵTN(0,I)αT(αT1xT2+1αT1ϵT1)+1αTϵT,ϵT1,ϵTN(0,I)αTαT1xT2+1αTαT1ϵT1,ϵT1N(0,I)ˉαTx0+1ˉαTϵ0,ϵ0N(0,I)N(ˉαTx0,(1ˉαT)I).

ˉαT0 我们知道 xTx0N(0,I). 得到了一个纯噪声。

利用Bayes公式,可以求解逆向过程的条件分布

p(xt1xt,x0)=p(xtxt1,x0)p(xtx0)p(xt1x0)=exp((xtαtxt1)22(1αt))exp((xtˉαtx0)22(1ˉαt))exp((xt1ˉαt1x0)22(1ˉαt1))exp(12((αt1αt+11ˉαt1)x2t12(αt1αtxt+ˉαt1ˉαt)xt1))exp((xt1μ(xt,x0,t))22σ2t).

其中均值和方差项可以通过配方法得到,形如

μ(xt,x0,t)=αt(1ˉαt1)1ˉαtxt+ˉαt1(1αt)1ˉαtx0,σ2t=(1αt)(1ˉαt1)1ˉαt.

我们希望训练一个参数为 θ 的模型预测逆向过程,如此便可以从噪声中恢复数据。

由于方差可以根据时间 t 计算,自然地可以令模型预测均值,也即给定时间步 t 求解

minEx0,xtμ(xt,x0,t)μθ(xt,x0,t)2

原文 [1] 采用最大化变分下界的方式推导上述式子,但可以从预测均值的角度直观理解。

但上面的问题需要模型输入图片 x0。采用重参数化,改为预测噪声,可以使得模型仅需要输入 xt,t. 注意到

xtˉαtx0+1ˉαtϵ,ϵN(0,I).

可以将损失函数等价地写成

minExt,ϵαt(1ˉαt1)1ˉαtxt+ˉαt1(1αt)(1ˉαt)ˉαt(xt1ˉαtϵ)μθ(xt,x0,t)2=minExt,ϵ1αt(xt1αt1ˉαtϵ)μθ(xt,x0,t)2.

令模型的预测为

μθ(xt,x0,t)=1αt(xt1αt1ˉαtϵθ(xt,t)).

此时模型已经不需要 x0 作为输入值,忽略前面的系数,上面的式子等价于

minExt,ϵϵϵθ(xt,t)2=minEx0,ϵϵϵθ(ˉαtx0+1ˉαtϵ,t)2.

这就得到了DDPM的训练过程,也即采样一个图片数据 x0 和标准高斯随机变量 ϵ, 然后用梯度下降对上面的损失函数求解最优的 θ.

得到了训练完的模型后,需要生成数据仅需要首先采样 xTN(0,I) 然后使用网络进行如下的逆向过程即可

xt1=1αt(xt1αt1ˉαtϵθ(xt,t))+σtz,zN(0,I).

迭代 T 步就可以得到最终的数据 x0.

Reference

[1] Ho, Jonathan, Ajay Jain, and Pieter Abbeel. Denoising diffusion probabilistic models. In NeurIPS, 2020.