扩散模型(Diffusion Model)
一、 前言:从“毁灭”中创造
如果说 GAN 是在博弈中“伪造”数据,CycleGAN 是在循环中“翻译”风格,那么 扩散模型(Diffusion Model) 就是 2021 年之后图像生成领域的绝对霸主。它是 Stable Diffusion、Midjourney 和 OpenAI Sora 等顶尖 AI 的核心引擎。
扩散模型的灵感并非来自艺术,而是来自非平衡热力学。它的逻辑非常反直觉:
- GAN 的目标是直接画出一张好图。
- 扩散模型 的目标是学习如何将一堆杂乱无章的噪声,一步步还原成一张有意义的图像。
想象你有一杯清水,滴入一滴墨水(数据),墨水会逐渐扩散直到整杯水变黑(噪声)。扩散模型的工作就是记录这个扩散过程,然后“倒放”录像,把墨黑的水变回清澈并提取出那一滴墨水。
二、 概述:两大核心过程
扩散模型主要由两个阶段组成:
1. 前向过程 (Forward Diffusion) —— “毁灭”
向原始图片中不断加入微小的高斯噪声。随着步骤 的增加,图片最终会变成完全无法辨认的纯噪声。这个过程是固定的,不需要学习。
2. 反向过程 (Reverse Diffusion) —— “重建”
这是模型真正学习的地方。它尝试预测在每一步中被加入的噪声是多少,并将其“减去”。通过数千次的微小去噪,模型从纯噪声中“变”出了一张精美的图像。
三、 详细网络结构:DDPM 与 U-Net
最经典的扩散模型是 DDPM (Denoising Diffusion Probabilistic Models)。
1. 预测器:U-Net
扩散模型的核心不是在预测图片,而是在预测“噪声”。它通常使用 U-Net 架构:
- Encoder:压缩图像,提取深层语义。
- Decoder:恢复尺寸,还原细节。
- Skip Connections:保留原始位置信息,确保还原出的物体轮廓准确。
2. 引导者:时间步与条件 (Conditioning)
模型在去噪时需要知道当前是第几步(Time Embedding),如果是文生图(Text-to-Image),还需要加入文字特征(如 CLIP 提取的向量)来引导去噪的方向。
四、 PyTorch 代码示例:简易扩散模型骨架
五、 应用与工业突破
扩散模型之所以取代 GAN 成为主流,是因为它解决了 GAN 的几大痛点:
- 训练极其稳定:不再有 GAN 那种 G 和 D 力量不平衡导致的崩溃问题。
- 生成多样性极高:它能覆盖数据的全分布,不会出现“只会画一种猫”的情况。
- 控制力强:通过 ControlNet 等插件,可以精确控制生成图像的姿态、线稿和深度。
代表产品:
- Stable Diffusion:开源界的王者,支持本地部署。
- DALL-E 3:理解复杂的逻辑描述。
- Sora:将扩散模型应用到视频领域,实现时空连续的视频生成。

