当前位置: 首页 > backend >正文

简说DDPM

目录

  • 1. 基础过程FP和RP
    • 1.1 前向过程FP(forward process or diffusion process)
      • 1.1.1 FP 概率的递归
    • 1.2 逆向过程RP(reverse process)
  • 2. Loss 计算
  • Appendix A: 变分下界
      • 1. 问题背景:为何需要变分下界?
      • 2. 变分下界的推导
        • 关键步骤:
      • 3. 如何理解ELBO?
        • 直观解释:
      • 4. **与负对数似然的关系**
      • 5. **总结**
  • 参考


1. 基础过程FP和RP

1.1 前向过程FP(forward process or diffusion process)

以图像为例,前向过程就是从一副干净的图像,逐步加噪最后变成一副近似完全噪声的图像;
这个过程认为是符合Markov过程的,所以从概率上来讲:
q(xT,xT−1...x1∣x0)=q(xT∣xT−1)q(xT−1∣xT−2)...q(x1∣x0)=∏t=1Tq(xt∣xt−1)\begin{equation} q(x_T,x_{T-1}...x_1|x_0)=q(x_T|x_{T-1})q(x_{T-1}|x_{T-2})...q(x_1|x_0)=\prod_{t=1}^Tq(x_t|x_{t-1}) \end{equation} q(xT,xT1...x1x0)=q(xTxT1)q(xT1xT2)...q(x1x0)=t=1Tq(xtxt1)

对于其中任意一步 q(xt∣xt−1)q(x_t|x_{t-1})q(xtxt1),根据加噪的方式,可以有明确的表达;当噪声符合Gaussian时,则
Xt=1−βtXt−1+βtϵt\begin{equation} X_t=\sqrt{1-\beta_t}X_{t-1}+\sqrt\beta_t \epsilon_t \end{equation} Xt=1βtXt1+βtϵt
其中ϵt\epsilon_tϵt是Gaussian噪声,所以
Xt∼N(1−βtXt−1,βtI)q(xt∣xt−1)=12πβtexp(−(xt−Xt−1)22βt)X_t \sim N(\sqrt{1-\beta_t}X_{t-1}, \beta_t I) \\ q(x_t|x_{t-1})=\frac{1}{ \sqrt{2 \pi \beta_t }}exp \left(- \frac{ \left( x_t- X_{t-1} \right)^{2}}{2 \beta_t} \right) XtN(1βtXt1,βtI)q(xtxt1)=2πβt1exp(2βt(xtXt1)2)

1.1.1 FP 概率的递归

根据式(2),为了表示方便,可以令 αt=1−βt\alpha_t = 1-\beta_tαt=1βt ,递归代入可得
Xt=αtXt−1+1−αtϵt=αt(αt−1Xt−2+1−αt−1ϵt−1)+1−αtϵt=αtαt−1Xt−2+αt(1−αt−1)ϵt−1+1−αtϵt\begin{equation} \begin{aligned} X_t&=\sqrt {\alpha_t} X_{t-1}+\sqrt{1-\alpha_t}\epsilon_t \\ &=\sqrt {\alpha_t} (\sqrt {\alpha_{t-1}} X_{t-2}+\sqrt{1-\alpha_{t-1}}\epsilon_{t-1})+\sqrt{1-\alpha_t}\epsilon_t \\ &=\sqrt {\alpha_t \alpha_{t-1}} X_{t-2}+\sqrt{\alpha_t(1-\alpha_{t-1})}\epsilon_{t-1}+\sqrt{1-\alpha_t}\epsilon_t \end{aligned} \end{equation} Xt=αtXt1+1αtϵt=αt(αt1Xt2+1αt1ϵt1)+1αtϵt=αtαt1Xt2+αt(1αt1)ϵt1+1αtϵt
观察公式(3)的后两项,可以令
Z=αt(1−αt−1)ϵt−1+1−αtϵt=1−αtαt−1ϵ\begin{aligned} Z&=\sqrt{\alpha_t(1-\alpha_{t-1})}\epsilon_{t-1}+\sqrt{1-\alpha_t}\epsilon_t \\ &=\sqrt{1-\alpha_t\alpha_{t-1}}\epsilon \end{aligned} Z=αt(1αt1)ϵt1+1αtϵt=1αtαt1ϵ

解释:两个Gaussian分布的叠加是一个新的Gaussion分布,且生成新的分布的方差为两个分布方差的和;有严格的证明,此处略

则依次递归可得
Xt=αtXt−1+1−αtϵt=...=αtαt−1...α1Xt0+1−αtαt−1...α1ϵt\begin{aligned} X_t&=\sqrt {\alpha_t} X_{t-1}+\sqrt{1-\alpha_t}\epsilon_t \\ &=... \\ &=\sqrt {\alpha_t \alpha_{t-1}...\alpha_1} X_{t0}+\sqrt{1-\alpha_t \alpha_{t-1}...\alpha_1}\epsilon_t \end{aligned} Xt=αtXt1+1αtϵt=...=αtαt1...α1Xt0+1αtαt1...α1ϵt
为了表示方便,我们记 αt‾=αtαt−1...α1\overline{\alpha_t}=\alpha_t \alpha_{t-1}...\alpha_1αt=αtαt1...α1,则有
Xt=αt‾X0+1−αt‾ϵ~t\begin{equation} X_t=\sqrt {\overline{\alpha_t}} X_{0}+\sqrt{1-\overline{\alpha_t}}\tilde\epsilon_t \end{equation} Xt=αtX0+1αtϵ~t

公式(4)表达了怎么直接获得第 t 次加噪效果的结果。

1.2 逆向过程RP(reverse process)

逆向过程表达了怎么通过去噪将一副噪声图逐步变成一副清晰的画面,类似的, 我们有以下表达:
pθ(x0,x1...xT−1∣xT)=pθ(xT−1∣xT)pθ(xT−2∣xT−1)...pθ(x0∣x1)=∏t=1Tpθ(xt−1∣xt)\begin{equation} p_\theta(x_0,x_{1}...x_{T-1}|x_T)=p_\theta(x_{T-1}|x_{T})p_\theta(x_{T-2}|x_{T-1})...p\theta(x_0|x_1)=\prod_{t=1}^Tp_\theta(x_{t-1}|x_{t}) \end{equation} pθ(x0,x1...xT1xT)=pθ(xT1xT)pθ(xT2xT1)...(x0x1)=t=1Tpθ(xt1xt)

解释:pθp_\thetapθ表达了由噪声图去噪的概率,下标θ\thetaθ是未知参数,也就是我们需要获得的参数

2. Loss 计算

2.1 去噪目标

再思考一下Denoising的目的,是为了获得清晰的图片x0x_0x0,基于MLE的理论,也就是说,需要最大化pθ(x0)p_\theta(x_0)pθ(x0)的概率。这个时候我们一般会选择使用NLL作为loss,即
L~=E[−logpθ(x0)]\mathcal{\tilde L}=\mathbb E[-log p_\theta(x_0)] L~=E[logpθ(x0)]
由于x0x_0x0的分布依赖x1:Tx_{1:T}x1:T这些隐变量的分布,所以这里使用了常用的trick,即变分下界
L~=E[−logpθ(x0)]≤Eq[−log⁡pθ(x0:T)q(x1:T∣x0)]=Eq[−log⁡p(xT)−∑t≥1log⁡pθ(xt−1∣xt)q(xt∣xt−1)]=:L\begin{aligned} \mathcal{\tilde L}&=\mathbb E[-log p_\theta(x_0)] \\ &\le \mathbb{E}_{q}\left[-\operatorname{log}\frac{p_{\theta}(\mathbf{x}_{0:T})}{q(\mathbf{x}_{1:T}|\mathbf{x}_{0})}\right] \\ &=\mathbb{E}_{q}\left[-\operatorname{log}p(\mathbf{x}_{T})-\sum_{t\geq1}\operatorname{log}\frac{p_{\theta}(\mathbf{x}_{t-1}|\mathbf{x}_{t})}{q(\mathbf{x}_{t}|\mathbf{x}_{t-1})}\right] =: \mathcal L \end{aligned} L~=E[logpθ(x0)]Eq[logq(x1:Tx0)pθ(x0:T)]=Eq[logp(xT)t1logq(xtxt1)pθ(xt1xt)]=:L
我们对上式的Loss进行再变形,得到

L=Eq[−log⁡pθ(x0:T)q(x1:T∣x0)]=Eq[−log⁡p(xT)−∑t≥1log⁡pθ(xt−1∣xt)q(xt∣xt−1)]=Eq[−log⁡p(xT)−∑t>1log⁡pθ(xt−1∣xt)q(xt∣xt−1)−log⁡pθ(x0∣x1)q(x1∣x0)]=Eq[−log⁡p(xT)−∑t>1log⁡pθ(xt−1∣xt)q(xt−1∣xt,x0)⋅q(xt−1∣x0)q(xt∣x0)−log⁡pθ(x0∣x1)q(x1∣x0)]=Eq[−log⁡p(xT)q(xT∣x0)−∑t>1log⁡pθ(xt−1∣xt)q(xt−1∣xt,x0)−log⁡pθ(x0∣x1)]\begin{aligned} \mathcal {L} & =\mathbb{E}_q{\left[-\log{\frac{p_\theta(\mathbf{x}_{0:T})}{q(\mathbf{x}_{1:T}|\mathbf{x}_0)}}\right]} \\ & =\mathbb{E}_q\left[-\log p(\mathbf{x}_T)-\sum_{t\geq1}\log\frac{p_\theta(\mathbf{x}_{t-1}|\mathbf{x}_t)}{q(\mathbf{x}_t|\mathbf{x}_{t-1})}\right] \\ & =\mathbb{E}_q\left[-\log p(\mathbf{x}_T)-\sum_{t>1}\log\frac{p_\theta(\mathbf{x}_{t-1}|\mathbf{x}_t)}{q(\mathbf{x}_t|\mathbf{x}_{t-1})}-\log\frac{p_\theta(\mathbf{x}_0|\mathbf{x}_1)}{q(\mathbf{x}_1|\mathbf{x}_0)}\right] \\ & =\mathbb{E}_q\left[-\log p(\mathbf{x}_T)-\sum_{t>1}\log\frac{p_\theta(\mathbf{x}_{t-1}|\mathbf{x}_t)}{q(\mathbf{x}_{t-1}|\mathbf{x}_t,\mathbf{x}_0)}\cdot\frac{q(\mathbf{x}_{t-1}|\mathbf{x}_0)}{q(\mathbf{x}_t|\mathbf{x}_0)}-\log\frac{p_\theta(\mathbf{x}_0|\mathbf{x}_1)}{q(\mathbf{x}_1|\mathbf{x}_0)}\right] \\ & =\mathbb{E}_q\left[-\log\frac{p(\mathbf{x}_T)}{q(\mathbf{x}_T|\mathbf{x}_0)}-\sum_{t>1}\log\frac{p_\theta(\mathbf{x}_{t-1}|\mathbf{x}_t)}{q(\mathbf{x}_{t-1}|\mathbf{x}_t,\mathbf{x}_0)}-\log p_\theta(\mathbf{x}_0|\mathbf{x}_1)\right] \end{aligned} L=Eq[logq(x1:Tx0)pθ(x0:T)]=Eq[logp(xT)t1logq(xtxt1)pθ(xt1xt)]=Eq[logp(xT)t>1logq(xtxt1)pθ(xt1xt)logq(x1x0)pθ(x0x1)]=Eq[logp(xT)t>1logq(xt1xt,x0)pθ(xt1xt)q(xtx0)q(xt1x0)logq(x1x0)pθ(x0x1)]=Eq[logq(xTx0)p(xT)t>1logq(xt1xt,x0)pθ(xt1xt)logpθ(x0x1)]
再根据KL散度的定义,可以转化成
L=Eq[DKL(q(xT∣x0)∥p(xT))⏟LT+∑t>1DKL(q(xt−1∣xt,x0)∥pθ(xt−1∣xt))⏟Lt−1−log⁡pθ(x0∣x1)⏟L0]\begin{equation} \mathcal {L} =\mathbb{E}_q\left[\underbrace{D_{\mathrm{KL}}(q(\mathbf{x}_T|\mathbf{x}_0)\parallel p(\mathbf{x}_T))}_{L_T}+\sum_{t>1}\underbrace{D_{\mathrm{KL}}(q(\mathbf{x}_{t-1}|\mathbf{x}_t,\mathbf{x}_0)\parallel p_\theta(\mathbf{x}_{t-1}|\mathbf{x}_t))}_{L_{t-1}}\underbrace{-\log p_\theta(\mathbf{x}_0|\mathbf{x}_1)}_{L_0}\right] \end{equation} L=EqLTDKL(q(xTx0)p(xT))+t>1Lt1DKL(q(xt1xt,x0)pθ(xt1xt))L0logpθ(x0x1)

对于式(6)的通俗理解:

  • q(xT∣x0)q(\mathbf{x}_T|\mathbf{x}_0)q(xTx0) 代表了已知的FP加噪过程,表示已知x0x_0x0得到xTx_TxT
  • 我们的目的是希望网络参数得到的概率分布 pθ(xT)p_\theta(\mathbf{x_T})pθ(xT)在未知x0\mathbf{x_0}x0的条件下,与q(xT∣x0)q(\mathbf{x}_T|\mathbf{x}_0)q(xTx0)尽可能接近
  • 同理,q(xt−1∣xt,x0)q(\mathbf{x}_{t-1}|\mathbf{x}_t,\mathbf{x}_0)q(xt1xt,x0)pθ(xt−1∣xt)p_\theta(\mathbf{x}_{t-1}|\mathbf{x}_t)pθ(xt1xt)也要尽可能接近;都表达了网络要学会在不知道x0x_0x0的前提下,学会估计出噪声分布

在这里插入图片描述

2.2 关键过程 Lt−1L_{t-1}Lt1

在RP过程中,我们的重点是计算后验概率
pθ(xt−1∣xt)=N(xt−1;μθ(xt,t),Σθ(xt,t))p_{\theta}(\mathbf{x}_{t-1}|\mathbf{x}_{t})=\mathcal{N}(\mathbf{x}_{t-1}; \boldsymbol{\mu}_{\theta}(\mathbf{x}_{t},t),\boldsymbol{\Sigma}_{\theta}( \mathbf{x}_{t},t)) pθ(xt1xt)=N(xt1;μθ(xt,t),Σθ(xt,t))
其中的均值和方差是我们需要进行学习的,这里先忽略掉方差,先考虑均值。
Σθ(xt,t)=σt2\boldsymbol{\Sigma}_{\theta}( \mathbf{x}_{t},t)=\sigma_t^2Σθ(xt,t)=σt2,则可以重写
Lt−1=Eq[12σt2∥μ~t(xt,x0)−μθ(xt,t)∥2]+C\begin{equation} L_{t-1}=\mathbb{E}_q\left[\frac{1}{2\sigma_t^2}\|\tilde{\boldsymbol{\mu}}_t(\mathbf{x}_t,\mathbf{x}_0)-\boldsymbol{\mu}_\theta(\mathbf{x}_t,t)\|^2\right]+C \end{equation} Lt1=Eq[2σt21μ~t(xt,x0)μθ(xt,t)2]+C
从上式可以看出一个基本点,就是我们的网络用来估计的均值μθ(xt,t)\boldsymbol{\mu}_\theta(\mathbf{x}_t,t)μθ(xt,t)的目标是尽可能的接近 μ~t(xt,x0)\tilde{\boldsymbol{\mu}}_t(\mathbf{x}_t,\mathbf{x}_0)μ~t(xt,x0),所以这个目标就是我们实际训练时的真值

继续,根据式(4),可以将x0x_0x0替换为xtx_txt的表达,即
μ~t(xt,x0)=μ~t(xt,1αˉt(xt−1−αˉtϵ))=1αt(xt−βt1−αˉtϵθ(xt,t))\tilde{\boldsymbol{\mu}}_t(\mathbf{x}_t,\mathbf{x}_0)=\tilde{\boldsymbol{\mu}}_t\left(\mathbf{x}_t,\frac{1}{\sqrt{\bar{\alpha}_t}}(\mathbf{x}_t-\sqrt{1-\bar{\alpha}_t}\boldsymbol{\epsilon})\right)=\frac{1}{\sqrt{\alpha_t}}\left(\mathbf{x}_t-\frac{\beta_t}{\sqrt{1-\bar{\alpha}_t}}\boldsymbol{\epsilon}_\theta(\mathbf{x}_t,t)\right) μ~t(xt,x0)=μ~t(xt,αˉt1(xt1αˉtϵ))=αt1(xt1αˉtβtϵθ(xt,t))
推导过程如下:
首先,μ~\tilde \muμ~表示在已知xt,x0x_t, x_0xt,x0的情况下,xt−1x_{t-1}xt1的分布或者概率,根据贝叶斯公式,有
q(xt−1∣xt,x0)=q(xt,xt−1,x0)q(xt,x0)=q(xt∣xt−1)q(xt−1∣x0)q(x0)q(xt∣x0)q(x0)=q(xt∣xt−1)q(xt−1∣x0)q(xt∣x0)q(x_{t-1}|x_t, x_0)=\frac{q(x_t,x_{t-1},x_0)}{q(x_t, x_0)}=\frac{q(x_t|x_{t-1})q(x_{t-1}|x_0)\cancel{q(x_0)}}{q(x_t|x_0)\cancel{q(x_0)}}=\frac{q(x_t|x_{t-1})q(x_{t-1}|x_0)}{q(x_t|x_0)} q(xt1xt,x0)=q(xt,x0)q(xt,xt1,x0)=q(xtx0)q(x0)q(xtxt1)q(xt1x0)q(x0)=q(xtx0)q(xtxt1)q(xt1x0)
而上式中的分子和分母都是已知的,并且根据加噪的假设,都是符合Gaussain分布的,以其中某一项举例
q(xt∣xt−1)=12πβtexp(−(xt−Xt−1)22βt)q(x_t|x_{t-1})=\frac{1}{ \sqrt{2 \pi \beta_t }}exp \left(- \frac{ \left( x_t- X_{t-1} \right)^{2}}{2 \beta_t} \right) q(xtxt1)=2πβt1exp(2βt(xtXt1)2)
代入化简,可得均值即为
μ~t(xt,x0)=αt(1−αˉt−1)1−αˉtxt+βtαˉt−11−αˉtx0\tilde{\mu}_t(x_t,x_0) =\frac{\sqrt{\alpha_t}(1-\bar{\alpha}_{t-1})}{1-\bar{\alpha}_t}x_t+\frac{\beta_t\sqrt{\bar{\alpha}_{t-1}}}{1-\bar{\alpha}_t}x_0 μ~t(xt,x0)=1αˉtαt(1αˉt1)xt+1αˉtβtαˉt1x0
所以,可有
μ~t(xt,x0)=μ~(xt(x0,ϵ),1αˉt(xt(x0,ϵ)−1−αˉtϵ))=αt(1−αˉt−1)1−αˉtxt(x0,ϵ)+βtαˉt−11−αˉt1αˉt(xt(x0,ϵ)−1−αˉtϵ)=αt(1−αˉt−1)αt(1−αˉt)xt(x0,ϵ)+βt(xt(x0,ϵ)−1−αˉtϵ)αt(1−αˉt)=1αt[(αt−αˉt+βt)xt(x0,ϵ)1−αˉt−βt1−αˉtϵ]=1αt[xt(x0,ϵ)−βt1−αˉtϵ]\begin{aligned} \tilde{\mu}_t(x_t,x_0) & =\tilde{\mu}\left(x_t\left(x_0,\epsilon\right),\frac{1}{\sqrt{\bar{\alpha}_t}}(x_t(x_0,\epsilon)-\sqrt{1-\bar{\alpha}_t}\epsilon)\right) \\ & =\frac{\sqrt{\alpha_t}(1-\bar{\alpha}_{t-1})}{1-\bar{\alpha}_t}x_t\left(x_0,\epsilon\right)+\frac{\beta_t\sqrt{\bar{\alpha}_{t-1}}}{1-\bar{\alpha}_t}\frac{1}{\sqrt{\bar{\alpha}_t}}(x_t\left(x_0,\epsilon\right)-\sqrt{1-\bar{\alpha}_t}\epsilon) \\ & =\frac{\alpha_t(1-\bar{\alpha}_{t-1})}{\sqrt{\alpha_t}(1-\bar{\alpha}_t)}x_t\left(x_0,\epsilon\right)+\frac{\beta_t(x_t\left(x_0,\epsilon\right)-\sqrt{1-\bar{\alpha}_t}\epsilon)}{\sqrt{\alpha_t}(1-\bar{\alpha}_t)} \\ & =\frac{1}{\sqrt{\alpha_t}}{\left[\frac{(\alpha_t-\bar{\alpha}_t+\beta_t)x_t\left(x_0,\epsilon\right)}{1-\bar{\alpha}_t}-\frac{\beta_t}{\sqrt{1-\bar{\alpha}_t}}\epsilon\right]} \\ & =\frac{1}{\sqrt{\alpha_t}}{\left[x_t\left(x_0,\epsilon\right)-\frac{\beta_t}{\sqrt{1-\bar{\alpha}_t}}\epsilon\right]} \end{aligned} μ~t(xt,x0)=μ~(xt(x0,ϵ),αˉt1(xt(x0,ϵ)1αˉtϵ))=1αˉtαt(1αˉt1)xt(x0,ϵ)+1αˉtβtαˉt1αˉt1(xt(x0,ϵ)1αˉtϵ)=αt(1αˉt)αt(1αˉt1)xt(x0,ϵ)+αt(1αˉt)βt(xt(x0,ϵ)1αˉtϵ)=αt1[1αˉt(αtαˉt+βt)xt(x0,ϵ)1αˉtβtϵ]=αt1[xt(x0,ϵ)1αˉtβtϵ]

经过以上的推导,我们的训练过程就可以表述为

在这里插入图片描述

2.3 深入理解LTL_TLTL0L_0L0

(待完善)



Appendix A: 变分下界

可参考 变分下界

负对数似然(Negative Log-Likelihood, NLL)的变分下界(Variational Lower Bound),通常指的是证据下界(Evidence Lower BOund, ELBO)。它在变分推断(Variational Inference)中扮演着核心角色,用于近似复杂的概率分布。下面我将分步骤解释其概念、推导过程及直观理解。

1. 问题背景:为何需要变分下界?

假设我们有一个隐变量模型(如变分自编码器VAE),包含:

  • 观测数据 xxx
  • 隐变量 zzz(无法直接观测,如VAE中的潜在编码)

目标是最大化观测数据的对数似然 log⁡p(x)\log p(x)logp(x),但直接计算它通常不可行(因为需要积分:p(x)=∫p(x∣z)p(z)dzp(x) = \int p(x|z)p(z)dzp(x)=p(xz)p(z)dz)。因此,引入变分推断。

2. 变分下界的推导

为了近似真实的后验分布 p(z∣x)p(z|x)p(zx),引入一个简单的可优化分布 qϕ(z∣x)q_\phi(z|x)qϕ(zx)(如高斯分布),通过最小化两者的KL散度(KL(qϕ(z∣x)∥p(z∣x))\text{KL}(q_\phi(z|x) \| p(z|x))KL(qϕ(zx)p(zx)))来逼近。

关键步骤:

从KL散度的定义出发:

KL(qϕ(z∣x)∥p(z∣x))=Eqϕ(z∣x)[log⁡qϕ(z∣x)−log⁡p(z∣x)]\text{KL}(q_\phi(z|x) \| p(z|x)) = \mathbb{E}_{q_\phi(z|x)} \left[ \log q_\phi(z|x) - \log p(z|x) \right] KL(qϕ(zx)p(zx))=Eqϕ(zx)[logqϕ(zx)logp(zx)]

利用贝叶斯定理 p(z∣x)=p(x∣z)p(z)p(x)p(z|x) = \frac{p(x|z)p(z)}{p(x)}p(zx)=p(x)p(xz)p(z),代入上式:

KL(qϕ(z∣x)∥p(z∣x))=Eqϕ[log⁡qϕ(z∣x)−log⁡p(x∣z)−log⁡p(z)+log⁡p(x)]=Eqϕ[log⁡qϕ(z∣x)−log⁡p(x∣z)−log⁡p(z)]+log⁡p(x)\begin{align*} \text{KL}(q_\phi(z|x) \| p(z|x)) &= \mathbb{E}_{q_\phi} \left[ \log q_\phi(z|x) - \log p(x|z) - \log p(z) + \log p(x) \right] \\ &= \mathbb{E}_{q_\phi} \left[ \log q_\phi(z|x) - \log p(x|z) - \log p(z) \right] + \log p(x) \end{align*} KL(qϕ(zx)p(zx))=Eqϕ[logqϕ(zx)logp(xz)logp(z)+logp(x)]=Eqϕ[logqϕ(zx)logp(xz)logp(z)]+logp(x)

整理后得到:

log⁡p(x)−KL(qϕ(z∣x)∥p(z∣x))=Eqϕ[log⁡p(x∣z)+log⁡p(z)−log⁡qϕ(z∣x)]\log p(x) - \text{KL}(q_\phi(z|x) \| p(z|x)) = \mathbb{E}_{q_\phi} \left[ \log p(x|z) + \log p(z) - \log q_\phi(z|x) \right] logp(x)KL(qϕ(zx)p(zx))=Eqϕ[logp(xz)+logp(z)logqϕ(zx)]

由于KL散度非负(KL≥0\text{KL} \geq 0KL0),因此:

log⁡p(x)≥Eqϕ[log⁡p(x∣z)+log⁡p(z)−log⁡qϕ(z∣x)]⏟ELBO\log p(x) \geq \underbrace{\mathbb{E}_{q_\phi} \left[ \log p(x|z) + \log p(z) - \log q_\phi(z|x) \right]}_{\text{ELBO}} logp(x)ELBOEqϕ[logp(xz)+logp(z)logqϕ(zx)]

这个下界就是ELBO(变分下界),即:

ELBO=Eqϕ(z∣x)[log⁡p(x∣z)]−KL(qϕ(z∣x)∥p(z))\text{ELBO} = \mathbb{E}_{q_\phi(z|x)} \left[ \log p(x|z) \right] - \text{KL}(q_\phi(z|x) \| p(z)) ELBO=Eqϕ(zx)[logp(xz)]KL(qϕ(zx)p(z))

3. 如何理解ELBO?

ELBO由两部分组成:

  1. 重构项 Eqϕ[log⁡p(x∣z)]\mathbb{E}_{q_\phi}[\log p(x|z)]Eqϕ[logp(xz)]
    衡量从隐变量 zzz 重构数据 xxx 的质量(类似VAE中的解码器损失)。
  2. KL正则项 −KL(qϕ(z∣x)∥p(z))-\text{KL}(q_\phi(z|x) \| p(z))KL(qϕ(zx)p(z))
    迫使变分分布 qϕ(z∣x)q_\phi(z|x)qϕ(zx) 接近先验 p(z)p(z)p(z)(如标准高斯),防止过拟合。
直观解释:
  • 最大化ELBO 等价于 最小化 −ELBO-\text{ELBO}ELBO(即负对数似然的变分上界)。
  • 由于 log⁡p(x)≥ELBO\log p(x) \geq \text{ELBO}logp(x)ELBO,优化ELBO间接优化了真实的对数似然。

4. 与负对数似然的关系

  • 直接最小化负对数似然 −log⁡p(x)-\log p(x)logp(x) 不可行时,通过最大化ELBO来逼近。
  • 在VAE中,损失函数 L=−ELBO\mathcal{L} = -\text{ELBO}L=ELBO 就是重构误差 + KL散度

5. 总结

负对数似然的变分下界(ELBO)是一个可优化的目标函数,通过引入简单的分布 qϕ(z∣x)q_\phi(z|x)qϕ(zx) 来近似复杂后验,从而解决隐变量模型的学习问题。其核心思想是用可计算的ELBO代替不可计算的对数似然,并通过优化ELBO平衡数据拟合(重构)和模型复杂度(KL正则)。


参考

  • 狗都能看懂的DDPM论文
  • DDPM论文解读1
  • DDPM论文解读2
http://www.xdnf.cn/news/19236.html

相关文章:

  • 【系列07】端侧AI:构建与部署高效的本地化AI模型 第6章:知识蒸馏(Knowledge Distillation
  • 监听nacos配置中心数据的变化
  • vector的学习和模拟
  • 桌面GIS软件添加设置牵引文字标注
  • Fortran二维数组去重(unique)算法实战
  • 电子健康记录风险评分与多基因风险评分的互补性与跨系统推广性研究
  • 福彩双色球第2025100期篮球号码分析
  • GESP5级2024年03月真题解析
  • Coze源码分析-API授权-获取令牌列表-后端源码
  • UNet改进(36):融合FSATFusion的医学图像分割
  • TensorFlow 面试题及详细答案 120道(71-80)-- 性能优化与调试
  • Next.js 快速上手指南
  • 数值分析——算法的稳定性
  • 【ACP】2025-最新-疑难题解析- 练习二汇总
  • 文档转换总出错?PDF工具免费功能实测
  • Docker 部署深度网络模型(Flask框架思路)
  • Intellij IDEA社区版(下载安装)
  • 项目管理方法全流程解析
  • HarmonyOS 持久化存储:PersistentStorage 实战指南
  • 详解推测性采样加速推理的算法逻辑
  • nginx配置websock请求,wss
  • java中的VO、DAO、BO、PO、DO、DTO
  • 【重学 MySQL】九十三、MySQL的字符集的修改与底层原理详解
  • 项目管理和产品管理的区别
  • 【gflags】安装与使用
  • 2025 批量下载雪球和东方财富帖子和文章导出excel和pdf
  • 一体化步进伺服电机在视觉检测设备中的应用案例
  • 弱内存模型和强内存模型架构(Weak/Strong Memory Model)
  • vue3多个el-checkbox勾选框设置必选一个
  • 一款支持动态定义路径的JAVA内存马维权工具Agenst