【论文笔记】Denoising Diffusion Probabilistic Models

Pre Knowledge

1.条件概率的一般形式

P ( A , B ) = P ( B ∣ A ) P ( A ) P(A,B)=P(B|A)P(A) P(A,B)=P(BA)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(CB,A)P(B,A)=P(CB,A)P(BA)P(A)

2.基于马尔可夫假设的条件概率

假设 A → B → C A\rightarrow B\rightarrow C ABC,那么 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(CB,A)P(B,A)=P(CB)P(BA)P(A)
P ( B , C ∣ A ) = P ( B ∣ A ) P ( C ∣ B ) P(B,C|A)=P(B|A)P(C|B) P(B,CA)=P(BA)P(CB)

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=1np(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=1np(xi)logq(xi)p(xi)
高斯分布即正态分布,若 x ∼ N ( μ , σ 2 ) x \sim N(\mu, \sigma^2) xN(μ,σ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 1e2σ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) PN(μ1,σ12),QN(μ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 1e2σ12(xμ1)2)log(2πσ22 1e2σ22(xμ2)2)]dx=xp(x)[21log2πlogσ12σ12(xμ1)2+21log2π+logσ2+2σ22(xμ2)2]dx=xp(x)[logσ1σ2+2σ22(xμ2)22σ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)2dxxp(x)2σ12(xμ1)2dx=logσ1σ2+xp(x)2σ22(xμ2)2dx21=logσ1σ2+B21
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σ221xp(x)[(xμ1)+(μ1μ2)]2dx=2σ221[xp(x)(xμ1)2dx+xp(x)(μ1μ2)2dx+2xp(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=1Tpθ(xt1xt)
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θ(xt1xt):=N(xt1;μθ(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:Tx0):=t=1Tq(xtxt1)
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(xtxt1):=N(xt;1βt xt1,βtI)
通过优化负对数似然的通常边界进行训练。(公式3,没看懂!)

正向过程的 β t \beta_t βt可以通过重参数化技巧来学习或作为超参数保持不变。而反向过程的表达能力部分通过 p θ ( x t − 1 ∣ x t ) p_\theta(\mathbf{x}_{t-1}|\mathbf{x}_t) pθ(xt1xt)中的高斯条件的选择来保证。在 β \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(xtx0)=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 ×xt1
其中 0 < β 1 < β 2 < ⋯ < β t − 1 < β t < 1 0<\beta_1<\beta_2<\cdots<\beta_{t-1}<\beta_t<1 0<β1<β2<<βt1<β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 ×xt1
又有
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} xt1=1αt1 ×ϵt1+αt1 ×xt2
代入上式得到
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αt1) ×ϵt1+1αt ×ϵt+αtαt1 ×xt2
式中第一项服从 N ( 0 , α t ( 1 − α t − 1 ) ) \mathcal{N}(0,\alpha_t(1-\alpha_{t-1})) N(0,αt(1αt1)),第二项服从 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αt1)
由此 x t x_t xt可以直接由 x t − 2 x_{t-2} xt2加噪而来:
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αt1 ×ϵ+αtαt1 ×xt2
同理, x t x_t xt可以直接由 x t − 3 x_{t-3} xt3加噪而来:
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αt1αt2 ×ϵ+αtαt1αt2 ×xt2
α ˉ t = α t α t − 1 ⋯ α 1 \bar{\alpha}_t=\alpha_t\alpha_{t-1}\cdots\alpha_1 αˉt=αtαt1α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} xt1中,需要知道得知正向过程中使用的随机噪声才能够正确去噪,而这一步是随机过程,可以通过求解在 x t x_t xt的条件下变成 x t − 1 x_{t-1} xt1的概率 P ( x t − 1 ∣ x t ) P(x_{t-1}|x_t) P(xt1xt)来推测噪声。
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(xt1xt)=P(xt)P(xtxt1)P(xt1)
式中 P ( x t − 1 ) P(x_{t-1}) P(xt1) P ( x t ) P(x_t) P(xt)为从 x 0 x_0 x0 x t − 1 x_{t-1} xt1 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(xt1xt,x0)=P(xtx0)P(xtxt1,x0)P(xt1x0)
又因有下式
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 ×xt1
其中 ϵ t \epsilon_t ϵt服从标准正态分布,于是 P ( x t ∣ x t − 1 ) P(x_t|x_{t-1}) P(xtxt1)服从 N ( α t x t − 1 , 1 − α t ) \mathcal{N}(\sqrt{\alpha_t}x_{t-1},1-\alpha_t) N(αt xt1,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(xt1)服从 N ( α ˉ t − 1 x 0 , 1 − α ˉ t − 1 ) \mathcal{N}(\sqrt{\bar{\alpha}_{t-1}}x_0,1-\bar{\alpha}_{t-1}) N(αˉt1 x0,1αˉt1)。将三个正态分布展开后代入式中,化简后得到
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(xt1xt,x0)N(1αˉtαt (1αˉt1)xt+1αˉtαˉt1 (1αt)x0,(1αˉt 1αt 1αˉt1 )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 xt1αˉ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(xt1xt,x0)N(1αˉtαt (1αˉt1)xt+1αˉtαˉt1 (1αt)×αˉt xt1αˉt ×ϵ,(1αˉt 1αt 1αˉt1 )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(xt1xt)。可以用神经网络训练每个图像基于 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:T1

现在讨论 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θ(xt1xt)=N(xt1;μθ(xt,t),θ(xt,t)),此时 1 < t ≤ T 1<t\leq T 1<tT

(中间一串看不懂)

总之,我们可以训练反向过程的均值函数逼近器 μ 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θ(xt1xt),所以我们在第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=104 β 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(xTx0)∣∣N(0,I))105

为了表示反向过程,本文使用类似于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}) xq(x)。当应用于 x 0 ∼ q ( x 0 ) \mathbf{x}_0\sim q(\mathbf{x}_0) x0q(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} x0x0=(xt1αˉ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) x0pθ(x0xt)的随机预测,其中 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θ(x0xt)的样本。

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,x0q(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ˉ0p(x0xtˉ)
实际上,我们使用反向过程从线性插值损坏的源图像版本中去除伪影,如图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动力学(以及基于能量的扩展模型)、自回归模型和渐进式有损压缩。由于扩散模型似乎对图像数据具有极好的归纳偏差,作者期待研究它们在数据模态中的效用,并作为其他类型的生成模型和机器学习系统的组成部分。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/134268.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[游戏中的图形学实时渲染技术] Part1 实时阴影技术

原理篇&#xff1a; 常见的渲染方程如下&#xff1a; 在不考虑自发光项与考虑阴影对于着色结果的影响之后可以将方程变化为如下形式&#xff1a; 如果射线在到达光源前击中了其他物体时&#xff0c;就认为这条来自光源的光线对着色点没有贡献。 利用上述渲染方程进行正确的着…

使用MybatisPlus时出现的java.lang.NullPointerException异常~

错误描述如下所示&#xff1a; 错误原因&#xff1a;Junit的导包错误 单元测试的包有如下所示两个 我们应该根据springboot的版本进行选择&#xff0c; 在Spring Boot 2.2.X以后使用import org.junit.jupiter.api.Test Junit5 在Spring Boot 2.2.x之前使用import org.junit.T…

基于SSM的校园二手物品交易平台设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

高防IP是什么?有什么优势?

一.高防IP的概念 高防IP是指高防机房所提供的IP段&#xff0c;一种付费增值服务&#xff0c;主要是针对网络中的DDoS攻击进行保护。用户可以通过配置高防IP&#xff0c;把域名解析到高防IP上&#xff0c;引流攻击流量&#xff0c;确保源站的稳定可靠。 二.高防IP的原理 高防I…

k8s 裸金属集群部署metalLB软负载均衡 —— 筑梦之路

metalLB 官方网站 Repo&#xff1a;https://github.com/metallb/metallb 官网&#xff1a;https://metallb.universe.tf/installation metalLB解决什么问题&#xff1f; MetalLB 是一个用于裸机 Kubernetes 集群的负载均衡器实现&#xff0c;使用标准路由协议。 k8s 并没有为裸…

CSS特效006:绘制不断跳动的心形

css实战中&#xff0c;怎么绘制不断跳动的心形呢&#xff1f; 绘图的时候主要用到了transform: rotate(-45deg); transform-origin: 0 100%; transform: rotate(45deg); transform-origin: 100% 100%; 动画使用keyframes 时间上为infinite。 效果图 源代码 /* * Author: 大剑…

两数之和问题

题目描述 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能重复出现。 你可以按任意顺…

[头歌]第1关:动态学生信息管理

题目&#xff1a; C 面向对象 _ STL 的应用 (educoder.net) 考点&#xff1a; 1.自定义排序 bool cmp 2.如何使用find和erase来找到学生类里面的指定姓名的人并将其从动态数组中删除。 3.find要找的是学生类里面的成员变量而非单纯的直接找值&#xff0c;应如何实现 &…

dcat admin 各种问题

样式问题 如何根据条件给表格数据栏添加背景色 use Illuminate\Support\Collection;protected function grid(){return Grid::make(new BookArticle(), function (Grid $grid) {... 其他代码// Collection的完整路径&#xff1a;Illuminate\Support\Collection;$grid->row…

Python 使用tkinter复刻Windows记事本UI和菜单功能(二)

上一篇&#xff1a;Python tkinter实现复刻Windows记事本UI和菜单的文本编辑器&#xff08;一&#xff09;-CSDN博客 下一篇&#xff1a;敬请耐心等待&#xff0c;如发现BUG以及建议&#xff0c;请在评论区发表&#xff0c;谢谢&#xff01; 相对上一篇文章&#xff0c;本篇文…

数字化仪的超声波应用

超声波是频率大于人类听觉范围上限的声学声压&#xff08;声学&#xff09;波。超声波设备的工作频率为 20 kHz 至几千 MHz。表 1 总结了一些更常见的超声波应用的特征。每个应用中使用的频率范围都反映了实际情况下的平衡。提高工作频率可以通过提高分辨率来检测较小的伪影&am…

JAVA集合学习

一、结构 List和Set继承了Collection接口&#xff0c;Collection继承了Iterable Object类是所有类的根类&#xff0c;包括集合类&#xff0c;集合类中的元素通常是对象&#xff0c;继承了Object类中的一些基本方法&#xff0c;例如toString()、equals()、hashCode()。 Collect…

时间序列预测实战(九)PyTorch实现LSTM-ARIMA融合移动平均进行长期预测

一、本文介绍 本文带来的是利用传统时间序列预测模型ARIMA(注意&#xff1a;ARIMA模型不属于机器学习)和利用PyTorch实现深度学习模型LSTM进行融合进行预测&#xff0c;主要思想是->先利用ARIMA先和移动平均结合处理数据的线性部分&#xff08;例如趋势和季节性&#xff09…

【mysql】将逗号分割的字段内容转换为多行并group by

先说需求&#xff1a; 公司想让我通过mysql导出一个报表&#xff0c;内容为公司每个人参加会议的次数&#xff0c;现在有一个会议表fusion_meeting&#xff0c;正常的逻辑是通过人员直接group by就可以得出结果&#xff0c;但是我们的参会人是通过逗号分割这种方式存在一个字段…

【MySQL基本功系列】第二篇 InnoDB事务提交过程深度解析

通过上一篇博文&#xff0c;我们简要了解了MySQL的运行逻辑&#xff0c;从用户请求到最终将数据写入磁盘的整个过程。 当数据写入磁盘时&#xff0c;存储引擎扮演着关键的角色&#xff0c;它负责实际的数据存储和检索。 在MySQL中&#xff0c;有多个存储引擎可供选择&#xf…

vColorPicker——基于 Vue 的颜色选择器插件

文章目录 前言样例特点 一、使用步骤&#xff1f;1. 安装2.引入3.在项目中使用 vcolorpicker 二、选项三、事件 前言 vColorPicker——官网 vColorPicker——GitHub 样例 vColorPicker是基于 Vue 的一款颜色选择器插件&#xff0c;仿照Angular的color-picker插件制作 特点 …

【GIT】git分支命令,使用分支场景介绍git标签介绍,git标签命令,git标签使用的场景git查看提交历史

目录 一&#xff0c;git分支命令&#xff0c;使用分支场景介绍 二&#xff0c;git标签介绍&#xff0c;git标签命令&#xff0c;git标签使用的场景 三&#xff0c;git查看提交历史 前言&#xff1a; 今天我们来聊聊关于Git 分支管理。几乎每一种版本控制系统都以某种形式支持…

第24章_mysql性能分析工具的使用

文章目录 1. 数据库服务器的优化步骤2.查看系统性能参数3. 统计SQL的查询成本&#xff1a;last_query_cost4. 定位执行慢的 SQL&#xff1a;慢查询日志4.1 开启慢查询日志参数4.2 查看慢查询数目4.3 测试慢sql语句&#xff0c;查看慢日志4.4 系统变量 log_output&#xff0c; l…

【蓝桥杯 第十三届省赛Java B组】真题训练(A - F)

目录 A、星期计算 - BigInteger B、山 - 暴力判断 字符串 C、字符统计 - 简单哈希 D、最少刷题数 - 排序 思维 二分 分情况讨论 &#xff08;1&#xff09;&#xff08;错误&#xff09;自写哈希表 &#xff08;2&#xff09;正解 E、求阶乘 - 数学思维 二分 F、…

SAP实现文本框多行输入(类cl_gui_textedit)

参考文章&#xff1a;https://blog.csdn.net/SAPmatinal/article/details/130882962 先看效果&#xff0c;在输入框先来一段《赤壁赋》 然后点击 ‘保存输出’按钮&#xff0c;就能把输入内容从表里读取并输出来 源代码&#xff1a; *&-------------------------------…