Skip to content

从噪声到图像:Diffusion Model 的发展简史

3847 字约 13 分钟

AIDiffusion Model计算机视觉生成式 AI

2026-05-05

相关信息

写这篇文章的直接原因是:我的 final year project topic 和视觉生成有关。在继续读更具体的论文之前,我需要先给自己画一张 diffusion model 的发展地图:这个想法最早从哪里来,为什么 DDPM 让它重新变得可用,DDIM、Latent Diffusion、Diffusion Transformer 又分别改变了什么。

为什么 Diffusion Model 值得单独写一篇

我第一次看 diffusion model 的时候,直觉上觉得它有点反过来。它不是直接从一个 latent vector 生成图像,而是先定义一个“慢慢毁掉图像”的过程:不断往图像里加噪声,直到图像变成接近高斯噪声;然后模型再学习如何把这个破坏过程反过来,从噪声一步步恢复出结构。

跟 GAN 那种“一步生成图像”的方式相比,这个设计看起来很慢。但 diffusion model 后来真正重要,也正是因为这种设计:训练目标稳定,生成过程是渐进的,而且可以被 class label、text prompt、mask、layout 或其他条件引导。只要计算问题被解决,diffusion 就会变成一个非常灵活的视觉生成框架。

这篇不是完整的数学教程,更像是我给自己的历史地图:Diffusion Model 是怎样从一个优雅的概率建模想法,变成现代图像生成基础设施的。

2015:把生成看成“反向破坏过程”

现代 diffusion model 的起点通常会追溯到 Sohl-Dickstein 等人在 2015 年的论文 Deep Unsupervised Learning using Nonequilibrium Thermodynamics[1] 这篇论文的核心想法来自非平衡统计物理:先把复杂的数据分布慢慢加噪声,直到它变成一个简单分布;再学习一个反向过程,把结构恢复回来。

正向过程可以写成:

x0x1xT.x_0 \rightarrow x_1 \rightarrow \cdots \rightarrow x_T.

经过很多小的加噪步骤之后,xTx_T 会接近一个简单的高斯分布。生成模型要学习的是反向链:

xTxT1x0.x_T \rightarrow x_{T-1} \rightarrow \cdots \rightarrow x_0.

这个想法很漂亮,因为它把“生成”拆成了很多个更简单的去噪问题。但在这个阶段,diffusion 还没有成为图像生成领域最显眼的主角。GAN 的样本更有冲击力,VAE 作为 latent-variable model 更容易讲清楚,autoregressive model 也有很强的 likelihood 结果。Diffusion 有一个好故事,但还没有那种让大家不得不关注的图像质量和工程配方。

我会把这个阶段记成一个问题:

生成能不能不是从噪声一步跳到图像,而是通过很多小步骤逐渐恢复结构?

Score-based 视角:学习数据分布往哪里更可能

这里还有一条很重要的暗线:score-based generative modeling。所谓 score,就是 log data density 对输入的梯度:

xlogp(x).\nabla_x \log p(x).

直觉上,它指向数据分布概率更高的方向。Song 和 Ermon 在 2019 年的 Generative Modeling by Estimating Gradients of the Data Distribution 中,用不同噪声级别下的 score estimation 和 annealed Langevin dynamics,让这条路线变得更实用。[2]

这很重要,因为 diffusion 可以从两个角度来理解。一种说法是:我们学习一个反向 Markov chain。另一种说法是:我们学习一个 vector field,告诉带噪样本应该怎样往数据分布的方向移动。Song 等人在 2020 年的 SDE formulation 又进一步把 diffusion model 和 score-based model 放进了统一的连续时间框架里。[3]

我之前不太理解为什么 DDPM 总是和 score matching 放在一起讲,直到意识到这一点:

去噪不只是把噪声去掉,也是学习从噪声位置回到数据流形的局部方向。

这个直觉对计算机视觉很有用。自然图像并不是均匀填满整个像素空间的。它们位于一个更低维、更有结构的数据流形附近。加噪声会把样本推离这个结构,而去噪模型学习的是怎样把它拉回来。

2020:DDPM 让 Diffusion 重新变得可用

真正的转折点是 Ho、Jain 和 Abbeel 在 2020 年的 Denoising Diffusion Probabilistic Models[4] DDPM 没有发明最早的 diffusion 思想,但它给出了一个简单、有效、容易记住的实践配方。

正向过程按照某个 variance schedule 加高斯噪声:

q(xtxt1)=N(1βtxt1,βtI).q(x_t \mid x_{t-1}) = \mathcal{N}(\sqrt{1-\beta_t}x_{t-1}, \beta_t I).

反向过程由神经网络学习。实践中,U-Net 接收带噪图像 xtx_t 和时间步 tt,然后预测被加进去的噪声。训练目标可以简化成一个 noise prediction loss:

Ex0,ϵ,t[ϵϵθ(xt,t)2].\mathbb{E}_{x_0,\epsilon,t}\left[\|\epsilon - \epsilon_\theta(x_t,t)\|^2\right].

这个简化是 DDPM 影响力很大的原因之一。生成不再是一个不稳定的 adversarial game,而是训练一个去噪网络做普通的回归。模型学习很多个很小的修正,样本也一步步变得更像图像。

DDPM 让 diffusion 从理论上的优雅想法,变成了实际可用的 image synthesis 方法。它也改变了生成模型的气质:GAN 很快,但难训练;diffusion 很慢,但稳定可靠。当质量上来之后,稳定性本身就成了很大的优势。

DDIM:第一个压力点是采样速度

DDPM 仍然有一个明显问题:采样太贵。如果生成一张图需要几百甚至上千个 denoising steps,那么模型再优雅也很难方便使用。

Song、Meng 和 Ermon 在 2020 年的 Denoising Diffusion Implicit Models 直接回应了这个问题。[5] DDIM 说明,我们可以使用一个 non-Markovian generative process,在保持 DDPM 同样训练目标的同时,大幅加速采样。论文中报告了相对 DDPM 约 10 倍到 50 倍的 wall-clock time 加速。

这里的概念转变很重要。模型并不一定要把每一个正向加噪步骤原封不动地倒放回来。我们可以沿着另一条更确定性的路径穿过同一组 marginal distributions。这样也会让 interpolation 更有意义,因为采样轨迹不再每一步都被新的随机性主导。

这就是 diffusion 发展史里的第一个工程教训:

当 diffusion model 已经能生成好图之后,下一个问题不只是“能不能生成”,而是“能不能足够快地生成”。

后面很多 sampler、ODE/SDE solver、design-space paper 都在延续这个主题:到底需要多少次 network evaluation?什么 noise schedule 更合适?什么 parameterization 会让反向过程更容易求解?

2021:质量、Guidance,以及 Diffusion 追上 GAN 的时刻

下一阶段让 diffusion model 变得更难被忽视。Nichol 和 Dhariwal 的 Improved Denoising Diffusion Probabilistic Models 表明,一些相对简单的改动,比如学习 reverse-process variance,可以在保持高质量的同时减少采样开销。[6]

随后 Dhariwal 和 Nichol 的 Diffusion Models Beat GANs on Image Synthesis 直接把信息写进了标题。[7] 通过架构改进和 classifier guidance,diffusion model 的样本质量可以和很强的 GAN baseline 竞争,甚至超过它们。

Guidance 是这一阶段的关键概念之一。Conditional diffusion model 可以在 diversity 和 fidelity 之间做权衡。Classifier guidance 用外部 classifier 的 gradient,把样本往目标类别推。代价是需要额外训练一个 classifier,而且这个 classifier 还要能处理 noisy images。

这个阶段重要,是因为它改变了 diffusion 的地位:

  • 它不再只是稳定。
  • 它不再只是数学上优雅。
  • 它开始真正能在图像质量上竞争。

大概从这里开始,diffusion 从“有趣的替代方案”变成了“主流生成模型”。

文本条件与 Classifier-Free Guidance

当 diffusion model 已经能生成高质量图像之后,很自然的下一个问题就是控制。真实应用里,我们很少只想无条件生成图像。我们通常想指定类别、文本 prompt、mask、layout,或者其他条件。

OpenAI 的 GLIDE 探索了 text-conditional image generation 和 editing。[8] 其中一个重要发现是,classifier-free guidance 对 text-to-image generation 很有效。Ho 和 Salimans 后来进一步形式化了 classifier-free diffusion guidance:训练时让模型有时看到条件、有时看不到条件;采样时再把 conditional prediction 和 unconditional prediction 组合起来。[9]

这个想法很简单,但非常强。它不需要额外训练一个 classifier,而是让同一个 generative model 同时学习两件事:

  • 没有条件时,图像应该是什么样;
  • 加入条件后,denoising direction 应该怎样改变。

Guidance scale 于是变成了一个实用的控制旋钮。调高它,图像通常会更强地贴合 prompt,但 diversity 可能下降;调低它,样本可能更多样,但也可能不够听话。

对于 text-to-image 系统来说,这几乎变成了用户体验的一部分。Prompt 不只是一个标签,而是在整个 denoising process 里持续发挥作用的 steering signal。

Latent Diffusion:把昂贵的部分搬出像素空间

即使有了更好的 sampler 和 guidance,pixel-space diffusion 仍然很贵。一张 512 by 512 的 RGB 图像本身就是一个很大的对象,对它反复 denoise 的成本很高。

Latent diffusion 改变了问题的尺度。Rombach 等人的 High-Resolution Image Synthesis with Latent Diffusion Models 提出,不要直接在 pixel space 上做 diffusion,而是在一个 pretrained autoencoder 的 latent space 上做 diffusion。[10]

整个 pipeline 可以简单理解成:

imagelatentdiffusion in latent spacedecoded image.\text{image} \rightarrow \text{latent} \rightarrow \text{diffusion in latent space} \rightarrow \text{decoded image}.

这是一个非常重要的工程转向。Autoencoder 负责感知压缩,diffusion model 在更小、更高效的表示空间里工作。再通过 cross-attention layers,模型就可以接收 text、bounding box 或其他 conditioning input。

这也是理解 Stable Diffusion 的关键桥梁。重点不只是模型变小了,而是 diffusion 终于变得便宜到可以被更多人训练、运行和修改。

对视觉生成的学习来说,latent diffusion 是必须理解的一步:

现代图像生成不只是更好的 denoising model,也是在选择一个更合适的 denoising 空间。

Design Space 阶段:把各种旋钮拆开看

到 2022 年左右,diffusion 已经有很多可调部分:noise schedule、parameterization、sampler、loss weighting、preconditioning、guidance、architecture、latent space。Karras 等人的 Elucidating the Design Space of Diffusion-Based Generative Models 很有价值,因为它试图把这些选择拆开,而不是把它们混成一个模糊的 recipe。[11]

这种工作不一定像新 demo 那样吸引眼球,但对理解领域很重要。当一个 diffusion model 变强时,原因不一定是笼统的“diffusion 更好了”,而可能是:

  • sampling trajectory 更好求解;
  • network prediction target 更容易;
  • noise schedule 把能力分配到了更合适的区域;
  • solver 需要更少的 function evaluations;
  • architecture 更适合 scaling。

这对后面读论文很重要。很多论文并不是要替代 diffusion,而是在改 diffusion 系统里的某一个旋钮。

Diffusion Transformer:从 U-Net 到 Transformer Backbone

很长一段时间里,一提到 diffusion model,默认想象就是“U-Net + noise timestep”。U-Net 对图像很合理,因为它保留空间结构,又能通过 downsampling 和 upsampling 同时处理局部细节与全局语义。

Diffusion Transformer,也就是 DiT,改变了这个默认想象。Peebles 和 Xie 的 Scalable Diffusion Models with Transformers 用一个处理 latent patches 的 Transformer 替换了常见的 U-Net backbone。[12]

这其实是两条趋势的自然交汇:

  • latent diffusion 让输入更小,也更像 token;
  • Transformer 在 tokenized data 上有很强的 scaling 能力。

DiT 并不意味着 U-Net 立刻消失。它更像是说明 diffusion 正在更直接地进入 scaling-law 时代。如果 image latent 可以被切成 patches,再变成 tokens,那么视觉生成模型就可以继承很多大 Transformer 系统的思路:depth、width、attention、conditioning 和 compute scaling。

所以我觉得 DiT 是一个历史节点,而不只是另一个模型变体。它暗示了视觉生成正在靠近语言模型经历过的那套 scaling 逻辑。

一张简短时间线

阶段代表工作主要贡献
2015Sohl-Dickstein et al.把 diffusion 定义成从噪声回到数据的 learned reverse process
2019Song & Ermon用 noise-conditioned scores 建立 score-based generative modeling
2020DDPM简化 denoising objective,让高质量图像生成变得可训练
2020DDIM通过 non-Markovian implicit process 加速采样
2020/2021Score-based SDE用连续时间框架统一 diffusion 和 score-based models
2021Improved DDPM / Guided Diffusion改进质量、likelihood、采样步数和 guidance
2021/2022GLIDE / classifier-free guidance让文本条件和无额外 classifier 的 guidance 变得实用
2021/2022Latent Diffusion在压缩 latent space 中做 diffusion,实现高分辨率生成
2022EDM拆解 sampler、schedule、parameterization 等 design choices
2022/2023DiT用处理 latent patches 的 Transformer 替换 U-Net

我现在怎样记住这条发展线

Diffusion model 的历史可以压缩成四次转变。

第一,diffusion 把生成变成了渐进过程。它不是从 latent vector 一步跳到样本,而是学习如何反转一个受控的破坏过程。

第二,DDPM 让配方变得实用。一个在不同 timestep 预测噪声的 U-Net,把理论变成了可以训练的图像模型。

第三,sampling 和 guidance 让 diffusion 变得好用。DDIM 和后来的 sampler 解决速度问题,classifier guidance 和 classifier-free guidance 解决可控性问题。

第四,latent diffusion 和 DiT 让 diffusion 变得可扩展。Latent diffusion 把工作搬到更便宜的表示空间里,DiT 则把 diffusion 接到了 Transformer scaling 的路线。

对我自己的视觉生成学习来说,这条历史很有帮助,因为它告诉我读新论文时应该看哪里。有的论文改 noising process,有的改 sampler,有的改 conditioning mechanism,有的改 latent representation,有的改 backbone。它们背后都在回答同一个大问题:

我们怎样学习一条从噪声回到视觉结构的路径,并让这条路径足够快、足够可控、足够可扩展?

这就是 diffusion model 为什么不只是一个生成技巧,而是变成现代视觉生成 AI 的通用框架。

参考文献


  1. Jascha Sohl-Dickstein, Eric A. Weiss, Niru Maheswaranathan, and Surya Ganguli. "Deep Unsupervised Learning using Nonequilibrium Thermodynamics." arXiv:1503.03585, 2015. https://arxiv.org/abs/1503.03585 ↩︎

  2. Yang Song and Stefano Ermon. "Generative Modeling by Estimating Gradients of the Data Distribution." arXiv:1907.05600, 2019. https://arxiv.org/abs/1907.05600 ↩︎

  3. Yang Song, Jascha Sohl-Dickstein, Diederik P. Kingma, Abhishek Kumar, Stefano Ermon, and Ben Poole. "Score-Based Generative Modeling through Stochastic Differential Equations." arXiv:2011.13456, 2020. https://arxiv.org/abs/2011.13456 ↩︎

  4. Jonathan Ho, Ajay Jain, and Pieter Abbeel. "Denoising Diffusion Probabilistic Models." arXiv:2006.11239, 2020. https://arxiv.org/abs/2006.11239 ↩︎

  5. Jiaming Song, Chenlin Meng, and Stefano Ermon. "Denoising Diffusion Implicit Models." arXiv:2010.02502, 2020. https://arxiv.org/abs/2010.02502 ↩︎

  6. Alex Nichol and Prafulla Dhariwal. "Improved Denoising Diffusion Probabilistic Models." arXiv:2102.09672, 2021. https://arxiv.org/abs/2102.09672 ↩︎

  7. Prafulla Dhariwal and Alex Nichol. "Diffusion Models Beat GANs on Image Synthesis." arXiv:2105.05233, 2021. https://arxiv.org/abs/2105.05233 ↩︎

  8. Alex Nichol et al. "GLIDE: Towards Photorealistic Image Generation and Editing with Text-Guided Diffusion Models." arXiv:2112.10741, 2021. https://arxiv.org/abs/2112.10741 ↩︎

  9. Jonathan Ho and Tim Salimans. "Classifier-Free Diffusion Guidance." arXiv:2207.12598, 2022. https://arxiv.org/abs/2207.12598 ↩︎

  10. Robin Rombach, Andreas Blattmann, Dominik Lorenz, Patrick Esser, and Bjorn Ommer. "High-Resolution Image Synthesis with Latent Diffusion Models." arXiv:2112.10752, 2021. https://arxiv.org/abs/2112.10752 ↩︎

  11. Tero Karras, Miika Aittala, Timo Aila, and Samuli Laine. "Elucidating the Design Space of Diffusion-Based Generative Models." arXiv:2206.00364, 2022. https://arxiv.org/abs/2206.00364 ↩︎

  12. William Peebles and Saining Xie. "Scalable Diffusion Models with Transformers." arXiv:2212.09748, 2022. https://arxiv.org/abs/2212.09748 ↩︎