在这里,L_\mathrm{simple}就是 DDPM 使用的 L2 损失:L_\mathrm{simple}=E_{t,\mathbf{x}0,\epsilon}[||\epsilon-\epsilon_\theta(\mathbf{x}_t,t)||^2],而L_\mathrm{vlb}是用 VAE 的形式写出的损失函数: \begin{aligned} L_\mathrm{vlb}&=L_0+L_1+
计算Loss的时候,如果损失函数的类型是MSE或者Rescaled_MSE,则计算DDPM里面的simple形式的预测噪声的损失或者变分下界对应的的loss。 如果高斯分布的噪声需要预测,则会计算vlb,而且不会影响对均值的学习,只会影响对方差的学习。学习的target可以是 x_{t-1}、 x_0 或者\epsilon (一般是这个)。 model_output = model...
DDPM 中使用固定的方差 \sigma_t^2\mathbf{I} 得到了比学习方差更好的结果。并且还发现使用固定方差 \sigma^2_t=\beta_t 或\sigma^2_t=\tilde\beta_t 效果差不多。这两个方差实际上分别对应了给定数据分布 q(x_0) 分别为各向同性的高斯分布和 delta 函数时所对应的方差的上界和下界。 优化Log ...
由于DDPM中的损失函数 L _ {\text{simple}} 不依赖于 \Sigma_\theta(x_t,t) ,作者定义一个新的混合(hybrid)损失函数: L_{\text{hybrid}} = L _ {\text{simple}} + \lambda L _ {\text{vlb}} (实验中 \lambda =0.001) L _ {\text{vlb}} 计算起来不算困难,当 t=0 时计算一下负对数似然...