Pre Knowledge
1.条件概率的一般形式
P ( A , B ) = P ( B ∣ A ) P ( A ) P(A,B)=P(B|A)P(A) P(A,B)=P(B∣A)P(A)
P ( A , B , C ) = P ( C ∣ B , A ) P ( B , A ) = P ( C ∣ B , A ) P ( B ∣ A ) P ( A ) P(A,B,C)=P(C|B,A)P(B,A)=P(C|B,A)P(B|A)P(A) P(A,B,C)=P(C∣B,A)P(B,A)=P(C∣B,A)P(B∣A)P(A)
2.基于马尔可夫假设的条件概率
假设 A → B → C A\rightarrow B\rightarrow C A→B→C,那么 C C C仅与上一个事件 B B B有关系。
P ( A , B , C ) = P ( C ∣ B , A ) P ( B , A ) = P ( C ∣ B ) P ( B ∣ A ) P ( A ) P(A,B,C)=P(C|B,A)P(B,A)=P(C|B)P(B|A)P(A) P(A,B,C)=P(C∣B,A)P(B,A)=P(C∣B)P(B∣A)P(A)
P ( B , C ∣ A ) = P ( B ∣ A ) P ( C ∣ B ) P(B,C|A)=P(B|A)P(C|B) P(B,C∣A)=P(B∣A)P(C∣B)
3.高斯分布的KL散度
KL散度(Kullback-Leibler divergence)是一种衡量两个概率分布之间的差异性的度量方法,又被称为相对熵、互熵。
一个离散随机变量 X X X的可能取值为 X = x 1 , x 2 , ⋯ , x n X=x_1,x_2,\cdots,x_n X=x1,x2,⋯,xn,而对应的概率为 p i = p ( X = x i ) p_i=p(X=x_i) pi=p(X=xi),则随机变量的熵 定义为:
H ( X ) = − ∑ i = 1 n p ( x i ) log p ( x i ) H(X)=-\sum_{i=1}^n p(x_i)\log p(x_i) H(X)=−i=1∑np(xi)logp(xi)
规定:当 p ( x i ) = 0 p(x_i)=0 p(xi)=0时, p ( x i ) log p ( x i ) = 0 p(x_i)\log p(x_i)=0 p(xi)logp(xi)=0。
如果有两个随机变量 P , Q P,Q P,Q,其概率分布分别为 p ( x ) , q ( x ) p(x),q(x) p(x),q(x),则 p p p相对 q q q的相对熵 为:
D K L ( p ∣ ∣ q ) = ∑ i = 1 n p ( x i ) log p ( x i ) q ( x i ) D_{KL}(p||q)=\sum_{i=1}^n p(x_i)\log \frac{p(x_i)}{q(x_i)} DKL(p∣∣q)=i=1∑np(xi)logq(xi)p(xi)
高斯分布即正态分布,若 x ∼ N ( μ , σ 2 ) x \sim N(\mu, \sigma^2) x∼N(μ,σ2),其概率密度分布可表示为
f ( x ∣ μ , σ 2 ) = 1 2 π σ 2 e − ( x − μ ) 2 2 σ 2 f(x|\mu,\sigma^2)=\frac{1}{\sqrt{2\pi \sigma^2}}e^{-\frac{(x-\mu)^2}{2\sigma^2}} f(x∣μ,σ2)=2πσ2 1e−2σ2(x−μ)2
若两个随机变量 P ∼ N ( μ 1 , σ 1 2 ) , Q ∼ N ( μ 2 , σ 2 2 ) P\sim N(\mu_1,\sigma_1^2),Q\sim N(\mu_2,\sigma_2^2) P∼N(μ1,σ12),Q∼N(μ2,σ22),概率分布分别为 p ( x ) , q ( x ) p(x),q(x) p(x),q(x),代入KL散度公式可得:
D K L ( p ∣ ∣ q ) = ∫ x p ( x ) log p ( x ) q ( x ) d x = ∫ x p ( x ) [ log ( 1 2 π σ 1 2 e − ( x − μ 1 ) 2 2 σ 1 2 ) − log ( 1 2 π σ 2 2 e − ( x − μ 2 ) 2 2 σ 2 2 ) ] d x = ∫ x p ( x ) [ − 1 2 log 2 π − log σ 1 − ( x − μ 1 ) 2 2 σ 1 2 + 1 2 log 2 π + log σ 2 + ( x − μ 2 ) 2 2 σ 2 2 ] d x = ∫ x p ( x ) [ log σ 2 σ 1 + ( x − μ 2 ) 2 2 σ 2 2 − ( x − μ 1 ) 2 2 σ 1 2 ] d x = A \begin{aligned} D_{KL}(p||q)&=\int_x p(x)\log \frac{p(x)}{q(x)}dx \\ &=\int_x p(x)[\log(\frac{1}{\sqrt{2\pi \sigma_1^2}}e^{-\frac{(x-\mu_1)^2}{2\sigma_1^2}})-\log(\frac{1}{\sqrt{2\pi \sigma_2^2}}e^{-\frac{(x-\mu_2)^2}{2\sigma_2^2}})]dx \\ &=\int_x p(x)[-\frac{1}{2}\log 2\pi-\log\sigma_1-\frac{(x-\mu_1)^2}{2\sigma_1^2}+\frac{1}{2}\log 2\pi+\log\sigma_2+\frac{(x-\mu_2)^2}{2\sigma_2^2}]dx \\ &=\int_x p(x)[\log \frac{\sigma_2}{\sigma_1}+\frac{(x-\mu_2)^2}{2\sigma_2^2}-\frac{(x-\mu_1)^2}{2\sigma_1^2}]dx \\ &=A \end{aligned} DKL(p∣∣q)=∫xp(x)logq(x)p(x)dx=∫xp(x)[log(2πσ12 1e−2σ12(x−μ1)2)−log(2πσ22 1e−2σ22(x−μ2)2)]dx=∫xp(x)[−21log2π−logσ1−2σ12(x−μ1)2+21log2π+logσ2+2σ22(x−μ2)2]dx=∫xp(x)[logσ1σ2+2σ22(x−μ2)2−2σ12(x−μ1)2]dx=A
根据全概率公式, ∫ x p ( x ) d x = 1 \int_x p(x)dx=1 ∫xp(x)dx=1;根据方差定义, ∫ x p ( x ) ( x − μ ) 2 d x = σ 2 \int_x p(x)(x-\mu)^2 dx=\sigma^2 ∫xp(x)(x−μ)2dx=σ2。因此有
A = ∫ x p ( x ) log σ 2 σ 1 d x + ∫ x p ( x ) ( x − μ 2 ) 2 2 σ 2 2 d x − ∫ x p ( x ) ( x − μ 1 ) 2 2 σ 1 2 d x = log σ 2 σ 1 + ∫ x p ( x ) ( x − μ 2 ) 2 2 σ 2 2 d x − 1 2 = log σ 2 σ 1 + B − 1 2 \begin{aligned} A&=\int_x p(x)\log\frac{\sigma_2}{\sigma_1}dx+\int_x p(x)\frac{(x-\mu_2)^2}{2\sigma_2^2}dx-\int_x p(x)\frac{(x-\mu_1)^2}{2\sigma_1^2}dx \\ &=\log\frac{\sigma_2}{\sigma_1}+\int_x p(x)\frac{(x-\mu_2)^2}{2\sigma_2^2}dx-\frac{1}{2} \\ &=\log\frac{\sigma_2}{\sigma_1}+B-\frac{1}{2} \end{aligned} A=∫xp(x)logσ1σ2dx+∫xp(x)2σ22(x−μ2)2dx−∫xp(x)2σ12(x−μ1)2dx=logσ1σ2+∫xp(x)2σ22(x−μ2)2dx−21=logσ1σ2+B−21
B = ∫ x p ( x ) ( x − μ 2 ) 2 2 σ 2 2 d x = 1 2 σ 2 2 ∫ x p ( x ) [ ( x − μ 1 ) + ( μ 1 − μ 2 ) ] 2 d x = 1 2 σ 2 2 [ ∫ x p ( x ) ( x − μ 1 ) 2 d x + ∫ x p ( x ) ( μ 1 − μ 2 ) 2 d x + 2 ∫ x p ( x ) ( x − μ 1 ) ( μ 1 − μ 2 ) d x ] = 1 2 σ 2 2 [ σ 1 2 + ( μ 1 − μ 2 ) 2 + 2 ( μ 1 − μ 2 ) ∫ x p ( x ) ( x − μ 1 ) d x ] = 1 2 σ 2 2 [ σ 1 2 + ( μ 1 − μ 2 ) 2 + 2 ( μ 1 − μ 2 ) C ] \begin{aligned} B&=\int_x p(x)\frac{(x-\mu_2)^2}{2\sigma_2^2}dx \\ &=\frac{1}{2\sigma_2^2}\int_x p(x)[(x-\mu_1)+(\mu_1-\mu_2)]^2dx \\ &=\frac{1}{2\sigma_2^2}[\int_x p(x)(x-\mu_1)^2dx+\int_xp(x)(\mu_1-\mu_2)^2dx+2\int_xp(x)(x-\mu_1)(\mu_1-\mu_2)dx] \\ &=\frac{1}{2\sigma_2^2}[\sigma_1^2+(\mu_1-\mu_2)^2+2(\mu_1-\mu_2)\int_x p(x)(x-\mu_1)dx] \\ &=\frac{1}{2\sigma_2^2}[\sigma_1^2+(\mu_1-\mu_2)^2+2(\mu_1-\mu_2)C] \end{aligned} B=∫xp(x)2σ22(x−μ2)2dx=2σ221∫xp(x)[(x−μ1)+(μ1−μ2)]2dx=2σ221[∫xp(x)(x−μ1)2dx+∫xp(x)(μ1−μ2)2dx+2∫xp(x)(x−μ1)(μ1−μ2)dx]=2σ221[σ12+(μ1−μ2)2+2(μ1−μ2)∫xp(x)(x−μ1)dx]=2σ221[σ12+(μ1−μ2)2+2(μ1−μ2)C]
根据正态分布的性质, E ( x ) = μ E(x)=\mu E(x)=μ,因此有 ∫ x p ( x ) ( x − μ 1 ) = E ( x − μ ) = E ( x ) − E ( μ ) = 0 \int_x p(x)(x-\mu_1)=E(x-\mu)=E(x)-E(\mu)=0 ∫xp(x)(x−μ1)=E(x−μ)=E(x)−E(μ)=0,因此有
C = 0 C=0 C=0,代入后得到:
B = 1 2 σ 2 2 [ σ 1 2 + ( μ 1 − μ 2 ) 2 ] B=\frac{1}{2\sigma_2^2}[\sigma_1^2+(\mu_1-\mu_2)^2] B=2σ221[σ12+(μ1−μ2)2]
A = log σ 2 σ 1 + 1 2 σ 2 2 [ σ 1 2 + ( μ 1 − μ 2 ) 2 ] − 1 2 A=\log\frac{\sigma_2}{\sigma_1}+\frac{1}{2\sigma_2^2}[\sigma_1^2+(\mu_1-\mu_2)^2]-\frac{1}{2} A=logσ1σ2+2σ221[σ12+(μ1−μ2)2]−21
4.重参数化技巧 reparameterization trick
以正态分布为例,有时我们需要从 N ( μ , σ 2 ) \mathcal{N}(\mu, \sigma^2) N(μ,σ2)中进行采样。当我们需要训练优化 μ \mu μ和 σ \sigma σ时,由于采样的过程不可导,此时无法传递梯度。此时为了实现采样并不让 μ \mu μ和 σ \sigma σ影响梯度的计算,先从 N ( 0 , 1 ) \mathcal{N}(0,1) N(0,1)采样,这时不涉及所求的 μ \mu μ和 σ \sigma σ,因此没有需要传递的梯度。设此时采样值为 z z z,根据当前的 μ \mu μ和 σ \sigma σ,可以计算出等价采样值 z ′ = μ + z × σ z'=\mu+z\times \sigma z′=μ+z×σ。
Abstract
使用Diffusion probabilistic models提供高质量的图像合成结果。
模型自然地承认一个渐进的有损解压方案,可以解释为自回归解码的一个推广。
在unconditional CIFAR10数据集上,我们获得了9.46的Inception分数和3.17的最先进的FID分数。在256x256 LSUN上,我们得到了与ProgressiveGAN类似的样本质量。
1 Introduction
各种深度生成模型在各种数据模态中都展示了高质量样本。生成对抗网络(GAN)、自回归模型(autoregressive models)、流(flows)和变分自编码器(VAEs)合成了引人注目的图像和音频样本,并且在基于能量的建模和得分匹配方面取得了显著进展,产生了与GAN相当的图像。
本文介绍了diffusion probabilistic model的进展(简称diffusion model,扩散模型)。
扩散模型是利用变分推理的参数化马尔可夫链 ,在有限时间后产生与数据匹配的样本。通过学习该链的一个变迁逆转一个扩散过程,该扩散过程是一个马尔可夫链,在采样的相反方向上逐渐给数据添加噪声,直到信号被破坏。当扩散由少量高斯噪声组成时,将采样链转换设置为条件高斯,从而允许特别简单的神经网络参数化。
扩散模型是直接定义有效的训练,但目前没有证据表明能够产生高质量样本。本文认为,扩散模型实际上能够产生高质量的样本,有时比其他类型的生成模型的公开结果更好(第4节)。
本文证明了扩散模型的某种参数化揭示了下面二者的等价性:
a.训练过程中多个噪声水平上的去噪分数匹配
b.采样过程中退火朗之万动力学(Annealed Langevin Dynamics)
本文通过该参数化得到了最好的样本质量结果(认为是本文的主要贡献之一)。
尽管样本质量很高,与其他基于似然的模型(likelihood-based models)相比,本文的模型的对数似然不具有竞争性,但是确实相比已发布的为基于能量的模型(energy based models)和分数匹配产生的退火重要性采样的大估计,有更好的对数似然。
本文模型的大部分无损码长(lossless codelengths)都用于描述不易察觉的图像细节(4.3节)。
本文用有损压缩的语言(language of lossy compression)对这一现象进行了更精细的分析,表明扩散模型的采样过程就是一种渐进解码(progressive decoding),类似于自回归解码的比特排序,极大概括了自回归模型通常可能的情况。
2 Background
逆过程(reverse process),被定义为一个马尔可夫链,从 p ( x T ) = N ( x T ; 0 , I ) p(\mathbf{x}T)=\mathcal{N}(\mathbf{x}T;0,\mathbf{I}) p(xT)=N(xT;0,I)开始逐步学习每一次的高斯变换:
p θ ( x 0 : T ) : = p ( x T ) ∏ t = 1 T p θ ( x t − 1 ∣ x t ) p\theta(\mathbf{x}{0:T}):=p(\mathbf{x}T)\prod{t=1}^T p_\theta(\mathbf{x}{t-1}|\mathbf{x}t) pθ(x0:T):=p(xT)t=1∏Tpθ(xt−1∣xt)
p θ ( x t − 1 ∣ x t ) : = N ( x t − 1 ; μ θ ( x t , t ) , Σ θ ( x t , t ) ) p\theta(\mathbf{x}{t-1}|\mathbf{x}t):=\mathcal{N}(\mathbf{x}{t-1};\mu_\theta(\mathbf{x}t,t),\Sigma\theta(\mathbf{x}_t,t)) pθ(xt−1∣xt):=N(xt−1;μθ(xt,t),Σθ(xt,t))
扩散模型的前向过程被固定到一个马尔可夫链熵,该马尔可夫链根据 β 1 , β 2 , ⋯ , β t \beta_1,\beta_2,\cdots,\beta_t β1,β2,⋯,βt逐渐向数据中添加高斯噪声:
q ( x 1 : T ∣ x 0 ) : = ∏ t = 1 T q ( x t ∣ x t − 1 ) q(\mathbf{x}_{1:T}|\mathbf{x}0):=\prod{t=1}^T q(\mathbf{x}t|\mathbf{x}{t-1}) q(x1:T∣x0):=t=1∏Tq(xt∣xt−1)
q ( x t ∣ x t − 1 ) : = N ( x t ; 1 − β t x t − 1 , β t I ) q(\mathbf{x}t|\mathbf{x}{t-1}):=\mathcal{N}(\mathbf{x}t;\sqrt{1-\beta_t}\mathbf{x}{t-1},\beta_t\mathbf{I}) q(xt∣xt−1):=N(xt;1−βt xt−1,βtI)
通过优化负对数似然的通常边界进行训练。(公式3,没看懂!)
正向过程的 β t \beta_t βt可以通过重参数化技巧 来学习或作为超参数保持不变。而反向过程的表达能力部分通过 p θ ( x t − 1 ∣ x t ) p_\theta(\mathbf{x}_{t-1}|\mathbf{x}_t) pθ(xt−1∣xt)中的高斯条件的选择来保证。在 β \beta β比较小时,两个过程的函数形式相同。正向过程的显著特点是它允许在任意时间 t t t内以闭合形式采样 x t \mathbf{x}_t xt。使用符号 α t : = 1 − β t \alpha_t:=1-\beta_t αt:=1−βt、 α ˉ t : = ∏ s = 1 t α s \bar{\alpha}t:=\prod{s=1}^t \alpha_s αˉt:=∏s=1tαs,我们有:
q ( x t ∣ x 0 ) = N ( x t ; α ˉ t x 0 , ( 1 − α ˉ t ) I ) q(\mathbf{x}_t|\mathbf{x}_0)=\mathcal{N}(\mathbf{x}_t;\sqrt{\bar{\alpha}_t}\mathbf{x}_0,(1-\bar{\alpha}_t)\mathbf{I}) q(xt∣x0)=N(xt;αˉt x0,(1−αˉt)I)
因此,通过随机梯度下降优化 L L L的随机项,可以实现有效的训练。可以通过改写Eq. 3进一步改进方差的减少。
正向公式推导
在一次加噪中,生成的噪声图像 ϵ \epsilon ϵ服从标准正态分布。混合图像与噪声图像时,使用下面公式计算混合后的图像像素通道值:
x t = β t × ϵ t + 1 − β t × x t − 1 x_t=\sqrt{\beta_t}\times\epsilon_t+\sqrt{1-\beta_t}\times x_{t-1} xt=βt ×ϵt+1−βt ×xt−1
其中 0 < β 1 < β 2 < ⋯ < β t − 1 < β t < 1 0<\beta_1<\beta_2<\cdots<\beta_{t-1}<\beta_t<1 0<β1<β2<⋯<βt−1<βt<1。令 α t = 1 − β t \alpha_t=1-\beta_t αt=1−βt,于是写作:
x t = 1 − α t × ϵ t + α t × x t − 1 x_t=\sqrt{1-\alpha_t}\times\epsilon_t+\sqrt{\alpha_t}\times x_{t-1} xt=1−αt ×ϵt+αt ×xt−1
又有
x t − 1 = 1 − α t − 1 × ϵ t − 1 + α t − 1 × x t − 2 x_{t-1}=\sqrt{1-\alpha_{t-1}}\times\epsilon_{t-1}+\sqrt{\alpha_{t-1}}\times x_{t-2} xt−1=1−αt−1 ×ϵt−1+αt−1 ×xt−2
代入上式得到
x t = α t ( 1 − α t − 1 ) × ϵ t − 1 + 1 − α t × ϵ t + α t α t − 1 × x t − 2 x_t=\sqrt{\alpha_t(1-\alpha_{t-1})}\times\epsilon_{t-1}+\sqrt{1-\alpha_t}\times\epsilon_t+\sqrt{\alpha_t\alpha_{t-1}}\times x_{t-2} xt=αt(1−αt−1) ×ϵt−1+1−αt ×ϵt+αtαt−1 ×xt−2
式中第一项服从 N ( 0 , α t ( 1 − α t − 1 ) ) \mathcal{N}(0,\alpha_t(1-\alpha_{t-1})) N(0,αt(1−αt−1)),第二项服从 N ( 0 , 1 − α t ) \mathcal{N}(0,1-\alpha_t) N(0,1−αt),根据正态分布的性质,有 N ( μ 1 , σ 1 2 ) + N ( μ 2 , σ 2 2 ) = N ( μ 1 + μ 2 , σ 1 2 + σ 2 2 ) \mathcal{N}(\mu_1,\sigma_1^2)+\mathcal{N}(\mu_2,\sigma_2^2)=\mathcal{N}(\mu_1+\mu_2,\sigma_1^2+\sigma_2^2) N(μ1,σ12)+N(μ2,σ22)=N(μ1+μ2,σ12+σ22),将两个噪声叠加后的噪声服从 N ( 0 , 1 − α t α t − 1 ) \mathcal{N}(0,1-\alpha_t \alpha_{t-1}) N(0,1−αtαt−1)。
由此 x t x_t xt可以直接由 x t − 2 x_{t-2} xt−2加噪而来:
x t = 1 − α t α t − 1 × ϵ + α t α t − 1 × x t − 2 x_t=\sqrt{1-\alpha_t \alpha_{t-1}}\times\epsilon+\sqrt{\alpha_t\alpha_{t-1}}\times x_{t-2} xt=1−αtαt−1 ×ϵ+αtαt−1 ×xt−2
同理, x t x_t xt可以直接由 x t − 3 x_{t-3} xt−3加噪而来:
x t = 1 − α t α t − 1 α t − 2 × ϵ + α t α t − 1 α t − 2 × x t − 2 x_t=\sqrt{1-\alpha_t \alpha_{t-1} \alpha_{t-2}}\times\epsilon+\sqrt{\alpha_t\alpha_{t-1}\alpha_{t-2}}\times x_{t-2} xt=1−αtαt−1αt−2 ×ϵ+αtαt−1αt−2 ×xt−2
令 α ˉ t = α t α t − 1 ⋯ α 1 \bar{\alpha}t=\alpha_t\alpha{t-1}\cdots\alpha_1 αˉt=αtαt−1⋯α1,归纳可得
x t = 1 − α ˉ t × ϵ + α ˉ t × x 0 x_t=\sqrt{1-\bar{\alpha}_t}\times\epsilon+\sqrt{\bar{\alpha}_t}\times x_0 xt=1−αˉt ×ϵ+αˉt ×x0
反向过程推导
在一次反向过程去噪 x t x_t xt到 x t − 1 x_{t-1} xt−1中,需要知道得知正向过程中使用的随机噪声才能够正确去噪,而这一步是随机过程,可以通过求解在 x t x_t xt的条件下变成 x t − 1 x_{t-1} xt−1的概率 P ( x t − 1 ∣ x t ) P(x_{t-1}|x_t) P(xt−1∣xt)来推测噪声。
P ( x t − 1 ∣ x t ) = P ( x t ∣ x t − 1 ) P ( x t − 1 ) P ( x t ) P(x_{t-1}|x_t)=\frac{P(x_t|x_{t-1})P(x_{t-1})}{P(x_t)} P(xt−1∣xt)=P(xt)P(xt∣xt−1)P(xt−1)
式中 P ( x t − 1 ) P(x_{t-1}) P(xt−1)和 P ( x t ) P(x_t) P(xt)为从 x 0 x_0 x0到 x t − 1 x_{t-1} xt−1和 x t x_t xt的概率。该过程在马尔可夫链上进行,因此等价于
P ( x t − 1 ∣ x t , x 0 ) = P ( x t ∣ x t − 1 , x 0 ) P ( x t − 1 ∣ x 0 ) P ( x t ∣ x 0 ) P(x_{t-1}|x_t,x_0)=\frac{P(x_t|x_{t-1},x_0)P(x_{t-1}|x_0)}{P(x_t|x_0)} P(xt−1∣xt,x0)=P(xt∣x0)P(xt∣xt−1,x0)P(xt−1∣x0)
又因有下式
x t = 1 − α t × ϵ t + α t × x t − 1 x_t=\sqrt{1-\alpha_t}\times\epsilon_t+\sqrt{\alpha_t}\times x_{t-1} xt=1−αt ×ϵt+αt ×xt−1
其中 ϵ t \epsilon_t ϵt服从标准正态分布,于是 P ( x t ∣ x t − 1 ) P(x_t|x_{t-1}) P(xt∣xt−1)服从 N ( α t x t − 1 , 1 − α t ) \mathcal{N}(\sqrt{\alpha_t}x_{t-1},1-\alpha_t) N(αt xt−1,1−αt)。
又因有下式
x t = 1 − α ˉ t × ϵ + α ˉ t × x 0 x_t=\sqrt{1-\bar{\alpha}_t}\times\epsilon+\sqrt{\bar{\alpha}_t}\times x_0 xt=1−αˉt ×ϵ+αˉt ×x0
其中 ϵ \epsilon ϵ服从标准正态分布,于是 P ( x t ) P(x_t) P(xt)服从 N ( α ˉ t x 0 , 1 − α ˉ t ) \mathcal{N}(\sqrt{\bar{\alpha}t}x_0,1-\bar{\alpha}t) N(αˉt x0,1−αˉt)。同理可得 P ( x t − 1 ) P(x{t-1}) P(xt−1)服从 N ( α ˉ t − 1 x 0 , 1 − α ˉ t − 1 ) \mathcal{N}(\sqrt{\bar{\alpha}{t-1}}x_0,1-\bar{\alpha}{t-1}) N(αˉt−1 x0,1−αˉt−1)。将三个正态分布展开后代入式中,化简后得到
P ( x t − 1 ∣ x t , x 0 ) ∼ N ( α t ( 1 − α ˉ t − 1 ) 1 − α ˉ t x t + α ˉ t − 1 ( 1 − α t ) 1 − α ˉ t x 0 , ( 1 − α t 1 − α ˉ t − 1 1 − α ˉ t ) 2 ) P(x{t-1}|x_t,x_0)\sim \mathcal{N}(\frac{\sqrt{\alpha_t}(1-\bar{\alpha}_{t-1})}{1-\bar{\alpha}t}x_t+\frac{\sqrt{\bar{\alpha}{t-1}}(1-\alpha_t)}{1-\bar{\alpha}t}x_0,(\frac{\sqrt{1-\alpha_t}\sqrt{1-\bar{\alpha}{t-1}}}{\sqrt{1-\bar{\alpha}_t}})^2) P(xt−1∣xt,x0)∼N(1−αˉtαt (1−αˉt−1)xt+1−αˉtαˉt−1 (1−αt)x0,(1−αˉt 1−αt 1−αˉt−1 )2)
通过上面式子得到 x 0 = x t − 1 − α ˉ t × ϵ α ˉ t x_0=\frac{x_t-\sqrt{1-\bar{\alpha}t}\times \epsilon}{\sqrt{\bar{\alpha}t}} x0=αˉt xt−1−αˉt ×ϵ,代入得到
P ( x t − 1 ∣ x t , x 0 ) ∼ N ( α t ( 1 − α ˉ t − 1 ) 1 − α ˉ t x t + α ˉ t − 1 ( 1 − α t ) 1 − α ˉ t × x t − 1 − α ˉ t × ϵ α ˉ t , ( 1 − α t 1 − α ˉ t − 1 1 − α ˉ t ) 2 ) P(x{t-1}|x_t,x_0)\sim \mathcal{N}(\frac{\sqrt{\alpha_t}(1-\bar{\alpha}{t-1})}{1-\bar{\alpha}t}x_t+\frac{\sqrt{\bar{\alpha}{t-1}}(1-\alpha_t)}{1-\bar{\alpha}_t}\times \frac{x_t-\sqrt{1-\bar{\alpha}_t}\times \epsilon}{\sqrt{\bar{\alpha}t}},(\frac{\sqrt{1-\alpha_t}\sqrt{1-\bar{\alpha}{t-1}}}{\sqrt{1-\bar{\alpha}_t}})^2) P(xt−1∣xt,x0)∼N(1−αˉtαt (1−αˉt−1)xt+1−αˉtαˉt−1 (1−αt)×αˉt xt−1−αˉt ×ϵ,(1−αˉt 1−αt 1−αˉt−1 )2)
只要获得从 x 0 x_0 x0到 x t x_t xt加入的噪声 ϵ \epsilon ϵ,即可得到概率分布 P ( x t − 1 ∣ x t ) P(x_{t-1}|x_t) P(xt−1∣xt)。可以用神经网络训练每个图像基于 x 0 x_0 x0图像加入的噪声 ϵ \epsilon ϵ,于是得到概率分布,通过概率分布随机采样,即可得到前一时刻的图像。
3 Diffusion models and denoising autoencoders
扩散模型允许在实现时有大量的自由度,必须选择正向过程的 β t \beta_t βt和反向过程的模型结构和高斯分布参数化。
本文为了在扩散模型和去噪得分匹配(3.2节)之间建立了一个新的显式联系,从而得到了一个简化的、加权的扩散模型变分界限目标(3.4节)。最后,模型设计通过简单性和实证结果证明是合理的(4节)。本文讨论是按照公式中的项来分类的。
3.1 前向过程和 L T L_T LT
将前向过程中使用的 β t \beta_t βt固定为常量,因此在近似后验 q q q中没有可以学习的参数,故 L T L_T LT在学习过程中是一个常数,可以忽略。
3.2 逆向过程和 L 1 : T − 1 L_{1:T-1} L1:T−1
现在讨论 p θ ( x t − 1 ∣ x t ) = N ( x t − 1 ; μ θ ( x t , t ) , ∑ θ ( x t , t ) ) p_\theta(\mathbf{x}{t-1}|\mathbf{x}t)=\mathcal{N}(\mathbf{x}{t-1};\mu\theta(\mathbf{x}t,t),\sum\theta(\mathbf{x}_t,t)) pθ(xt−1∣xt)=N(xt−1;μθ(xt,t),∑θ(xt,t)),此时 1 < t ≤ T 1<t\leq T 1<t≤T。
(中间一串看不懂)
总之,我们可以训练反向过程的均值函数逼近器 μ t h e t a \mu_theta μtheta去预测 μ t ~ \tilde{\mu_t} μt~,或者修改其参数化,训练它去预测 ϵ \epsilon ϵ。(预测 x 0 \mathbf{x}_0 x0也是可能的,但是在早期实验中发现会导致样本质量变差)
我们证明了 ϵ \epsilon ϵ-预测参数化既类似于Langevin动力学,又将扩散模型的变分边界(variational bounds)简化到一个类似去噪得分匹配的目标。(?)
尽管如此,这只是 p θ ( x t − 1 ∣ x t ) p_\theta(\mathbf{x}_{t-1}|\mathbf{x}_t) pθ(xt−1∣xt),所以我们在第4节对预测 ϵ \epsilon ϵ和预测 μ ~ t \tilde{\mu}_t μ~t的地方对此进行验证。
4 Experiments
本文所有实验设置 T = 1000 T=1000 T=1000,使得采样过程中需要的神经网络评估次数与之前的工作相匹配。
前向过程中的 β \beta β的参数设置:从 β 1 = 1 0 − 4 \beta_1=10^{-4} β1=10−4到 β t = 0.02 \beta_t=0.02 βt=0.02线性增加。
这些常数被选择与被放缩到 [ − 1 , 1 ] [-1,1] [−1,1]的数据相比较小,目的是确保反向和正向过程具有大致相同的函数形式,同时保持在 x T \mathbf{x}T xT处的信噪比尽可能小,尽可能靠近 N ( 0 , I ) \mathcal{N}(\mathbf{0},\mathbf{I}) N(0,I),即对于每一维有 D K L ( q ( x T ∣ x 0 ) ∣ ∣ N ( 0 , I ) ) ≈ 1 0 − 5 D{KL}(q(\mathbf{x}_T|\mathbf{x}_0)||\mathcal{N}(\mathbf{0},\mathbf{I}))\approx 10^{-5} DKL(q(xT∣x0)∣∣N(0,I))≈10−5。
为了表示反向过程,本文使用类似于unmasked PixelCNN++的U-Net主干网,并在整个【66】中进行group normalization。参数是跨时间共享的,使用Transformer正弦位置嵌入指定给网络。(Embedding)
本文在16x16特征图分辨率下使用自注意力。
4.1 样本质量
表1:CIFAR10 结果。NLL以bit/dim表示。
正如预期的那样,在真实变分界限上训练我们的模型比在简化目标上训练产生更好的无损码长,但后者产生最好的样本质量。
4.2 反向过程参数化和训练目标消融
表2:无条件 CIFAR10 反向过程参数化(parameterization)和训练目标消融(training objective ablation)。空白条目训练不稳定,并且生成分数超出范围的不良样本。
在表 2 中,我们显示了反向过程参数化和训练目标对样本质量的影响。我们发现,预测 μ ~ \tilde{\mu} μ~的baseline选项只有在真正的变分界限上训练时才能很好地工作,而不是未加权的均方误差。
与固定 β \beta β相比,学习反向过程的 β \beta β(通过引入一个参数化的对角线(?) Σ θ ( x t ) \Sigma_\theta(\mathbf{x}_t) Σθ(xt)学习),会导致不稳定的训练和较差的样本质量。
当用固定的 β \beta β的变分界训练时,预测的效果和预测 μ ~ \tilde{\mu} μ~一样好。 当用我们的简化目标训练时,预测效果要好得多。
4.3 Progressive coding 递增式编码
表1展示了我们CIFAR10的无损编码。训练集与测试集之间的跨域最多为每一维0.03比特,这和其他基于似然的模型的差距相当,表明我们的扩散模型没有过拟合。
我们的无损码长优于基于能量的模型和使用退火重要性采样的得分匹配的大估计值。但他们与其他的基于似然的生成模型没有竞争力。
我们生成的样本是高质量的,得出结论:扩散模型有一个感性的偏见,使它们成为优秀的有损压缩机(lossy compressors)。
将变分约束项 L 1 + ⋯ + L T L_1+\cdots+L_T L1+⋯+LT作为码率,令 L 0 L_0 L0作为失真,我们的CIFAR10模型能够产生最高质量的样本,码率为1.78bit/dim,失真为1.97bit/dim。在0到255尺度上的均方根误差为0.95。超过一半的无损码长描述了不可感知的失真。
4.3.1 Progressive lossy compression 渐进式有损压缩
算法3
算法4
我们可以通过引入一个渐进式有损压缩来镜像方程(原文Eq.5),以此深入探究我们模型的率失真行为(rate-distortion behavior)。参考算法3和算法4,该算法假设有一个过程,例如最小随机编码(minimal random coding),对于任意的分布 p p p和 q q q,可以平均地使用近似 D K L ( q ( x ) ∣ ∣ p ( x ) ) D_{KL}(q(\mathbf{x})||p(\mathbf{x})) DKL(q(x)∣∣p(x))比特传输一个样本 x ∼ q ( x ) \mathbf{x}\sim q(\mathbf{x}) x∼q(x)。当应用于 x 0 ∼ q ( x 0 ) \mathbf{x}_0\sim q(\mathbf{x}_0) x0∼q(x0),算法3和算法4使用与Eq.5同等总期望码长依次发送 x T , ⋯ , x 0 \mathbf{x}_T,\cdots,\mathbf{x}_0 xT,⋯,x0。
接收者在任意时刻 t t t,具有部分信息 x t \mathbf{x}_t xt完全可得且可以逐步估计:
x 0 ≈ x 0 = ( x t − 1 − α ˉ t ϵ θ ( x t ) ) / α ˉ t \mathbf{x}_0\approx \mathbf{x}_0=(\mathbf{x}_t-\sqrt{1-\bar{\alpha}t}\epsilon{\theta}(\mathbf{x}_t))/\sqrt{\bar{\alpha}_t} x0≈x0=(xt−1−αˉt ϵθ(xt))/αˉt 图5展示CIFAR10测试集上的结果率失真图。
图5:无条件CIFAR10测试集率失真。失真在 [ 0 , 255 ] [0,255] [0,255]尺度上以均方根误差度量。
4.3.2 Progressive generation 渐进式生成
本文还运行了一个渐进的无条件生成过程,由随机位的渐进解压给出。即,使用算法2从反向过程采样的同时,预测反向过程的结果 x ^ 0 \hat{\mathbf{x}}_0 x^0。
算法2
图6展示了反向过程得到的 x ^ 0 \hat{\mathbf{x}}_0 x^0的样本质量,大尺度图像特征最先出现,细节特征最后出现。
图6
图7给出了 x 0 ∼ p θ ( x 0 ∣ x t ) \mathbf{x}0\sim p{\theta}(\mathbf{x}_0|\mathbf{x}_t) x0∼pθ(x0∣xt)的随机预测,其中 x t \mathbf{x}_t xt对不同的 t t t是冻结的(frozen)。当 t t t很小时,除细节外的所有特征都被保留,当 t t t较大时仅保留大尺度特征。也许这些都是概念压缩的暗示。
图7:条件相同时 Celeb A-HQ 256x256样本共享高级属性。右下角的象限是 x t x_t xt,其他的象限来自 p θ ( x 0 ∣ x t ) p_\theta(\mathbf{x}_0|\mathbf{x}_t) pθ(x0∣xt)的样本。
4.4 Interpolation 内插法
利用 q q q作为随机编码器,将源图像 x 0 , x 0 ′ ∼ q ( x 0 ) \mathbf{x}_0, \mathbf{x}_0^{'} \sim q(\mathbf{x}_0) x0,x0′∼q(x0)插值到隐空间,然后通过反向过程将线性插值后的隐空间 x ˉ t = ( 1 − λ ) x 0 + λ x 0 ′ \bar{\mathbf{x}}_t=(1-\lambda)\mathbf{x}_0+\lambda\mathbf{x}_0^{'} xˉt=(1−λ)x0+λx0′解码到图像空间。 x ˉ 0 ∼ p ( x 0 ∣ x t ˉ ) \bar{\mathbf{x}}_0 \sim p(\mathbf{x}_0|\bar{\mathbf{x}_t}) xˉ0∼p(x0∣xtˉ)。
实际上,我们使用反向过程从线性插值损坏的源图像版本中去除伪影,如图8左所示。对不同的 λ \lambda λ值固定噪声,使得 x t \mathbf{x}_t xt和 x t ′ \mathbf{x}_t^{'} xt′保持不变。图8右展示了原始CelebA-HQ 256x256图像(t=500)的插值与重建。
图8:使用CelebA-HQ 256x256图像进行500步扩散的内插方法。
反向过程产生高质量的重建,并且合理的插值可以平滑地改变诸如姿势、肤色、发型、表情和背景等属性,而不是眼镜。较大的t导致更粗糙和更多样的插值,在t = 1000时有新的样本。
5 Related Works
6 Conclusion
使用扩散模型提供了高质量的图像样本,发现了扩散模型和变分推理之间的联系,用于训练马尔可夫链、去噪得分匹配和退火Langevin动力学(以及基于能量的扩展模型)、自回归模型和渐进式有损压缩。由于扩散模型似乎对图像数据具有极好的归纳偏差,作者期待研究它们在数据模态中的效用,并作为其他类型的生成模型和机器学习系统的组成部分。