趋近智
为了有效引导扩散模型的生成过程,我们常常需要调整底层神经网络的结构,通过条件信息 y。标准的U-Net,旨在基于带噪声的输入 xt 和时间步 t 预测噪声 ϵθ(xt,t),必须修改以整合 y。目标是使噪声预测变为条件预测,从而成为 ϵθ(xt,t,y)。
存在几种整合这些条件信息的方法,选择常常取决于 y 的性质和维度。
当条件信息 y 相对简单时,例如图像生成的类别标签(如“猫”、“狗”,对应整数标签 0、1),我们可以使用简单直接的技术。
嵌入并添加到时间步嵌入: 一种常用方法,特别是在无分类器引导(CFG)下有效,是类似于处理时间步 t 来处理类别标签 y。
torch.nn.Embedding)。我们称之为 ey。这种方法有效地在多个特征处理层面告知网络所需的类别。
图示将时间步和类别标签嵌入组合,然后注入U-Net模块的过程。
拼接: 另一种方法是沿着通道维度将嵌入的条件信息 ey 与输入 xt 拼接。然后,这个增强的输入被送入U-Net。此外,ey 也可以进行空间广播(平铺以匹配中间特征图的空间维度),并与网络更深层的特征图拼接。尽管简单,但与加性嵌入方法相比,这种方法可能无法总是有效地将条件信号传播到复杂的U-Net结构中。
当基于更丰富、更高维度的信息(如文本描述)进行条件生成时,简单的加法或拼接通常不足。文本需要捕捉序列依赖和详细含义。为此,交叉注意力已成为标准机制,构成了像 Stable Diffusion 这样的现代文本到图像模型的基础。
交叉注意力机制
回顾一下,U-Net(通常在Transformer风格的模块中)中的自注意力层允许图像表示中不同空间位置互相注意。交叉注意力层的工作方式类似,但允许图像表示注意条件信息 y。
以下是它在专为条件生成设计的U-Net模块中(例如,文本到图像)通常的工作方式:
输入: 该层接收两个主要输入:
查询、键、值:
注意力计算: 核心操作是根据查询(来自图像)和键(来自条件)之间的相似性计算注意力分数。常用方式是缩放点积注意力:
注意力(Q,K,V)=softmax(dkQKT)V此处,dk 是向量的维度。softmax 确保权重之和为1。
输出: 结果是值向量(源自条件 c)的加权和,其中权重取决于条件序列的每个部分与图像表示的每个部分的相关程度。此输出通常会加回到原始图像特征 z(通常通过残差连接),或在U-Net模块内进一步处理。
整合到U-Net中
交叉注意力层通常插入到U-Net的多个模块中,特别是在下采样、瓶颈和上采样路径中。这允许条件信息 y 在不同级别的特征抽象中影响去噪过程。
图示如何使用U-Net模块中的交叉注意力层将条件嵌入 (c) 整合到图像特征 (z) 中。查询来自 z,而键和值来自 c。
示例:文本到图像生成
在文本到图像模型中:
通过修改U-Net结构以整合条件信息 y,特别是使用诸如加性嵌入或交叉注意力等机制,扩散模型获得了执行受控生成的能力,从而生成根据类别标签或详细文本描述等特定要求定制的输出。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造