为什么直接学习 μ~t\tilde{\mu}_tμ~t 会复杂?
-
μ~t\tilde{\mu}_tμ~t 的表达式复杂:
μ~t\tilde{\mu}_tμ~t 的具体形式为:
μ~t(xt,x0)=αˉt−1βt1−αˉtx0+αt(1−αˉt−1)1−αˉtxt \tilde{\mu}_t(x_t, x_0) = \frac{\sqrt{\bar{\alpha}_{t-1}} \beta_t}{1-\bar{\alpha}_t} x_0 + \frac{\sqrt{\alpha_t} (1-\bar{\alpha}_{t-1})}{1-\bar{\alpha}_t} x_t μ~t(xt,x0)=1−αˉtαˉt−1βtx0+1−αˉtαt(1−αˉt−1)xt
这里,μ~t\tilde{\mu}_tμ~t 依赖于 x0x_0x0,但 x0x_0x0 是逆向过程中需要重建的目标,在推理时是未知的。因此,神经网络必须从 xtx_txt 和 ttt 间接推断 x0x_0x0,这增加了学习的难度。 -
数值范围变化大:
μ~t\tilde{\mu}_tμ~t 中的系数(如 αˉt−1βt1−αˉt\frac{\sqrt{\bar{\alpha}_{t-1}} \beta_t}{1-\bar{\alpha}_t}1−αˉtαˉt−1βt)随着时间步 ttt 变化很大,导致 μ~t\tilde{\mu}_tμ~t 的数值范围在不同 ttt 上差异显著。这会使训练不稳定,因为神经网络需要适应这些变化,优化过程可能难以收敛。 -
训练目标不直接:
如果直接预测 μ~t\tilde{\mu}_tμ~t,损失函数是 μ~t\tilde{\mu}_tμ~t 和 μθ(xt,t)\mu_\theta(x_t, t)μθ(xt,t) 之间的均方误差(MSE):
∥μ~t−μθ(xt,t)∥2 \| \tilde{\mu}_t - \mu_\theta(x_t, t) \|^2 ∥μ~t−μθ(xt,t)∥2
但由于 μ~t\tilde{\mu}_tμ~t 依赖于 x0x_0x0,这个损失函数隐含地要求神经网络准确重建 x0x_0x0,这对于高维数据(如图像)来说是一个复杂的回归问题。
如何简化?预测噪声 ϵ\epsilonϵ
在扩散模型中,一个更简单的方法是让神经网络预测噪声 ϵ\epsilonϵ,而不是直接预测 μ~t\tilde{\mu}_tμ~t。这是因为从正向过程,我们有:
xt=αˉtx0+1−αˉtϵ
x_t = \sqrt{\bar{\alpha}_t} x_0 + \sqrt{1-\bar{\alpha}_t} \epsilon
xt=αˉtx0+1−αˉtϵ
其中 ϵ∼N(0,I)\epsilon \sim \mathcal{N}(0, I)ϵ∼N(0,I) 是添加的高斯噪声。通过重参数化,我们可以将 μ~t\tilde{\mu}_tμ~t 表示为 xtx_txt 和 ϵ\epsilonϵ 的函数:
μ~t(xt,ϵ)=1αt(xt−βt1−αˉtϵ)
\tilde{\mu}_t(x_t, \epsilon) = \frac{1}{\sqrt{\alpha_t}} \left( x_t - \frac{\beta_t}{\sqrt{1-\bar{\alpha}_t}} \epsilon \right)
μ~t(xt,ϵ)=αt1(xt−1−αˉtβtϵ)
因此,如果我们让神经网络预测 ϵ\epsilonϵ,即学习一个函数 ϵθ(xt,t)\epsilon_\theta(x_t, t)ϵθ(xt,t),那么逆向过程的均值可以表示为:
μθ(xt,t)=1αt(xt−βt1−αˉtϵθ(xt,t))
\mu_\theta(x_t, t) = \frac{1}{\sqrt{\alpha_t}} \left( x_t - \frac{\beta_t}{\sqrt{1-\bar{\alpha}_t}} \epsilon_\theta(x_t, t) \right)
μθ(xt,t)=αt1(xt−1−αˉtβtϵθ(xt,t))
这样,训练目标就变成了最小化预测噪声和真实噪声之间的 MSE:
∥ϵ−ϵθ(xt,t)∥2
\| \epsilon - \epsilon_\theta(x_t, t) \|^2
∥ϵ−ϵθ(xt,t)∥2
为什么预测 ϵ\epsilonϵ 更简单?
-
任务更直接:
预测噪声 ϵ\epsilonϵ 是一个更简单的任务,因为 ϵ\epsilonϵ 是从标准正态分布采样的,其均值为0、方差为1。神经网络只需要估计一个相对稳定的噪声模式,而不需要直接处理图像内容的重建。这相当于只学习“差异”部分,即 xtx_txt 和 x0x_0x0 之间的噪声。 -
数值稳定:
噪声 ϵ\epsilonϵ 的尺度始终一致(标准正态),避免了 μ~t\tilde{\mu}_tμ~t 的系数变化带来的数值不稳定。损失函数 ∥ϵ−ϵθ∥2\| \epsilon - \epsilon_\theta \|^2∥ϵ−ϵθ∥2 也更容易优化。 -
物理意义清晰:
在正向过程中,xtx_txt 是通过添加噪声 ϵ\epsilonϵ 得到的,因此预测 ϵ\epsilonϵ 直观地对应了“去噪”操作。当 ttt 较小时,xtx_txt 接近 x0x_0x0,噪声 ϵ\epsilonϵ 很小,神经网络只需要预测一个小的修正;当 ttt 较大时,xtx_txt 很嘈杂,但噪声 ϵ\epsilonϵ 仍然是标准正态,网络可以专注于估计大幅噪声。
总结
直接学习 μ~t\tilde{\mu}_tμ~t 复杂是因为它要求神经网络隐含地恢复 x0x_0x0,并处理不同时间步的数值变化。而预测噪声 ϵ\epsilonϵ 简化了优化过程,因为它将问题转化为一个更直接的去噪任务,只关注于估计添加的噪声,从而提高了训练的稳定性和效率。这就是为什么在扩散模型(如DDPM)中,通常选择预测 ϵ\epsilonϵ 而不是直接预测 μ~t\tilde{\mu}_tμ~t。
5047



被折叠的 条评论
为什么被折叠?



