← 返回目录 | 附录A | 附录B → |
本附录为理解第5章(连续时间扩散模型)提供必要的数学基础。我们将快速回顾测度论的核心概念,介绍布朗运动和随机微分方程(SDE)的基本知识。这不是一门完整的数学课程,而是为理解扩散模型所需的最小知识集,旨在建立直觉并熟悉核心工具。
让我们从一个简单但深刻的问题开始:在区间[0,1]上随机选一个点,这个点恰好是有理数的概率是多少?
直觉可能会说:“有理数有无穷多个,所以概率应该不为零。”但实际上,这个概率是0。这个反直觉的结果揭示了我们需要一个比传统集合论更精细的数学框架来处理“无穷”。测度论正是为此而生,它严格定义了“长度”、“面积”、“体积”乃至“概率”等概念。
Ω
中,并非所有子集都能被合理地赋予概率。σ-代数 F
是 Ω
的一个子集族,它包含了我们所有感兴趣的“事件”,并对补、可数并等运算封闭。μ
是一个定义在σ-代数 F
上的函数,它为每个事件赋予一个非负的“大小”。当 μ(Ω) = 1
时,这个测度就是一个概率测度 P
。定义 A.1 (概率空间) 一个概率空间是一个三元组
(Ω, F, P)
,其中:
Ω
是样本空间(所有可能结果的集合)。F
是Ω
上的一个σ-代数(所有可测事件的集合)。P
是定义在F
上的一个概率测度。
💡 关键洞察:有理数集的勒贝格测度(长度)为0,是因为虽然有理数是可数无穷的,但每个单点的测度都是0。根据测度的可数可加性,可数个0相加仍然是0。
X
是一个从样本空间 Ω
到实数 R
的函数,它必须是“可测的”,即对于任何数值区间,我们都能找到其在样本空间中对应的事件。{F_t}
是一个随时间 t
递增的σ-代数序列,F_s ⊆ F_t
对所有 s ≤ t
成立。它代表了信息的累积过程,F_t
包含了到时刻 t
为止所有已知的信息。E[X | F_t]
代表在已知时刻 t
信息 F_t
的情况下,对随机变量 X
的最优估计。布朗运动是随机过程理论的基石,也是扩散模型的数学核心。
定义 A.2 (标准布朗运动) 一个随机过程
{B_t}
称为标准布朗运动(或维纳过程),如果:
- 起点确定:
B_0 = 0
。- 独立增量: 对任意
0 ≤ s < t
,增量B_t - B_s
独立于过去的路径{B_u : u ≤ s}
。- 高斯增量:
B_t - B_s
服从均值为0,方差为t-s
的正态分布,即B_t - B_s ~ N(0, t-s)
。- 路径连续: 路径
t ↦ B_t
是连续函数。
布朗运动的深刻性质:
(dt)^2 = 0
,但在随机微积分中,(dB_t)^2 = dt
。这是两者最核心的区别,也是伊藤公式中出现修正项的根源。E[B_t | F_s] = B_s
for s < t
。这意味着对未来的最优预测就是当前的值。由于布朗运动的奇异性质,传统的黎曼积分不适用。我们需要一种新的积分理论——随机积分。
伊藤积分 ∫f_s dB_s
的定义在黎曼和中,总是取被积函数在区间的左端点的值。这个选择保证了被积函数 f_s
不会“预见”到噪声 dB_s
的未来,从而使得积分结果仍然是一个鞅。
⚡ 理论要点:伊藤积分和另一种常见的斯特拉托诺维奇(Stratonovich)积分(取中点)会导致不同的结果。物理学中常用后者,因为它遵循普通的链式法则。金融和概率论中常用前者,因为它具有鞅性质。扩散模型理论建立在伊藤积分之上。
伊藤公式是随机微积分的链式法则,是处理SDE最重要的工具。
定理 A.3 (伊藤公式) 设
X_t
满足SDEdX_t = μ_t dt + σ_t dB_t
,f(x, t)
是一个足够光滑的函数,则:
\(df(X_t, t) = \left(\frac{\partial f}{\partial t} + \mu_t \frac{\partial f}{\partial x} + \frac{1}{2}\sigma_t^2 \frac{\partial^2 f}{\partial x^2}\right)dt + \sigma_t \frac{\partial f}{\partial x} dB_t\)
核心区别在于比普通链式法则多出的一项:
1/2 * σ_t^2 * ∂^2f/∂x^2
,这被称为伊藤修正项,它正是来源于(dB_t)^2 = dt
。
SDE描述了受随机扰动影响的动态系统,是扩散模型的数学语言。
定义 A.4 (SDE) 一个典型的SDE具有形式:
\(dX_t = b(X_t, t)dt + \sigma(X_t, t)dB_t\)
- 漂移项
b(X_t, t)
: 描述系统的确定性平均行为。- 扩散项
σ(X_t, t)
: 描述随机波动的强度。
存在唯一性:如果漂移和扩散系数满足Lipschitz连续性和线性增长条件,那么SDE存在唯一的强解。这保证了我们讨论的扩散过程是良定义的。
大多数SDE没有解析解,需要数值方法来模拟。
X_{n+1} = X_n + b(X_n)Δt + σ(X_n) * sqrt(Δt) * Z_n
,其中 Z_n ~ N(0, 1)
。σ
不为常数时。💡 实践洞察:数值模拟显示,对于扩散系数依赖于状态 X_t
的SDE(例如金融中的一些模型),Milstein方法比Euler-Maruyama方法能更精确地收敛到真实解。对于扩散模型中常见的 σ
只依赖于时间 t
的情况,两种方法的差别不大。
现在,我们可以将这些数学工具与扩散模型联系起来。
x_0
转化为噪声 x_T
的过程。例如VP-SDE:
dx = -1/2 * β(t) * x dt + sqrt(β(t)) * dB_t
∇log p_t(x)
来修正:
dx = [f(x, t) - g(t)^2 * ∇log p_t(x)] dt + g(t) d(bar(W)_t)
这揭示了学习生成模型等价于学习分数函数。dx = [f(x, t) - 1/2 * g(t)^2 * ∇log p_t(x)] dt
p(x, t)
随时间的演化。