前向过程将数据 x(0)∼pdata 逐步加噪,得到 x(1),…,x(T),最终 x(T) 近似标准高斯。下面给出定义与单步转移、多步边际 q(x(t)∣x(0)) 的闭式推导,以及重参数化形式。
- 前向过程是马尔可夫链:
x(0)→x(1)→⋯→x(T).
- 固定方差序列 β1,…,βT∈(0,1),令
αt=1−βt,αˉt=s=1∏tαs.
(约定 αˉ0=1。)
前向的单步转移取为均值缩小、方差固定的高斯:
q(x(t)∣x(t−1))=N(x(t); 1−βtx(t−1), βtI)=N(x(t); αtx(t−1), βtI).等价地,可写成重参数化形式(便于采样与推导):
x(t)=αtx(t−1)+βtεt,εt∼N(0,I), i.i.d.
我们希望对中间步积分,得到从 x(0) 一步到 x(t) 的分布 q(x(t)∣x(0)),并证明它仍是单高斯且有闭式。
由单步形式反复代入:
x(1)x(2)=α1x(0)+β1ε1,=α2x(1)+β2ε2=α2α1x(0)+α2β1ε1+β2ε2,⋮一般地,x(t) 可写成 x(0) 与 ε1,…,εt 的线性组合。由于各 εs 独立且与 x(0) 独立,该线性组合仍为高斯,只需求其均值与方差。下面推导中会自然出现 αˉt=∏s=1tαs。
记 x(t) 中 x(0) 的系数为 ct。由递推:
- x(1)=α1x(0)+⋯,故 c1=α1;
- x(t)=αtx(t−1)+βtεt,若 x(t−1) 中 x(0) 的系数为 ct−1,则 x(t) 中 x(0) 的系数为 ct=αtct−1。
因此
ct=αtct−1=αtαt−1ct−2=⋯=αt⋯α1=s=1∏tαs=αˉt.E[εs]=0,故
E[x(t)∣x(0)]=αˉtx(0).记 vt=Var(x(t)∣x(0))(标量方差,各维度独立且相同)。由 x(t)=αtx(t−1)+βtεt,且 x(t−1) 与 εt 在给定 x(0) 下独立,故
vt=αtvt−1+βt.利用 βt=1−αt,代入得
vt=αtvt−1+(1−αt).递推初值:x(0) 给定无随机性,v0=0。可验证 v1=β1=1−α1=1−αˉ1。
归纳:设 vt−1=1−αˉt−1,则
vt=αt(1−αˉt−1)+(1−αt)=αt−αtαˉt−1+1−αt=1−αtαˉt−1=1−αˉt.因此
Var(x(t)∣x(0))=(1−αˉt)I.于是:
q(x(t)∣x(0))=N(x(t); αˉtx(0), (1−αˉt)I).即:给定 x(0) 时,x(t) 是单高斯,均值 αˉtx(0),方差 (1−αˉt)I,与中间步无关,有闭式、可采样、可求密度。
将 x(t) 写成仅依赖 x(0) 与一个标准高斯噪声 ϵ 的形式,便于实现采样与后续对 ϵ 的回归:
x(t)=αˉtx(0)+1−αˉtϵ,ϵ∼N(0,I).等价性:右边均值为 αˉtx(0),方差为 (1−αˉt)I,与 q(x(t)∣x(0)) 一致;且单步加噪与多步一次加噪在分布上等价(给定 x(0)),因此训练时可对 (x(0),t) 随机采样,再按上式生成 x(t),让网络预测对应的 ϵ(即 ϵθ(x(t),t))。
| 量 | 形式 |
|---|
| 单步转移 | q(x(t)∣x(t−1))=N(αtx(t−1), βtI) |
| 多步边际 | q(x(t)∣x(0))=N(αˉtx(0), (1−αˉt)I) |
| 重参数化 | x(t)=αˉtx(0)+1−αˉtϵ, ϵ∼N(0,I) |
- αˉt 随 t 增大而减小,故 αˉt 变小、1−αˉt 变大,x(t) 中噪声占比增加;当 t=T 且 αˉT≈0 时,x(T) 近似 N(0,I)。
- 前向过程不包含可学习参数;反向过程才用神经网络拟合 q(x(t−1)∣x(t),x(0)) 的近似 pθ(x(t−1)∣x(t))。
反向过程从 x(T)∼N(0,I) 出发,逐步采样 x(T−1),…,x(0),得到生成样本。目标是用神经网络拟合反向转移 pθ(x(t−1)∣x(t))。由于不给定 x(0) 时真实反向 q(x(t−1)∣x(t)) 不可解析,我们利用给定 x(0) 时可解析的后验 q(x(t−1)∣x(t),x(0)) 做推导与训练,再以 ϵθ 参数化均值,得到最终的反向采样公式。
记号与前向一致:αt=1−βt,αˉt=∏s=1tαs。
在给定 x(t) 与 x(0) 时,由贝叶斯公式(前向转移用 q 表示):
q(x(t−1)∣x(t),x(0))=q(x(t)∣x(0))q(x(t)∣x(t−1))q(x(t−1)∣x(0)).三项均为前向过程的高斯,有闭式:
- q(x(t)∣x(t−1))=N(x(t);αtx(t−1),βtI)
- q(x(t−1)∣x(0))=N(x(t−1);αˉt−1x(0),(1−αˉt−1)I)
- q(x(t)∣x(0))=N(x(t);αˉtx(0),(1−αˉt)I)
因此上式右边可算出,且后验仍为高斯(高斯的条件仍为高斯)。下面推导其均值 μ~t 与方差 β~t。
记
q(x(t−1)∣x(t),x(0))=N(x(t−1);μ~t(x(t),x(0)),β~tI).对高斯密度取对数、只保留与 x(t−1) 有关的项(其余并入常数),有
logq(x(t−1)∣x(t),x(0))=−2βt1x(t)−αtx(t−1)2−2(1−αˉt−1)1x(t−1)−αˉt−1x(0)2+const.这是 x(t−1) 的二次型,故后验为高斯。展开并合并 x(t−1) 的二次项与一次项即可得到 β~t 与 μ~t。
x(t−1) 的二次项系数为
2βtαt+2(1−αˉt−1)1=2βt(1−αˉt−1)αt(1−αˉt−1)+βt.后验方差满足 1/β~t=αt/βt+1/(1−αˉt−1),故
β~t=αt(1−αˉt−1)+βtβt(1−αˉt−1).利用 αt=1−βt,分母为
αt(1−αˉt−1)+βt=(1−βt)(1−αˉt−1)+βt=(1−αˉt−1)−βt(1−αˉt−1)+βt=1−αˉt.因此
β~t=1−αˉtβt(1−αˉt−1).由二次型配方法或直接写高斯条件均值,可得
μ~t(x(t),x(0))=1−αˉtαˉt−1βtx(0)+1−αˉtαt(1−αˉt−1)x(t).即
μ~t=1−αˉt1(αˉt−1βtx(0)+αt(1−αˉt−1)x(t)).
前向重参数化有 x(t)=αˉtx(0)+1−αˉtϵ,故
x(0)=αˉtx(t)−1−αˉtϵ.代入 μ~t 的表达式,将 x(0) 用 x(t) 与 ϵ 替换,可化简为仅含 x(t) 与 ϵ 的形式(推导见下),得到
μ~t=αt1(x(t)−1−αˉtβtϵ).化简步骤:将 x(0)=(x(t)−1−αˉtϵ)/αˉt 代入
μ~t=1−αˉtαˉt−1βtx(0)+1−αˉtαt(1−αˉt−1)x(t),第一项变为
(1−αˉt)αˉtαˉt−1βt(x(t)−1−αˉtϵ).利用 αˉt=αtαˉt−1 得 αˉt−1/αˉt=1/αt,故第一项为
αt(1−αˉt)βtx(t)−αt1−αˉtβtϵ.第二项为 αt(1−αˉt−1)/(1−αˉt)x(t)。两者相加,x(t) 的系数为
αt(1−αˉt)βt+αt(1−αˉt−1)=αt(1−αˉt)1−αˉt=αt1,因此
μ~t=αt1x(t)−αt1−αˉtβtϵ=αt1(x(t)−1−αˉtβtϵ).参数化:采样时没有 ϵ 与 x(0),用神经网络 ϵθ(x(t),t) 预测噪声,得到可用的均值
μθ(x(t),t)=αt1(x(t)−1−αˉtβtϵθ(x(t),t)).
模型反向转移(DDPM 中方差取固定 β~t,不学习):
pθ(x(t−1)∣x(t))=N(x(t−1); μθ(x(t),t), β~tI),其中
μθ(x(t),t)=αt1(x(t)−1−αˉtβtϵθ(x(t),t)),β~t=1−αˉtβt(1−αˉt−1).采样:从 x(T)∼N(0,I) 开始,对 t=T,T−1,…,1 采样
x(t−1)=μθ(x(t),t)+β~tζ,ζ∼N(0,I).训练目标:在给定 x(0) 与 t 时,按前向采样 x(t)=αˉtx(0)+1−αˉtϵ,令网络 ϵθ(x(t),t) 预测 ϵ,最小化例如 ∥ϵ−ϵθ(x(t),t)∥2(或加权 MSE),等价于拟合 q(x(t−1)∣x(t),x(0)) 的均值。
| 量 | 公式 |
|---|
| 后验方差 | β~t=1−αˉtβt(1−αˉt−1) |
| 后验均值(含 x(0)) | μ~t=1−αˉtαˉt−1βtx(0)+1−αˉtαt(1−αˉt−1)x(t) |
| 后验均值(含 ϵ) | μ~t=αt1(x(t)−1−αˉtβtϵ) |
| 模型均值 | μθ(x(t),t)=αt1(x(t)−1−αˉtβtϵθ(x(t),t)) |
| 反向采样 | x(t−1)=μθ(x(t),t)+β~tζ, ζ∼N(0,I) |
推导链条:贝叶斯后验 → 高斯闭式 μ~t,β~t → 用 x(t),ϵ 表出 μ~t → 用 ϵθ 替代 ϵ → 得到 pθ(x(t−1)∣x(t)) 与采样式。
μ~t(以及 μθ)只是反向条件分布的均值,不是最终的 x(t−1) 本身。
真正采样时是从高斯里抽一个样本,即
均值 + 标准差×标准正态:
x(t−1)=μθ(x(t),t)+β~tζ,ζ∼N(0,I).这里的 +β~tζ 就是“后面加的噪声”。
所以:
公式 μ~t=αt1(x(t)−1−αˉtβtϵ) 给出的是分布的均值;
实际更新是:先算均值 μθ,再加上 β~tζ 得到 x(t−1)。
第 4 节「采样」和第 5 节小结表里已经写了带 β~tζ 的采样式;均值公式和采样式是配套的:前者定义均值,后者在均值基础上加噪声完成一步采样。