扩散原野DIFFUSION FIELD
0/8
04Training objective

让网络猜中那份噪声。

训练时随机挑一个时间步,把已知噪声加入真实数据,再要求网络把它预测出来。一次 batch 不需要完整跑完 T 步。

核心问题

为什么“预测 ε\varepsilon”能够帮助生成 x0x_0?因为给定 xtx_t 与正确的 ε\varepsilon,就能代数地反推出 x0x_0,并进一步得到反向分布的均值。

tt随机时间步tt · 随机时间步shape: [B]

每个样本独立采样,常见取值 1,,T1,\ldots,T

ε\varepsilon监督目标ε\varepsilon · 监督目标shape: [B,C,H,W]

构造 xtx_t 时实际使用的标准高斯噪声。

εθ\varepsilon_\theta模型输出εθ\varepsilon_\theta · 模型输出shape: [B,C,H,W]

U-Net 对 ε\varepsilon 的预测。

LsimpleL_{\mathrm{simple}}简化损失LsimpleL_{\mathrm{simple}} · 简化损失shape: 标量

噪声预测的均方误差期望。

One training step

一次 batch 里发生了什么?

01 / 08
取真实数据
随机采样时间步
采样高斯噪声
一步构造带噪样本
输入网络
得到噪声预测
计算损失
反向传播
STEP 1

取真实数据

从数据集读取一个 batch,shape 通常为 [B,C,H,W][B,C,H,W]

从 ELBO 到简化损失

01

最大似然

优化数据在模型下的概率。

02

负对数似然

优化数据在模型下的概率。

03

ELBO

把不可直接计算的目标变成可优化上界。

04

逐时刻 KL 分解

把不可直接计算的目标变成可优化上界。

05

高斯 KL

把不可直接计算的目标变成可优化上界。

06

均值参数化

利用高斯结构整理为网络可学习的回归目标。

07

噪声预测 MSE

利用高斯结构整理为网络可学习的回归目标。

最终的常用训练目标

Lsimple=Et,x0,ε ⁣[εεθ(xt,t)22]L_{\text{simple}}=\mathbb E_{t,x_0,\varepsilon}\!\left[\left\|\varepsilon-\varepsilon_\theta(x_t,t)\right\|_2^2\right]

tt 通常对每个样本均匀采样;ε\varepsilon 来自标准高斯;网络输入是 xtx_ttt,输出与 xtx_t 同 shape 的噪声估计。MSE 来自 DDPM 中特定参数化与加权简化,不应泛化为“所有扩散模型只能用 MSE”。

换一种方式理解

为什么损失看起来只是在做普通回归?

给模型出一道随机难度的“找噪声”题

每次训练随机决定题目难度 tt,再让模型指出哪些像素成分来自噪声。长期覆盖所有 tt 后,模型学会整条反向路径需要的局部修正。

随机难度 × 大量真实样本 × 已知答案 ε\varepsilon
严格边界: LsimpleL_{\mathrm{simple}} 与完整负 ELBO 有密切推导关系,但它不是逐项完全相等的原始变分下界;Ho 等人在实践中使用这个简化目标获得更好的样本质量。
停下来想 30 秒

batch size 为 64 时,常见实现中的 tt 最合理的 shape 是?

下一节:DDPM 采样