diffusion model(扩散模型)DDPM解析

DDPM

前向阶段

在这里插入图片描述

  1. 重复 2-5 步骤
  2. x 0 ∼ q ( x 0 ) \mathbf{x}_0\sim q(\mathbf{x}_0) x0q(x0)从数据集中采样一张图片
  3. t ∼ U n i f o r m ( { 1 , … , T } ) t\sim\mathrm{Uniform}(\{1,\ldots,T\}) tUniform({1,,T}),从 1~T 中随机挑选一个时间步 t
  4. ϵ ∼ N ( 0 , I ) \epsilon\sim\mathcal{N}(\mathbf{0},\mathbf{I}) ϵN(0,I),选取一个标准正态分布噪声
  5. ∇ θ ∥ ϵ − ϵ θ ( α ˉ t x 0 + 1 − α ˉ t ϵ , t ) ∥ 2 \nabla_\theta\left\|\boldsymbol{\epsilon}-\boldsymbol{\epsilon}_\theta(\sqrt{\bar{\alpha}_t}\mathbf{x}_0+\sqrt{1-\bar{\alpha}_t}\boldsymbol{\epsilon},t)\right\|^2 θ ϵϵθ(αˉt x0+1αˉt ϵ,t) 2
  • 其中的 ϵ \epsilon ϵ是目标噪声,也就是 groundtruth
  • ϵ θ ( α ˉ t x 0 + 1 − α ˉ t ϵ , t ) \boldsymbol{\epsilon}_{\theta}(\sqrt{\bar{\alpha}_{t}}\mathbf{x}_{0}+\sqrt{1-\bar{\alpha}_{t}}\boldsymbol{\epsilon},t) ϵθ(αˉt x0+1αˉt ϵ,t)(带 θ \theta θ的都是模型相关)这个公式就是模型根据当前输入的 x t = α ˉ t x 0 + 1 − α ˉ t ϵ x_t=\sqrt{\bar{\alpha}_{t}}\mathbf{x}_{0}+\sqrt{1-\bar{\alpha}_{t}}\boldsymbol{\epsilon} xt=αˉt x0+1αˉt ϵ以及时间歩 t 进行噪声的预测 ϵ θ \boldsymbol{\epsilon}_{\theta} ϵθ(这里添加时间步 t 类似于 transformer 的 position embedding,告诉 model 当前的时刻),并于 groundtruth ϵ \epsilon ϵ使用 L2 范数求解损失;
  1. x t x_t xt的求解:在前向的扩散过程中,添加噪声可以按照固定的规则进行添加,并不需要模型进行干预, x t = α ˉ t x 0 + 1 − α ˉ t ϵ x_t=\sqrt{\bar{\alpha}_{t}}\mathbf{x}_{0}+\sqrt{1-\bar{\alpha}_{t}}\boldsymbol{\epsilon} xt=αˉt x0+1αˉt ϵ表示第 t 个时间步的图像(也就是下图中的某一张图),其中的 x 0 x_{0} x0是原图, ϵ \epsilon ϵ是符合标准正态分布的噪声,通过调节两者之间的强度,我们就可以调整噪声扩散的程度
    在这里插入图片描述

但在实际中,并不会一步一步的添加噪声,因为添加噪声的规则是固定的,每一个时间步添加噪声的强度是可以直接计算出来的,因此我们可以直接得到任一时间步的扩散图,其推理如下

tip
x t = a t x t − 1 + 1 − α t z 1 x_t=\sqrt{a_t}x_{t-1}+\sqrt{1-\alpha_t}z_1 xt=at xt1+1αt z1 1.1
x t − 1 = a t − 1 x t − 2 + 1 − α t − 1 z 2 x_{t-1}=\sqrt{a_{t-1}}x_{t-2}+\sqrt{1-\alpha_{t-1}}z_2 xt1=at1 xt2+1αt1 z2 1.2
将 1.2 带入 1.1:
x t = a t ( a t − 1 x t − 2 + 1 − α t − 1 z 2 ) + 1 − α t z 1 x_t =\sqrt{a_t}(\sqrt{a_{t-1}}x_{t-2}+\sqrt{1-\alpha_{t-1}}z_2)+\sqrt{1-\alpha_t}z_1 xt=at (at1 xt2+1αt1 z2)+1αt z1 1.3
其中 Z1、z2 均服从标准正态分布,但是由于其前面均乘了系数改变了 σ \sigma σ,因此分别服从于 N ( 0 , a t ( 1 − α t − 1 ) ) \mathcal{N}(0, a_t(1-\alpha_{t-1}) ) N(0,at(1αt1)) N ( 0 , 1 − α t ) \mathcal{N}(0, 1-\alpha_t ) N(0,1αt),根据 N ( 0 , σ 1 2 I ) + N ( 0 , σ 2 2 I ) ∼ N ( 0 , ( σ 1 2 + σ 2 2 ) I ) \mathcal{N}(0,\sigma_1^2\mathbf{I})+\mathcal{N}(0,\sigma_2^2\mathbf{I})\sim\mathcal{N}(0,(\sigma_1^2+\sigma_2^2)\mathbf{I}) N(0,σ12I)+N(0,σ22I)N(0,(σ12+σ22)I),可以得到
a t a t − 1 x t − 2 + a t − a t a t + 1 − a t z t = a t a t − 1 x t − 2 + 1 − α t α t − 1 z t \sqrt{a_ta_{t-1}}x_{t-2}+ \sqrt{a_t-a_ta_t+1-a_t} {z}_t=\sqrt{a_ta_{t-1}}x_{t-2}+\sqrt{1-\alpha_t\alpha_{t-1}}{z}_t atat1 xt2+atatat+1at zt=atat1 xt2+1αtαt1 zt 1.4
同理可得
a t a t − 1 . . . a 1 x 0 + 1 − a t a t − 2 . . . a 1 z t \sqrt{a_ta_{t-1}...a_1}x_0+\sqrt{1- a_ta_{t-2}...a_1}{z}_t atat1...a1 x0+1atat2...a1 zt
x t = α ‾ t x 0 + 1 − α ‾ t z t x_t=\sqrt{\overline{\alpha}_t}x_0+\sqrt{1-\overline{\alpha}_t}{z}_t xt=αt x0+1αt zt 1.5 其中 z t ∼ N ( 0 , I ) z_t\sim\mathcal{N}(0,\mathbf{I}) ztN(0,I)A

  • ∇ θ \nabla_{\theta} θ表示根据损失求解梯度;

反向阶段

在这里插入图片描述

  1. 从标准正态分布中采样一个 x T x_T xT
  2. 进行 3、4 步并循环 T 个时间步
  3. 再次采样一个噪声 z z z
  4. 通过 x t x_t xt推导 x t − 1 x_{t-1} xt1: x t − 1 = 1 α t ( x t − 1 − α t 1 − α ˉ t ϵ θ ( x t , t ) ) + σ t z \mathbf{x}_{t-1}=\frac1{\sqrt{\alpha_t}}\left(\mathbf{x}_t-\frac{1-\alpha_t}{\sqrt{1-\bar{\alpha}_t}}\boldsymbol{\epsilon}_\theta(\mathbf{x}_t,t)\right)+\sigma_t\mathbf{z} xt1=αt 1(xt1αˉt 1αtϵθ(xt,t))+σtz

在这里插入图片描述

tip
这里加上 σ t z \sigma_tz σtz的噪音是为了提高模型生成的稳定性,如果去掉会导致模型生成的图片的能力失效,可以理解为如果不添加一点随机性,那么模型的输出将变得固定。

tip
注解 贝叶斯公式:,其中 P(Bk)是先验概率,而 P(Bk|A)是当 A 发生后的 P(Bk)称为后验概率,也就是通过旧事件推导新事件

P ( B K ∣ A ) = P ( B K . A ) P ( A ) = P ( B K ) P ( A ∣ B K ) P ( B 1 ) P ( A ∣ B 1 ) + + . . . . . . + P ( B i ) P ( A ∣ B i ) = 乘法公式 全概率公式 P(B_K\mid A)=\frac{P(B_K.A)}{\mathrm{P(A)}}=\frac{P(B_K)P(\mathrm{A}|B_K)}{P(B_1)P(A\mid B_1)++......+P(B_i)P(A\mid B_i)}=\frac{\text{乘法公式}}{\text{全概率公式}} P(BKA)=P(A)P(BK.A)=P(B1)P(AB1)++......+P(Bi)P(ABi)P(BK)P(ABK)=全概率公式乘法公式

因为在生成阶段,我们只有采样出的噪声 x T x_T xT,通过当前时刻去预测上一时刻的分布 x t − 1 x_{t-1} xt1,根据贝叶斯公式可知,根据之前的状态我们可以推导出下一时间的状态,但是此处需要根据当前时刻的结果去逆推上一时刻的状态,也是可以通过贝叶斯公式进行反推。也就是最终得到了

x t − 1 = 1 α t ( x t − 1 − α t 1 − α ˉ t ϵ θ ( x t , t ) ) \mathbf{x}_{t-1}=\frac1{\sqrt{\alpha_t}}\left(\mathbf{x}_t-\frac{1-\alpha_t}{\sqrt{1-\bar{\alpha}_t}}\boldsymbol{\epsilon}_\theta(\mathbf{x}_t,t)\right) xt1=αt 1(xt1αˉt 1αtϵθ(xt,t)) 2.1 (其中的 ϵ θ ( x t , t ) \boldsymbol{\epsilon}_\theta(\mathbf{x}_t,t) ϵθ(xt,t)就是扩散时模型预测噪音的阶段等价于 ϵ θ ( α ˉ t x 0 + 1 − α ˉ t ϵ , t ) \boldsymbol{\epsilon}_\theta(\sqrt{\bar{\alpha}_t}\mathbf{x}_0+\sqrt{1-\bar{\alpha}_t}\boldsymbol{\epsilon},t) ϵθ(αˉt x0+1αˉt ϵ,t)

该公式的推导过程如下

tip
已知 x t x_t xt求解 x t − 1 x_{t-1} xt1,相当于已知 x t x_t xt的概率,求解 x t − 1 x_{t-1} xt1的条件概率,也就是 q ( X t − 1 ∣ X t ) q(X_{t-1}|X_t) q(Xt1Xt),根据贝叶斯公式可知
q ( X t − 1 ∣ X t ) = q ( X t , X t − 1 ) q ( X t ) = q ( X t ∣ X t − 1 ) q ( X t − 1 ) q ( X t ) q(X_{t-1}|X_t)=\frac{q(X_t,X_{t-1})}{q(X_t)}=\frac{q(X_t|X_{t-1})q(X_{t-1})}{q(X_t)} q(Xt1Xt)=q(Xt)q(Xt,Xt1)=q(Xt)q(XtXt1)q(Xt1)2.2
给定 X t − 1 的条件下的 X t X_{t-1}的条件下的X_t Xt1的条件下的Xt: $X_t=\sqrt{\alpha_t}\cdot X_{t-1}+\sqrt{1-\alpha_t}\cdot\epsilon $ ϵ ∼ N ( 0 , I ) \epsilon \sim N(0,I) ϵN(0,I)(补充:正态分布加上某值等于均值加上某值,乘以某值等于方差乘以某值)
均值:0+ α t ⋅ X t − 1 \sqrt{\alpha_t}\cdot X_{t-1} αt Xt1
方差:I* 1 − α t \sqrt{1-\alpha_t} 1αt
q ( X t ∣ X t − 1 ) ∼ N ( α t ∗ X t − 1 , ( 1 − α t ) ∗ I ) q(X_{t} |X_{t-1})\quad\sim N(\sqrt{\alpha_{t}} *X_{t-1} ,(1-\alpha_{t} )*I) q(XtXt1)N(αt Xt1,(1αt)I) 2.3
X 0 一次扩散到 X t X_0一次扩散到X_t X0一次扩散到Xt X t = α t ‾ ∗ X 0 + 1 − α t ‾ ∗ Z Z ∼ N ( α t ∗ X 0 , ( 1 − α t ‾ ) ∗ I ) X_{t}=\sqrt{\overline{\alpha_{t}}} * X_{0} + \sqrt{1-\overline{\alpha_{t}}} * Z\quad Z\sim N(\sqrt{\alpha_{t}} * X_{0},(1-\overline{\alpha_{t}} )*I) Xt=αt X0+1αt ZZN(αt X0,(1αt)I) 2.4
X t − 1 扩散到 X t X_{t-1}扩散到X_{t} Xt1扩散到Xt : X t = α t ∗ X t − 1 + 1 − α t ∗ Z t Z ∼ N ( α t ∗ X t − 1 , ( 1 − α t ) ∗ I ) X_t=\sqrt{\alpha_t}*X_{t-1}+\sqrt{1-\alpha_t}*Z_t\quad Z\sim N(\sqrt{\alpha_t}*X_{t-1},(1-\alpha_t)*I) Xt=αt Xt1+1αt ZtZN(αt Xt1,(1αt)I) 2.5
因为正态分布概率密度为 1 2 π σ 2 e − ( x − μ ) 2 2 σ 2 \frac1{\sqrt{2\pi\sigma^2}}e^{-\frac{(x-\mu)^2}{2\sigma^2}} 2πσ2 1e2σ2(xμ)2,由于方差是已知的,因此 1 2 π σ 2 \frac1{\sqrt{2\pi\sigma^2}} 2πσ2 1为常数项,故 N ( μ , σ 2 ) ∝ e ( 1 2 ∗ ( x − μ ) 2 σ 2 ) N(\mu,\sigma^2)\propto e^{(\frac12*\frac{(x-\mu)^2}{\sigma^2})} N(μ,σ2)e(21σ2(xμ)2).将 2.3,2.4,2.5 带入到 2.2 中
q ( X t ∣ X t − 1 ) q ( X t − 1 ) q ( X t ) ∝ e x p { − 1 2 ( ∗ ( x t − α t ∗ X t − 1 ) 2 1 − α t + ( x t − 1 − α t − 1 ‾ ∗ X 0 ) 2 1 − α t − 1 − ( x t − α t ‾ ∗ X 0 ) 2 1 − α t ‾ ) } \frac{q(X_t|X_{t-1})q(X_{t-1})}{q(X_t)}\propto exp\{-\frac12(*\frac{(x_t-\sqrt{\alpha_t}*X_{t-1})^2}{1-\alpha_t}+\frac{(x_{t-1}-\sqrt{\overline{\alpha_{t-1}}}*X_0)^2}{1-\alpha_{t-1}}-\frac{(x_t-\sqrt{\overline{\alpha_t}}*X_0)^2}{1-\overline{\alpha_t}})\} q(Xt)q(XtXt1)q(Xt1)exp{21(1αt(xtαt Xt1)2+1αt1(xt1αt1 X0)21αt(xtαt X0)2)}2.6
我们需要通过 X T X_T XT求得 X t − 1 X_t-1 Xt1,因此最后的式子只能出现 X_T

= exp ⁡ { − 1 2 [ ( − 2 α t x t x t − 1 + α t x t − 1 2 ) 1 − α t + ( x t − 1 2 − 2 α t − 1 x t − 1 x 0 ) 1 − α ˉ t − 1 + C ( x t , x 0 ) ] } =\exp\left\{-\frac12\left[\frac{(-2\sqrt{\alpha_t}\boldsymbol{x}_t\boldsymbol{x}_{t-1}+\alpha_t\boldsymbol{x}_{t-1}^2)}{1-\alpha_t}+\frac{(\boldsymbol{x}_{t-1}^2-2\sqrt{\alpha_{t-1}}\boldsymbol{x}_{t-1}\boldsymbol{x}_0)}{1-\bar{\alpha}_{t-1}}+C(\boldsymbol{x}_t,\boldsymbol{x}_0)\right]\right\} =exp{21[1αt(2αt xtxt1+αtxt12)+1αˉt1(xt122αt1 xt1x0)+C(xt,x0)]}

∝ exp ⁡ { − 1 2 [ − 2 α t x t x t − 1 1 − α t + α t x t − 1 2 1 − α t + x t − 1 2 1 − α ˉ t − 1 − 2 α ˉ t − 1 x t − 1 x 0 1 − α ˉ t − 1 ] } = exp ⁡ { − 1 2 [ ( α t 1 − α t + 1 1 − α ˉ t − 1 ) x t − 1 2 − 2 ( α t x t 1 − α t + α ˉ t − 1 x 0 1 − α ˉ t − 1 ) x t − 1 ] } = exp ⁡ { − 1 2 [ α t ( 1 − α ˉ t − 1 ) + 1 − α t ( 1 − α t ) ( 1 − α ˉ t − 1 ) x t − 1 2 − 2 ( α t x t 1 − α t + α ˉ t − 1 x 0 1 − α ˉ t − 1 ) x t − 1 ] } = exp ⁡ { − 1 2 [ α t − α ˉ t + 1 − α t ( 1 − α t ) ( 1 − α ˉ t − 1 ) x t − 1 2 − 2 ( α t x t 1 − α t + α ˉ t − 1 x 0 1 − α ˉ t − 1 ) x t − 1 ] } = exp ⁡ { − 1 2 [ 1 − α ˉ t ( 1 − α t ) ( 1 − α ˉ t − 1 ) x t − 1 2 − 2 ( α t x t 1 − α t + α ˉ t − 1 x 0 1 − α ˉ t − 1 ) x t − 1 ] } = exp ⁡ { − 1 2 ( 1 − α ˉ t ( 1 − α t ) ( 1 − α ˉ t − 1 ) ) [ x t − 1 2 − 2 ( α t x t 1 − α t + α t − 1 x 0 1 − α ˉ t − 1 ) 1 − α ˉ t ( 1 − α t ) ( 1 − α ˉ t − 1 ) x t − 1 ] } = exp ⁡ { − 1 2 ( 1 − α ˉ t ( 1 − α t ) ( 1 − α ˉ t − 1 ) ) [ x t − 1 2 − 2 ( α t x t 1 − α t + α ˉ t − 1 x 0 1 − α ˉ t − 1 ) ( 1 − α t ) ( 1 − α ˉ t − 1 ) 1 − α ˉ t x t − 1 ] } = exp ⁡ { − 1 2 ( 1 ( 1 − α t ) ( 1 − α ˉ t − 1 ) 1 − α ˉ t ) [ x t − 1 2 − 2 α t ( 1 − α ˉ t − 1 ) x t + α ˉ t − 1 ( 1 − α t ) x 0 1 − α ˉ t x t − 1 ] } \begin{aligned} &\propto\exp\left\{-\frac{1}{2}\left[-\frac{2\sqrt{\alpha_{t}}\boldsymbol{x}_{t}\boldsymbol{x}_{t-1}}{1-\alpha_{t}}+\frac{\alpha_{t}\boldsymbol{x}_{t-1}^{2}}{1-\alpha_{t}}+\frac{\boldsymbol{x}_{t-1}^{2}}{1-\bar{\alpha}_{t-1}}-\frac{2\sqrt{\bar{\alpha}_{t-1}}\boldsymbol{x}_{t-1}\boldsymbol{x}_{0}}{1-\bar{\alpha}_{t-1}}\right]\right\} \\ &=\exp\left\{-\frac{1}{2}\left[(\frac{\alpha_{t}}{1-\alpha_{t}}+\frac{1}{1-\bar{\alpha}_{t-1}})x_{t-1}^{2}-2\left(\frac{\sqrt{\alpha_{t}}x_{t}}{1-\alpha_{t}}+\frac{\sqrt{\bar{\alpha}_{t-1}}x_{0}}{1-\bar{\alpha}_{t-1}}\right)x_{t-1}\right]\right\} \\ &=\exp\left\{-\frac12\left[\frac{\alpha_t(1-\bar{\alpha}_{t-1})+1-\alpha_t}{(1-\alpha_t)(1-\bar{\alpha}_{t-1})}x_{t-1}^2-2\left(\frac{\sqrt{\alpha_t}\boldsymbol{x}_t}{1-\alpha_t}+\frac{\sqrt{\bar{\alpha}_{t-1}}\boldsymbol{x}_0}{1-\bar{\alpha}_{t-1}}\right)\boldsymbol{x}_{t-1}\right]\right\} \\ &=\exp\left\{-\frac12\left[\frac{\alpha_t-\bar{\alpha}_t+1-\alpha_t}{(1-\alpha_t)(1-\bar{\alpha}_{t-1})}\boldsymbol{x}_{t-1}^2-2\left(\frac{\sqrt{\alpha_t}\boldsymbol{x}_t}{1-\alpha_t}+\frac{\sqrt{\bar{\alpha}_{t-1}}\boldsymbol{x}_0}{1-\bar{\alpha}_{t-1}}\right)\boldsymbol{x}_{t-1}\right]\right\} \\ &=\exp\left\{-\frac12\left[\frac{1-\bar{\alpha}_t}{(1-\alpha_t)(1-\bar{\alpha}_{t-1})}\boldsymbol{x}_{t-1}^2-2\left(\frac{\sqrt{\alpha_t}\boldsymbol{x}_t}{1-\alpha_t}+\frac{\sqrt{\bar{\alpha}_{t-1}}\boldsymbol{x}_0}{1-\bar{\alpha}_{t-1}}\right)\boldsymbol{x}_{t-1}\right]\right\} \\ &=\exp\left\{-\frac{1}{2}\left(\frac{1-\bar{\alpha}_t}{(1-\alpha_t)(1-\bar{\alpha}_{t-1})}\right)\left[x_{t-1}^2-2\frac{\left(\frac{\sqrt{\alpha_t}\boldsymbol{x}_t}{1-\alpha_t}+\frac{\sqrt{\alpha_{t-1}}\boldsymbol{x}_0}{1-\bar{\alpha}_{t-1}}\right)}{\frac{1-\bar{\alpha}_t}{(1-\alpha_t)(1-\bar{\alpha}_{t-1})}}x_{t-1}\right]\right\} \\ &=\exp\left\{-\frac12\left(\frac{1-\bar{\alpha}_t}{(1-\alpha_t)(1-\bar{\alpha}_{t-1})}\right)\left[x_{t-1}^2-2\frac{\left(\frac{\sqrt{\alpha_t}\boldsymbol{x}_t}{1-\alpha_t}+\frac{\sqrt{\bar{\alpha}_{t-1}}\boldsymbol{x}_0}{1-\bar{\alpha}_{t-1}}\right)(1-\alpha_t)(1-\bar{\alpha}_{t-1})}{1-\bar{\alpha}_t}x_{t-1}\right]\right\} \\ &=\exp\left\{-\frac12\left(\frac1{\frac{(1-\alpha_t)(1-\bar{\alpha}_{t-1})}{1-\bar{\alpha}_t}}\right)\left[x_{t-1}^2-2\frac{\sqrt{\alpha_t}(1-\bar{\alpha}_{t-1})x_t+\sqrt{\bar{\alpha}_{t-1}}(1-\alpha_t)x_0}{1-\bar{\alpha}_t}x_{t-1}\right]\right\} \end{aligned} exp{21[1αt2αt xtxt1+1αtαtxt12+1αˉt1xt121αˉt12αˉt1 xt1x0]}=exp{21[(1αtαt+1αˉt11)xt122(1αtαt xt+1αˉt1αˉt1 x0)xt1]}=exp{21[(1αt)(1αˉt1)αt(1αˉt1)+1αtxt122(1αtαt xt+1αˉt1αˉt1 x0)xt1]}=exp{21[(1αt)(1αˉt1)αtαˉt+1αtxt122(1αtαt xt+1αˉt1αˉt1 x0)xt1]}=exp{21[(1αt)(1αˉt1)1αˉtxt122(1αtαt xt+1αˉt1αˉt1 x0)xt1]}=exp 21((1αt)(1αˉt1)1αˉt) xt122(1αt)(1αˉt1)1αˉt(1αtαt xt+1αˉt1αt1 x0)xt1 =exp 21((1αt)(1αˉt1)1αˉt) xt1221αˉt(1αtαt xt+1αˉt1αˉt1 x0)(1αt)(1αˉt1)xt1 =exp{21(1αˉt(1αt)(1αˉt1)1)[xt1221αˉtαt (1αˉt1)xt+αˉt1 (1αt)x0xt1]}

∝ N ( x t − 1 ; α t ( 1 − α ˉ t − 1 ) x t + α ˉ t − 1 ( 1 − α t ) x 0 1 − α ˉ t ⏟ μ q ( x t , x 0 ) , ( 1 − α t ) ( 1 − α ˉ t − 1 ) 1 − α ˉ t I ) ⏟ Σ q ( ι ) \propto\mathcal{N}(x_{t-1};\underbrace{\frac{\sqrt{\alpha_{t}}(1-\bar{\alpha}_{t-1})x_{t}+\sqrt{\bar{\alpha}_{t-1}}(1-\alpha_{t})x_{0}}{1-\bar{\alpha}_{t}}}_{\mu_{q}(\boldsymbol{x}_{t},\boldsymbol{x}_{0})},\underbrace{\frac{(1-\alpha_{t})(1-\bar{\alpha}_{t-1})}{1-\bar{\alpha}_{t}}\mathbf{I})}_{\boldsymbol{\Sigma}_{q}(\iota)} N(xt1;μq(xt,x0) 1αˉtαt (1αˉt1)xt+αˉt1 (1αt)x0,Σq(ι) 1αˉt(1αt)(1αˉt1)I)2.7
由 $x_t=\sqrt{\bar{\alpha}_t}x_0+\sqrt{1-\bar{\alpha}_t}\varepsilon $可以推出 x 0 = x t − 1 − α ˉ t ε α ˉ t x_0=\frac{x_t-\sqrt{1-\bar{\alpha}_t}\varepsilon}{\sqrt{\bar{\alpha}_t}} x0=αˉt xt1αˉt ε 2.8
将 2.8 带入到 2.7

μ q ( x t , x 0 ) = α t ( 1 − α ˉ t − 1 ) x t + α ˉ t − 1 ( 1 − α t ) x 0 1 − α ˉ t = α t ( 1 − α ˉ t − 1 ) x t + α ˉ t − 1 ( 1 − α t ) x t − 1 − α ˉ t ϵ 0 α ˉ t 1 − α ˉ t = α t ( 1 − α ˉ t − 1 ) x t + ( 1 − α t ) x t − 1 − α ˉ t ϵ 0 α t 1 − α ˉ t = α t ( 1 − α ˉ t − 1 ) x t 1 − α ˉ t + ( 1 − α t ) x t ( 1 − α ˉ t ) α t − ( 1 − α t ) 1 − α ˉ t ϵ 0 ( 1 − α ˉ t ) α t = ( α t ( 1 − α ˉ t − 1 ) 1 − α ˉ t + 1 − α t ( 1 − α ˉ t ) α t ) x t − ( 1 − α t ) 1 − α ˉ t ( 1 − α ˉ t ) α t ϵ θ = ( α t ( 1 − α ˉ t − 1 ) ( 1 − α ˉ t ) α t + 1 − α t ( 1 − α ˉ t ) α t ) x t − 1 − α t 1 − α ˉ t α t ϵ θ = α t − α ˉ t + 1 − α t ( 1 − α ˉ t ) α t x t − 1 − α t 1 − α ˉ t α t ϵ θ = 1 − α ˉ t ( 1 − α ˉ t ) α t x t − 1 − α t 1 − α ˉ t α t ϵ θ = 1 α t x t − 1 − α t 1 − α ˉ t α t ϵ θ = 1 α t ∗ ( X t − β t 1 − α t ‾ ∗ ϵ θ ) \begin{aligned} \mu_{q}(x_{t},x_{0})& =\frac{\sqrt{\alpha_{t}}(1-\bar{\alpha}_{t-1})x_{t}+\sqrt{\bar{\alpha}_{t-1}}(1-\alpha_{t})x_{0}}{1-\bar{\alpha}_{t}} \\ &=\frac{\sqrt{\alpha_t}(1-\bar{\alpha}_{t-1})x_t+\sqrt{\bar{\alpha}_{t-1}}(1-\alpha_t)\frac{\boldsymbol{x}_t-\sqrt{1-\bar{\alpha}_t}\boldsymbol{\epsilon}_0}{\sqrt{\bar{\alpha}_t}}}{1-\bar{\alpha}_t} \\ &=\frac{\sqrt{\alpha_t}(1-\bar{\alpha}_{t-1})\boldsymbol{x}_t+(1-\alpha_t)\frac{\boldsymbol{x}_t-\sqrt{1-\bar{\alpha}_t}\boldsymbol{\epsilon}_0}{\sqrt{\alpha_t}}}{1-\bar{\alpha}_t} \\ &=\frac{\sqrt{\alpha_t}(1-\bar{\alpha}_{t-1})x_t}{1-\bar{\alpha}_t}+\frac{(1-\alpha_t)x_t}{(1-\bar{\alpha}_t)\sqrt{\alpha_t}}-\frac{(1-\alpha_t)\sqrt{1-\bar{\alpha}_t}\epsilon_0}{(1-\bar{\alpha}_t)\sqrt{\alpha_t}} \\ &=\left(\frac{\sqrt{\alpha_t}(1-\bar{\alpha}_{t-1})}{1-\bar{\alpha}_t}+\frac{1-\alpha_t}{(1-\bar{\alpha}_t)\sqrt{\alpha_t}}\right)\boldsymbol{x}_t-\frac{(1-\alpha_t)\sqrt{1-\bar{\alpha}_t}}{(1-\bar{\alpha}_t)\sqrt{\alpha_t}}\boldsymbol{\epsilon}_\theta \\ &=\left(\frac{\alpha_t(1-\bar{\alpha}_{t-1})}{(1-\bar{\alpha}_t)\sqrt{\alpha_t}}+\frac{1-\alpha_t}{(1-\bar{\alpha}_t)\sqrt{\alpha_t}}\right)\boldsymbol{x}_t-\frac{1-\alpha_t}{\sqrt{1-\bar{\alpha}_t}\sqrt{\alpha_t}}\boldsymbol{\epsilon}_\theta \\ &=\frac{\alpha_{t}-\bar{\alpha}_{t}+1-\alpha_{t}}{(1-\bar{\alpha}_{t})\sqrt{\alpha_{t}}}x_{t}-\frac{1-\alpha_{t}}{\sqrt{1-\bar{\alpha}_{t}}\sqrt{\alpha_{t}}}\epsilon_\theta \\ &=\frac{1-\bar{\alpha}_{t}}{(1-\bar{\alpha}_{t})\sqrt{\alpha_{t}}}x_{t}-\frac{1-\alpha_{t}}{\sqrt{1-\bar{\alpha}_{t}}\sqrt{\alpha_{t}}}\epsilon_\theta \\ &=\frac1{\sqrt{\alpha_t}}\boldsymbol{x}_t-\frac{1-\alpha_t}{\sqrt{1-\bar{\alpha}_t}\sqrt{\alpha_t}}\boldsymbol{\epsilon}_\theta \\ &=\frac1{\sqrt{\alpha_t}} *(X_t - \frac{\beta_t}{\sqrt{1-\overline{\alpha_t}}} *{\epsilon}_\theta) \end{aligned} μq(xt,x0)=1αˉtαt (1αˉt1)xt+αˉt1 (1αt)x0=1αˉtαt (1αˉt1)xt+αˉt1 (1αt)αˉt xt1αˉt ϵ0=1αˉtαt (1αˉt1)xt+(1αt)αt xt1αˉt ϵ0=1αˉtαt (1αˉt1)xt+(1αˉt)αt (1αt)xt(1αˉt)αt (1αt)1αˉt ϵ0=(1αˉtαt (1αˉt1)+(1αˉt)αt 1αt)xt(1αˉt)αt (1αt)1αˉt ϵθ=((1αˉt)αt αt(1αˉt1)+(1αˉt)αt 1αt)xt1αˉt αt 1αtϵθ=(1αˉt)αt αtαˉt+1αtxt1αˉt αt 1αtϵθ=(1αˉt)αt 1αˉtxt1αˉt αt 1αtϵθ=αt 1xt1αˉt αt 1αtϵθ=αt 1(Xt1αt βtϵθ)

最终得到结论 q ( X t − 1 ∣ X t ) ∼ N ( 1 α t ( X t − β t 1 − α t ‾ ∗ ϵ θ , 1 − α t − 1 ‾ 1 − α t ‾ ∗ β t ) q(X_{t-1} |X_t )\sim N(\frac{1}{\sqrt{\alpha_t}} (X_t -\frac{\beta_t}{\sqrt{1-\overline{\alpha_t}}} *{\epsilon}_\theta,\quad\frac{1-\overline{\alpha_{t-1}}}{1-\overline{\alpha_t}} *\beta_t ) q(Xt1Xt)N(αt 1(Xt1αt βtϵθ,1αt1αt1βt) ** **其中 ϵ θ = M o d e l ( X t , t ) ϵ ∼ N ( 0 , I ) \epsilon_\theta =Model(X_t,t)\quad \epsilon\sim N(0,I) ϵθ=Model(Xt,t)ϵN(0,I) 2.9
数据的生成过程中,均值给定的是一个确定的生成方向,方差和噪声给定的是一个不确定的方向。
因此最后得到 x t − 1 = 1 α t ( x t − 1 − α t 1 − α ˉ t ϵ θ ( x t , t ) ) \mathbf{x}_{t-1}=\frac1{\sqrt{\alpha_t}}\left(\mathbf{x}_t-\frac{1-\alpha_t}{\sqrt{1-\bar{\alpha}_t}}\boldsymbol{\epsilon}_\theta(\mathbf{x}_t,t)\right) xt1=αt 1(xt1αˉt 1αtϵθ(xt,t))

Unet

源码解析

参考

  1. 李宏毅老师 ppt
  2. 迪哥讲解
  3. Denoising Diffusion Probabilistic Models
  4. What are Diffusion Models?
  5. https://zhuanlan.zhihu.com/p/612730273

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

三种tcp并发服务器实现程序

都需先进行tcp连接 1、多进程并发 2、多线程并发 3、IO多路复用并发 (1)select (2)epoll

SAP ERP与长城汽车EDI业务集成案例(SAP CPI平台)

一、项目背景 某智能座舱公司是国内领先的智能座舱领域科技公司,致力于成为智能网联行业变革的领导者和推动者,聚焦整车域控制器产品、智能网联软件产品和运营服务产品; 已建成首条先进的数智化域控制器生产线,为客户提供最优…

大刀阔斧改革之后,阅文距离“东方迪士尼”更近了吗?

当前,网文IP的确是“富矿”。中国社会科学院文学研究所发布的《2023中国网络文学发展研究报告》显示,截至2023年底,网络文学IP市场规模2605亿元,同比增长近百亿元。 近日,网文产业中的头部企业阅文集团也披露数据称&a…

Android U WMShell动画调用堆栈

本文主要简单介绍WMShell动画调用堆栈 代码环境:repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-14.0.0_r7 Systemserver侧 TAG: at com.android.server.wm.Transition.onTransactionReady(Transition.java:1575) TA…

爆改YOLOv8|利用分层特征融合策略MSBlock改进yolov8,暴力涨点

1,本文介绍 MSBlock 是一种分层特征融合策略,用于改进卷积神经网络中的特征融合效果。它通过分层次地融合不同尺度的特征图来提高网络的表达能力和性能。MSBlock 采用多尺度特征融合的方法,确保网络能够有效地捕捉不同层次和尺度的信息&…

Neo4j导入csv数据,并创建节点

Neo4j 是一种图数据库,特别适合管理和分析复杂的关系数据。 数据来源:http://openkg.cn/ 导入到 Neo4j 的合适场景: 需要在物种分类中查找层级关系(如物种的科、属等)。 需要进行关系查询和图结构的分析。 想在分类树…

【Axure高保真原型】输入框控制多选下拉列表选项

今天和大家分享输入框控制多选下拉列表选项选项的原型模板,效果包括: 点击下拉框可以弹出选项列表,点击可以切换选中或取消选中 根据选中项在外框出自动生成标签,可以自适应调整高度 下拉列表的选项由左侧多行输入框里的内容控制…

数据结构—— 再探二叉树

1. TOP-K问题 TOP-K问题:求数据结合中前K个最大或者最小的数据 比如:专业前10名、世界500强、富豪榜、游戏中前100的活跃玩家等 思路: 1. 用数据集合中前K个数据来建堆: …

WEB服务器-Nginx源码安装及相关配置

一、web服务的常用种类 Apache HTTP Server 简介:Apache是一款广泛使用的Web服务器软件,支持多种操作系统,包括Linux。​​​​​​​特点: 支持多个虚拟主机。 模块化架构,可以根据需要加载不同的模块。 强大的安全…

多态(虚构的整体,具体的个体)(多态的基本概念/多态的原理剖析/纯虚函数和抽象类/虚析构和纯虚析构)

多态的基本概念 #define _CRT_SECURE_NO_WARNINGS #include<iostream> using namespace std; // 多态的基本概念 // 多态分为静态多态和动态多态 // 静态多态&#xff1a; 函数重载还运算符重载属于静态多态&#xff0c;服用函数名 // 动态多态&#xff1a; 派生派和虚函…

VUE使用websocket

在之前搭建好的项目的基础上新版security demo&#xff08;二&#xff09;前端-CSDN博客 目录 一、代码改造 1、后端改造 2、VUE使用websocket 3、测试 二、按用户推送 1、完整代码如下 1.1、前端 1.2、后端&#xff1a; 2、测试 一、代码改造 1、后端改造 &#x…

逆波兰表达式

简介 介绍逆波兰表达式之前&#xff0c;先介绍一下运算种类。 中缀运算与后缀运算 中缀运算是一种常用的算术和逻辑公式表示方法&#xff0c;其中操作符位于两个运算数之间。例如&#xff0c;在表达式 “3 2” 中&#xff0c;加号&#xff08;&#xff09;是操作符&#xf…

算法设计:实验一分治与递归

【实验目的】 深入理解分治法的算法思想&#xff0c;应用分治法解决实际的算法问题。 【实验内容与要求】 设有n2k个运动员要进行网球循环赛。现要设计一个满足以下要求的比赛日程表&#xff1a; 1.每个选手必须与其他n-1个选手各赛一次&#xff1b;2.每个选手一天只能赛一…

Mysql 集群技术

目录 一 Mysql 在服务器中的部署方法 1.1 在Linux下部署mysql 1.1.1 安装依赖性并解压源码包&#xff0c;源码编译安装mysql&#xff1a; 1.1.2 部署mysql 二 mysql的组从复制 2.1 配置mastesr和salve 测试结果 2.2 当有数据时添加slave2 2.3 延迟复制 2.4 慢查询日志…

【C++ | 设计模式】简单工厂模式的详解与实现

1.简单工厂模式概述 简单工厂模式&#xff08;Simple Factory Pattern&#xff09;是一种创建型设计模式&#xff0c;它定义了一个工厂类&#xff0c;由这个类根据提供的参数决定创建哪种具体的产品对象。简单工厂模式将对象的创建逻辑集中到一个工厂类中&#xff0c;从而将对…

Python-进阶-Excel基本操作

文章目录 Excel 基本操作1. 概述2. 写入2.1 使用 xlwt2.2 使用 XlsxWriter 3. 读取4. 修改 Excel 基本操作 1. 概述 在数据处理方面&#xff0c;Python 一直扮演着重要的角色&#xff0c;对于 Excel 操作&#xff0c;它有着完整且成熟的第三方库&#xff0c;使用也较为简单。…

视频结构化从入门到精通——认识视频结构化

认识视频结构化 1. 视频结构化与非结构化 1. 非结构化数据 非结构化数据指的是未经处理、以原始形式存在的数据。这类数据是直接采集、记录的&#xff0c;包含了音频、视频等多维信息&#xff0c;且没有任何标签、注释或分类来表示其中的内容。非结构化数据需要进一步处理和…

AI视频平台精选:国内外对比与推荐

原文&#xff1a;AI视频平台精选&#xff1a;国内外对比与推荐 国内外有多个平台可以生成AI视频&#xff0c;这些平台各有其独特的优点和缺点。以下是对一些主要平台的详细介绍&#xff0c;包括它们的优缺点&#xff0c;以及针对个人和自媒体用户的推荐。 国内平台 1. 快手可…

Android 架构模式之 MVVM

Android 架构 Android 架构模式之 MVCAndroid 架构模式之 MVPAndroid 架构模式之 MVVM 目录 Android 架构架构设计的目的对 MVVM 的理解代码ModelViewViewModel Android 中 MVVM 的问题试吃个小李子BeanModelViewViewModel效果展示 大家好&#xff01; 作为 Android 程序猿&a…

代码随想录算法训练营第13天 |二叉树的学习

目录 二叉树 理论基础 二叉树的分类 1. 满二叉树 (Full Binary Tree) 2. 完全二叉树 (Complete Binary Tree) 3. 平衡二叉树 (Balanced Binary Tree) 5. 二叉搜索树 (Binary Search Tree, BST) 二叉树的存储 1. 链式存储 (Linked Representation) 2. 顺序存储 (Sequent…