扩散模型:原理、实现与优化
1. 训练过程
扩散模型的训练过程使用损失函数来训练每个扩散时间步的网络。该损失函数旨在最小化前一个时间步隐藏变量的估计值 $ f_t[z_t, \phi_t] $ 与给定真实去噪数据 $ x $ 时它最可能取值之间的差异。
训练步骤如下:
1. 从原始密度中获取大量示例数据 $ x $。
2. 使用扩散核预测每个时间 $ t $ 对应的潜在变量 $ z_t $ 的多个值。
3. 训练模型 $ f_t[z_t, \phi_t] $ 以最小化损失函数(式18.29)。这些模型通常是非参数的(如查找表),但更常见的是深度神经网络。
2. 损失函数的重新参数化
虽然式18.29中的损失函数可以使用,但扩散模型使用不同的参数化方式效果更好。具体分为目标的重新参数化和网络的重新参数化。
2.1 目标的重新参数化
原始的扩散更新公式为:
$ z_t = \sqrt{\alpha_t} \cdot x + \sqrt{1 - \alpha_t} \cdot \epsilon $
由此可得数据项 $ x $ 可表示为:
$ x = \frac{1}{\sqrt{\alpha_t}} \cdot z_t - \frac{\sqrt{1 - \alpha_t}}{\sqrt{\alpha_t}} \cdot \epsilon $
将其代入式18.29的目标项中,经过一系列化简可得:
$ (1 - \alpha_{t - 1})\frac{\sqrt{1 - \beta_t}}{1 - \alpha_t}z_t + \frac{
超级会员免费看
订阅专栏 解锁全文
5377

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



