You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于扩散模型逆扩散过程中等式推导的疑问

关于扩散模型逆扩散过程中等式推导的疑问

看起来你在推导过程中遇到的问题,根源是抄写公式时的一个小错误——你把正向过程中解$x_0$的分母写错了!我们一步步来梳理:

首先明确扩散模型的核心定义:

  • $\beta_t \in (0,1)$,$\alpha_t = 1-\beta_t$
  • $\overline{\alpha}t = \prod{i=1}^t \alpha_i$(规范写法,你原来的$\bar{\alpha_t}$对应这里的$\overline{\alpha}_t$)
  • 正向过程的关键等式:$x_t = \sqrt{\overline{\alpha}_t} x_0 + \sqrt{1-\overline{\alpha}_t} \epsilon_t$,所以解$x_0$应该是:
    $$x_0 = \frac{x_t - \sqrt{1-\overline{\alpha}_t}\epsilon_t}{\sqrt{\overline{\alpha}_t}}$$

而你写的原式中,第二项的$x_0$被写成了$\frac{1}{\sqrt{\alpha_t}}(x_t - \sqrt{1-\overline{\alpha}_t}\epsilon_t)$,这是错误的,正确的分母应该是$\sqrt{\overline{\alpha}_t}$,而不是$\sqrt{\alpha_t}$。我们用正确的公式重新推导:

正确的等式展开与化简

原博客中的等式应该是:
$$\tilde{u_t} = \frac{\sqrt{\alpha_t}(1-\overline{\alpha}_{t-1})}{1 - \overline{\alpha}t}x_t + \frac{\sqrt{\overline{\alpha}{t-1}}\beta_t}{1-\overline{\alpha}_t} \cdot \frac{1}{\sqrt{\overline{\alpha}_t}}(x_t - \sqrt{1-\overline{\alpha}_t}\epsilon_t)$$

现在我们合并$x_t$的系数:

  1. 第一项的$x_t$系数:$\frac{\sqrt{\alpha_t}(1-\overline{\alpha}_{t-1})}{1 - \overline{\alpha}_t}$
  2. 第二项的$x_t$系数:$\frac{\sqrt{\overline{\alpha}_{t-1}}\beta_t}{1-\overline{\alpha}_t} \cdot \frac{1}{\sqrt{\overline{\alpha}_t}}$

注意到$\overline{\alpha}t = \alpha_t \cdot \overline{\alpha}{t-1}$,所以$\sqrt{\overline{\alpha}t} = \sqrt{\alpha_t} \cdot \sqrt{\overline{\alpha}{t-1}}$,代入第二项系数:
$$\frac{\sqrt{\overline{\alpha}_{t-1}}\beta_t}{1-\overline{\alpha}t} \cdot \frac{1}{\sqrt{\alpha_t}\sqrt{\overline{\alpha}{t-1}}} = \frac{\beta_t}{(1-\overline{\alpha}_t)\sqrt{\alpha_t}}$$

现在把两项通分合并:
$$
\begin{align*}
\text{合并后的}x_t\text{系数} &= \frac{\sqrt{\alpha_t}(1-\overline{\alpha}_{t-1})}{1 - \overline{\alpha}_t} + \frac{\beta_t}{(1-\overline{\alpha}t)\sqrt{\alpha_t}} \
&= \frac{\alpha_t(1-\overline{\alpha}
{t-1}) + \beta_t}{(1-\overline{\alpha}_t)\sqrt{\alpha_t}}
\end{align*}
$$

代入$\beta_t = 1-\alpha_t$,计算分子:
$$
\begin{align*}
\alpha_t(1-\overline{\alpha}{t-1}) + 1-\alpha_t &= \alpha_t - \alpha_t\overline{\alpha}{t-1} + 1 - \alpha_t \
&= 1 - \alpha_t\overline{\alpha}_{t-1} \
&= 1 - \overline{\alpha}_t \quad (\text{因为}\overline{\alpha}t = \alpha_t\overline{\alpha}{t-1})
\end{align*}
$$

所以$x_t$的系数化简为:
$$\frac{1 - \overline{\alpha}_t}{(1-\overline{\alpha}_t)\sqrt{\alpha_t}} = \frac{1}{\sqrt{\alpha_t}}$$

接下来看$\epsilon_t$的系数:
第二项中的$\epsilon_t$系数是:
$$- \frac{\sqrt{\overline{\alpha}_{t-1}}\beta_t}{1-\overline{\alpha}_t} \cdot \frac{\sqrt{1-\overline{\alpha}_t}}{\sqrt{\overline{\alpha}_t}} = - \frac{\beta_t}{\sqrt{\alpha_t}\sqrt{1-\overline{\alpha}_t}}$$

代入$\beta_t=1-\alpha_t$,就得到:
$$- \frac{1-\alpha_t}{\sqrt{\alpha_t}\sqrt{1-\overline{\alpha}_t}}$$

把$x_t$和$\epsilon_t$的系数合并,就得到了右边的等式:
$$\tilde{u_t} = \frac{1}{\sqrt{\alpha_t}} \left(x_t - \frac{1-\alpha_t}{\sqrt{1- \overline{\alpha}_t}}\epsilon_t\right)$$

这样整个推导就完全通顺了!你之前的问题就是把$x_0$的分母写错了,把$\sqrt{\overline{\alpha}_t}$写成了$\sqrt{\alpha_t}$,导致后续的系数计算出现矛盾。

备注:内容来源于stack exchange,提问作者IntegrateThis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 12:24:41