diffusion model(扩散模型)DDPM解析

news2024/9/19 15:02:36

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.coloradmin.cn/o/2082737.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaWeb实战教程:如何打造旅行社网站系统,提升在线服务能力?

✍✍计算机毕业编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java、…

rockyliunx 救援模式下禁用docker

目录地址 /usr/lib/systemd/system/docker.service 进入系统界面: 选择系统 按E 按e出现 如下界面,找到 quite 后面添加 init/bin/bash 按 ctrl x 保存 后,到如下界面 加载文件系统为读写 输入命令 mount -o remount, rw / 修改docer.s…

P7910[CSP-J2021]插入排序

题目描述 插入排序是一种非常常见且简单的排序算法。小 Z 是一名大一的新生,今天 H 老师刚刚在上课的时候讲了插入排序算法。 假设比较两个元素的时间为O(1),则插入排序可以以 O(n^2)的时间复杂度完成长度为 n 的数组的排序。不妨假设这 n 个数字分别存储…

win11找环境变量

第一步:win+i 第二步: 第三步: 第四步: 第五步:

从屎山代码到RTOS,老工程师的架构进化史

很多老铁和我反馈,说很喜欢看我写的内容,不管是朋友圈还是文章,能在字里行间,受益匪浅。 想想也很久没时间没写长文了,既然大家喜欢看,我尽量抽时间多写。 长文预警,全文5800多字,…

云动态摘要 2024-08-28

给您带来云厂商的最新动态,最新产品资讯和最新优惠更新。 最新优惠与活动 [免费领用]电商出海AIGC福利包活动 腾讯云 2024-08-20 腾讯云智能助力中小电商企业用户出海,帮助企业用户轻松打造全场景AIGC应用。 注册阿里云免费领云服务器_云服务器ECS_阿…

【达梦数据库】表空间重命名新建用户下的模式

目录 背景需求解决方法 背景 达梦数据库中,一个用户对应一个表空间,用户会创建默认模式0。 在使用过程中,客户需要新建模式1,并且模式1和原来的表空间对应。 需求 1、表空间如何重命名 2、如何新建用户下的模式1 解决方法 表…

Linux设备树初步

一.设备树的概念 设备树:是一种描述硬件资源的数据结构,不是将设备的每个细节都硬编码到操作系统中,而是可以在引导时传递给操作系统的数据结构中描述硬件的许多方面。 设备树是描述一个硬件平台的硬件资源。这个“设备树”可以被bootloade…

综合能源充电站有序充电策略

随着电动汽车的发展,充电用户越来越多,同时也出现了一系列问题,尤其是无序充电带来的充电成本高、充电排队时间长和电网负荷安全影响等问题,制约着电动汽车和充电设施的发展。为解决此类问题,文章研究和设计有序充电策…

Kevin‘s notes about Qt---Episode 4 多次点击按钮反复执行机械臂动作

原先版本 SDK 1.2.1 - 2020-04-02 HMI 界面 4.0.6.135135 控制器 1.7.5 升级程序 0.6.4 伺服版本 不详(似乎也并不重要) 前言 在之前的工作中,这个问题并没有得到有效解决,情况如下: 在之前版本的程序中,每次动作执行完后需要关闭Qt界面,下一次想要运行机械臂程序时,…

数据链路层(Mac帧,报头字段,局域网通信原理),MTU,MSS,ip报文的分包与组装(ip报头字段介绍,组装过程,判断是否被分片/收到全部分片)

目录 数据链路层 介绍 MTU 介绍 在哪一层分片 IP报文的分包与组装 16位标识 3位标志 13位片偏移 示例 组装过程 确定是否被分片 确定是否收到全部分片 注意点 数据链路层与网络层的关系 Mac帧 Mac地址 报头格式 目的/源地址 类型 局域网通信原理 图解 碰撞…

TCP并发服务端的实现

思想:创建多个套接字,由"我"来管理这些套接字 方法: 1.多进程 2.多线程 3.IO多路复用 tcp服务器端创建流程: socket() bind() listen() connfd accept IO多路复用: 多个文件I复用同一个进程 IO…

基于深度学习的游客满意度分析与评论分析【情感分析、主题分析】

需要本项目的可以私信博主 目录 1 绪论 1.1 选题背景及研究意义 1.1.1 选题背景 1.1.2 研究意义 1.2 研究内容与方法 1.2.1 研究内容 1.2.2 研究方法 1.3 创新与不足 1.3.1创新点 1.3.2研究局限性 2 文献综述 2.1 相关概念界定 2.1.1 大数据分析 2.1.2 游客满意度 2.2 国内外研…

【香橙派系列教程】(十八) 视觉垃圾桶-网络线程

【十八】视觉垃圾桶-网络线程 文章目录 【十八】视觉垃圾桶-网络线程一、增加网络控制功能1.实现需求:2.TCP 心跳机制解决Soket异常断开问题 二、Linux内核提供了通过sysctl命令查看和配置TCP KeepAlive参数的方法。三、C语言实现TCP KeepAlive功能1.函数原型2.返回…

Python+tkinter实现俄罗斯方块游戏

游戏界面: 一个方块区域(游戏板),显示当前分数和最高分的标签,以及控制按钮(重启、暂停、显示排行榜)。玩家可以通过点击“Restart”按钮重启游戏,点击“Pause”按钮暂停游戏&#…

Windows隐藏起你的秘密文件以及文件夹工具

我们都知道,在 Windows 中可以右键文件夹,选择”属性“,勾选”隐藏“来实现隐藏某个文件夹。 我们还知道,在 Windows 中可以选择勾选 ”显示隐藏的项目和文件夹“,来使上述方法变得形同虚设。 本工具就是用于解决以上…

Spring框架:开发者的得力伙伴,魅力何在?

目录 一. Spring介绍 二. Spring搭建 三. Spring Bean管理 ▐ 管理方式 ▐ 依赖注入 四. Spring数据访问层管理 五. Spring集成MyBatis 海漫浩浩,我亦苦作舟!大家一起学习,一起进步! 一. Spring介绍 Spring是什么? Spring 是一个轻量级的, IOC 和 AOP 的一站式 J…

刷机维修进阶教程-----小米系列机型手机端 直接修改参数步骤解析

在前面分享的修改机型参数的博文中都是开启端口。然后使用电脑端工具类 进行修改参数。今天来给大家解析下小米系列机型如何直接在手机端上面进行修改。在这里要切记。操作前需要备份原机的各项基带参数 分区以及基带qcn。避免操作失误无信号无基带故障出现。 通过博文可以初…

产业园的运营到底有多重要?

在当今经济高速发展的时代,产业园如雨后春笋般涌现,成为推动产业升级和区域经济发展的重要力量,然而,一个成功的产业园并非仅仅依靠开发建设就能实现其价值,更需要精心的运营管理。为什么这么说?今天我们就…

RSA加密解密算法认识及signln_resolve

RSA初步了解 一、首先认识rsa是一种非对称加密算法。 对称加密:加密解密使用同一个密钥,加密者接受信息采用密钥加密,而到破译者手中还是使用这份密钥。这种方式的优点是加密效率高、加解密速度快,但是缺点是密钥需要共享&#x…