想象一下教AI画画:

- 传统方法(如GAN):直接学习一张完美的画是什么样的,然后尝试画出来,这很难,容易出错。
- 扩散模型的方法:先把一幅画(训练数据)一点点地加上“噪点”,直到它变成一片完全随机的、没有意义的噪声。让AI学习这个过程的逆过程——如何从一片随机噪声中,一步步“去除噪点”,还原成一幅有意义的画。
这个“学习去噪”的过程,就是扩散模型的核心。
两大关键过程
扩散模型的工作流程分为两个明确的阶段:前向扩散过程 和 反向去噪过程。
前向扩散过程
目标: 将一张真实的图片(来自训练集)逐步、确定性地破坏成纯高斯噪声(就像电视雪花屏)。 过程:
- 从真实图片 ( x_0 ) 开始。
- 在每一步 ( t ) (共 T 步,例如1000步),我们向图片中添加一点点高斯噪声。
- 添加的噪声量由一个预设的噪声调度表 控制,通常随着步数增加,噪声量越来越大。
- 经过 T 步后,图片 ( x_T ) 就变成了一个完全与原始图片无关的纯噪声,其分布是一个标准正态分布 ( N(0, I) )。
重要特性:
- 这是一个固定的、无需学习的马尔可夫链过程(每一步只依赖上一步)。
- 得益于数学设计,我们可以通过一个公式,直接从 ( x_0 ) 计算出任意第 ( t ) 步的加噪结果 ( x_t ),而无需一步步迭代,公式为:
[ x_t = \sqrt{\bar{\alpha}_t} x_0 + \sqrt{1 - \bar{\alpha}_t} \epsilon ]
- ( \epsilon ) 是从标准正态分布采样的噪声。
- ( \bar{\alpha}_t ) 是一个由噪声调度表决定的、随时间递减的系数,它控制着原始信号和噪声的混合比例,当 ( t = T ) 时,( \bar{\alpha}_T \approx 0 ),( x_T \approx \epsilon )。
反向去噪过程
目标: 学习一个去噪模型,能够将纯噪声 ( x_T ) 一步步变回一张合理的图片 ( x_0 )。 核心问题: 如何从 ( xt ) (第t步的含噪图片)预测出 ( x{t-1} )? 关键洞察(DDPM的贡献): 直接预测 ( x{t-1} ) 或去噪后的干净图片很困难,但作者发现,**预测在前向过程中添加到 ( x{t-1} ) 上以得到 ( x_t ) 的那个噪声 ( \epsilon )**,是一个更简单、更稳定的任务。
模型的学习目标:
- 取一张真实图片 ( x_0 )。
- 随机选择一个时间步 ( t ) (1 到 T 之间)。
- 使用前向过程公式,生成 ( t ) 时刻的含噪图片 ( x_t )。
- 让一个神经网络(通常是 U-Net)根据 ( x_t ) 和 ( t ) (时间步信息会通过位置编码输入),去预测加入到 ( x0 ) 上的噪声 ( \epsilon\theta(x_t, t) )。
- 将模型的预测噪声 ( \epsilon\theta ) 与真实在前向过程中加入的噪声 ( \epsilon ) 进行比较,计算均方误差损失: [ L = ||\epsilon - \epsilon\theta(x_t, t)||^2 ]
- 通过梯度下降不断优化神经网络参数 ( \theta ),让它的预测越来越准。
核心组件:U-Net 模型
去噪神经网络通常是 U-Net 结构,它在图像生成中非常有效,因为它:
- 具有编码器-解码器结构:能捕捉图片的全局上下文和局部细节。
- 包含跳跃连接:防止在降采样和上采样过程中丢失重要信息。
- 融入时间步信息:通过“时间步嵌入”,让网络知道当前正在进行哪一步的去噪,这对于学习不同噪声水平下的去噪策略至关重要。
- 可能包含注意力机制:尤其是Transformer中的自注意力或交叉注意力层,用于建模图像不同区域之间的长程依赖关系(这对于生成结构一致的图像非常关键)。
训练与采样(生成)流程
训练阶段(只学去噪):
- 从数据集中采样一张干净图片 ( x_0 )。
- 均匀采样一个时间步 ( t \sim Uniform({1, ..., T}) )。
- 从标准正态分布采样噪声 ( \epsilon \sim N(0, I) )。
- 计算加噪后的图片 ( x_t )。
- 将 ( (xt, t) ) 输入U-Net,得到预测噪声 ( \epsilon\theta )。
- 计算 ( \epsilon_\theta ) 和 ( \epsilon ) 的损失,反向传播更新U-Net参数。
- 重复以上步骤直至收敛。
采样/生成阶段(运行逆过程):
- 从纯噪声 ( x_T \sim N(0, I) ) 开始。
- 从 ( t = T ) 到 ( t = 1 ) 循环:
- 将当前噪声图 ( xt ) 和时间步 ( t ) 输入训练好的U-Net,得到预测的噪声 ( \epsilon\theta(x_t, t) )。
- 根据一个采样器(如DDPM的公式或更快的DDIM)的更新规则,计算上一时刻的、噪声更少的图像 ( x_{t-1} )。
- 公式基本形式包含:从 ( x_t ) 中减去预测的噪声,并添加一些随机性(方差)。
- 循环结束,得到生成的干净图片 ( x_0 )。
为何成功?优势与特点
- 训练稳定: 相比GAN,其训练目标(预测噪声)更简单明确,避免了判别器和生成器之间难以平衡的对抗博弈。
- 生成质量高: 逐步去噪的过程能产生细节丰富、多样性好的样本。
- 概率模型基础坚实: 基于变分推断和马尔可夫链,有良好的理论解释。
- 灵活性: 可以通过条件控制(如文本提示、类别标签、草图等)来引导生成过程,著名的 Stable Diffusion 就是在潜在空间进行扩散,并结合了CLIP文本编码器来实现文生图。
- 与人类创作过程的类比: 从模糊到清晰,与绘画、雕刻的过程有相似之处。
总结与核心公式提要
- 前向过程(加噪): ( x_t = \sqrt{\bar{\alpha}_t} x_0 + \sqrt{1 - \bar{\alpha}_t} \epsilon ), (\epsilon \sim N(0, I))
- 训练目标(核心): 最小化 ( ||\epsilon - \epsilon_\theta(x_t, t)||^2 )
- 反向过程(生成): ( x_{t-1} = \frac{1}{\sqrt{\alpha_t}}(x_t - \frac{1-\alpha_t}{\sqrt{1-\bar{\alpha}t}} \epsilon\theta(x_t, t)) + \sigma_t z ), ( z \sim N(0, I) )
扩散模型的基本原理训练一个U-Net去预测并移除在不同噪声水平下添加到数据中的噪声,从而学会从随机噪声中一步步重构出具有复杂结构的数据分布。 这个优雅的“破坏-重建”范式,使其成为了当前生成式AI最重要的基石之一。