扩散模型擅长学习数据集 $p(x)$ 的潜在分布,并通过逆转渐进的加噪过程生成高质量样本。从纯高斯噪声 $x_T$ 开始,逆向过程会迭代地对其去噪,以生成一个看起来来自原始数据的样本 $x_0$。然而,这种标准生成过程是无条件的。尽管它能生成逼真的输出,但它不提供对生成何种特定输出的明确控制。如果你在一个多样化的动物数据集上训练扩散模型,运行标准采样程序可能会生成狗、猫、鸟或训练数据中存在的任何其他动物的图像。你实际上是从学到的分布 $p(x)$ 中获得一个随机样本,但你无法直接要求模型生成,例如,只生成猫的图像。这种缺乏直接控制的情况限制了无条件模型在许多场景下的实用性。通常,我们需要根据特定要求或输入来引导生成过程。考虑以下常见应用情况:类别条件生成: 我们可能希望生成属于特定类别的图像,例如从数据集中只生成“桥梁”的图片,或者只生成“轿车”类型的汽车。文本到图像合成: 一个非常流行的应用是根据描述性文本提示生成图像,例如为“宇航员在月球上骑马”创建图像。图像编辑和转换: 诸如图像修复(填充缺失区域)、风格迁移(将一幅图像的风格应用到另一幅)或超分辨率等任务通常需要以现有输入图像为条件进行生成。数据增强: 生成符合某些特定标准,用于训练下游模型的合成数据。在所有这些例子中,目标不只是从整体数据分布 $p(x)$ 中采样,而是从条件分布 $p(x|y)$ 中采样,而 $y$ 代表条件信息。这个条件变量 $y$ 可能是:一个类别标签(例如,代表“猫”或“狗”的整数)。一个源自提示的文本嵌入。另一幅图像(用于图像转换或编辑等任务)。与生成任务相关的其他形式的结构化数据。因此,我们需要机制来将这些条件信息 $y$ 整合到扩散模型的生成过程中。我们需要方法来引导迭代去噪步骤,以便最终输出 $x_0$ 不仅看起来逼真(属于数据流形),而且与提供的条件 $y$ 对齐。本章将重点介绍正是这些机制。我们将研究允许我们控制扩散模型输出的技术,将其从随机样本生成器转变为可控的合成引擎。我们首先会了解外部模型如何引导过程,然后转向更整合的方法,例如分类器无关引导,它已成为条件扩散模型的一种标准技术。