Diffusion模型详解

1 引言

在上一篇《基于流的深度生成模型》中详解介绍了有关流的生成模型理论和方法。目前为止,基于GAN生成模型,基于VAE的生成模型,以及基于flow的生成模型它们都可以生成较高质量的样本,但每种方法都有其局限性。GAN在对抗训练过程中会出现模式崩塌和训练不稳定的问题;VAE则严重依赖于目标损失函数;流模型则必须使用专门的框架来构建可逆变换。本文主要介绍关于扩散模型,其灵感来自于非平衡热力学。它们定义了扩散步骤的马尔可夫链,将随机噪声缓慢地添加到数据中,然后学习逆向扩散过程以从噪声中构造所需的数据样本。 与VAE或流模型不同,扩散模型是通过固定过程学习的,并且中间的隐变量与原始数据具有高维数维度。

  • 优点: 扩散模型既易于分析又很灵活。要知道易处理性和灵活性是生成建模中两个相互冲突的目标。易于处理的模型可以进行分析评估和拟合数据,但它们不能轻易地描述丰富数据集中的结构。灵活的模型可以拟合数据中的任意结构,但是从这些模型中评估、训练或采样的成本会很高。
  • 缺点: 扩散模型依赖于长马尔可夫扩散步骤链来生成样本,因此在时间和计算方面成本会很高。目前已经提出了新的方法来使该过程更快,但采样的整体过程仍然比GAN慢。
    Diffusion模型详解

; 2 前向扩散过程

给定从真实数据分布x 0 ∼ q ( x ) {\bf{x}}0\sim q({\bf{x}})x 0 ​∼q (x )中采样的数据点,在一个前向扩散过程,在T T T步里逐步向样本中添加少量高斯噪声,从而产生一系列噪声样本x 1 , ⋯ , x T {\bf{x}}_1,\cdots,{\bf{x}}_T x 1 ​,⋯,x T ​,其步长由方差计划{ β t ∈ ( 0 , 1 ) } t = 1 T {\beta_t\in(0,1)}{t=1}^T {βt ​∈(0 ,1 )}t =1 T ​来控制,则有q ( x t ∣ x t − 1 ) = N ( x t ; 1 − β x t − 1 , β t I ) q ( x 1 : T ∣ x 0 ) = ∏ t = 1 T q ( x t ∣ x t − 1 ) q({\bf{x}}t|{\bf{x}}{t-1})=\mathcal{N}({\bf{x}}t;\sqrt{1-\beta}{\bf{x}}{t-1},\beta_t {\bf{I}})\quad q({\bf{x}}{1:T}|{\bf{x}}_0)=\prod{t=1}^Tq({\bf{x}}t|{\bf{x}}{t-1})q (x t ​∣x t −1 ​)=N (x t ​;1 −β​x t −1 ​,βt ​I )q (x 1 :T ​∣x 0 ​)=t =1 ∏T ​q (x t ​∣x t −1 ​)在扩散过程进行的时候,随着时长步长t t t的增大,数据样本x 0 {\bf{x}}0 x 0 ​逐渐失去其可区分的特征。最终,当T → ∞ T\rightarrow \infty T →∞, x T {\bf{x}}_T x T ​等价于各向同性高斯分布(各向同性的高斯分布即球形高斯分布,特指的是各个方向方差都一样的多维高斯分布,协方差为正实数与单位矩阵相乘)。
Diffusion模型详解
上述过程的一个很好的特性是可以使用重新参数化技巧以封闭形式在任意时间步长t t t对x t {\bf{x}}_t x t ​进行采样。 令α t = 1 − β t \alpha_t=1-\beta_t αt ​=1 −βt ​和α ˉ t = ∏ i = 1 T α i \bar{\alpha}_t=\prod
{i=1}^T \alpha_i αˉt ​=∏i =1 T ​αi ​,进而则有:x t = α t x t − 1 + 1 − α t z t − 1 = α t α t − 1 x t − 2 + 1 − α t α t − 1 z ˉ t − 2 = ⋯ = α ˉ t x 0 + 1 − α ˉ t z q ( x t ∣ x 0 ) = N ( x t ; α ˉ t x 0 , ( 1 − α ˉ t ) I ) \begin{aligned}{\bf{x}}t&=\sqrt{\alpha_t}{\bf{x}}{t-1}+\sqrt{1-\alpha_t}{\bf{z}}{t-1}\&=\sqrt{\alpha_t\alpha{t-1}}{\bf{x}}{t-2}+\sqrt{1-\alpha_t\alpha{t-1}}{\bf{\bar{z}}}{t-2}\&=\cdots\&=\sqrt{\bar{\alpha}_t}{\bf{x}}_0+\sqrt{1-\bar{\alpha}_t}{\bf{z}}\q({\bf{x}}_t|{\bf{x}}_0)&=\mathcal{N}({\bf{x}}_t;\sqrt{\bar{\alpha}_t}{\bf{x}}_0,(1-\bar{\alpha}_t){\bf{I}})\end{aligned}x t ​q (x t ​∣x 0 ​)​=αt ​​x t −1 ​+1 −αt ​​z t −1 ​=αt ​αt −1 ​​x t −2 ​+1 −αt ​αt −1 ​​z ˉt −2 ​=⋯=αˉt ​​x 0 ​+1 −αˉt ​​z =N (x t ​;αˉt ​​x 0 ​,(1 −αˉt ​)I )​其中z t − 1 , z t − 2 , ⋯ ∼ N ( 0 , I ) {\bf{z}}{t-1},{\bf{z}}{t-2},\cdots \sim\mathcal{N}({\bf{0}},{\bf{I}})z t −1 ​,z t −2 ​,⋯∼N (0 ,I ),z ˉ t − 2 {\bar{\bf{z}}}{t-2}z ˉt −2 ​融合两个高斯分布。当合并两个具有不同方差N ( 0 , σ 1 2 I ) \mathcal{N}({\bf{0}},\sigma^2_1{\bf{I}})N (0 ,σ1 2 ​I )和N ( 0 , σ 2 2 I ) \mathcal{N}({\bf{0}},\sigma^2_2{\bf{I}})N (0 ,σ2 2 ​I )的高斯分布时,得到的新的高斯分布是N ( 0 , ( σ 1 2 , σ 2 2 ) I ) \mathcal{N}({\bf{0}},(\sigma^2_1,\sigma_2^2){\bf{I}})N (0 ,(σ1 2 ​,σ2 2 ​)I ),其中合并的标准差为( 1 − α t ) + α t ( 1 − α t − 1 ) = 1 − α t α t − 1 \sqrt{(1-\alpha_t)+\alpha_t(1-\alpha_{t-1})}=\sqrt{1-\alpha_{t}\alpha_{t-1}}(1 −αt ​)+αt ​(1 −αt −1 ​)​=1 −αt ​αt −1 ​​通常情况下,噪声越大更新的步长也会随着调大,则有β 1 < β 2 ⋯ < β T \beta_1,所以α ˉ 1 > ⋯ > α ˉ T \bar{\alpha}_1>\cdots>\bar{\alpha}_T αˉ1 ​>⋯>αˉT ​。

3 更新过程

Langevin动力学是物理学中的一个概念,用于对分子系统进行统计建模。结合随机梯度下降,随机梯度朗之万动力学可以仅使用马尔可夫更新链中的梯度∇ x log ⁡ p ( x ) \nabla_{\bf{x}} \log p({\bf{x}})∇x ​lo g p (x )从概率密度p ( x ) p({\bf{x}})p (x )生成样本:x t = x t − 1 + ϵ 2 ∇ x log ⁡ p ( x t − 1 ) + ϵ z t , z t ∼ N ( 0 , I ) {\bf{x}}t={\bf{x}}{t-1}+\frac{\epsilon}{2}\nabla_{\bf{x}} \log p({\bf{x}}_{t-1})+\sqrt{\epsilon}{\bf{z}}_t,\quad {\bf{z}}_t\sim\mathcal{N}({\bf{0}},{\bf{I}})x t ​=x t −1 ​+2 ϵ​∇x ​lo g p (x t −1 ​)+ϵ​z t ​,z t ​∼N (0 ,I )其中ϵ \epsilon ϵ为步长。当T → ∞ T\rightarrow \infty T →∞时,ϵ → 0 \epsilon\rightarrow 0 ϵ→0,x {\bf{x}}x_T则等于真实概率密度p ( x ) p({\bf{x}})p (x )。与标准SGD相比,随机梯度Langevin动力学将高斯噪声注入到参数更新中,以避免陷入到局部最小值中。

4 反向扩散过程

如果将上述过程进行反转并从概率分布q ( x t − 1 ∣ x t ) q({\bf{x}}{t-1}|{\bf{x}}_t)q (x t −1 ​∣x t ​)中进行采样,则能够从高斯噪声输入x T ∼ N ( 0 , I ) {\bf{x}}_T\sim \mathcal{N}({\bf{0}},{\bf{I}})x T ​∼N (0 ,I )中重新构造真实样本。需要注意的是如果β t \beta_t βt ​足够小,q ( x t − 1 , x t ) q({\bf{x}}{t-1},{\bf{x}}t)q (x t −1 ​,x t ​)也将是高斯分布。但这需要使用整个数据集进行估计,因此需要学习一个模型p θ p\theta p θ​来近似这些条件概率,以便进行反向扩散过程p θ ( x 0 : T ) = p ( x T ) ∏ t = 1 T p θ ( x t − 1 ∣ x t ) p θ ( x t − 1 ∣ x t ) = N ( x t − 1 ; μ θ ( x t , t ) , Σ θ ( x t , t ) ) p_\theta({\bf{x}}{0:T})=p({\bf{x}}_T)\prod{t=1}^T p_\theta({\bf{x}}{t-1}|{\bf{x}}_t)\quad p\theta({\bf{x}}{t-1}|{\bf{x}}_t)=\mathcal{N}({\bf{x}}{t-1};\boldsymbol{\mu}\theta({\bf{x}}_t,t),{{\bf{\Sigma}}\theta({\bf{x}}t,t)})p θ​(x 0 :T ​)=p (x T ​)t =1 ∏T ​p θ​(x t −1 ​∣x t ​)p θ​(x t −1 ​∣x t ​)=N (x t −1 ​;μθ​(x t ​,t ),Σθ​(x t ​,t ))当条件为x 0 {\bf{x}}_0 x 0 ​时,反向条件概率是容易估计处理的:q ( x t − 1 ∣ x t , x 0 ) = N ( x t − 1 ; μ ( x t , x 0 ) , β ~ t I ) q({\bf{x}}{t-1}|{\bf{x}}t,{\bf{x}}_0)=\mathcal{N}({\bf{x}}{t-1};\boldsymbol{\mu}({\bf{x}}t,{\bf{x}}_0),\tilde{\beta}_t{\bf{I}})q (x t −1 ​∣x t ​,x 0 ​)=N (x t −1 ​;μ(x t ​,x 0 ​),β~​t ​I )使用贝叶斯法则可以得到q ( x t − 1 ∣ x t , x 0 ) = q ( x t ∣ x t − 1 , x 0 ) q ( x t − 1 ∣ x 0 ) q ( x t ∣ x 0 ) ∝ exp ⁡ [ − 1 2 ( ( x t − α t x t − 1 ) 2 β t + ( x t − 1 − α ˉ t − 1 x 0 ) 2 1 − α ˉ t − 1 − ( x t − α ˉ t x 0 ) 2 1 − α ˉ t ) ] = exp ⁡ [ − 1 2 ( x t 2 − 2 α t x t x t − 1 + α t x t − 1 2 β t + x t − 1 2 − 2 α ˉ t − 1 x 0 x t − 1 + α ˉ t − 1 x 0 1 − α ˉ t − 1 − ( x t − α ˉ t x 0 ) 2 1 − α ˉ t ) ] = exp ⁡ [ − 1 2 ( ( α t β t + 1 1 − α ˉ t − 1 ) x t − 1 2 − ( 2 α t β t x t + 2 α ˉ t − 1 1 − α ˉ t − 1 x 0 ) x t − 1 + C ( x t , x 0 ) ) ] \begin{aligned}q({\bf{x}}{t-1}|{\bf{x}}t,{\bf{x}}_0)&=q({\bf{x}}{t}|{\bf{x}}{t-1},{\bf{x}}_0)\frac{q({\bf{x}}{t-1}|{\bf{x}}0)}{q({\bf{x}}_t|{\bf{x}}_0)}\&\propto\exp\left[-\frac{1}{2}\left(\frac{({\bf{x}}_t-\sqrt{\alpha_t}{\bf{x}}{t-1})^2}{\beta_t}+\frac{({\bf{x}}{t-1}-\sqrt{\bar{\alpha}{t-1}}{\bf{x}}0)^2}{1-\bar{\alpha}{t-1}}-\frac{({\bf{x}}t-\sqrt{\bar{\alpha}_t}{\bf{x}}_0)^2}{1-\bar{\alpha}_t}\right)\right]\&=\exp\left[-\frac{1}{2}\left(\frac{{\bf{x}}^2_t-2\sqrt{\alpha_t}{\bf{x}}_t{\bf{x}}{t-1}+\alpha_t{\bf{x}}{t-1}^2}{\beta_t}+\frac{{\bf{x}}{t-1}^2-2\sqrt{\bar{\alpha}{t-1}}{\bf{x}}_0{\bf{x}}{t-1}+\bar{\alpha}{t-1}{\bf{x}}_0}{1-\bar{\alpha}{t-1}}-\frac{({\bf{x}}t-\sqrt{\bar{\alpha}_t}{\bf{x}}_0)^2}{1-\bar{\alpha}_t}\right)\right]\&=\exp\left[-\frac{1}{2}\left(\left(\frac{\alpha_t}{\beta_t}+\frac{1}{1-\bar{\alpha}{t-1}}\right){\bf{x}}^2_{t-1}-\left(\frac{2\sqrt{\alpha_t}}{\beta_t}{\bf{x}}t+\frac{2\sqrt{\bar{\alpha}{t-1}}}{1-\bar{\alpha}{t-1}}{\bf{x}}_0\right){\bf{x}}{t-1}+C({\bf{x}}t,{\bf{x}}_0)\right)\right]\end{aligned}q (x t −1 ​∣x t ​,x 0 ​)​=q (x t ​∣x t −1 ​,x 0 ​)q (x t ​∣x 0 ​)q (x t −1 ​∣x 0 ​)​∝exp [−2 1 ​(βt ​(x t ​−αt ​​x t −1 ​)2 ​+1 −αˉt −1 ​(x t −1 ​−αˉt −1 ​​x 0 ​)2 ​−1 −αˉt ​(x t ​−αˉt ​​x 0 ​)2 ​)]=exp [−2 1 ​(βt ​x t 2 ​−2 αt ​​x t ​x t −1 ​+αt ​x t −1 2 ​​+1 −αˉt −1 ​x t −1 2 ​−2 αˉt −1 ​​x 0 ​x t −1 ​+αˉt −1 ​x 0 ​​−1 −αˉt ​(x t ​−αˉt ​​x 0 ​)2 ​)]=exp [−2 1 ​((βt ​αt ​​+1 −αˉt −1 ​1 ​)x t −1 2 ​−(βt ​2 αt ​​​x t ​+1 −αˉt −1 ​2 αˉt −1 ​​​x 0 ​)x t −1 ​+C (x t ​,x 0 ​))]​其中C ( x t , x 0 ) C({\bf{x}}_t,{\bf{x}}_0)C (x t ​,x 0 ​)函数与x t − 1 {\bf{x}}{t-1}x t −1 ​无关。按照标准高斯密度函数,均值和方差可以参数化如下β ~ t = 1 / ( α t β t + 1 1 − α ˉ t − 1 ) = 1 / ( α t − α ˉ t + β t β t ( 1 − α ˉ t − 1 ) ) = 1 − α ˉ t − 1 1 − α ˉ t ⋅ β t μ ~ t ( x t , x 0 ) = ( α t β t x t + α ˉ t − 1 1 − α ˉ t − 1 x 0 ) / ( α t β t + 1 1 − α ˉ t − 1 ) = ( α t β t x t + α ˉ t − 1 1 − α ˉ t − 1 x 0 ) 1 − α ˉ t − 1 1 − α ˉ t ⋅ β t = α t ( 1 − α ˉ t − 1 ) 1 − α ˉ t x t + α ˉ t − 1 β t 1 − α ˉ t x 0 \begin{aligned}\tilde{\beta}t&=1\left/\left(\frac{\alpha_t}{\beta_t}+\frac{1}{1-\bar{\alpha}{t-1}}\right)\right.=1\left/\left(\frac{\alpha_t-\bar{\alpha}t+\beta_t}{\beta_t(1-\bar{\alpha}{t-1})}\right)\right.=\frac{1-\bar{\alpha}{t-1}}{1-\bar{\alpha}_t}\cdot \beta_t\\tilde{\boldsymbol{\mu}}_t({\bf{x}}_t,{\bf{x}}_0)&=\left(\frac{\sqrt{\alpha}_t}{\beta_t}{\bf{x}}_t+\frac{\sqrt{\bar{\alpha}{t-1}}}{1-\bar{\alpha}{t-1}}{\bf{x}}_0\right)\left/\left(\frac{\alpha_t}{\beta_t}+\frac{1}{1-\bar{\alpha}{t-1}}\right)\right.\&=\left(\frac{\sqrt{\alpha}t}{\beta_t}{\bf{x}}_t+\frac{\sqrt{\bar{\alpha}{t-1}}}{1-\bar{\alpha}{t-1}}{\bf{x}}_0\right)\frac{1-\bar{\alpha}{t-1}}{1-\bar{\alpha}t}\cdot\beta_t\&=\frac{\sqrt{\alpha_t}(1-\bar{\alpha}{t-1})}{1-\bar{\alpha}t}{\bf{x}}_t+\frac{\sqrt{\bar{\alpha}{t-1}\beta_t}}{1-\bar{\alpha}t}{\bf{x}}_0\end{aligned}β~​t ​μ~​t ​(x t ​,x 0 ​)​=1 /(βt ​αt ​​+1 −αˉt −1 ​1 ​)=1 /(βt ​(1 −αˉt −1 ​)αt ​−αˉt ​+βt ​​)=1 −αˉt ​1 −αˉt −1 ​​⋅βt ​=(βt ​α​t ​​x t ​+1 −αˉt −1 ​αˉt −1 ​​​x 0 ​)/(βt ​αt ​​+1 −αˉt −1 ​1 ​)=(βt ​α​t ​​x t ​+1 −αˉt −1 ​αˉt −1 ​​​x 0 ​)1 −αˉt ​1 −αˉt −1 ​​⋅βt ​=1 −αˉt ​αt ​​(1 −αˉt −1 ​)​x t ​+1 −αˉt ​αˉt −1 ​βt ​​​x 0 ​​将x 0 = 1 α ˉ t ( x t − 1 − α ˉ t z t ) {\bf{x}}_0=\frac{1}{\sqrt{\bar{\alpha}_t}}({\bf{x}}_t-\sqrt{1-\bar{\alpha}_t}{\bf{z}}_t)x 0 ​=αˉt ​​1 ​(x t ​−1 −αˉt ​​z t ​)带入到以上公式中则有μ ~ t = α t ( 1 − α ˉ t − 1 ) 1 − α ˉ t x t + α ˉ t − 1 β t 1 − α ˉ t 1 α ˉ t ( x t − 1 − α ˉ t z t ) = 1 α t ( x t − β t 1 − α ˉ t z t ) \begin{aligned}\boldsymbol{\tilde{\mu}}_t&=\frac{\sqrt{\alpha_t}(1-\bar{\alpha}{t-1})}{1-\bar{\alpha}t}{\bf{x}}_t+\frac{\sqrt{\bar{\alpha}{t-1}}\beta_t}{1-\bar{\alpha}t}\frac{1}{\sqrt{\bar{\alpha}_t}}({\bf{x}}_t-\sqrt{1-\bar{\alpha}_t}{\bf{z}}_t)\&=\frac{1}{\sqrt{\alpha_t}}\left({\bf{x}}_t-\frac{\beta_t}{\sqrt{1-\bar{\alpha}_t}}{\bf{z}}_t\right)\end{aligned}μ~​t ​​=1 −αˉt ​αt ​​(1 −αˉt −1 ​)​x t ​+1 −αˉt ​αˉt −1 ​​βt ​​αˉt ​​1 ​(x t ​−1 −αˉt ​​z t ​)=αt ​​1 ​(x t ​−1 −αˉt ​​βt ​​z t ​)​这种设置与VAE非常相似,因此可以使用变分下限来优化负对数似然,进而则有− log ⁡ p θ ( x 0 ) ≤ − log ⁡ p θ ( x 0 ) + D K L ( q ( x 1 : T ) ∣ x 0 ∣ ∣ p θ ( x 1 : T ∣ x 0 ) ) = − log ⁡ p θ ( x θ ) + E 1 : T ∼ q ( x 1 : T ∣ x 0 ) [ log ⁡ q ( x 1 : T ∣ x 0 ) p θ ( x 0 : T ) / p θ ( x 0 ) ] = − log ⁡ p θ ( x 0 ) + E q [ log ⁡ q ( x 1 : T ∣ x 0 ) p θ ( x 0 : T ) + log ⁡ p θ ( x 0 ) ] = E q [ log ⁡ q ( x 1 : T ∣ x 0 ) p θ ( x 0 : T ) ] L V L B = E q ( x 0 : T ) [ log ⁡ q ( x 1 : T ∣ x 0 ) p θ ( x 0 : T ) ] ≥ − E q ( x 0 ) log ⁡ p θ ( x 0 ) \begin{aligned}-\log p\theta({\bf{x}}0)&\le -\log p\theta({\bf{x}}0)+D{\mathrm{KL}}(q({\bf{x}}{1:T})|{\bf{x}}_0||p\theta({\bf{x}}{1:T}|{\bf{x}}_0))\&=-\log p\theta({\bf{x}}\theta)+\mathbb{E}{1:T\sim q({\bf{x}}{1:T}|{\bf{x}}_0)}\left[\log \frac{q({\bf{x}}{1:T}|{\bf{x}}0)}{p\theta({\bf{x}}{0:T})/p\theta({\bf{x}}0)}\right]\&=-\log p\theta({\bf{x}}0)+\mathbb{E}_q\left[\log \frac{q({\bf{x}}{1:T}|{\bf{x}}0)}{p\theta({\bf{x}}{0:T})}+\log p\theta ({\bf{x}}0)\right]\&=\mathbb{E}_q\left[\log \frac{q({\bf{x}}{1:T}|{\bf{x}}0)}{p\theta({\bf{x}}{0:T})}\right]\L{\mathrm{VLB}}&=\mathbb{E}{q({\bf{x}}{0:T})}\left[\log \frac{q({\bf{x}}{1:T}|{\bf{x}}_0)}{p\theta({\bf{x}}{0:T})}\right]\ge -\mathbb{E}{q({\bf{x}}0)}\log p\theta({\bf{x}}0)\end{aligned}−lo g p θ​(x 0 ​)L V L B ​​≤−lo g p θ​(x 0 ​)+D K L ​(q (x 1 :T ​)∣x 0 ​∣∣p θ​(x 1 :T ​∣x 0 ​))=−lo g p θ​(x θ​)+E 1 :T ∼q (x 1 :T ​∣x 0 ​)​[lo g p θ​(x 0 :T ​)/p θ​(x 0 ​)q (x 1 :T ​∣x 0 ​)​]=−lo g p θ​(x 0 ​)+E q ​[lo g p θ​(x 0 :T ​)q (x 1 :T ​∣x 0 ​)​+lo g p θ​(x 0 ​)]=E q ​[lo g p θ​(x 0 :T ​)q (x 1 :T ​∣x 0 ​)​]=E q (x 0 :T ​)​[lo g p θ​(x 0 :T ​)q (x 1 :T ​∣x 0 ​)​]≥−E q (x 0 ​)​lo g p θ​(x 0 ​)​使用Jensen不等式也很容易得到相同的结果。假设要最小化交叉熵作为学习目标,则有L C E = − E q ( x 0 ) log ⁡ p θ ( x 0 ) = − E q ( x 0 ) log ⁡ ( ∫ p θ ( x 0 : T ) d x 1 : T ) = − E q ( x 0 ) log ⁡ ( ∫ q ( x 1 : T ∣ x 0 ) p θ ( x 0 : T ) q ( x 1 : T ∣ x 0 ) d x 1 : T ) = − E q ( x 0 ) log ⁡ ( E q ( x 1 : T ∣ x 0 ) p θ ( x 0 : T ) q ( x 1 : T ∣ x 0 ) ) ≤ − E q ( x 0 : T ) log ⁡ p θ ( x 0 : T ) q ( x 1 : T ∣ x 0 ) = E q ( x 0 : T ) [ log ⁡ q ( x 1 : T ∣ x 0 ) p θ ( x 0 : T ) ] = L V T B \begin{aligned}L{\mathrm{CE}}&=-\mathbb{E}{q({\bf{x}}_0)}\log p\theta({\bf{x}}0)\&=-\mathbb{E}{q({\bf{x}}0)}\log\left(\int p\theta({\bf{x}}{0:T})d {\bf{x}}{1:T}\right)\&=-\mathbb{E}{q({\bf{x}}_0)}\log\left(\int q({\bf{x}}{1:T}|{\bf{x}}0)\frac{p\theta({\bf{x}}{0:T})}{q({\bf{x}}{1:T}|{\bf{x}}0)}d{\bf{x}}{1:T}\right)\&=-\mathbb{E}{q({\bf{x}}_0)}\log\left(\mathbb{E}{q({\bf{x}}{1:T}|{\bf{x}}_0)}\frac{p\theta({\bf{x}}{0:T})}{q({\bf{x}}{1:T}|{\bf{x}}0)}\right)\ &\le -\mathbb{E}{q({\bf{x}}{0:T})}\log\frac{p\theta({\bf{x}}{0:T})}{q({\bf{x}}{1:T}|{\bf{x}}0)}\&=\mathbb{E}{q({\bf{x}}{0:T})}\left[\log\frac{q({\bf{x}}{1:T}|{\bf{x}}0)}{p\theta({\bf{x}}{0:T})}\right]=L{\mathrm{VTB}}\end{aligned}L C E ​​=−E q (x 0 ​)​lo g p θ​(x 0 ​)=−E q (x 0 ​)​lo g (∫p θ​(x 0 :T ​)d x 1 :T ​)=−E q (x 0 ​)​lo g (∫q (x 1 :T ​∣x 0 ​)q (x 1 :T ​∣x 0 ​)p θ​(x 0 :T ​)​d x 1 :T ​)=−E q (x 0 ​)​lo g (E q (x 1 :T ​∣x 0 ​)​q (x 1 :T ​∣x 0 ​)p θ​(x 0 :T ​)​)≤−E q (x 0 :T ​)​lo g q (x 1 :T ​∣x 0 ​)p θ​(x 0 :T ​)​=E q (x 0 :T ​)​[lo g p θ​(x 0 :T ​)q (x 1 :T ​∣x 0 ​)​]=L V T B ​​为了将方程中的每个项转换为可解析计算的,可以将目标进一步重写为几个KL散度和熵项的组合L T V B = E q ( x 0 : T ) [ log ⁡ q ( x 1 : T ∣ x 0 ) p θ ( x 0 : T ) ] = E q [ log ⁡ ∏ t = 1 T q ( x t ∣ x t − 1 ) p θ ( x T ) ∏ t = 1 T p θ ( x t − 1 ∣ p ( x t ) ) ] = E q [ − log ⁡ p θ ( x T ) + ∑ t = 1 T log ⁡ q ( x t ∣ x t − 1 ) p θ ( x t − 1 ∣ x t ) ] = E q [ − log ⁡ p θ ( x T ) + ∑ t = 2 T log ⁡ q ( x t ∣ x t − 1 ) p θ ( x t − 1 ∣ x t ) + log ⁡ q ( x 1 ∣ x 0 ) p θ ( x 0 ∣ x 1 ) ] = E q [ − log ⁡ p θ ( x T ) + ∑ t = 2 T log ⁡ ( q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) ⋅ q ( x t ∣ x 0 ) q ( x t − 1 ∣ x 0 ) ) + log ⁡ q ( x 1 ∣ x 0 ) p θ ( x 0 ∣ x 1 ) ] = E q [ − log ⁡ p θ ( x T ) + ∑ t = 2 T log ⁡ q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) + ∑ t = 2 T log ⁡ q ( x t ∣ x 0 ) q ( x t − 1 ∣ x 0 ) + log ⁡ q ( x 1 ∣ x 0 ) p θ ( x 0 ∣ x 1 ) ] = E q [ − log ⁡ p θ ( x T ) + ∑ t = 2 T log ⁡ q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) + log ⁡ q ( x T ∣ x 0 ) q ( x 1 ∣ x 0 ) + log ⁡ q ( x 1 ∣ x 0 ) p θ ( x ∣ x 1 ) ] = E q [ log ⁡ q ( x T ∣ x 0 ) p θ ( x T ) + ∑ t = 2 T log ⁡ q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) − log ⁡ p θ ( x 0 ∣ x 1 ) ] = E q [ D K L ( q ( x T ∣ x 0 ) ∣ ∣ p θ ( x T ) ) + ∑ t = 2 T D K L ( q ( x t − 1 ∣ x t , x 0 ) ∣ ∣ p θ ( x t − 1 ∣ x t ) ) − log ⁡ p θ ( x 0 ∣ x 1 ) ] \begin{aligned}L_{\mathrm{TVB}}&=\mathbb{E}{q({\bf{x}}{0:T})}\left[\log \frac{q({\bf{x}}{1:T}|{\bf{x}}_0)}{p\theta({\bf{x}}{0:T})}\right]\&=\mathbb{E}_q\left[\log\frac{\prod{t=1}^T q({\bf{x}}t|{\bf{x}}{t-1})}{p_\theta({\bf{x}}T)\prod{t=1}^T p_\theta({\bf{x}}{t-1}|p({\bf{x}}_t))}\right]\&=\mathbb{E}_q\left[-\log p\theta({\bf{x}}T)+\sum\limits{t=1}^T\log \frac{q({\bf{x}}t|{\bf{x}}{t-1})}{p_\theta({\bf{x}}{t-1}|{\bf{x}}_t)}\right]\&=\mathbb{E}_q\left[-\log p\theta({\bf{x}}T)+\sum\limits{t=2}^T \log\frac{q({\bf{x}}{t}|{\bf{x}}{t-1})}{p_\theta({\bf{x}}{t-1}|{\bf{x}}{t})}+\log\frac{q({\bf{x}}1|{\bf{x}}_0)}{p\theta({\bf{x}}0|{\bf{x}}_1)}\right]\&=\mathbb{E}_q\left[-\log p\theta({\bf{x}}T)+\sum\limits{t=2}^T\log\left(\frac{q({\bf{x}}{t-1}|{\bf{x}}_t,{\bf{x}}_0)}{p\theta({\bf{x}}{t-1}|{\bf{x}}_t)}\cdot\frac{q({\bf{x}}_t|{\bf{x}}_0)}{q({\bf{x}}{t-1}|{\bf{x}}0)}\right)+\log\frac{q({\bf{x}}_1|{\bf{x}}_0)}{p\theta({\bf{x}}0|{\bf{x}}_1)}\right]\&=\mathbb{E}_q\left[-\log p\theta({\bf{x}}T)+\sum\limits{t=2}^T\log \frac{q({\bf{x}}{t-1}|{\bf{x}}_t,{\bf{x}}_0)}{p\theta({\bf{x}}{t-1}|{\bf{x}}_t)}+\sum\limits{t=2}^T\log \frac{q({\bf{x}}t|{\bf{x}}_0)}{q({\bf{x}}{t-1}|{\bf{x}}0)}+\log \frac{q({\bf{x}}_1|{\bf{x}}_0)}{p\theta({\bf{x}}0|{\bf{x}}_1)}\right]\&=\mathbb{E}_q\left[-\log p\theta({\bf{x}}T)+\sum\limits{t=2}^T\log \frac{q({\bf{x}}{t-1}|{\bf{x}}_t,{\bf{x}}_0)}{p\theta({\bf{x}}{t-1}|{\bf{x}}_t)}+\log\frac{q({\bf{x}}_T|{\bf{x}}_0)}{q({\bf{x}}_1|{\bf{x}}_0)}+\log \frac{q({\bf{x}}_1|{\bf{x}}_0)}{p\theta({\bf{x}}|{\bf{x}}1)}\right]\&=\mathbb{E}_q\left[\log \frac{q({\bf{x}}_T|{\bf{x}}_0)}{p\theta({\bf{x}}T)}+\sum\limits{t=2}^T\log \frac{q({\bf{x}}{t-1}|{\bf{x}}_t,{\bf{x}}_0)}{p\theta({\bf{x}}{t-1}|{\bf{x}}_t)}-\log p\theta({\bf{x}}0|{\bf{x}}_1)\right]\&=\mathbb{E}_q\left[D{\mathrm{KL}}(q({\bf{x}}T|{\bf{x}}_0)||p\theta({\bf{x}}T))+\sum\limits{t=2}^T D_{\mathrm{KL}}(q({\bf{x}}{t-1}|{\bf{x}}_t,{\bf{x}}_0)||p\theta({\bf{x}}{t-1}|{\bf{x}}_t))-\log p\theta({\bf{x}}0|{\bf{x}}_1)\right]\end{aligned}L T V B ​​=E q (x 0 :T ​)​[lo g p θ​(x 0 :T ​)q (x 1 :T ​∣x 0 ​)​]=E q ​[lo g p θ​(x T ​)∏t =1 T ​p θ​(x t −1 ​∣p (x t ​))∏t =1 T ​q (x t ​∣x t −1 ​)​]=E q ​[−lo g p θ​(x T ​)+t =1 ∑T ​lo g p θ​(x t −1 ​∣x t ​)q (x t ​∣x t −1 ​)​]=E q ​[−lo g p θ​(x T ​)+t =2 ∑T ​lo g p θ​(x t −1 ​∣x t ​)q (x t ​∣x t −1 ​)​+lo g p θ​(x 0 ​∣x 1 ​)q (x 1 ​∣x 0 ​)​]=E q ​[−lo g p θ​(x T ​)+t =2 ∑T ​lo g (p θ​(x t −1 ​∣x t ​)q (x t −1 ​∣x t ​,x 0 ​)​⋅q (x t −1 ​∣x 0 ​)q (x t ​∣x 0 ​)​)+lo g p θ​(x 0 ​∣x 1 ​)q (x 1 ​∣x 0 ​)​]=E q ​[−lo g p θ​(x T ​)+t =2 ∑T ​lo g p θ​(x t −1 ​∣x t ​)q (x t −1 ​∣x t ​,x 0 ​)​+t =2 ∑T ​lo g q (x t −1 ​∣x 0 ​)q (x t ​∣x 0 ​)​+lo g p θ​(x 0 ​∣x 1 ​)q (x 1 ​∣x 0 ​)​]=E q ​[−lo g p θ​(x T ​)+t =2 ∑T ​lo g p θ​(x t −1 ​∣x t ​)q (x t −1 ​∣x t ​,x 0 ​)​+lo g q (x 1 ​∣x 0 ​)q (x T ​∣x 0 ​)​+lo g p θ​(x ∣x 1 ​)q (x 1 ​∣x 0 ​)​]=E q ​[lo g p θ​(x T ​)q (x T ​∣x 0 ​)​+t =2 ∑T ​lo g p θ​(x t −1 ​∣x t ​)q (x t −1 ​∣x t ​,x 0 ​)​−lo g p θ​(x 0 ​∣x 1 ​)]=E q ​[D K L ​(q (x T ​∣x 0 ​)∣∣p θ​(x T ​))+t =2 ∑T ​D K L ​(q (x t −1 ​∣x t ​,x 0 ​)∣∣p θ​(x t −1 ​∣x t ​))−lo g p θ​(x 0 ​∣x 1 ​)]​分别标记变分下界损失中的每个分量为L V L B = L T + L T − 1 + ⋯ + L 0 L T = D K L ( q ( x T ∣ x 0 ) ∣ ∣ p θ ( x T ) ) L t = D K L ( q ( x t ∣ x t + 1 , x 0 ) ∣ ∣ p θ ( x t ∣ x t + 1 ) ) L 0 = − log ⁡ p θ ( x 0 ∣ x 1 ) \begin{aligned}L{\mathrm{VLB}}&=L_T+L_{T-1}+\cdots+L_{0}\L_T&=D_{\mathrm{KL}}(q({\bf{x}}T|{\bf{x}}_0)||p\theta({\bf{x}}T))\L_t&=D{\mathrm{KL}}(q({\bf{x}}t|{\bf{x}}{t+1},{\bf{x}}0)||p\theta({\bf{x}}t|{\bf{x}}{t+1}))\L_0&=-\log p_\theta({\bf{x}}0|{\bf{x}}_1)\end{aligned}L V L B ​L T ​L t ​L 0 ​​=L T ​+L T −1 ​+⋯+L 0 ​=D K L ​(q (x T ​∣x 0 ​)∣∣p θ​(x T ​))=D K L ​(q (x t ​∣x t +1 ​,x 0 ​)∣∣p θ​(x t ​∣x t +1 ​))=−lo g p θ​(x 0 ​∣x 1 ​)​L V L B L{\mathrm{VLB}}L V L B ​中的每个KL项(除了L 0 L_0 L 0 ​)都测量两个高斯分布之间的距离,因此可以以闭式解来计算它们。L T L_T L T ​是常数,在训练过程中可以被忽略,其原因在于q q q没有可学习的参数并且x T {\bf{x}}T x T ​是高斯噪声,L 0 L_0 L 0 ​可以从N ( x 0 , μ θ ( x 1 , 1 ) , Σ θ ( x 1 , 1 ) \mathcal{N({\bf{x}}_0,\boldsymbol{\mu}\theta({\bf{x}}1,1),{\bf{\Sigma}}\theta({\bf{x}}_1,1)}N (x 0 ​,μθ​(x 1 ​,1 ),Σθ​(x 1 ​,1 )中推导出来。

5 训练损失的参数化

当需要学习一个神经网络来逼近反向扩散过程中的条件概率分布p θ ( x t − 1 ∣ x t ) = N ( x t − 1 ; μ θ ( x t , t ) , Σ θ ( x t , t ) ) p_\theta({\bf{x}}{t-1}|{\bf{x}}_t)=\mathcal{N}({\bf{x}}{t-1};\boldsymbol{\mu}\theta({\bf{x}}_t,t),{\bf{\Sigma}}\theta({\bf{x}}t,t))p θ​(x t −1 ​∣x t ​)=N (x t −1 ​;μθ​(x t ​,t ),Σθ​(x t ​,t ))时,即想训练μ θ \boldsymbol{\mu}\theta μθ​预测μ ~ t = 1 α t ( x − β t 1 − α ˉ t z t ) \tilde{\boldsymbol{\mu}}t=\frac{1}{\sqrt{\alpha_t}}\left({\bf{x}}-\frac{\beta_t}{\sqrt{1-\bar{\alpha}_t}}{\bf{z}}_t\right)μ~​t ​=αt ​​1 ​(x −1 −αˉt ​​βt ​​z t ​)。 因为x t {\bf{x}}_t x t ​在训练时可用作输入,可以重新参数化高斯噪声项,以使其从时间步长t t t的输入x t {\bf{x}}_t x t ​中预测z t {\bf{z}}_t z t ​:
μ θ ( x t , t ) = 1 α t ( x t − β t 1 − α ˉ t z θ ( x t , t ) ) x t − 1 = N ( x t − 1 ; 1 α t ( x t − β t 1 − α ˉ t z θ ( x t , t ) ) , Σ θ ( x t , t ) ) \begin{aligned}{\boldsymbol{\mu}}
\theta({\bf{x}}t,t)&=\frac{1}{\sqrt{\alpha_t}}\left({\bf{x}}_t-\frac{\beta_t}{\sqrt{1-\bar{\alpha}_t}}{\bf{z}}\theta({\bf{x}}t,t)\right)\{\bf{x}}{t-1}&=\mathcal{N}\left({\bf{x}}{t-1};\frac{1}{\sqrt{\alpha_t}}\left({\bf{x}}_t-\frac{\beta_t}{\sqrt{1-\bar{\alpha}_t}}{\bf{z}}\theta({\bf{x}}t,t)\right),{\bf{\Sigma}}\theta({\bf{x}}t,t)\right)\end{aligned}μθ​(x t ​,t )x t −1 ​​=αt ​​1 ​(x t ​−1 −αˉt ​​βt ​​z θ​(x t ​,t ))=N (x t −1 ​;αt ​​1 ​(x t ​−1 −αˉt ​​βt ​​z θ​(x t ​,t )),Σθ​(x t ​,t ))​损失项L t L_t L t ​是被参数化目的是最小化来自μ ~ \tilde{\boldsymbol{\mu}}μ~​的差异L t = E x 0 , z [ 1 2 ∥ Σ θ ( x t , t ) ∥ 2 2 ∥ μ ~ t ( x t , x 0 ) − μ θ ( x t , t ) ∥ 2 ] = E x 0 , z [ 1 2 ∥ Σ θ ∥ 2 2 ∥ 1 α t ( x t − β t 1 − α ˉ z ) − 1 α t ( x t − β t 1 − α ˉ z θ ( x t , t ) ) ∥ ] = E x 0 , z [ β t 2 2 α t ( 1 − α ˉ t ) ∥ Σ θ ∥ 2 2 ∥ z t − z θ ( x t , t ) ∥ 2 ] = E x 0 , z [ β t 2 2 α t ( 1 − α ˉ t ) ∥ Σ θ ∥ 2 2 ∥ z t − z θ ( α ˉ t x 0 + 1 − α ˉ t z t , t ) ∥ 2 ] \begin{aligned}L_t&=\mathbb{E}{{\bf{x}}0,{\bf{z}}}\left[\frac{1}{2\|{\bf{\Sigma}}\theta({\bf{x}}t,t)\|_2^2}\|\tilde{\boldsymbol{\mu}}_t({\bf{x}}_t,{\bf{x}}_0)-{\boldsymbol{\mu}}\theta({\bf{x}}t,t)\|^2\right]\&=\mathbb{E}{{\bf{x}}0,{\bf{z}}}\left[\frac{1}{2\|{\bf{\Sigma}}\theta\|2^2}\left\|\frac{1}{\sqrt{\alpha}_t}\left({\bf{x}}_t-\frac{\beta_t}{\sqrt{1-\bar{\alpha}}}{\bf{z}}\right)-\frac{1}{\sqrt{\alpha}_t}\left({\bf{x}}_t-\frac{\beta_t}{\sqrt{1-\bar{\alpha}}}{\bf{z}}\theta({\bf{x}}t,t)\right)\right\|\right]\&=\mathbb{E}{{\bf{x}}0,{\bf{z}}}\left[\frac{\beta^2_t}{2\alpha_t(1-\bar{\alpha}_t)\|{\bf{\Sigma}}\theta\|2^2}\|{\bf{z}}_t-{\bf{z}}\theta({\bf{x}}t,t)\|^2\right]\&=\mathbb{E}{{\bf{x}}0,{\bf{z}}}\left[\frac{\beta^2_t}{2\alpha_t(1-\bar{\alpha}_t)\|{\bf{\Sigma}}\theta\|2^2}\|{\bf{z}}_t-{\bf{z}}\theta(\sqrt{\bar{\alpha}t}{\bf{x}}_0+\sqrt{1-\bar{\alpha}_t}{\bf{z}}_t,t)\|^2\right]\end{aligned}L t ​​=E x 0 ​,z ​[2 ∥Σθ​(x t ​,t )∥2 2 ​1 ​∥μ~​t ​(x t ​,x 0 ​)−μθ​(x t ​,t )∥2 ]=E x 0 ​,z ​[2 ∥Σθ​∥2 2 ​1 ​∥∥∥∥​α​t ​1 ​(x t ​−1 −αˉ​βt ​​z )−α​t ​1 ​(x t ​−1 −αˉ​βt ​​z θ​(x t ​,t ))∥∥∥∥​]=E x 0 ​,z ​[2 αt ​(1 −αˉt ​)∥Σθ​∥2 2 ​βt 2 ​​∥z t ​−z θ​(x t ​,t )∥2 ]=E x 0 ​,z ​[2 αt ​(1 −αˉt ​)∥Σθ​∥2 2 ​βt 2 ​​∥z t ​−z θ​(αˉt ​​x 0 ​+1 −αˉt ​​z t ​,t )∥2 ]​根据经验Ho等人的经验,发现在忽略加权项的简化目标下,训练扩散模型效果更好:L t s i m p l e = E x 0 , z t [ ∥ z t − z θ ( α ˉ t x 0 + 1 − α ˉ t z t , t ) ∥ 2 ] L^{\mathrm{simple}}_t=\mathbb{E}{{\bf{x}}0,{\bf{z}}_t}\left[\|{\bf{z}}_t-{\bf{z}}\theta(\sqrt{\bar{\alpha}t}{\bf{x}}_0+\sqrt{1-\bar{\alpha}_t}{\bf{z}}_t,t)\|^2\right]L t s i m p l e ​=E x 0 ​,z t ​​[∥z t ​−z θ​(αˉt ​​x 0 ​+1 −αˉt ​​z t ​,t )∥2 ]所以最终简化后的目标函数是:L s i m p l e = L s i m p l e + C L{\mathrm{simple}}=L^{\mathrm{simple}}+C L s i m p l e ​=L s i m p l e +C其中C C C是不取决于θ \theta θ的常数。

6 噪声评分条件网络(NCSN)

Song和Ermon等人提出了一种基于分数的生成建模方法,其中样本是通过Langevin动力学使用分数匹配估计的数据分布梯度生成的。每个样本x \bf{x}x的密度概率得分定义为其梯度∇ x log ⁡ p ( x ) \nabla_{\bf{x}}\log p({\bf{x}})∇x ​lo g p (x )。训练一个分数网络s θ : R D → R D s_\theta:\mathbb{R}^D\rightarrow\mathbb{R}^D s θ​:R D →R D来估计它。为了在深度学习设置中使用高维数据使其可扩展,有研究建议使用去噪分数匹配(向数据添加预先指定的小噪声)或切片分数匹配。Langevin动力学可以仅使用迭代过程中的分数从概率密度分布中采样数据点∇ x log ⁡ p ( x ) \nabla_{\bf{x}}\log p({\bf{x}})∇x ​lo g p (x )。然而,根据流形假设,大多数数据预计集中在低维流形中,即使观察到的数据可能看起来只是任意高维。由于数据点无法覆盖整个空间R D \mathbb{R}^D R D,因此对分数估计产生了负面影响。在数据密度低的区域,分数估计不太可靠。添加一个小的高斯噪声使扰动的数据分布覆盖整个空间后,分数评估网络的训练变得更加稳定。 Song和Ermon等人通过用不同级别的噪声扰动数据来改进它,并训练一个噪声条件评分网络来共同估计所有扰动数据在不同噪声级别下的分数。

7 β t \beta_t βt ​ 和 Σ θ {\bf{\Sigma}}_\theta Σθ​ 的参数化

参数化β t \beta_t βt ​的过程中,Ho等人将前向方差被设置为一系列线性增加的常数,从β 1 = 1 0 − 4 \beta_1=10^{-4}β1 ​=1 0 −4到β T = 0.02 \beta_T=0.02 βT ​=0 .0 2。与[ − 1 , 1 ] [-1,1][−1 ,1 ]之间的归一化图像像素值相比,它们相对较小。在此设置下实验中的扩散模型生成了高质量的样本,但仍然无法像其他生成模型那样实现具有竞争力。Nichol和Dhariwal等人提出了几种改进技术来帮助扩散模型获得更低的NLL。 其中一项改进是使用基于余弦的方差计划。调度函数的选择可以是任意的,只要它在训练过程的中间提供一个近线性的下降和围绕t = 0 t=0 t =0和t = T t=T t =T的细微变化β t = c l i p ( 1 − α ˉ t α t − 1 , 0.999 ) α ˉ t = f ( t ) f ( 0 ) w h e r e f ( t ) = cos ⁡ ( t / T + s 1 + s ⋅ π 2 ) \beta_t=\mathrm{clip}(1-\frac{\bar{\alpha}t}{\alpha{t-1}},0.999)\quad \bar{\alpha}t=\frac{f(t)}{f(0)} \quad \mathrm{where}\text{ } f(t)=\cos(\frac{t/T+s}{1+s}\cdot \frac{\pi}{2})βt ​=c l i p (1 −αt −1 ​αˉt ​​,0 .9 9 9 )αˉt ​=f (0 )f (t )​w h e r e f (t )=cos (1 +s t /T +s ​⋅2 π​)其中当t = 0 t=0 t =0时小偏移量s s s是为了防止β t \beta_t βt ​接近时太小。
参数化Σ θ {\bf{\Sigma}}
\theta Σθ​的过程中,Ho等人选择固定β t \beta_t βt ​为常量,而不是使它们可学习并设置Σ θ ( x t , t ) = σ t 2 I {\bf{\Sigma}}\theta({\bf{x}}_t,t)=\sigma^2_t{\bf{I}}Σθ​(x t ​,t )=σt 2 ​I, 其中σ t \sigma_t σt ​是不可学习的。实验发现学习对角方差Σ θ {\bf{\Sigma}}\theta Σθ​会导致训练不稳定和样本质量下降。Nichol和Dhariwal等人提出将学习Σ θ ( x t , t ) {\bf{\Sigma}}\theta({\bf{x}}_t,t)Σθ​(x t ​,t )作为β \beta β和β ~ t \tilde{\beta}_t β~​t ​之间的插值,通过模型预测混合向量v {\bf{v}}v,则有:Σ θ ( x t , t ) = exp ⁡ ( v log ⁡ β t + ( 1 − v ) log ⁡ β ~ t ) {\bf{\Sigma}}\theta({\bf{x}}t,t)=\exp({\bf{v}}\log \beta_t+(1-{\bf{v}})\log\tilde{\beta}_t)Σθ​(x t ​,t )=exp (v lo g βt ​+(1 −v )lo g β~​t ​)简单的目标L s i m p l e L{\mathrm{simple}}L s i m p l e ​并不依赖于Σ θ {\bf{\Sigma}}\theta Σθ​。为了增加依赖性,他们构建了一个混合目标L h y b r i d = L s i m p l e + λ L V L B L{\mathrm{hybrid}}=L_{\mathrm{simple}}+\lambda L_{\mathrm{VLB}}L h y b r i d ​=L s i m p l e ​+λL V L B ​,其中λ = 0.001 \lambda=0.001 λ=0 .0 0 1很小并且停止在μ θ \boldsymbol{\mu}\theta μθ​的梯度,以便L V L B L{\mathrm{VLB}}L V L B ​仅指导Σ θ {\bf{\Sigma}}\theta Σθ​的学习。可以观察到,由于梯度噪声,优化L V L B L{\mathrm{VLB}}L V L B ​是非常困难的,因此他们建议使用具有重要性采样的时间平均平滑版本。

8 加速扩散模型采样

通过遵循反向扩散过程的马尔可夫链从DDPM生成样本非常慢,可能长达一个或几千个步骤。从DDPM中采样50000 50000 5 0 0 0 0个大小为32 × 32 32\times32 3 2 ×3 2的图像大约需要20 20 2 0小时,但从Nvidia 2080 Ti GPU上的GAN中采样不到一分钟。一种简单的方法是运行跨步抽样计划,每一步都进行抽样更新,以减少中间的采样过程。对于另一种方法,需要重写q σ ( x t ∣ x t , x 0 ) q_\sigma({\bf{x}}t|{\bf{x}}_t,{\bf{x}}_0)q σ​(x t ​∣x t ​,x 0 ​)以通过所需的标准偏差σ t \sigma_t σt ​进行参数化:x t − 1 = α ˉ t − 1 x 0 + 1 − α ˉ t − 1 z t − 1 = α ˉ t − 1 x 0 + 1 − α ˉ t − 1 − σ t 2 z t + σ t z = α ˉ t − 1 x 0 + 1 − α ˉ t − 1 − σ t 2 x t − α ˉ t x 0 1 − α ˉ t + σ t z q σ ( x t − 1 ∣ x t , x 0 ) = N ( x t − 1 ; α ˉ t − 1 x 0 + 1 − α ˉ t − 1 − σ t 2 x t − α ˉ t x 0 1 − α ˉ t , σ t 2 I ) \begin{aligned}{\bf{x}}{t-1}&=\sqrt{\bar{\alpha}{t-1}}{\bf{x}}_0+\sqrt{1-\bar{\alpha}{t-1}}{\bf{z}}{t-1}\&=\sqrt{\bar{\alpha}{t-1}}{\bf{x}}0+\sqrt{1-\bar{\alpha}{t-1}-\sigma^2_t{\bf{z}}t}+\sigma_t{\bf{z}}\&=\sqrt{\bar{\alpha}{t-1}}{\bf{x}}0+\sqrt{1-\bar{\alpha}{t-1}-\sigma^2_t}\frac{{\bf{x}}t-\sqrt{\bar{\alpha}_t}{\bf{x}}_0}{\sqrt{1-\bar{\alpha}_t}}+\sigma_t{\bf{z}}\q\sigma&({\bf{x}}{t-1}|{\bf{x}}_t,{\bf{x}}_0)=\mathcal{N}\left({\bf{x}}{t-1};\sqrt{\bar{\alpha}{t-1}}{\bf{x}}_0+\sqrt{1-\bar{\alpha}{t-1}-\sigma^2_t}\frac{{\bf{x}}t-\sqrt{\bar{\alpha}_t}{\bf{x}}_0}{1-\bar{\alpha}_t},\sigma^2_t{\bf{I}}\right)\end{aligned}x t −1 ​q σ​​=αˉt −1 ​​x 0 ​+1 −αˉt −1 ​​z t −1 ​=αˉt −1 ​​x 0 ​+1 −αˉt −1 ​−σt 2 ​z t ​​+σt ​z =αˉt −1 ​​x 0 ​+1 −αˉt −1 ​−σt 2 ​​1 −αˉt ​​x t ​−αˉt ​​x 0 ​​+σt ​z (x t −1 ​∣x t ​,x 0 ​)=N (x t −1 ​;αˉt −1 ​​x 0 ​+1 −αˉt −1 ​−σt 2 ​​1 −αˉt ​x t ​−αˉt ​​x 0 ​​,σt 2 ​I )​因为q ( x t − 1 ∣ x t , x 0 ) = N ( x t − 1 ; μ ~ ( x t , x 0 , β ~ t I ) ) q({\bf{x}}{t-1}|{\bf{x}}t,{\bf{x}}_0)=\mathcal{N}({\bf{x}}{t-1};\tilde{\boldsymbol{\mu}}({\bf{x}}t,{\bf{x}}_0,\tilde{\beta}_t{\bf{I}}))q (x t −1 ​∣x t ​,x 0 ​)=N (x t −1 ​;μ~​(x t ​,x 0 ​,β~​t ​I )),因此则有β ~ t = σ t 2 = 1 − α ˉ t − 1 1 − α ˉ t ⋅ β t \tilde{\beta}_t=\sigma^2_t=\frac{1-\bar{\alpha}{t-1}}{1-\bar{\alpha}t}\cdot \beta_t β~​t ​=σt 2 ​=1 −αˉt ​1 −αˉt −1 ​​⋅βt ​令σ t 2 = η ⋅ β ~ t \sigma^2_t=\eta \cdot \tilde{\beta}_t σt 2 ​=η⋅β~​t ​,进而可以通过调整为超参数η ∈ R + \eta\in \mathbb{R}^{+}η∈R +来控制采样随机性。η = 0 \eta=0 η=0的特殊情况使采样过程具有确定性,这样的模型被命名为去噪扩散隐式模型(DDIM)。DDIM具有相同的边际噪声分布,但确定性地将噪声映射回原始数据样本。在生成过程中,只对扩散步骤的一个子集S S S进行采样为{ τ 1 , ⋯ , τ S } {\tau_1,\cdots,\tau_S}{τ1 ​,⋯,τS ​},推理过程变为:q σ , τ ( x τ i − 1 ∣ x τ t , x 0 ) = N ( x τ i − 1 ; α ˉ t − 1 x 0 + 1 − α ˉ t − 1 − σ t 2 x τ i − α ˉ t x 0 1 − α ˉ t , σ t 2 I ) q{\sigma,\tau}({\bf{x}}{\tau{i-1}}|{\bf{x}}{\tau_t},{\bf{x}}_0)=\mathcal{N}({\bf{x}}{\tau_{i-1}};\sqrt{\bar{\alpha}{t-1}}{\bf{x}}_0+\sqrt{1-\bar{\alpha}{t-1}-\sigma_t^2}\frac{{\bf{x}}_{\tau_i}-\sqrt{\bar{\alpha}_t}{\bf{x}}_0}{\sqrt{1-\bar{\alpha}_t}},\sigma^2_t{\bf{I}})q σ,τ​(x τi −1 ​​∣x τt ​​,x 0 ​)=N (x τi −1 ​​;αˉt −1 ​​x 0 ​+1 −αˉt −1 ​−σt 2 ​​1 −αˉt ​​x τi ​​−αˉt ​​x 0 ​​,σt 2 ​I )可以观察到DDIM在较小采样数的情况下可以产生最佳质量的样本,而DDPM在较小采样数的情况下表现要差得多。使用 DDIM可以将扩散模型训练到任意数量的前向步骤,但只能从生成过程中的步骤子集进行采样。总结来说,与DDPM相比,DDIM优点如下:

  • 使用更少的步骤生成更高质量的样本。
  • 由于生成过程是确定性的,因此具有”一致性”属性,这意味着以相同隐变量为条件的多个样本应该具有相似的高级特征。
  • 由于一致性,DDIM可以在隐变量中进行语义上有意义的插值。

9 条件生成

在ImageNet数据上训练生成模型时,通常会生成以类标签为条件的样本。为了明确地将类别信息纳入扩散过程,Dhariwal和Nichol对噪声图像x t {\bf{x}}t x t ​训练了一个分类器f ϕ ( y ∣ x t , t ) f\phi(y|{\bf{x}}t,t)f ϕ​(y ∣x t ​,t ),并使用梯度∇ x log ⁡ f ϕ ( y ∣ x t , t ) \nabla{{\bf{x}}} \log f_{\phi}(y|{\bf{x}}_t,t)∇x ​lo g f ϕ​(y ∣x t ​,t )来引导扩散采样过程朝向目标类别标签y y y。消融扩散模型 (ADM) 和带有附加分类器引导的模型 (ADM-G) 能够获得比当前最好生成模型(BigGAN)更好的结果。此外,Dhariwal和Nichol等人通过对UNet架构进行一些修改,显示出比具有扩散模型的GAN更好的性能。模型架构修改包括更大的模型深度/宽度、更多注意力头、多分辨率注意力、用于上/下采样的BigGAN残差块、残差连接重新缩放和自适应组归一化 (AdaGN)。

Original: https://blog.csdn.net/qq_38406029/article/details/125526604
Author: 鬼道2022
Title: Diffusion模型详解

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/613426/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球