来源:Song、Meng、Ermon,2020,arXiv 2010.02502 v4,ICLR 2021。公式号与论文一致。符号约定与常用公式卡见本单元 00_导读。 这一节讲:§5 解决「公式 7 要 $x_0$ 而生成时没有」,网络反解出预测干净图 $f_\theta$(公式 9)顶上,得生成规则(公式 10),随之冒出新变分目标 $J_\sigma$、看似每换 $\sigma$ 都要重训;§6 用 Theorem 1 证明这是错觉:$J_\sigma$ 落回 $L_\gamma$ 家族,训好的 DDPM 网络对任何 $\sigma$ 直接可用。 --- ## §5 生成过程:让网络猜一个 x₀ 顶上(论文 3.2) **这一步**:新链的退步规则(公式 7)里赫然站着 $x_0$,可生成的时候哪来的 $x_0$,它正是我们要生成的东西。解法直白:让网络从 $x_t$ 猜一个 $x_0$ 顶上去。这一顶引出本章的完整剧情:顶上去之后冒出一个带 $\sigma$ 的新训练目标,看似每拧一次 $\sigma$ 都要重训一次网络(恐慌),§6 的 Theorem 1 再把这场恐慌拆穿(破局)。 **结论**:用预测噪声反推预测 $x_0$(记 $f_\theta^{(t)}$,公式 9),把公式 7 里所有 $x_0$ 换成 $f_\theta^{(t)}(x_t)$,得生成时能用的退一步规则(公式 10)。 > [!abstract] 公式 9 · 网络预测的干净图 > $f_\theta^{(t)}(x_t) = \frac{x_t - \sqrt{1-\alpha_t}\,\epsilon_\theta^{(t)}(x_t)}{\sqrt{\alpha_t}}$ 因为 DDIM 仅仅改变了反向采样策略(非马尔可夫链),但保持了与 DDPM 完全相同的正向边缘分布,所以两者通过当前 $x_t$ 和预测噪声反解干净图 $x_0$ 的代数公式必然完全一致。它们的区别只在于拿到这个 $x_0$ 之后,怎么往下计算 $x_{t-1}$。 > [!abstract] 公式 10 · 生成过程(退一步规则) > $p_\theta^{(t)}(x_{t-1}\mid x_t) = \begin{cases}\mathcal{N}\big(f_\theta^{(1)}(x_1),\ \sigma_1^2 I\big) & t=1\\[4pt] q_\sigma\big(x_{t-1}\mid x_t,\ f_\theta^{(t)}(x_t)\big) & t>1\end{cases}$ 生成从纯噪声起步,先验 $p_\theta(x_T)=\mathcal{N}(0,I)$。 > [!note]- 推导:从公式 4 推出公式 9 > 公式 4 两边同减 $\sqrt{1-\alpha_t}\epsilon$、同除 $\sqrt{\alpha_t}$,得 $x_0 = \frac{x_t-\sqrt{1-\alpha_t}\epsilon}{\sqrt{\alpha_t}}$,这是用真噪声反解真 $x_0$。把 $\epsilon$ 换成网络猜的 $\epsilon_\theta^{(t)}(x_t)$,就是预测 $x_0$,即公式 9。 > [!note]- 推导:公式 10 反向采样规则(怎么从 $x_t$ 退回 $x_{t-1}$) > > 这个公式本质上区分了**“正常退步”**和**“最后落地”**两种情况: > > **当 $t > 1$ 时(主力阶段:正常退步)** > > - **核心逻辑:**理论上计算 $x_{t-1}$ 需要真实的干净原图 $x_0$。既然没有,我们就用公式 9 预测出的“伪 $x_0$” 也就是 $f_\theta^{(t)}(x_t)$ 去**冒充**它,塞进退步公式正常计算。 > > > **当 $t = 1$ 时(最后一步:落地输出)** > > - **核心逻辑:**下一步就是最终成图,不再需要复杂计算,**直接把网络当前的预测结果 $f_\theta^{(1)}(x_1)$ 作为最终输出**。 > > - **关于方差 $\sigma_1^2 I$:**这是为满足概率论“处处有支撑”硬凑的微小噪声。实际写代码用确定的 DDIM 时,往往直接忽略(方差设为 0),直接输出纯净图。 > > [!note]- 推导:新过程的变分目标 $J_\sigma$ 怎么摊开(支线) > > **1. 起点:定义新的损失函数 (原论文公式 11)** > > 因为 DDIM 改变了前向加噪过程(引入了 $\sigma$ 控制随机性),为了在数学上严谨,必须为这个新过程写出一个新的变分下界(理论损失函数),记作 $J_\sigma$: > > $J_\sigma := \mathbb{E}_{q_\sigma(x_{0:T})} \left[ \log q_\sigma(x_{1:T} | x_0) - \log p_\theta(x_{0:T}) \right]$ > > **2. 过程:怎么“摊开”?** > > 公式里的 $q_\sigma$ (前向) 和 $p_\theta$ (反向) 本质上都是时间步 $1$ 到 $T$ 的概率分布**连乘**。把对数 $\log$ 乘进去(连乘变连加),再利用贝叶斯公式 $q(x_{t-1}|x_t, x_0) = \frac{q(x_t|x_{t-1}, x_0)q(x_{t-1}|x_0)}{q(x_t|x_0)}$ 进行移项重组(这步和 DDPM 拆解 ELBO 的手法完全一致)。 > > **3. 结果:整理成 KL 散度之和 (原论文公式 29)** > > 经过繁琐的凑项化简,$J_\sigma$ 最终被优雅地合并成三大部分。原论文在这里用 $\equiv$(表示忽略掉不含可训练参数 $\theta$ 的常数项 $L_T$),得出了与 DDPM 极其相似的经典结构: > > $J_\sigma \equiv \mathbb{E}_{q_\sigma} \left[ \sum_{t=2}^T \underbrace{D_{\text{KL}}(q_\sigma(x_{t-1} | x_t, x_0) \parallel p_\theta^{(t)}(x_{t-1} | x_t))}_{L_{t-1}: \text{去噪匹配 (主力优化项)}} \underbrace{- \log p_\theta^{(1)}(x_0 | x_1)}_{L_0: \text{重构项}} \right]$ > > **4. 最大的错觉:为什么看似要重训?** > > 重点看上面公式 29 里的**主力优化项**(中间那一坨连加的 KL 散度)。 > > 网络 $p_\theta$ 努力要去拟合的目标,是真实的前向后验分布 $q_\sigma(x_{t-1} | x_t, x_0)$。 > > **关键就在这里:这个目标分布里明晃晃地带着下标 $\sigma$!** > > 表面上看起来:你为了在采样时加速或改变多样性,每设定一个不同的 $\sigma$,你的目标分布 $q_\sigma$ 就会变,导致损失函数 $J_\sigma$ 变成一个完全不同的公式。既然要拟合的“标答”都换了,按常理是不是每次换 $\sigma$ 都得重新训练一次神经网络? > > 这个吓人的推论,就是 $\S 6$ 必须要被提出来的原因。接下来 $\S 6$ 将用极度精妙的代数技巧向你证明:这其实是个错觉。 --- ## §6 Theorem 1:所有 J_σ 共享同一组训练目标 **这一步**:恐慌到顶,破局登场。$J_\sigma$ 里到处带着 $\sigma$,看着像每换一个 $\sigma$ 就得重训一次;Theorem 1 用四步代数证明这是错觉,而且这四步几乎逐字复刻你在 DDPM 单元亲手推过的 ELBO 拆解,读起来应该处处眼熟。 **结论**:对任意 $\sigma$,$J_\sigma$ 都只是 $L_\gamma$ 家族里的某个成员(差一个与 $\theta$ 无关的常数 $C$)。$L_\gamma$ 全家共享同一最优解,所以已训好的 DDPM 网络对任何 $\sigma$ 都直接可用——训练侧到此锁死,下面全是采样侧的收获。 > [!note]- 逻辑打通:作者在下一盘什么大棋?(为什么说是虚惊一场) > > 为什么前面凭空出现带下标的 $L_\gamma$ 和 $q_\sigma$?其实这是作者为了“不重训模型”而精心设计的一个局: > > **1. 埋伏笔($\S 1$ 的 $L_\gamma$ 家族与“共享最优解”):** > > 作者一开始就把 DDPM 的目标($L_{simple}$)**泛化**成了一个带各步权重 $\gamma_t$ 的家族 $L_\gamma$。 > > **关键伏笔:** 损失函数本质上是把每个时刻 $t$ 的误差(大于等于 0 的平方项)加在一起。**只要网络参数不跨时间步共享**且拟合能力足够强,要想总分扣得最少,唯一的出路就是把每一个时刻的误差都逼近 0。因此,不管各步前面的学分权重 $\gamma_t$ 怎么变,网络追寻的最终完美目标(最优解)永远是一模一样的。这是作者提前画好的“免死金牌”圈子。 > > **2. 造新车($\S 3$ 的 $q_\sigma$):** > > 为了能跳步采样,作者强行造了一个带有旋钮 $\sigma$ 的非马尔可夫前向过程 $q_\sigma$。 > > **3. 配新壳与恐慌($\S 5$ 的 $J_\sigma$):** > > 既然改了前向过程,理论上必须推导出配套的新变分目标(损失函数)$J_\sigma$。但麻烦在于:表面上看,$J_\sigma$ 目标里到处都是 $\sigma$,这似乎意味着每转动一次 $\sigma$(改变采样规则),就得从头重新训练一次网络。 > > **4. 收网破局($\S 6$ 的 Theorem 1):** > > 全文承重墙。作者通过极其精妙的数学化简(即证明四步),把 $J_\sigma$ 剥丝抽茧后发现:**无论 $\sigma$ 取什么值,剥去外壳的 $J_\sigma$ 本质上就是第一步定义的 $L_\gamma$ 家族里的某个特定权重版本!** > > **结论闭环:** > > 既然 $J_\sigma$ 只是 $L_\gamma$ 家族里的一个成员,而 $L_\gamma$ 家族的所有成员都共享同一个最优解,这就意味着: > > $J_\sigma$ 的最优解 = $L_\gamma$ 家族最优解 = DDPM 的 $L_{simple}$ 最优解(权重全为 1 的特例)= **你手里那个早就训好的 DDPM 网络**。 > > 到此,作者成功证明:随便你怎么调 $\sigma$ 改采样,**统统不需要重新训练!** 训练侧彻底锁死,已有的网络对任何 $\sigma$ 都直接可用。 > > **⚠️ 现实防坑:既然说“参数不共享”,为啥写代码时全网都只用一个 U-Net(参数共享)?** > > 这是论文理论与工程实践的经典脱节: > > - **数学上的免责声明:** 论文加这个假设,纯粹是为了让 Theorem 1 的推导绝对严密。如果不假设“不共享”,改变权重 $\gamma_t$ 就会导致单一网络在不同时间步做“偏心取舍”,最优解就不唯一了。 > > - **工程上的大力出奇迹:** 现实跑代码全用共享参数的 U-Net。没翻车是因为现代模型容量极大(过参数化),有能力把所有时刻的误差都降到极低,无需非此即彼的取舍。因此,DDPM 训出的模型距离 DDIM 理论上的最优解已经无限近,**经验战胜了严谨数学**,直接拿来用效果依然完美。 > > [!abstract] Theorem 1 > 对所有 $\sigma>0$,存在 $\gamma\in\mathbb{R}_{>0}^T$ 和 $C\in\mathbb{R}$,使 $J_\sigma = L_\gamma + C$。 > [!info]- 释义:定理 1 的数学与工程含义 > > **公式原貌:** 对所有 $\sigma > 0$,存在 $\gamma \in \mathbb{R}_{>0}^T$ 和 $C \in \mathbb{R}$,使 $J_\sigma = L_\gamma + C$。 > > **自然语言拆解:** > > - **条件 ($\sigma > 0$):** 无论我们设定怎样的非马尔可夫采样策略(即无论控制随机性的参数 $\sigma$ 取什么值)…… > > - **存在性 ($\gamma \in \mathbb{R}_{>0}^T$ 和 $C$):** 在数学上,我们总能为 $1$ 到 $T$ 的每一个时间步找到一组严格大于 0 的标量权重向量 $\gamma$,并找出一个与网络参数 $\theta$ 无关的实数常数 $C$…… > > - **等价性 ($J_\sigma = L_\gamma + C$):** 使得新推导出的变分下界目标 $J_\sigma$,刚好等于以 $\gamma$ 为权重的 DDPM 均方误差损失族 $L_\gamma$,再带上那个常数项 $C$。 > > > **核心推论(为什么不用重训):** > > 在神经网络做梯度下降时,常数项 $C$ 对参数 $\theta$ 的偏导数为零。因此,**优化 $J_\sigma$ 在数学上完全等价于优化特定的 $L_\gamma$**。既然二者的优化曲面形状一致,那么使得 $J_\sigma$ 达到全局最优的网络参数,必然也是使得该 $L_\gamma$ 达到最优的参数。这就是可以直接沿用 DDPM 已训权重的根本数学依据。 > [!note]- 推导:记号 ≡ 的意思 > $\equiv$ 读作"相等,至多差一个不依赖 $\theta$ 的量"。优化只关心含 $\theta$ 的部分,不含 $\theta$ 的项随手丢弃,用 $\equiv$ 记账。 > [!note]- 推导:证明四步(代数完全版) > > **第一步:整理成 KL 散度之和(与 DDPM 拆解 ELBO 同套)** > > 将变分下界 $J_\sigma$ 摊开并利用贝叶斯公式重组后,剥离掉不含网络参数 $\theta$ 的常数项(记为 $\equiv$),核心优化目标就变成了各时间步真实后验与网络预测分布的 KL 散度之和: > > $J_\sigma \equiv \mathbb{E} \left[ \sum_{t=2}^T D_{\text{KL}} \left( q_\sigma(x_{t-1} \mid x_t, x_0) \parallel p_\theta^{(t)}(x_{t-1} \mid x_t) \right) - \log p_\theta^{(1)}(x_0 \mid x_1) \right] \quad \text{(原公式 29)}$ > > **第二步:化简 KL 散度(核心代数展开)** > > 两个分布都是高斯,且方差同为 $\sigma_t^2 I$。协方差相等时,KL 坍缩为均值差平方除以 $2\sigma_t^2$(无维度因子): > > $D_{\text{KL}} = \frac{1}{2\sigma_t^2} \left\| \mu_q - \mu_p \right\|_2^2$ > > 展开均值差,回顾公式 7 的均值结构: > > - 真实均值:$\mu_q = \sqrt{\alpha_{t-1}} x_0 + \sqrt{1-\alpha_{t-1}-\sigma_t^2}\, \frac{x_t - \sqrt{\alpha_t} x_0}{\sqrt{1-\alpha_t}}$ > - 预测均值:$\mu_p = \sqrt{\alpha_{t-1}} f_\theta^{(t)}(x_t) + \sqrt{1-\alpha_{t-1}-\sigma_t^2}\, \frac{x_t - \sqrt{\alpha_t} f_\theta^{(t)}(x_t)}{\sqrt{1-\alpha_t}}$ > > 两式相减,$x_t$ 项抵消,提出公因式 $(x_0 - f_\theta^{(t)}(x_t))$: > > $\mu_q - \mu_p = \underbrace{\left( \sqrt{\alpha_{t-1}} - \frac{\sqrt{\alpha_t}\sqrt{1-\alpha_{t-1}-\sigma_t^2}}{\sqrt{1-\alpha_t}} \right)}_{\text{记作纯时间常数 } C_t} \cdot \left( x_0 - f_\theta^{(t)}(x_t) \right)$ > > 代回 KL: > > $\mathbb{E}[D_{\text{KL}}] \equiv \mathbb{E} \left[ \frac{C_t^2}{2\sigma_t^2} \left\| x_0 - f_\theta^{(t)}(x_t) \right\|_2^2 \right] \quad \text{(原公式 30 的严谨版)}$ > > **第三步:换元到噪声 $\epsilon$** > > 把 $x_0$ 的误差换成噪声误差,用前向公式的反解: > > - 真实:$x_0 = \frac{x_t - \sqrt{1-\alpha_t}\epsilon}{\sqrt{\alpha_t}}$ > - 预测:$f_\theta^{(t)}(x_t) = \frac{x_t - \sqrt{1-\alpha_t}\epsilon_\theta^{(t)}(x_t)}{\sqrt{\alpha_t}}$ > > 两式相减: > > $x_0 - f_\theta^{(t)}(x_t) = \frac{\sqrt{1-\alpha_t}}{\sqrt{\alpha_t}} \left( \epsilon_\theta^{(t)}(x_t) - \epsilon \right)$ > > 平方后代入第二步: > > $\mathbb{E}[D_{\text{KL}}] \equiv \mathbb{E} \left[ \frac{C_t^2 (1-\alpha_t)}{2 \sigma_t^2 \alpha_t} \left\| \epsilon - \epsilon_\theta^{(t)}(x_t) \right\|_2^2 \right] \quad \text{(原公式 32)}$ > > **第四步:打包系数,得出终极等式** > > 括号外那串系数 $\frac{C_t^2 (1-\alpha_t)}{2 \sigma_t^2 \alpha_t}$ 虽复杂,**但只依赖时间步 $t$,完全不依赖网络参数 $\theta$**。把它定义为权重 $\gamma_t$: > > $\gamma_t := \frac{C_t^2 (1-\alpha_t)}{2 \sigma_t^2 \alpha_t}$ > > 于是 $J_\sigma$ 变成: > > $J_\sigma \equiv \sum_{t=2}^T \gamma_t\, \mathbb{E} \left[ \left\| \epsilon - \epsilon_\theta^{(t)}(x_t) \right\|_2^2 \right]$ > > 这正是 $\S 1$ 的 $L_\gamma$ 家族。故 $J_\sigma = L_\gamma + C$ 证毕。(原公式 35) > [!note]- 拓展视野:如果真的“不共享参数”会怎样?(从 eDiff-I 到 Wan 2.2) > 既然 DDIM 理论上假设了“参数不共享”,那现实中有人试过吗? > > 如果完全按数学补丁搞 1000 个独立网络,会导致显存物理爆炸,且各步之间无法复用特征(闭门造车)。但“不共享”的思路却意外催生了目前业界最顶级的架构突破:**时间步混合专家模型(Time-Step MoE)**。 > > **1. 为什么单网络会碰壁(容量瓶颈)?** > 事实证明,面对高噪声(前期)和低噪声(后期),网络干的根本不是一件事。前期要“听懂词、画宏观轮廓”,后期要“抠像素、画微观细节”。一个大脑全包,必然发生内部参数打架、互相妥协。 > > **2. 顶级团队的折中破局(NVIDIA eDiff-I & 阿里 Wan 2.2):** > 既然 1 个网络会打架,1000 个网络又放不下,顶级团队选择了按信噪比(SNR)把去噪阶段切开,交给不同的“专职专家”: > - **前期(高噪专家):** 专职在混沌中“打地基”。任务是深刻理解 Prompt,定好主体结构和宏观布局,不分心管细节。 > - **后期(低噪专家):** 专职接手半成品“精雕细琢”。完全不用管构图,专门把光影、材质、毛发等高频纹理拉满。 > > **3. 理论与工程的神奇闭环:** > 这种按阶段不共享参数的 MoE 架构,极大地扩充了有效参数容量,突破了画质和语义对齐的天花板。DDIM 论文里那个原本为了敷衍数学公式而打的“不共享”理论补丁,在几年后竟成了带领生成模型(如真实感视频/图像)走向顶峰的工程神技。 --- ## 本节一条线 生成时没有 $x_0$,用 $\epsilon_\theta$ 反解出 $f_\theta$(公式 9)顶进公式 7 得公式 10;新目标 $J_\sigma$ 处处带 $\sigma$、看似要重训,Theorem 1 四步代数(摊成 KL、KL 塌成均值差、换元到噪声、系数打包成 $\gamma_t$)证明 $J_\sigma=L_\gamma+C$:全族共享最优解,训练侧锁死,下面全是采样侧的收获。