趋近智
逆向扩散过程的核心是一个神经网络,通常是U-Net,它的任务是预测添加到图像 中以在特定时间步 产生噪声版本 的噪声 。这个过程的一个主要方面是,相同 的网络参数 必须用于 所有 可能的时间步 (从 到 )。
单个网络如何根据当前时间步调整其行为?它需要被“告知”当前正在处理哪个时间步 。简单地将整数 直接输入网络通常不是最佳选择。神经网络通常更适合处理归一化输入,并且原始整数无法轻易传达扩散过程中的“位置”,以供网络充分利用。此外,不同的时间步需要非常不同的去噪行为; 时的噪声模式和幅度与 时的有显著差异。
因此,我们需要一种有效的方法来表示时间步 并将这些信息注入模型。最常见且有效的方法,受Transformer架构 (Vaswani et al., 2017) 启发,是使用 正弦位置编码。
并非使用原始整数 ,我们将其转换为一个高维向量 。这个编码向量提供了时间步更丰富、更结构化的表示,网络可以更好地使用它。标准方法是使用不同频率的正弦和余弦函数:
令 为所需编码向量的维度。对于从 到 的每个维度 ,编码分量计算如下:
这里:
这种公式构建了一个向量,其中每对维度 对应一个特定频率的正弦波。较低维度 (小的 ) 随 缓慢变化,而较高维度 (大的 ) 则快速变化。这种多频率表示使得网络可以轻易区分不同时间步,并在需要时更好地泛化到未见过的时间步。
正弦编码在时间步 0 到 1000 之间不同维度的示例值,假设编码维度 大于 51。较低维度变化缓慢,而较高维度快速振荡。
一旦我们有了时间步编码向量 (通常维度为256或512),我们需要将其整合到U-Net架构中。U-Net通过一系列卷积层、下采样和上采样块处理噪声图像 。时间步信息需要影响这些计算。
一个常见的方法包含:
图示:处理后的时间编码如何典型地添加到U-Net块内的特征图。正弦编码在注入前首先通过MLP进行转换。
通过这种方式整合时间步信息,单一U-Net模型 学习根据 所指示的当前噪声水平来调整其噪声预测。这种基于时间的条件化是扩散模型操作的重要组成部分,使网络能够在逆向过程的每一步执行适当的去噪操作。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造