这张图片展示了在扩散模型中采样过程(Sampling Process)的详细步骤和算法。
采样算法(Algorithm 2 Sampling)
该算法展示了如何从噪声中逐步生成图像。
步骤解析:
-
初始化:
- 从标准正态分布 N ( 0 , I ) \mathcal{N}(0, I) N(0,I)中采样初始噪声图像 x T x_T xT。
- 这个图像 x T x_T xT是完全噪声化的。
-
逐步去噪:
- 从时间步 T T T开始,逐步向前推进到时间步 1 1 1。
- 对于每个时间步 t t t,执行以下操作:
-
噪声采样:
- 采样噪声 z ∼ N ( 0 , I ) z \sim \mathcal{N}(0, I) z∼N(0,I),如果 t > 1 t > 1 t>1则从标准正态分布中采样,否则设为零。
-
更新公式:
- 使用以下公式更新
x
t
−
1
x_{t-1}
xt−1:
x t − 1 = 1 α t ( x t − 1 − α t 1 − α ˉ t ϵ θ ( x t , t ) ) + σ t z x_{t-1} = \frac{1}{\sqrt{\alpha_t}} \left( x_t - \frac{1 - \alpha_t}{\sqrt{1 - \bar{\alpha}_t}} \epsilon_\theta(x_t, t) \right) + \sigma_t z xt−1=αt1(xt−1−αˉt1−αtϵθ(xt,t))+σtz
- α t \alpha_t αt和 α ˉ t \bar{\alpha}_t αˉt是预定义的噪声参数。
- ϵ θ ( x t , t ) \epsilon_\theta(x_t, t) ϵθ(xt,t)是由噪声预测网络(Noise Predictor)预测的噪声。
- σ t \sigma_t σt是调整噪声幅度的参数。
- 使用以下公式更新
x
t
−
1
x_{t-1}
xt−1:
-
结束循环:
- 继续进行下一个时间步 t − 1 t-1 t−1,直到到达时间步 1 1 1。
-
返回生成的图像:
- 最终生成无噪声的图像 x 0 x_0 x0。
图解步骤:
-
初始噪声图像 x T x_T xT:
- 左上角显示的是从标准正态分布中采样的初始噪声图像。
-
噪声预测:
- 每个时间步 t t t的噪声预测器根据当前的噪声图像 x t x_t xt和时间步 t t t,预测当前图像中的噪声 ϵ θ ( x t , t ) \epsilon_\theta(x_t, t) ϵθ(xt,t)。
-
去噪过程:
- 根据噪声预测器的输出,使用公式更新 x t − 1 x_{t-1} xt−1,逐步减少图像中的噪声。
-
添加噪声 z z z:
- 在去噪过程中,重新添加一部分标准正态噪声 z z z以保持噪声水平的合理性,确保生成过程的稳定性。
-
最终生成的图像:
- 经过多次迭代去噪操作,最终生成无噪声的图像 x 0 x_0 x0,显示在右下角。
总结:
扩散模型通过从标准正态分布采样初始噪声图像,并逐步去噪,最终生成高质量的图像。去噪过程中的关键在于噪声预测器的准确性和公式的合理性,确保每一步都能有效减少图像中的噪声,同时保持图像的结构和细节。