<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>DDPM on WhateverZ</title><link>https://whateverzpy.github.io/Zlog/tags/ddpm/</link><description>Recent content in DDPM on WhateverZ</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Sat, 11 Apr 2026 14:49:00 +0800</lastBuildDate><atom:link href="https://whateverzpy.github.io/Zlog/tags/ddpm/index.xml" rel="self" type="application/rss+xml"/><item><title>图像生成（二）——扩散模型（DDPM）与去噪扩散隐式模型（DDIM）</title><link>https://whateverzpy.github.io/Zlog/post/10-ddpm-ddim/</link><pubDate>Sat, 11 Apr 2026 13:15:31 +0800</pubDate><guid>https://whateverzpy.github.io/Zlog/post/10-ddpm-ddim/</guid><description>&lt;h2 id="1-ddpm-之前的黑暗时代生成模型的两难困境"&gt;1. DDPM 之前的“黑暗时代”——生成模型的两难困境
&lt;/h2&gt;&lt;p&gt;在扩散模型爆发之前，深度生成模型主要由两大巨头统治：&lt;strong&gt;GAN（生成对抗网络）&lt;/strong&gt; 和 &lt;strong&gt;&lt;a class="link" href="../9-VAE" &gt;VAE（变分自编码器）&lt;/a&gt;&lt;/strong&gt;。然而，它们各自带着难以克服的结构性缺陷：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;GAN 的困境（质量高但极不稳定）：&lt;/strong&gt; GAN 通过生成器和判别器的博弈来生成图像。虽然它能生成极其锐利、高质量的图像，但它的训练过程极度不稳定。“模式崩溃”（Mode Collapse）：GAN 倾向于只生成它最有把握的几类图像，缺乏对整个真实数据分布的覆盖能力（即缺乏多样性，Recall 低）。此外，GAN 由于缺乏明确的似然函数（Likelihood）评估，很难进行严谨的概率建模。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;VAE 的困境（稳定但极其模糊）：&lt;/strong&gt; VAE 通过编码器将数据压缩到潜空间，再由解码器还原，目标是最大化数据的变分下界（ELBO）。VAE 训练极其稳定，且理论极其优美。但问题在于，VAE 假设了过于简单的先验分布（通常是标准高斯分布），在重建时通常使用 MSE 损失，这导致生成的图像总是缺乏高频细节，&lt;strong&gt;极其模糊（Blurry）&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;基于流的模型（Flows）与自回归模型（Autoregressive）：&lt;/strong&gt; 前者对网络架构限制严（必须可逆），后者生成速度慢（必须逐像素生成）。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;为什么会有这些问题？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;本质上，传统的生成模型试图“一步到位”地将一个简单的随机噪声映射为极其复杂的高维图像分布。这种跨度太大了，对于神经网络来说，一次性学好这个极其复杂的非线性映射，要么容易学偏（GAN），要么只能学个大概的平均值（VAE）。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="2-ddpm-破局将一步登天化为百步穿杨"&gt;2. DDPM 破局——将“一步登天”化为“百步穿杨”
&lt;/h2&gt;&lt;p&gt;2020年，&lt;strong&gt;&lt;a class="link" href="https://arxiv.org/abs/2006.11239" target="_blank" rel="noopener"
&gt;DDPM（Denoising Diffusion Probabilistic Models）&lt;/a&gt;&lt;/strong&gt; 横空出世。它解决上述问题的核心思想是：&lt;strong&gt;既然一步到位太难，那我们就把它拆分成1000个极其微小的步骤。&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id="21-ddpm-是如何工作的本质原理是什么"&gt;2.1 DDPM 是如何工作的？本质原理是什么？
&lt;/h3&gt;&lt;p&gt;DDPM 包含两个过程：&lt;strong&gt;前向加噪过程（Forward Process）&lt;strong&gt;和&lt;/strong&gt;逆向去噪过程（Reverse Process）&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;前向过程（破坏图像）：&lt;/strong&gt;&lt;br&gt;
DDPM 定义了一个&lt;strong&gt;马尔可夫链（Markov Chain）&lt;/strong&gt;，在 $T$ 步内（通常 $T=1000$），逐步向原始干净图像 $x_0$ 中添加微小的高斯噪声，直到图像完全变成一团纯噪声 $x_T$。&lt;br&gt;
每一步的转移概率定义为：&lt;/p&gt;
$$q(x_t|x_{t-1}) := \mathcal{N}(x_t; \sqrt{1 - \beta_t}x_{t-1}, \beta_t I)$$&lt;p&gt;根据马尔可夫性质和高斯分布的叠加性，我们可以直接写出任意时刻 $t$ 时的边缘分布（不需要一步步算）：&lt;/p&gt;
$$q(x_t|x_0) = \mathcal{N}(x_t; \sqrt{\bar{\alpha}_t}x_0, (1 - \bar{\alpha}_t)I)$$&lt;p&gt;（其中 $\alpha_t = 1 - \beta_t$，$\bar{\alpha}_t = \prod_{s=1}^t \alpha_s$）&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;逆向过程（生成图像）：&lt;/strong&gt;&lt;br&gt;
生成过程就是前向过程的逆转。如果我们知道 $q(x_{t-1}|x_t)$，我们就能从纯噪声 $x_T \sim \mathcal{N}(0, I)$ 开始，一步步去噪，最终还原出 $x_0$。
虽然真实的后验 $q(x_{t-1}|x_t)$ 无法直接计算，但在 $\beta_t$ 极小的情况下，这个逆过程在数学上也被证明是一个高斯分布。因此，我们可以用一个神经网络 $p_\theta$ 去拟合它：&lt;/p&gt;
$$p_\theta(x_{t-1}|x_t) := \mathcal{N}(x_{t-1}; \mu_\theta(x_t, t), \Sigma_\theta(x_t, t))$$&lt;h3 id="22-ddpm-的神来之笔目标函数的极致简化"&gt;2.2 DDPM 的神来之笔：目标函数的极致简化
&lt;/h3&gt;&lt;p&gt;在训练时，DDPM 同样使用优化变分下界（VLB）的思路，将多步预测转化为多个 KL 散度的和：&lt;/p&gt;
$$L_{t-1} = D_{KL}(q(x_{t-1}|x_t, x_0) || p_\theta(x_{t-1}|x_t))$$&lt;p&gt;真实的后验均值其实是可以由 $x_0$ 和 $x_t$ 推导出来的：&lt;/p&gt;
$$\tilde{\mu}_t(x_t, x_0) = \frac{\sqrt{\bar{\alpha}_{t-1}}\beta_t}{1-\bar{\alpha}_t}x_0 + \frac{\sqrt{\alpha_t}(1-\bar{\alpha}_{t-1})}{1-\bar{\alpha}_t}x_t$$&lt;p&gt;&lt;strong&gt;最关键的突破：&lt;/strong&gt;&lt;br&gt;
作者发现，与其让神经网络去预测 $x_0$ 或者预测均值 $\tilde{\mu}_t$，不如让神经网络去&lt;strong&gt;预测这一步添加的“噪声 $\epsilon$”&lt;/strong&gt;。&lt;br&gt;
经过精妙的推导，极其复杂的 VLB 被化简为了一个极其简单的&lt;strong&gt;均方误差（MSE）损失函数 $L_{simple}$&lt;/strong&gt;。&lt;/p&gt;
$$L_{simple}(\theta) := \mathbb{E}_{t, x_0, \epsilon} \left[ ||\epsilon - \epsilon_\theta(\sqrt{\bar{\alpha}_t}x_0 + \sqrt{1 - \bar{\alpha}_t}\epsilon, t)||^2 \right]$$&lt;h3 id="23-为什么-ddpm-能够完美解决前人的问题"&gt;2.3 为什么 DDPM 能够完美解决前人的问题？
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;解决 GAN 的不稳定与模式崩溃：&lt;/strong&gt; DDPM 优化的是明确的变分下界（虽然是简化版），没有判别器的对抗博弈，训练就是一个简单的 MSE 回归问题，极其稳定。同时它作为似然模型，能极好地覆盖所有数据分布（Recall 高），不会遗漏模式。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;解决 VAE 的模糊问题：&lt;/strong&gt; DDPM 将“大跨度”的生成拆分成了 1000 个极其简单的“微小去噪”任务。而且，DDPM 的简化目标函数 $L_{simple}$ 实际上等价于多尺度的去噪分数匹配（Denoising Score Matching）。它不再强求拟合一个完美的平滑潜空间，而是学习引导噪声走向真实数据流形的梯度方向，因此能生成极其锐利、充满高频细节的图像。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="3-ddpm-的致命阿喀琉斯之踵"&gt;3. DDPM 的“致命阿喀琉斯之踵”
&lt;/h2&gt;&lt;p&gt;尽管 DDPM 生成质量惊人，但它有一个致命的缺陷：&lt;strong&gt;慢&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;为什么慢？为什么DDPM做不到加速？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;在 DDPM 中，生成过程被严格定义为&lt;strong&gt;马尔可夫扩散过程的逆转&lt;/strong&gt;。马尔可夫链的特性是，当前状态 $x_{t-1}$ 严格依赖于上一个状态 $x_t$。&lt;br&gt;
在训练时，网络可以在任意 $t$ 步加噪；但&lt;strong&gt;在采样（生成）时，你必须从 $T=1000$ 开始，一步一步地迭代到 $t=0$&lt;/strong&gt;。&lt;br&gt;
对于高分辨率图像，生成单张图片可能需要经过 1000 次庞大的 U-Net 前向传播。在一张 2080Ti 上生成 5 万张图甚至需要几十、几百个小时，而 GAN 只需要不到一分钟。&lt;br&gt;
&lt;strong&gt;DDPM 无法跳步：&lt;/strong&gt; 如果强行跳步（比如跨越几十步去噪），就破坏了马尔可夫链“相邻两步之间是高斯分布”的数学假设，生成的图像质量会立刻崩塌。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="4-ddim-的降维打击重构底层逻辑实现几十倍加速"&gt;4. DDIM 的降维打击——重构底层逻辑，实现几十倍加速
&lt;/h2&gt;&lt;p&gt;为了解决采样速度问题，2021 年，&lt;strong&gt;&lt;a class="link" href="https://arxiv.org/abs/2010.02502" target="_blank" rel="noopener"
&gt;DDIM（Denoising Diffusion Implicit Models）&lt;/a&gt;&lt;/strong&gt; 给出了一个解法。&lt;/p&gt;
&lt;h3 id="41-ddim-的核心改进与本质原理"&gt;4.1 DDIM 的核心改进与本质原理
&lt;/h3&gt;&lt;p&gt;DDIM 的作者敏锐地发现了一个事实：&lt;strong&gt;DDPM 的训练目标 $L_{simple}$ 实际上根本不依赖于前向过程是否是马尔可夫链。&lt;/strong&gt;
回看 $L_{simple}$，它只依赖于边缘分布 $q(x_t|x_0)$，而完全没有用到联合分布 $q(x_{1:T}|x_0)$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;本质原理（非马尔可夫前向过程）：&lt;/strong&gt;&lt;br&gt;
这意味着，&lt;strong&gt;只要我们构造出一个新的前向过程，保证它的边缘分布 $q(x_t|x_0)$ 依然是 $\mathcal{N}(x_t; \sqrt{\bar{\alpha}_t}x_0, (1 - \bar{\alpha}_t)I)$，那么我们就完全可以共用 DDPM 已经训练好的那个预测噪声的网络 $\epsilon_\theta$。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;于是，DDIM 大胆地抛弃了马尔可夫假设，定义了一个全新的、包含参数 $\sigma$ 的非马尔可夫推断过程 $q_\sigma(x_{t-1}|x_t, x_0)$。在这个新过程中，给定 $x_0$ 和 $x_t$，推导 $x_{t-1}$ 的公式被改写。&lt;br&gt;
随之而来的，是全新的逆向生成步更新公式：&lt;/p&gt;
$$x_{t-1} = \sqrt{\alpha_{t-1}} \left( \frac{x_t - \sqrt{1 - \alpha_t}\epsilon_\theta(x_t)}{\sqrt{\alpha_t}} \right) + \sqrt{1 - \alpha_{t-1} - \sigma_t^2} \cdot \epsilon_\theta(x_t) + \sigma_t \epsilon_t$$&lt;p&gt;在这个公式中，$\sigma_t$ 是一个我们可以自由控制的超参数：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;当 $\sigma_t = \sqrt{(1 - \alpha_{t-1}) / (1 - \alpha_t)} \sqrt{1 - \alpha_t / \alpha_{t-1}}$ 时，这就是原汁原味的 &lt;strong&gt;DDPM&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;当 $\sigma_t = 0$ 时&lt;/strong&gt;，公式的最后一项（随机噪声项）完全消失。这意味着，只要初始噪声 $x_T$ 给定，整个生成过程 $x_T \rightarrow x_0$ 变成了&lt;strong&gt;完全确定性（Deterministic）的&lt;/strong&gt;。这就是所谓的&lt;strong&gt;隐式模型（Implicit Model）&lt;/strong&gt;，也就是 &lt;strong&gt;DDIM&lt;/strong&gt; 名字的由来。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="42-为什么-ddim-可以做到几十倍加速"&gt;4.2 为什么 DDIM 可以做到几十倍加速？
&lt;/h3&gt;&lt;p&gt;因为 DDIM 不再被马尔可夫链的严苛假设所绑架。&lt;br&gt;
在 DDPM 中，必须走完 1000 步，因为每一步的方差都必须匹配严格的扩散轨迹。&lt;br&gt;
而在 DDIM 中，既然生成过程变成了确定性的积分（本质上是一个神经常微分方程 Neural ODE），我们完全可以在时间序列 $[1, T]$ 中任意抽取一个极短的子序列 $\tau$（比如只抽 10, 20, 50 步）进行采样。
&lt;strong&gt;这就相当于用大步长去解常微分方程（Euler method）&lt;/strong&gt;。DDIM 证明了，即便我们只用 20 到 50 步，就能生成质量与 DDPM 走 1000 步几乎媲美的图像，实现了 &lt;strong&gt;10 倍到 50 倍的直接加速&lt;/strong&gt;，而且完全不需要重新训练模型。&lt;/p&gt;
&lt;h3 id="43-为什么-ddim-还能做到-ddpm-做不到的语义插值和精准重建"&gt;4.3 为什么 DDIM 还能做到 DDPM 做不到的“语义插值”和“精准重建”？
&lt;/h3&gt;&lt;p&gt;因为 DDPM 的生成过程充满了 $\sigma_t \epsilon_t$ 这样的随机噪声注入，同一个初始噪声 $x_T$，每次采样出来的图像都完全不同。&lt;br&gt;
但 &lt;strong&gt;DDIM 是确定性的（$\sigma_t=0$）&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;一致性（Consistency）：&lt;/strong&gt; 无论你用 20 步、50 步还是 1000 步去采样，只要起始噪声 $x_T$ 一样，DDIM 总是能生成具有极高相似度和相同高级语义特征的同一张图像。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;语义插值（Semantic Interpolation）：&lt;/strong&gt; 因为这种确定性，DDIM 的潜空间 $x_T$ 直接编码了图像的语义结构。我们可以取两个生成的噪声 $x_T^{(0)}$ 和 $x_T^{(1)}$，通过&lt;strong&gt;球面线性插值（Slerp）&lt;/strong&gt;，在潜空间中平滑过渡。解码出来的图像，会呈现出极其丝滑、有意义的语义演变（例如一只狗平滑地变成另一只狗），这在充满随机性的 DDPM 中是绝不可能做到的。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;编码与完美重建（Reconstruction）：&lt;/strong&gt; 借助常微分方程的对称性，DDIM 甚至可以将一张真实的图片 $x_0$，顺着确定性的轨迹&lt;strong&gt;逆向编码&lt;/strong&gt;成纯噪声 $x_T$，然后再完美无缺地重新解码回 $x_0$（误差极低），让扩散模型拥有了媲美 Normalizing Flows 的能力。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="5-总结"&gt;5. 总结
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;DDPM&lt;/strong&gt; 是黑暗中的火把，它指明了用“马尔可夫降噪链”去拟合复杂分布的道路，用极简的 $L_{simple}$ 跨越了GAN和VAE难以逾越的鸿沟。&lt;br&gt;
而 &lt;strong&gt;DDIM&lt;/strong&gt; 则是真正的工业级革命，它通过极其深邃的数学洞察，剥离了马尔可夫的枷锁，将随机的扩散过程转化为确定性的神经 ODE。这不仅带来了几十倍的速度飞跃，更赋予了扩散模型完美的潜空间控制力。&lt;/p&gt;
&lt;p&gt;正是因为 DDPM 的奠基和 DDIM 在采样速度上的解放，才有了后来我们在 Stable Diffusion、Midjourney 等大模型上体会到的秒级出图体验。&lt;/p&gt;</description></item></channel></rss>