来源:Song、Meng、Ermon,2020,arXiv 2010.02502 v4,ICLR 2021。公式号与论文一致。符号约定与常用公式卡见本单元 00_导读。 这一节讲:§1 把 DDPM 全套换上本文记号($\alpha$ 从此指累积量),训练目标写成带权重族 $L_\gamma$(公式 5);§2 确认全篇支点,这个目标的原料只有各时刻的边缘分布,不含任何联合信息。 --- ## §1 准备:DDPM 换上本文记号 **这一步**:把已学的 DDPM 全套用本文记号重新登场一遍,没有新知识,只是换衣服。但这件衣服换得有目的:全文真正用到的量只有累积量,跳步时按下标查表就走,所以记号里干脆只留累积量(陷阱见 00_导读的符号约定,进门必看)。 DDPM 的生成模型与变分下界(公式 1、2)、前向单步链(公式 3)这里不重述。把单步链从 $x_0$ 滚到 $x_t$、中间变量积掉,得到边缘 $q(x_t\mid x_0) = \mathcal{N}(\sqrt{\alpha_t}x_0,(1-\alpha_t)I)$,采样形式即公式 4。 **这条边缘是全篇的轴:后面造任何新过程,唯一要保住的就是它。** 训练目标: > [!abstract] 公式 5 · 训练目标(噪声预测 MSE) > $L_\gamma(\theta) := \sum_{t=1}^T \gamma_t\, \mathbb{E}_{x_0\sim q(x_0),\, \epsilon_t\sim\mathcal{N}(0,I)}\Big[\big\|\epsilon_\theta^{(t)}\big(\sqrt{\alpha_t}x_0+\sqrt{1-\alpha_t}\epsilon_t\big)-\epsilon_t\big\|_2^2\Big]$ 一句话:抽图 $x_0$、抽噪声 $\epsilon_t$,拼出加噪图 $x_t$(公式 4 右边),喂网络,网络猜噪声,猜的和真的算差的平方。$\gamma_t$ 是各项权重;$\gamma$ 全取 1 记 $L_1$,训练用的 $L_\text{simple}$ 与 $L_1$ 只差常数倍 $\frac1T$。 **关键性质(§6 闭环要用)**:$L_\gamma$ 的 $T$ 项互不牵连。若网络参数跨 $t$ 不共享,最优解与 $\gamma$ 取值无关。 > [!note]- 联想:和DDPM的$L_{simple}$的关系 > 当 $\gamma_t=1$ 时,DDIM 的 $L_\gamma$ 就是 DDPM 的噪声预测训练目标,都是训练 $\epsilon_\theta(x_t,t)$ 去预测加到 $x_t$ 里的噪声 $\epsilon$。 > 区别只是写法和视角:DDPM 通常写成随机抽一个 $t$ 来算 $\mathbb{E}_{t,x_0,\epsilon}[\cdot]$,DDIM 把它展开成对所有时间步求和 $\sum_t$。 > $L_\gamma$ 不是某一个固定 loss,而是一族 loss:固定一个 $\gamma=[\gamma_1,\dots,\gamma_T]$ 就得到一个具体的 $L_\gamma$;让 $\gamma$ 取不同值,就得到一族不同加权方式的噪声预测目标。 > DDPM 常用的 $L_{\text{simple}}$ 对应其中 $\gamma=\mathbf{1}$ 的特例,也就是所有时间步权重都取 $1$;DDIM 论文把它放进 $L_\gamma$ 这个统一框架里看。 > [!note]- 推导:方差为什么累计成 $1-\alpha_t$(数字验证) > 取累积量 $\alpha_{0:4} = 1,\ 0.9,\ 0.8,\ 0.7,\ 0.6$。规则:每步旧方差乘比值 $\frac{\alpha_t}{\alpha_{t-1}}$(信号缩水),再加新噪声 $1-\frac{\alpha_t}{\alpha_{t-1}}$(回填亏空)。 > > - $t=1$:比值 $\frac{0.9}{1}=\frac{9}{10}$,信号 $1\times\frac{9}{10}=0.9$,噪声 $0\times\frac{9}{10}+\frac{1}{10}=0.1$ > - $t=2$:比值 $\frac{0.8}{0.9}=\frac{8}{9}$,信号 $0.9\times\frac{8}{9}=0.8$,噪声 $0.1\times\frac{8}{9}+\frac{1}{9}=0.2$ > - $t=3$:比值 $\frac{0.7}{0.8}=\frac{7}{8}$,信号 $0.8\times\frac{7}{8}=0.7$,噪声 $0.2\times\frac{7}{8}+\frac{1}{8}=0.3$ > - $t=4$:比值 $\frac{0.6}{0.7}=\frac{6}{7}$,信号 $0.7\times\frac{6}{7}=0.6$,噪声 $0.3\times\frac{6}{7}+\frac{1}{7}=0.4$ > > 每行信号 $=\alpha_t$,噪声 $=1-\alpha_t$,相加恒为 1。这就是公式 4 的方差由来。 > [!note]- 推导:式子里的 ε 看着多,其实只有"一个真噪声 + 一个网络"(支线) > 真噪声 $\epsilon_t$ 是从标准高斯抽出的一个具体噪声(代码 `randn_like`)。它出现三次但都是同一个:期望下标里声明它、拼加噪图 $\sqrt{1-\alpha_t}\epsilon_t$、当标准答案被减去 $-\epsilon_t$。网络 $\epsilon_\theta^{(t)}$ 不是噪声,是个函数,吃进加噪图吐出"它猜的噪声"。网络输入位 $\sqrt{\alpha_t}x_0+\sqrt{1-\alpha_t}\epsilon_t$ 就是 $x_t$,所以整坨 = $\|\epsilon_\theta^{(t)}(x_t)-\epsilon_t\|_2^2$,就是 backward 的那个 loss。 --- ## §2 支点:训练目标只认边缘 **这一步**:确认整篇论文唯一的支点:训练目标 $L_\gamma$ 只依赖每个时刻的边缘 $q(x_t\mid x_0)$,完全不依赖时刻之间怎么搭配(联合分布)。后面每一节的每一个动作,全部站在这一条上,所以这里值得停下来把它验死。 **结论**:损失从前向过程拿到的全部原料,只有 $T$ 张各管各时刻的边缘分布。所以边缘固定后,时刻之间的搭配随便换,损失不变,网络不动。DDPM 的马尔可夫链只是众多搭配之一,§3 的 $q_\sigma$ 是另一整批。这就是 DDIM 的操作空间。 > [!note]- 推导:回看公式 5,三处验证它只用边缘 > 第一处,期望下标:声明的随机来源只有 $x_0\sim q(x_0)$ 和 $\epsilon_t\sim\mathcal{N}(0,I)$,没有任何从整条链抽样的动作。 > > 第二处,网络输入位:$\sqrt{\alpha_t}x_0+\sqrt{1-\alpha_t}\epsilon_t$ 按重参数化等价于"$x_t$ 从边缘 $q(x_t\mid x_0)$ 抽一个",所以第 $t$ 项的权重就是边缘。 > > 第三处,求和号:$T$ 项逐项相加,每项里只出现一个时刻的 $x_t$,没有任何一项让 $x_{t-1}$ 和 $x_t$ 同框。搭配信息只有同框时才用得到。 > > ($\gamma_t$ 在期望内外与此无关,纯排版。) > [!note]- 推导:硬币例子(一分钟直觉,支线) > 甲:$A$ 抛一次、$B$ 独立再抛一次;乙:$A$ 抛一次、$B:=A$ 复制。两方案里 $B$ 的边缘相同(都是公平硬币),但联合不同。若权重写成只用 $B$ 边缘的 $\mathbb{E}[f(B)]$,两方案永远同值;只有用联合的 $\mathbb{E}[AB]$ 才分得出(甲 0.25、乙 0.5)。公式 5 属前者,所以换搭配损失不变。 --- ## 本节一条线 换记号后训练目标 $L_\gamma$(公式 5)的原料只有各时刻边缘 $q(x_t\mid x_0)$(公式 4):期望下标、网络输入位、逐项求和三处验证都不含时刻间的联合。边缘固定,链条随便换、损失不变、网络不动,这就是 DDIM 全部的操作空间。