5003.大模型-架构-Diffusion-Example-0.前向训练数值例题

去噪扩散概率模型(Denoising Diffusion Probabilistic Model,DDPM) 的训练常被一句话概括为「随机 (t)、加噪、预测 (\epsilon)」——但若不清楚前向公式里每一项从哪来损失标签为何已知,容易误以为逆向过程在「猜随机数」。本文用 2 维玩具数据(可视为 2 像素灰度图)手算完整一步训练,符号与 Diffusion-1 完全一致;读完后应能回答:前向链不训练,监督来自真实 (x_0) + 已知 (\epsilon)

段末注释:DDPM 为 Ho et al.(2020)提出的离散时间高斯扩散框架;MSE 为均方误差(Mean Squared Error)。

前置阅读Diffusion-0 概述Diffusion-Math-0 §8–§10 重参数化与 SNR
后续阅读Example-1 蛋白序列离散扩散数值例题
公式推导Diffusion-1 §2、§5
连续时间对照Diffusion-2 §2 DSM

插图5003.大模型-架构-Diffusion-Example/example-fig*.png


1. 问题:前向「完全随机」,训练靠什么?

常见困惑:

误解 正解
前向加噪是黑箱随机,逆向无法学 前向 (q)固定高斯马尔可夫链,(\beta_t) 由人设定,不训练
网络要去猜未知的随机噪声 训练时 (\epsilon) 和 (t) 是自己采的,(\epsilon) 直接作回归标签
只有损坏后的 (x_t),没有监督 (x_0) 来自数据集;((x_0, t, \epsilon)) 确定性地构造 (x_t)

训练学的是 (p_\theta(x_{t-1}\mid x_t))(实践中以 (\epsilon_\theta(x_t,t)) 参数化),不是学前向 (q)。


2. 玩具设定:2 维「迷你图片」

把一张归一化后的灰度图缩成 2 个像素,即 (x_0 \in \mathbb{R}^2)。扩散步数取 (T=4)(真实 DDPM 常用 (T=1000),这里便于手算)。

2.1 符号表

符号 含义 本例取值
(x_0) 干净数据 ([,1.0,;-0.5,]^\top)
(T) 总扩散步数 (4)
(\beta_t) 第 (t) 步噪声方差 ({0.2,;0.3,;0.4,;0.5})
(\alpha_t) (1-\beta_t) ({0.8,;0.7,;0.6,;0.5})
(\bar\alpha_t) (\prod_{s=1}^{t}\alpha_s) 见 §2.2

2.1.1 (\alpha_t) 与 (\bar\alpha_t) 分别是什么?

前向单步转移(Diffusion-1 §2)为:

[
q(x_t \mid x_{t-1}) = \mathcal{N}\big(\sqrt{1-\beta_t},x_{t-1},,\beta_t \mathbf{I}\big)
= \mathcal{N}\big(\sqrt{\alpha_t},x_{t-1},,(1-\alpha_t)\mathbf{I}\big).
]

符号 时间范围 含义 直觉
(\beta_t) 第 (t) 步 该步加入的高斯噪声方差 噪声日程的「原始旋钮」,由人设定
(\alpha_t = 1-\beta_t) 一步 (x_{t-1}\to x_t) 该步均值里保留上一时刻信号的系数 (\alpha_t) 越小,这一步丢信号越多
(\bar\alpha_t = \prod_{s=1}^{t}\alpha_s) (t) 步 (x_0\to x_t) 从 (x_0) 连走 (t) 步后,(x_0) 在 (x_t) 中累积保留的系数 (t) 越大,连乘越多小于 1 的数 → 越接近纯噪

记忆:(\alpha) 看单步,(\bar\alpha)(bar = 连乘)看从原图到当前步的累积。训练时随机抽 (t),用 (\bar\alpha_t) 决定「这一档噪声有多重」,并一步构造 (x_t):

[
x_t = \sqrt{\bar\alpha_t},x_0 + \sqrt{1-\bar\alpha_t},\epsilon.
]

  • (t) 小、(\bar\alpha_t \approx 1):(\sqrt{\bar\alpha_t},x_0) 主导,(x_t \approx x_0);
  • (t) 大、(\bar\alpha_t \approx 0):(\sqrt{1-\bar\alpha_t},\epsilon) 主导,(x_t \approx \epsilon)。

信噪比(Signal-to-Noise Ratio,SNR) 常写为 (\mathrm{SNR}(t)=\bar\alpha_t/(1-\bar\alpha_t))——(\bar\alpha_t) 越大,信号相对噪声越强。详见 Math-0 §9–§10

段末注释:SNR 为信噪比;(\bar\alpha_t) 是训练重参数化里唯一需要的「累积」系数,不必逐步循环 (x_1\to x_2\to\cdots\to x_t)。

2.2 噪声日程递推

[
\bar\alpha_t = \prod_{s=1}^{t}(1-\beta_s).
]

(t) (\beta_t) (\alpha_t) (\bar\alpha_t) (\sqrt{\bar\alpha_t}) (\sqrt{1-\bar\alpha_t})
1 0.2 0.8 0.800 0.894 0.447
2 0.3 0.7 0.560 0.748 0.663
3 0.4 0.6 0.336 0.580 0.815
4 0.5 0.5 0.168 0.410 0.912

概念锚点 · 信噪比:(\bar\alpha_t) 越小,(x_t) 中保留的 (x_0) 信号越少(Math-0 §10)。

概念图 信噪比 SNR 与 \(x_t\) 分解


3. 训练第 1 步:从数据集取 (x_0)

[
x_0 = \begin{bmatrix} 1.0 \ -0.5 \end{bmatrix} \sim q(x_0).
]

这是整条监督链的根:模型最终要学会「什么样的 (x_0) 是真实的」。前向加噪只是把已知 (x_0) 映射到各噪声档位的损坏版本 (x_t),供网络练习去噪。


4. 训练第 2 步:随机抽 (t) 与 (\epsilon)

[
t = 3, \qquad
\epsilon = \begin{bmatrix} 0.5 \ -1.0 \end{bmatrix} \sim \mathcal{N}(0, \mathbf{I}).
]

  • (t \sim \mathrm{Uniform}{1,\ldots,T}):本例固定 (t=3),对应「中等偏重度」噪声档。
  • (\epsilon):标准高斯噪声,训练时完全已知,将作为网络的回归目标。

4.1 (\epsilon \sim \mathcal{N}(0, \mathbf{I})) 是什么?

(\sim) 表示「从……中抽样」。(\mathcal{N}(0, \mathbf{I}))(d) 维标准多元高斯分布((d) 与 (x_0) 维数相同;本例 (d=2)):

符号 含义
(0) 均值向量 (\boldsymbol{\mu}=\mathbf{0}),每个分量期望为 0
(\mathbf{I}) 单位阵协方差:各维独立,且 (\mathrm{Var}(\epsilon_i)=1)

因此本例中

[
\epsilon = \begin{bmatrix} 0.5 \ -1.0 \end{bmatrix}
]

等价于 (\epsilon_1 \sim \mathcal{N}(0,1))、(\epsilon_2 \sim \mathcal{N}(0,1)) 且彼此独立的一次具体实现——手算时为固定数字;真实训练中每步用 randn 重新抽,例如下一 batch 可能是 ([0.3,,1.2]^\top)。

为何用标准高斯? 前向公式 (x_t = \sqrt{\bar\alpha_t},x_0 + \sqrt{1-\bar\alpha_t},\epsilon) 里,噪声项协方差为 ((1-\bar\alpha_t)\mathbf{I}),与 (q(x_t\mid x_0)=\mathcal{N}(\sqrt{\bar\alpha_t}x_0,,(1-\bar\alpha_t)\mathbf{I})) 的方差一致;为何均值里是 (\sqrt{\bar\alpha_t}) 而非 (\bar\alpha_t) 见 §4.2(Math-0 §3)。

与 (x_0 \sim q(x_0)) 的分工

抽样 随机对象 训练中的作用
(x_0 \sim q(x_0)) 真实数据 携带数据分布信息
(\epsilon \sim \mathcal{N}(0, \mathbf{I})) 人造噪声 已知标签,网络 (\epsilon_\theta) 要回归它
(t \sim \mathrm{Uniform}{1,\ldots,T}) 噪声档位 告诉网络当前损坏有多重

段末注释:(\mathcal{N}) 为正态(高斯)分布;(\mathbf{I}) 为 (d\times d) 单位矩阵。高维图像时 (\epsilon) 对每个像素/通道各抽一个 (\mathcal{N}(0,1)),彼此独立——Example-0 用 2 维只是便于手算。

4.2 (x_t) 与 (x_0):为何是 (\sqrt{\bar\alpha_t}) 而非 (\bar\alpha_t)?

§4.1 已出现 (x_t = \sqrt{\bar\alpha_t},x_0 + \sqrt{1-\bar\alpha_t},\epsilon)。(x_t)(x_0) 经前向加噪 (t) 步后的损坏版本;二者在概率上由条件高斯联系:

[
q(x_t \mid x_0) = \mathcal{N}!\big(\sqrt{\bar\alpha_t},x_0,;(1-\bar\alpha_t)\mathbf{I}\big),
]

即:给定 (x_0),(x_t) 的均值是 (\sqrt{\bar\alpha_t},x_0),协方差是 ((1-\bar\alpha_t)\mathbf{I})。文献里有时写 (\bar\alpha_t x_0)(不开方),有时写 (\sqrt{\bar\alpha_t},x_0)——不是两套矛盾公式,而是在描述不同阶数的量:

场景 公式 含义
采样 / 重参数化 / 均值 (\sqrt{\bar\alpha_t},x_0) 线性缩放,标准差级别
方差、协方差 ((1-\bar\alpha_t)\mathbf{I}) 方差 = 标准差²
信噪比 SNR、信号能量 (\bar\alpha_t)、(\bar\alpha_t/(1-\bar\alpha_t)) 二阶量(功率比),不开方

记忆:写 (x_t=\cdots)(样本)→ 用 (\sqrt{\bar\alpha_t});写方差、SNR → 用 (\bar\alpha_t)。

为何单步均值里是 (\sqrt{\alpha_t}) 而不是 (\alpha_t)? 单步前向可等价写成

[
x_t = \sqrt{\alpha_t},x_{t-1} + \sqrt{1-\alpha_t},\xi_t,
\quad \xi_t \sim \mathcal{N}(0,\mathbf{I}).
]

高斯随机量线性缩放时,方差按平方缩放:(\mathrm{Var}(\sqrt{\alpha_t},x_{t-1})=\alpha_t,\mathrm{Var}(x_{t-1}))。再加方差为 (1-\alpha_t) 的独立噪声,才与 (q(x_t\mid x_{t-1})) 中 (\beta_t=1-\alpha_t) 的设定一致。从 (x_0) 连走 (t) 步,信号系数连乘:

[
\sqrt{\alpha_1}\cdots\sqrt{\alpha_t}=\sqrt{\bar\alpha_t},
]

(x_t) 的均值必须是 (\sqrt{\bar\alpha_t},x_0),而非 (\bar\alpha_t x_0)。

数值核对(本例 (t=3)):若错误写成 (0.336,x_0) 而非 (0.580,x_0),信号幅度仅为正确值的约 (0.336/0.580\approx 58%),与 §5.2 手算及 (q(x_3\mid x_0)) 不一致。信号部分的平方范数按 (\bar\alpha_t) 衰减:

[
|\sqrt{\bar\alpha_t},x_0|^2 = \bar\alpha_t,|x_0|^2.
]

给定 (x_0) 时还有 (\mathbb{E}[x_t\mid x_0]=\sqrt{\bar\alpha_t},x_0)、(\mathrm{Var}(x_t\mid x_0)=(1-\bar\alpha_t)\mathbf{I})(Math-0 §10)。

段末注释:SNR 为信噪比 (\mathrm{SNR}(t)=\bar\alpha_t/(1-\bar\alpha_t)),分子用 (\bar\alpha_t) 因比较的是方差(功率)而非标准差。


5. 训练第 3 步:前向构造 (x_t)

5.1 马尔可夫链 vs 重参数化

逐步加噪(理解用):

[
q(x_t \mid x_{t-1}) = \mathcal{N}\big(\sqrt{1-\beta_t},x_{t-1},,\beta_t \mathbf{I}\big).
]

从 (x_0) 经 (x_1 \to x_2 \to x_3),每步再采独立高斯扰动。训练实现从不逐步循环,而用闭式重参数化:

[
\boxed{
x_t = \sqrt{\bar\alpha_t},x_0 + \sqrt{1-\bar\alpha_t},\epsilon
}
]

概念锚点 · 重参数化:(x_t) 是 (x_0) 与 (\epsilon) 的确定性函数,使 (\epsilon) 可直接当标签;(\sqrt{\bar\alpha_t}) 与 (\bar\alpha_t) 的分工见 §4.2(Math-0 §8)。

概念图 重参数化 \(x = \mu + \sigma\epsilon\)

5.2 手算 (x_3)

代入 (t=3),(\bar\alpha_3 = 0.336):

信号项

[
\sqrt{\bar\alpha_3},x_0 = 0.580 \begin{bmatrix} 1.0 \ -0.5 \end{bmatrix} = \begin{bmatrix} 0.580 \ -0.290 \end{bmatrix}.
]

噪声项

[
\sqrt{1-\bar\alpha_3},\epsilon = 0.815 \begin{bmatrix} 0.5 \ -1.0 \end{bmatrix} = \begin{bmatrix} 0.408 \ -0.815 \end{bmatrix}.
]

合成

[
\boxed{
x_3 = \begin{bmatrix} 0.988 \ -1.105 \end{bmatrix}
}.
]

图 1 \(t=3\) 时 \(x_3\) 的信号–噪声向量分解

5.3 不同 (t) 下同一 ((x_0, \epsilon)) 的 (x_t)

固定 (x_0 = [1.0, -0.5]^\top)、(\epsilon = [0.5, -1.0]^\top),只变 (t):

(t) (x_t)(公式计算) (\sqrt{\bar\alpha_t}) 直觉
1 ([1.12,;-0.89]^\top) 0.894 几乎就是原图
2 ([1.08,;-1.04]^\top) 0.748 轻微扰动
3 ([0.99,;-1.11]^\top) 0.580 中等噪声
4 ([0.87,;-1.12]^\top) 0.410 接近纯噪

图 2 同一 \(x_0\) 与 \(\epsilon\) 在不同 \(t\) 下的 \(x_t\)(\(\sqrt{\bar\alpha_t}\) 递减)


6. 训练第 4 步:网络前向与损失

6.1 输入 / 输出

输入:((x_3,, t=3))

[
x_3 = \begin{bmatrix} 0.988 \ -1.105 \end{bmatrix}.
]

输出:(\epsilon_\theta(x_3, 3) \in \mathbb{R}^2)。真实实现中 (t) 经正弦位置编码或 embedding 注入 U-Net / Transformer;本例省略网络结构细节。

6.2 简化训练目标

Diffusion-1 §5 一致:

[
\mathcal{L}{\mathrm{simple}} = \big|\epsilon - \epsilon\theta(x_t, t)\big|^2.
]

情形 A · 预测正确

[
\epsilon_\theta = \begin{bmatrix} 0.5 \ -1.0 \end{bmatrix} = \epsilon
\quad\Rightarrow\quad \mathcal{L} = 0.
]

情形 B · 预测错误(猜成零噪声):

[
\epsilon_\theta = \begin{bmatrix} 0 \ 0 \end{bmatrix}
\quad\Rightarrow\quad
\mathcal{L} = 0.5^2 + (-1.0)^2 = 1.25.
]

反向传播更新 (\theta),使下次类似 ((x_3, 3)) 时预测更接近真实 (\epsilon)。

图 3 DDPM 单步训练流程(采样 → 加噪 → 预测 → MSE → 更新 \(\theta\))

6.3 不同 (t) 的参数:共享 (\theta),不是各档独立

结论:所有时间步共用同一套网络参数 (\theta),记为 (\epsilon_\theta(x_t,, t))——不是为每个 (t) 训练一个独立模型。

设计 参数量 DDPM 主流?
共享 (\epsilon_\theta(x_t,t)) + 时间 embedding 一套 U-Net / Transformer
每档独立 (\epsilon_{\theta_t}(x_t)) 约 (T) 倍((T=1000) 不可行)

(t) 如何进入网络? 作为条件输入,而非一组独立权重:

  • 整数 (t) → 正弦位置编码或 MLP → 时间嵌入向量;
  • 与 (x_t) 特征相加,或通过 AdaGN / FiLM 调制各层 GroupNorm 的 scale/shift。

训练时 batch 内样本可能对应 (t=12,,847,,503) 等不同档位,但一次 optimizer.step() 更新的是同一个 (\theta)——网络学的是一族去噪函数 ({f_\theta(\cdot,t)}_{t=1}^{T}),由共享骨干 + 时间条件表示。

段末注释:AdaGN 为 Adaptive Group Normalization;固定的是前向日程 (\beta_t),可训练的是逆向网络 (\theta)。


7. 为何预测 (\epsilon) 等价于「还原 (x_0)」

由重参数化式反解:

[
x_0 = \frac{1}{\sqrt{\bar\alpha_t}}\Big(x_t - \sqrt{1-\bar\alpha_t},\epsilon\Big).
]

用网络输出 (\hat\epsilon = \epsilon_\theta) 得 (\hat x_0):

[
\hat x_0 = \frac{1}{\sqrt{\bar\alpha_t}}\Big(x_t - \sqrt{1-\bar\alpha_t},\epsilon_\theta\Big).
]

预测正确时((\epsilon_\theta = \epsilon)):

[
\hat x_0 = \frac{1}{0.580}\Big(\begin{bmatrix}0.988\-1.105\end{bmatrix} - 0.815\begin{bmatrix}0.5\-1.0\end{bmatrix}\Big)
= \frac{1}{0.580}\begin{bmatrix}0.580\-0.290\end{bmatrix}
= \begin{bmatrix}1.0\-0.5\end{bmatrix} = x_0 ;\checkmark
]

预测错误时((\epsilon_\theta = \mathbf{0})):

[
\hat x_0 = \frac{x_3}{\sqrt{\bar\alpha_3}} \approx \begin{bmatrix}1.70\-1.91\end{bmatrix},
]

远离真实 (x_0)——损失大,梯度推动修正。

因此:表面上是「猜噪声」,实质是在每个 (t) 上学「从 (x_t) 指回数据流形」;大量 (x_0 \sim q(x_0)) 进入期望,编码了数据分布。


8. 一个 minibatch 里发生什么

设 batch size (= 3)(与 Diffusion-1 训练算法 一致):

样本 (x_0)(数据集) 随机 (t) 随机 (\epsilon) 构造 (x_t) 损失项
1 样本 A 847 (\epsilon^{(1)}) 公式算出 (x_{847}^{(1)}) (|\epsilon^{(1)} - \epsilon_\theta(x_{847}^{(1)}, 847)|^2)
2 样本 B 12 (\epsilon^{(2)}) (x_{12}^{(2)}) (|\epsilon^{(2)} - \epsilon_\theta(x_{12}^{(2)}, 12)|^2)
3 样本 C 503 (\epsilon^{(3)}) (x_{503}^{(3)}) (|\cdots|^2)

总损失 = 三项平均。前向 (q) 不参与梯度((\beta_t)、(\bar\alpha_t) 固定);仅 (\epsilon_\theta) 的参数 (\theta) 更新

每个样本、每个 (t) 都在教网络:

当你看到这一档噪声程度下的损坏向量 (x_t),应去掉对应的 (\epsilon),使样本回到真实 (x_0) 附近。


9. 与 ELBO / 得分匹配的对应(一句话)

视角 本例中的体现
变分推断(VI) 固定方差下,(L_{t-1}) 中 two-Gaussians 的 KL 化为 (|\epsilon - \epsilon_\theta|^2)(Diffusion-1 §4.2
去噪得分匹配(DSM) (\nabla_x \log p_t(x) \propto -\epsilon/\sigma);预测 (\epsilon) 即预测得分(Diffusion-2 §2

本例是 DDPM / VP 扩散 离散版;DSM 中 (\sigma \leftrightarrow \sqrt{1-\bar\alpha_t}) 角色相同。


10. 生成阶段:同一 (\epsilon_\theta),不再使用 (x_0)

10.1 训练 vs 推理:(t) 各扮演什么角色?

阶段 (t) 如何定 含义
训练 (t \sim \mathrm{Uniform}{1,\ldots,T}) 随机抽 让同一 (\epsilon_\theta) 学会每一档噪声下的去噪
生成 固定从 (t=T) 起,再 (T!\to!T!-!1!\to!\cdots!\to!1) 不再随机 (t);起点 = 日程中的最大噪声档

训练时 Example-0 手算用的是 (t=3);推理时不会再抽一个「初始 (t)」,而是:

[
x_T \sim \mathcal{N}(0, \mathbf{I}), \quad \text{等价于前向链末端 } q(x_T\mid x_0)\approx\mathcal{N}(0,\mathbf{I})\ \ (\bar\alpha_T\approx 0).
]

对真实图像(如 (512\times512\times3)),(x_T) 每个像素、每个通道各抽 (\mathcal{N}(0,1)),得到「雪花图」——初始噪声水平由训练前设定的 (T) 与 (\beta_t) 日程决定,生成时无需再测。

日程检查:需 (\bar\alpha_T=\prod_{s=1}^{T}(1-\beta_s)\approx 0),保证 (t=T) 足够接近纯噪;否则应增大 (T) 或调整余弦/线性 schedule(Math-0 §9)。

10.2 标准采样循环

训练完成后:

  1. 采样 (x_T \sim \mathcal{N}(0, \mathbf{I}))(纯噪声,与数据同 shape);
  2. 对 (t = T, T-1, \ldots, 1),调用同一 (\epsilon_\theta(x_t, t)) 计算 (\mu_\theta),采样 (x_{t-1})(Diffusion-1 §6);
  3. 得到生成样本 (x_0)。
1
2
3
4
5
# 伪代码:同一 model、不同 t 输入
x = randn(shape) # x_T,对应 t=T
for t in T, T-1, ..., 1:
eps = model(x, t) # 共享 θ,t 经 embedding 注入
x = denoise_step(x, eps, t)

10.3 非标准起点(了解即可)

场景 起始状态 起始「噪声档」
标准文生图 (x_T\sim\mathcal{N}(0,I)) (t=T)
图生图 img2img 对给定图加噪到 (x_{t_0}) 用户选 (t_0<T)(strength)
DDIM 跳步 仍从 (x_T) 或 (x_{t_0}) 只在子序列上更新,最大档含义不变

图生图:(x_{t_0}=\sqrt{\bar\alpha_{t_0}},x_{\mathrm{init}}+\sqrt{1-\bar\alpha_{t_0}},\epsilon),再从 (t_0) 去噪;(t_0) 越大越不像原图(见 Diffusion-3 §2)。

生成依赖训练阶段在成千上万个 ((x_0, t, \epsilon)) 对上学到的各档去噪规律;§6.3 强调这些档位由同一 (\theta) 承担。


11. 与条件生成、文生图的关系(扩展)

本文与 Diffusion-1 讲的是无条件 DDPM:数据集只有 ({x_0}),网络 (\epsilon_\theta(x_t,t)) 学的是边缘分布 (p(x_0))。文生图条件蛋白质 design 并不改变「加噪—猜噪声/去噪」骨架,而是把目标换成条件分布 (p(x_0\mid c)):

阶段 无条件(本文 Example-0) 条件生成(文生图 / 条件 design)
训练数据 仅 (x_0) ((x_0,, c)) 配对(图–文 caption、结构–序列标签等)
网络 (\epsilon_\theta(x_t,, t)) (\epsilon_\theta(x_t,, t,, c))
损失 (|\epsilon - \epsilon_\theta(x_t,t)|^2) 同形,但 (c) 注入网络(cross-attention、拼接等)
推理 仅随机 (x_T) (x_T) + 用户条件 (c)(prompt、motif、二级结构等)

文生图典型链路Diffusion-3 §4–§5):

  1. 大规模 (图像, caption) 上训练 (\epsilon_\theta(x_t,t,c)),(c) 为 CLIP/T5 文本嵌入;
  2. 训练时以概率 (p_{\mathrm{uncond}}) 丢弃 (c)(空 prompt (\varnothing)),便于 Classifier-free Guidance(CFG)
  3. 推理:(\hat\epsilon = \epsilon_\theta(x_t,t,\varnothing) + w\big(\epsilon_\theta(x_t,t,c) - \epsilon_\theta(x_t,t,\varnothing)\big)),(w>1) 强化「听 prompt」。

为何「每张训练图互不关联」仍能文生图? 同一套参数 (\theta) 在全体样本上共享,学的是 (q(x_0\mid c)) 的统计规律;关系通过条件 (c)(语言描述、结构标签)编码,而非图片两两连边。新 prompt 组合训练见过的语义,在 (c) 条件下去噪采样即可。

生物对照:序列离散扩散 + motif 固定见 Example-1 蛋白序列离散扩散数值例题;骨架连续扩散 + CFG 见 Diffusion-3Diffusion-5

段末注释:CFG 为 Classifier-free Guidance;caption 为图像–文本对中的文字描述。


12. 常见误解对照

1
2
3
4
5
6
❌ 前向随机 → 逆向只能碰运气猜随机数

✅ 前向规则固定、可解析
✅ 训练时 ε 与 t 已知 → 标签明确
✅ x₀ 来自真实数据 → 携带 q(x₀) 信息
✅ 网络学 pθ(去噪 | x_t, t),不学 q(加噪)

13. 小结

环节 是否随机 是否训练 作用
前向 (q(x_t\mid x_{t-1})) 制造损坏样本
采样 (x_0) 数据分布监督
采样 (t,,\epsilon) 已知标签 + 噪声档位
网络 (\epsilon_\theta) 各档去噪
损失 (|\epsilon-\epsilon_\theta|^2) 绑定「猜噪声」与「还原 (x_0)」

本例中 (x_3 = [0.988, -1.105]^\top) 单独看像乱数,但它确定地来自 (x_0) 与 (\epsilon);网络学会在该档减掉 (\epsilon),就能回到 ([1.0, -0.5]^\top)——这就是 DDPM 前向训练的全部逻辑。


本篇概念索引

概念 出现章节 延伸阅读
噪声日程 (\beta_t,,\alpha_t,,\bar\alpha_t) §2.1–§2.2 Math-0 §9
(x_0 \sim q(x_0))、(\epsilon \sim \mathcal{N}(0,\mathbf{I})) §3–§4.1 Math-0 §2–§3
(x_t) 与 (x_0);(\sqrt{\bar\alpha_t}) vs (\bar\alpha_t) §4.2 Math-0 §9–§10
重参数化 / SNR §5 Math-0 §8、§10
(\mathcal{L}_{\mathrm{simple}}) §6 Diffusion-1 §5
共享 (\theta);时间 embedding §6.3 Diffusion-1 §5.2
生成从 (t=T) 起 / 训练 vs 推理 §10 Diffusion-1 §6
ELBO / KL → MSE §9 Diffusion-1 §4
DSM / 得分 §9 Diffusion-2 §2
逆向采样 §10 Diffusion-1 §6
条件生成 / CFG / 文生图 §11 Diffusion-3 §4–§5Example-1

参考与延伸阅读

  • Ho et al., Denoising Diffusion Probabilistic Models(NeurIPS 2020)——训练算法 Algorithm 1。
  • Vincent, A Connection Between Score Matching and Denoising Autoencoders(2011)——DSM 与去噪的等价性。
  • 本仓库 Diffusion-1 完整 ELBO 推导。
  • 条件生成与 CFG:Diffusion-3
  • 蛋白序列离散扩散手算:Example-1
-------------本文结束感谢您的阅读-------------