DDPM扩散模型公式推理----扩散和逆扩散过程

DDPM扩散模型公式推理----扩散和逆扩散过程

说明

本文章旨在梳理DDPM这篇论文中的各个公式含义及推导,很多内容从其他博客处摘录,在文后列举。一篇文章发不全,拆开成两篇了。

1.Diffusion model的直观理解

打个比方,就像是给你一块木头,让你把它雕刻成一个佛像,需要栩栩如生。Diffusion model在推理阶段就是在执行逆扩散过程,也就是雕刻佛像的过程。

用数学语言进行描述,生成式模型本质上是从一组概率分布中得到另一组概率分布。如下图所示,左边是一个训练数据集,里面所有的数据都是从某个数据 p data  p_{\text {data }} pdata 中独立同分布取出的随机样本。右边就是其生成式模型(概率分布),在这种概率分布中,找出一个分布 p θ p_ {\theta } pθ使得它离 p data  p_{\text {data }} pdata 的距离最近。接着在 p θ p_ {\theta } pθ上采新的样本,可以获得源源不断的新数据。
在这里插入图片描述
Diffusion model由 p data  p_{\text {data }} pdata 得到 p θ p_ {\theta } pθ的过程分为两个阶段:

扩散过程 q q q,在 p data  p_{\text {data }} pdata 上不断加噪声,使得他最终变成一个纯噪声分布 N ( 0 , I ) \mathcal{N}\left(0, I\right) N(0,I)

逆扩散过程 p p p,将噪声 N ( 0 , I ) \mathcal{N}\left(0, I\right) N(0,I)分布逐步地去噪以映射到 p data  p_{\text {data }} pdata ,有了这样的映射,我们从噪声分布中采样,最终可以得到一张想要的图像,也就是可以做生成了。

而从单个图像样本来看这个过程,扩散过程 q q q就是不断往图像上加噪声直到图像变成一个纯噪声,逆扩散过程 p p p就是从纯噪声生成一张图像的过程。
在这里插入图片描述

2.数学解析Diffusion Model

2.1 Diffusion 前向过程(扩散过程)

给定真实图片样本 x 0 ∼ q ( x ) x_{0} \sim q(x) x0q(x),diffusion 前向过程通过 T T T次累计对其添加高斯噪声,得到 x 1 , x 2 , … , x T x_{1}, x_{2}, \ldots, x_{T} x1,x2,,xT,如下图的 q q q过程。每一步的大小是由一系列的高斯分布方差的超参数 { β t ∈ ( 0 , 1 ) } t = 1 T \left\{\beta_{t} \in(0,1)\right\}_{t=1}^{T} { βt(0,1)}t=1T来控制的。 前向过程由于每个时刻 t t t只与 t − 1 t-1 t1时刻有关,所以也可以看做马尔科夫过程:
q ( x t ∣ x t − 1 ) = N ( x t ; 1 − β t x t − 1 , β t I ) , q ( x 1 : T ∣ x 0 ) = ∏ t = 1 T q ( x t ∣ x t − 1 ) q\left(x_{t} \mid x_{t-1}\right)=\mathcal{N}\left(x_{t} ; \sqrt{1-\beta_{t}} x_{t-1}, \beta_{t} \mathbf{I}\right), q\left(x_{1: T} \mid x_{0}\right)=\prod_{t=1}^{T} q\left(x_{t} \mid x_{t-1}\right) q(xtxt1)=N(xt;1βt xt1,βtI),q(x1:Tx0)=t=1Tq(xtxt1)

  • β t \beta_{t} βt为方差
  • 1 − β t \sqrt{1-\beta_{t}} 1βt 为均值,且之后要用到的 α t = 1 − β t \alpha_t = 1-\beta_{t} αt=1βt,即 α t \alpha_t αt为均值的平方

这个过程中,随着 t t t的增大, x t x_t xt越来越接近纯噪声。当 T → ∞ T \rightarrow \infty T x T x_T xT是完全的高斯噪声(下面会证明,且与均值系数 1 − β t \sqrt{1-\beta_{t}} 1βt 的选择有关)。

将其中的第 t t t 步提取出来解析, x t x_t xt的分布为 q ( x t ∣ x t − 1 ) = N ( x t ; 1 − β t x t − 1 , β t I ) q\left(x_{t} \mid x_{t-1}\right)=\mathcal{N}\left(x_{t} ; \sqrt{1-\beta_{t}} x_{t-1}, \beta_{t} \mathbf{I}\right) q(xtxt1)=N(xt;1βt xt1,βtI),而 x t − 1 x_{t-1} xt1在该步中为已知,即已经被第 t − 1 t-1 t1步求解出来了,所以 x t − 1 x_{t-1} xt1 可以看作常数。所以 x t x_t xt 的均值为常数 1 − β t x t − 1 \sqrt{1-\beta_{t}} x_{t-1} 1βt xt1 ,方差为 β t \beta_{t} βt

2.1.1 重参数技巧(reparameterization trick)

如果要从高斯分布 z ∼ N ( z ; μ θ , σ θ 2 I ) z \sim \mathcal{N}\left(z ; \mu_{\theta}, \sigma_{\theta}^{2} \mathbf{I}\right) zN(z;μθ,σθ2I) 采样一个 z z z ,我们可以写成:
z = μ θ + σ θ ⊙ ϵ , ϵ ∼ N ( 0 , I ) z=\mu_{\theta}+\sigma_{\theta} \odot \epsilon, \epsilon \sim \mathcal{N}(0, \mathbf{I}) z=μθ+σθϵ,ϵN(0,I)
所以 q ( x t ∣ x t − 1 ) = N ( x t ; 1 − β t x t − 1 , β t I ) q\left(x_{t} \mid x_{t-1}\right)=\mathcal{N}\left(x_{t} ; \sqrt{1-\beta_{t}} x_{t-1}, \beta_{t} \mathbf{I}\right) q(xtxt1)=N(xt;1βt xt1,βtI) 可以写作:
x t = α t x t − 1 + 1 − α t ϵ t − 1 \mathbf{x}_{t}=\sqrt{\alpha_{t}} \mathbf{x}_{t-1}+\sqrt{1-\alpha_{t}} \boldsymbol{\epsilon}_{t-1} xt=αt xt1+1αt ϵt1
其中 α t = 1 − β t \alpha_t = 1-\beta_{t} αt=1βt ϵ t − 1 ∼ N ( 0 , I ) \boldsymbol{\epsilon}_{t-1} \sim \mathcal{N}(0, \mathbf{I}) ϵt1N(0,I)

2.1.2 任意时刻的 x t x_t xt 可以由 x 0 x_0 x0 β t \beta_{t} βt 直接表示

在前向过程中,有一个性质非常棒,就是我们其实可以通过 x 0 x_0 x0 β t \beta_{t} βt 直接得到 x t x_t xt

x t = α t x t − 1 + 1 − α t ϵ t − 1 = α t ( α t − 1 x t − 2 + 1 − α t − 1 ϵ t − 2 ) + 1 − α t ϵ t − 1 = α t [ α t − 1 ( α t − 2 x t − 3 + 1 − α t − 2 ϵ t − 3 ) + 1 − α t − 1 ϵ t − 2 ] + 1 − α t ϵ t − 1 = ⋯ = α t α t − 1 ⋯ α 1 x 0 + α t α t − 1 ⋯ α 2 1 − α 1 ϵ 0 + α t α t − 1 ⋯ α 3 1 − α 2 ϵ 1 + ⋯ + α t 1 − α t − 1 ϵ t − 2 + 1 − α t ϵ t − 1 \begin{array}{rlr} \mathbf{x}_{t} & =\sqrt{\alpha_{t}} \mathbf{x}_{t-1}+\sqrt{1-\alpha_{t}} \boldsymbol{\epsilon}_{t-1} \\ \\ & = \sqrt{\alpha_{t}} \left( \sqrt{ \alpha_{t-1}}\mathbf{x}_{t-2} + \sqrt{1-\alpha_{t-1}}\boldsymbol{\epsilon}_{t-2} \right) + \sqrt{ 1-\alpha_{t}} \boldsymbol{\epsilon}_{t-1}\\ \\ & = \sqrt{\alpha_{t}} \left[ \sqrt{ \alpha_{t-1}} \left( \sqrt{ \alpha_{t-2}}\mathbf{x}_{t-3} + \sqrt{1-\alpha_{t-2}}\boldsymbol{\epsilon}_{t-3} \right) + \sqrt{1-\alpha_{t-1}}\boldsymbol{\epsilon}_{t-2} \right] \\ \\ &+ \sqrt{ 1-\alpha_{t}} \boldsymbol{\epsilon}_{t-1}\\ \\ &= \cdots\\ \\ &= \sqrt{\alpha_{t}} \sqrt{\alpha_{t-1}} \cdots \sqrt{\alpha_{1}} x_0 + \sqrt{\alpha_{t}} \sqrt{\alpha_{t-1}} \cdots \sqrt{\alpha_{2}}\sqrt{1-\alpha_{1}} \boldsymbol{\epsilon}_{0} \\ \\ &+ \sqrt{\alpha_{t}} \sqrt{\alpha_{t-1}} \cdots \sqrt{\alpha_{3}}\sqrt{1-\alpha_{2}} \boldsymbol{\epsilon}_{1} + \cdots + \sqrt{\alpha_{t}} \sqrt{1-\alpha_{t-1}} \boldsymbol{\epsilon}_{t-2} \\ \\ &+ \sqrt{1-\alpha_{t}} \boldsymbol{\epsilon}_{t-1}\\ \end{array} xt=αt xt1+1αt ϵt1=αt (αt1 xt2+1αt1 ϵt2)+1αt ϵt1=αt [αt1 (αt2 xt3+1αt2 ϵt3)+1αt1 ϵt2]+1αt ϵt1==αt αt1 α1 x0+αt αt1 α2 1α1 ϵ0+αt αt1 α3 1α2 ϵ1++αt 1αt1 ϵt2+1αt ϵt1
其中, ϵ 0 ⋯ ϵ t − 1 \boldsymbol{\epsilon}_{0} \cdots \boldsymbol{\epsilon}_{t-1} ϵ0ϵt1 都为标准正态分布,服从 N ( 0 , I ) \mathcal{N}(0, \mathbf{I}) N(0,I)。正态分布有两个性质:

  • c ϵ c \boldsymbol{\epsilon} cϵ也为正态分布,且 c ϵ ∼ N ( 0 , c 2 I ) c \boldsymbol{\epsilon} \sim \mathcal{N}(0, \mathbf{c^2I}) cϵN(0,c2I) c c c 为常数
  • 可加性,即 N ( 0 , σ 1 2 I ) + N ( 0 , σ 2 2 I ) ∼ N ( 0 , ( σ 1 2 + σ 2 2 ) I ) \mathcal{N}\left(0, \sigma_{1}^{2} \mathbf{I}\right)+\mathcal{N}\left(0, \sigma_{2}^{2} \mathbf{I}\right) \sim \mathcal{N}\left(0,\left(\sigma_{1}^{2}+\sigma_{2}^{2}\right) \mathbf{I}\right) N(0,σ12I)+N(0,σ22I)N(0,(σ12+σ22)I)

所以上式中, α t α t − 1 ⋯ α 2 1 − α 1 ϵ 0 \sqrt{\alpha_{t}} \sqrt{\alpha_{t-1}} \cdots \sqrt{\alpha_{2}}\sqrt{1-\alpha_{1}} \boldsymbol{\epsilon}_{0} αt αt1 α2 1α1 ϵ0服从正态分布,均值为0,方差为 α t α t − 1 ⋯ α 2 ( 1 − α 1 ) \alpha_{t} \alpha_{t-1} \cdots \alpha_{2} (1- \alpha_{1}) αtαt1α2(1α1),再由可加性,上式方差为:
α t α t − 1 ⋯ α 1 + α t α t − 1 ⋯ α 2 ( 1 − α 1 ) + α t α t − 1 ⋯ α 3 ( 1 − α 2 ) + ⋯ ⋯ + α t ( 1 − α t − 1 ) + ( 1 − α t ) ϵ t − 1 = α t [ α t − 1 ⋯ α 2 ( 1 − α 1 ) + α t − 1 ⋯ α 3 ( 1 − α 2 ) + ⋯ ⋯ + ( 1 − α t − 1 ) − 1 ] + 1 = α t [ α t − 1 ⋯ α 2 ( 1 − α 1 ) + α t − 1 ⋯ α 3 ( 1 − α 2 ) + ⋯ ⋯ + α t − 1 ( 1 − α t − 2 ) − α t − 1 ] + 1 = α t α t − 1 [ α t − 2 ⋯ α 2 ( 1 − α 1 ) + α t − 2 ⋯ α 3 ( 1 − α 2 ) + ⋯ ⋯ + α t − 2 ( 1 − α t − 3 ) − α t − 2 ] + 1 = α t α t − 1 ⋯ α 3 [ α 2 ( 1 − α 1 ) + ( 1 − α 2 ) − 1 ] + 1 = 1 − α t α t − 1 ⋯ α 3 α 2 α 1 = 1 − α ˉ t \begin{array}{rlr} &\alpha_{t} \alpha_{t-1} \cdots \alpha_{1} + \alpha_{t} \alpha_{t-1} \cdots \alpha_{2} (1-\alpha_{1})+ \alpha_{t} \alpha_{t-1} \cdots \alpha_{3} (1-\alpha_{2}) + \cdots\cdots + \alpha_{t} (1-\alpha_{t-1}) \\ \\ &+ (1-\alpha_{t}) \boldsymbol{\epsilon}_{t-1} \\ \\ &= \alpha_{t} \left[\alpha_{t-1} \cdots \alpha_{2}(1-\alpha_1) + \alpha_{t-1} \cdots \alpha_{3}(1-\alpha_2) + \cdots\cdots + (1 - \alpha_{t-1}) - 1\right] + 1\\ \\ & = \alpha_{t} \left[\alpha_{t-1} \cdots \alpha_{2}(1-\alpha_1) + \alpha_{t-1} \cdots \alpha_{3}(1-\alpha_2) + \cdots\cdots+ \alpha_{t-1} (1-\alpha_{t-2}) - \alpha_{t-1} \right] + 1\\ \\ & = \alpha_{t}\alpha_{t-1} \left[\alpha_{t-2} \cdots \alpha_{2}(1-\alpha_1) + \alpha_{t-2} \cdots \alpha_{3}(1-\alpha_2) + \cdots\cdots+ \alpha_{t-2} (1-\alpha_{t-3}) - \alpha_{t-2} \right] + 1\\ \\ & = \alpha_{t}\alpha_{t-1} \cdots \alpha_{3} \left[ \alpha_{2} \left( 1 - \alpha_1 \right) + (1 - \alpha_2) - 1 \right] + 1\\ \\ &= 1- \alpha_{t}\alpha_{t-1} \cdots \alpha_{3}\alpha_{2}\alpha_{1} \\ \\ &= 1- \bar{\alpha}_{t} \end{array} αtαt1α1+αtαt1α2(1α1)+αtαt1α3(1α2)+⋯⋯+αt(1αt1)+(1αt)ϵt1=αt[αt1α2(1α1)+αt1α3(1α2)+⋯⋯+(1αt1)1]+1=αt[αt1α2(1α1)+αt1α3(1α2)+⋯⋯+αt1(1αt2)αt1]+1=αtαt1[αt2α2(1α1)+αt2α3(1α2)+⋯⋯+αt2(1αt3)αt2]+1=αtαt1α3[α2(1α1)+(1α2)1]+1=1αtαt1α3α2α1=1αˉt
其中, α ˉ t = α t α t − 1 ⋯ α 3 α 2 α 1 \bar{\alpha}_{t} = \alpha_{t}\alpha_{t-1} \cdots \alpha_{3}\alpha_{2}\alpha_{1} αˉt=αtαt1α3α2α1,所以:
x t = α t x t − 1 + 1 − α t ϵ t − 1 = α ˉ t x 0 + 1 − α ˉ t ϵ \begin{array}{rlr} \mathbf{x}_{t} & =\sqrt{\alpha_{t}} \mathbf{x}_{t-1}+\sqrt{1-\alpha_{t}} \boldsymbol{\epsilon}_{t-1} \\ \\ & = \sqrt{\bar{\alpha}_{t}} \mathbf{x}_{0}+\sqrt{1-\bar{\alpha}_{t}} \boldsymbol{\epsilon} \end{array} xt=αt xt1+1αt ϵt1=αˉt x0+1αˉt ϵ

因此任意时刻的 x t x_t xt 满足:
q ( x t ∣ x 0 ) = N ( x t ; α ˉ t x 0 , ( 1 − α ˉ t ) I ) q\left(\mathbf{x}_{t} \mid \mathbf{x}_{0}\right)=\mathcal{N}\left(\mathbf{x}_{t} ; \sqrt{\bar{\alpha}_{t}} \mathbf{x}_{0},\left(1-\bar{\alpha}_{t}\right) \mathbf{I}\right) q(xtx0)=N(xt;αˉt x0,(1αˉt)I)

2.1.3 技巧3: α t = 1 − β t \alpha_t = 1-\beta_{t} αt=1βt

之所以要令 α t = 1 − β t \alpha_t = 1-\beta_{t} αt=1βt,是因为只有这样才能推导出2.1.2中的结果。在原论文中, T T T 设为1000,即要进行1000次扩散加噪过程,每次扩散过程的参数关系为: β 1 < β 2 < … < β T \beta_{1}<\beta_{2}<\ldots<\beta_{T} β1<β2<<βT,且 β t \beta_t βt 为 0.0001 到 0.02 线性插值。

所以 1 − α ˉ t 1-\bar{\alpha}_{t} 1αˉt 会趋近于1, α ˉ t \bar{\alpha}_{t} αˉt 趋近于0,即均值趋近于0,方差趋近于1。所以 q ( x t ∣ x 0 ) q\left(\mathbf{x}_{t} \mid \mathbf{x}_{0}\right) q(xtx0) 趋近于标准正态分布 N ( 0 , I ) \mathcal{N}(0, \mathbf{I}) N(0,I)

2.2 Diffusion 逆扩散过程

如果我们能够逆转上述过程并从 q ( x t − 1 ∣ x t ) q\left(x_{t-1} \mid x_{t}\right) q(xt1xt) 采样,就可以从高斯噪声 x T ∼ N ( 0 , I ) x_{T} \sim \mathcal{N}(0, \mathbf{I}) xTN(0,I) 还原出原图分布 x 0 ∼ q ( x ) x_{0} \sim q(x) x0q(x) 。我们无法简单推断 q ( x t − 1 ∣ x t ) q\left(x_{t-1} \mid x_{t}\right) q(xt1xt) ,所以通过神经网络去预测这样的一个逆向的分布 p θ p_{\theta} pθ

逆扩散过程的数学表达式:
p θ ( X 0 : T ) = p ( x T ) ∏ t = 1 T p θ ( x t − 1 ∣ x t ) m p θ ( x t − 1 ∣ x t ) = N ( x t − 1 ; μ θ ( x t , t ) , Σ θ ( x t , t ) ) p_{\theta}\left(X_{0: T}\right)=p\left(x_{T}\right) \prod_{t=1}^{T} p_{\theta}\left(x_{t-1} \mid x_{t}\right)m \\ p_{\theta}\left(x_{t-1} \mid x_{t}\right)=\mathcal{N}\left(x_{t-1} ; \mu_{\theta}\left(x_{t}, t\right), \Sigma_{\theta}\left(x_{t}, t\right)\right) pθ(X0:T)=p(xT)t=1Tpθ(xt1xt)mpθ(xt1xt)=N(xt1;μθ(xt,t),Σθ(xt,t))
在论文中,作者把条件概率 p θ ( x t − 1 ∣ x t ) p_{\theta}\left(x_{t-1} \mid x_{t}\right) pθ(xt1xt) 的方差直接取 β t \beta_t βt,用神经网络UNet估计均值。

虽然我们无法得到逆转过程的概率分布 q ( x t − 1 ∣ x t ) q\left(x_{t-1} \mid x_{t}\right) q(xt1xt) ,但是已经有了已知的 x 0 x_0 x0,就可以写出其大致形式:
q ( x t − 1 ∣ x t ) = q ( x t − 1 ∣ x t , x 0 ) = N ( x t − 1 ; μ ~ ( x t , x 0 ) , β ~ t I ) q\left(x_{t-1} \mid x_{t}\right) = q\left(x_{t-1} \mid x_{t}, x_{0}\right)=\mathcal{N}\left(x_{t-1} ; \tilde{\mu}\left(x_{t}, x_{0}\right), \tilde{\beta}_{t} \mathbf{I}\right) q(xt1xt)=q(xt1xt,x0)=N(xt1;μ~(xt,x0),β~tI)
由贝叶斯公式:
q ( x t − 1 ∣ x t , x 0 ) = q ( x t , x 0 , x t − 1 ) q ( x t , x 0 ) = q ( x 0 ) q ( x t − 1 ∣ x 0 ) q ( x t ∣ x t − 1 , x 0 ) q ( x 0 ) q ( 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 − a ˉ t − 1 − ( x t − α ˉ t x 0 ) 2 1 − a ˉ t ) ) = exp ⁡ ( − 1 2 ( ( ( α t β t + 1 1 − α ˉ t − 1 ) x t − 1 2 ⏟ x t − 1  方差  − ( 2 α t β t x t + 2 a ˉ t − 1 1 − α ˉ t − 1 x 0 ) x t − 1 ⏟ x t − 1  均值  + C ( x t , x 0 ) ⏟ 与  x t − 1  无关  ) ) . \begin{array}{l} q\left(x_{t-1} \mid x_{t}, x_{0}\right) \\ \\ =\frac{q\left(x_{t}, x_{0}, x_{t-1}\right)}{q\left(x_{t}, x_{0}\right)} \\ \\ =\frac{q\left(x_{0}\right) q\left(x_{t-1} \mid x_{0}\right) q\left(x_{t} \mid x_{t-1}, x_{0}\right)}{q\left(x_{0}\right) q\left(x_{t} \mid x_{0}\right)} \\ \\ =q\left(x_{t} \mid x_{t-1}, x_{0}\right) \frac{q\left(x_{t-1} \mid x_{0}\right)}{q\left(x_{t} \mid x_{0}\right)} \\ \\ \propto \exp \left(-\frac{1}{2}\left(\frac{\left(x_{t}-\sqrt{\alpha_{t}} x_{t-1}\right)^{2}}{\beta_{t}}+\frac{\left(x_{t-1}-\sqrt{\bar{\alpha}_{t-1}} x_{0}\right)^{2}}{1-\bar{a}_{t-1}}-\frac{\left(x_{t}-\sqrt{\bar{\alpha}_{t}} x_{0}\right)^{2}}{1-\bar{a}_{t}}\right)\right) \\ \\ =\exp \left(-\frac{1}{2}(\underbrace{\left(\left(\frac{\alpha_{t}}{\beta_{t}}+\frac{1}{1-\bar{\alpha}_{t-1}}\right) x_{t-1}^{2}\right.}_{x_{t-1} \text { 方差 }}-\underbrace{\left(\frac{2 \sqrt{\alpha_{t}}}{\beta_{t}} x_{t}+\frac{2 \sqrt{\bar{a}_{t-1}}}{1-\bar{\alpha}_{t-1}} x_{0}\right) x_{t-1}}_{x_{t-1} \text { 均值 }}+\underbrace{C\left(x_{t}, x_{0}\right)}_{\text {与 } x_{t-1} \text { 无关 }})\right) . \\ \end{array} q(xt1xt,x0)=q(xt,x0)q(xt,x0,xt1)=q(x0)q(xtx0)q(x0)q(xt1x0)q(xtxt1,x0)=q(xtxt1,x0)q(xtx0)q(xt1x0)exp(21(βt(xtαt xt1)2+1aˉt1(xt1αˉt1 x0)21aˉt(xtαˉt x0)2))=exp 21(xt1 方差  ((βtαt+1αˉt11)xt12xt1 均值  (βt2αt xt+1αˉt12aˉt1 x0)xt1+ xt1 无关  C(xt,x0)) .
一般的高斯概率密度函数的指数部分为 exp ⁡ ( − ( x − μ ) 2 2 σ 2 ) = exp ⁡ ( − 1 2 ( 1 σ 2 x 2 − 2 μ σ 2 x + μ 2 σ 2 ) ) \exp \left(-\frac{(x-\mu)^{2}}{2 \sigma^{2}}\right)=\exp \left(-\frac{1}{2}\left(\frac{1}{\sigma^{2}} x^{2}-\frac{2 \mu}{\sigma^{2}} x+\frac{\mu^{2}}{\sigma^{2}}\right)\right) exp(2σ2(xμ)2)=exp(21(σ21x2σ22μx+σ2μ2))

因此稍加整理我们可以得到 q ( x t − 1 ∣ x t , x 0 ) q\left(x_{t-1} \mid x_{t}, x_{0}\right) q(xt1xt,x0) 的均值和方差为:
β ~ t = 1 / ( α t β t + 1 1 − α ˉ t − 1 ) = 1 / ( α t − α ˉ t + β t β t ( 1 − α ˉ t − 1 ) ) = 1 − α ˉ t − 1 1 − α ˉ t ⋅ β t \tilde{\beta}_{t}=1 /\left(\frac{\alpha_{t}}{\beta_{t}}+\frac{1}{1-\bar{\alpha}_{t-1}}\right)=1 /\left(\frac{\alpha_{t}-\bar{\alpha}_{t}+\beta_{t}}{\beta_{t}\left(1-\bar{\alpha}_{t-1}\right)}\right)=\frac{1-\bar{\alpha}_{t-1}}{1-\bar{\alpha}_{t}} \cdot \beta_{t} β~t=1/(βtαt+1αˉt11)=1/(βt(1αˉt1)αtαˉt+βt)=1αˉt1αˉt1β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{\boldsymbol{\mu}}_{t}\left(\mathbf{x}_{t}, \mathbf{x}_{0}\right) & =\left(\frac{\sqrt{\alpha_{t}}}{\beta_{t}} \mathbf{x}_{t}+\frac{\sqrt{\bar{\alpha}_{t-1}}}{1-\bar{\alpha}_{t-1}} \mathbf{x}_{0}\right) /\left(\frac{\alpha_{t}}{\beta_{t}}+\frac{1}{1-\bar{\alpha}_{t-1}}\right) \\ \\ & =\left(\frac{\sqrt{\alpha_{t}}}{\beta_{t}} \mathbf{x}_{t}+\frac{\sqrt{\bar{\alpha}_{t-1}}}{1-\bar{\alpha}_{t-1}} \mathbf{x}_{0}\right) \frac{1-\bar{\alpha}_{t-1}}{1-\bar{\alpha}_{t}} \cdot \beta_{t} \\ \\ & =\frac{\sqrt{\alpha_{t}}\left(1-\bar{\alpha}_{t-1}\right)}{1-\bar{\alpha}_{t}} \mathbf{x}_{t}+\frac{\sqrt{\bar{\alpha}_{t-1}} \beta_{t}}{1-\bar{\alpha}_{t}} \mathbf{x}_{0} \end{aligned} μ~t(xt,x0)=(βtαt xt+1αˉt1αˉt1 x0)/(βtαt+1αˉt11)=(βtαt xt+1αˉt1αˉt1 x0)1αˉt1αˉt1βt=1αˉtαt (1αˉt1)xt+1αˉtαˉt1 βtx0

方差 β ~ t \tilde{\beta}_{t} β~t 的参数都是已知的,拿来直接用。

均值还可以再进一步化简。由2.1.2得到的 x 0 = 1 α ˉ i ( x t − 1 − α ˉ t ϵ t ) x_{0}=\frac{1}{\sqrt{\bar{\alpha}_{i}}}\left(x_{t}-\sqrt{1-\bar{\alpha}_{t}} \epsilon_{t}\right) x0=αˉi 1(xt1αˉt ϵt) 代入均值表达式得:
μ ~ t = 1 α t ( x t − 1 − α t 1 − α ˉ t ε t ) \tilde{\mu}_{t}=\frac{1}{\sqrt{\alpha_{t}}}\left(x_{t}-\frac{1-\alpha_{t}}{\sqrt{1-\bar{\alpha}_{t}}} \varepsilon_{t}\right) μ~t=αt 1(xt1αˉt 1αtεt)
可以看出,在给定 x 0 x_0 x0 的条件下,后验条件高斯分布的的均值只和超参数 x t , ϵ t x_t,\epsilon_t xt,ϵt 有关,方差只与超参数有关。

所以
μ ~ t = 1 α t ( x t − 1 − α t 1 − α ˉ t ε t ) \tilde{\mu}_{t}=\frac{1}{\sqrt{\alpha_{t}}}\left(x_{t}-\frac{1-\alpha_{t}}{\sqrt{1-\bar{\alpha}_{t}}} \varepsilon_{t}\right) μ~t=αt 1(xt1αˉt 1αtεt)
β ~ t = 1 − α ˉ t − 1 1 − α ˉ t ⋅ β t \tilde{\beta}_{t}=\frac{1-\bar{\alpha}_{t-1}}{1-\bar{\alpha}_{t}} \cdot \beta_{t} β~t=1αˉt1αˉt1βt
就是逆扩散过程 q ( x t − 1 ∣ x t , x 0 ) q\left(x_{t-1} \mid x_{t}, x_{0}\right) q(xt1xt,x0) 的解析形式,也就是相当于逆扩散过程的真实分布。

我们要做的是将分布 p θ ( X 0 : T ) p_{\theta}\left(X_{0: T}\right) pθ(X0:T) 无限接近上面的真实分布。

接下来是对损失函数的分析,文章太长发不出去,请移步:DDPM扩散模型公式推理----损失函数

猜你喜欢

转载自blog.csdn.net/weixin_45453121/article/details/131206482