郎之万动力采样 (Langevin Dynamics Sample)算法,是一种利用分数(Score)从目标概率分布采样的方法。
“下一步的位置 = 当前位置 + 一个指向高概率区域的梯度步 + 一个随机扰动脉冲。”
假设了一个目标分布p(x), 他的分数∇xlogp(x)\nabla_x \log p(x)∇xlogp(x), 给定步进ϵ>0\epsilon >0ϵ>0,以及一个初始样本x~t\tilde{x}_tx~t服从πx\pi{x}πx先验分布。郎之万动力采样通过如下迭代方程得到一个目标分布p(x)的采样。
1. 核心概念与公式
假设目标概率分布是p(x)p(x)p(x),它的分数(Score)表示为∇xlogp(x)\nabla_x \log p(x)∇xlogp(x)。
给定一个固定的步进ϵ>0\epsilon > 0ϵ>0,以及一个初始样本x~∼π(x)\tilde{x} \sim \pi(x)x~∼π(x)(π(x)\pi(x)π(x)可以认为是一个先验分布),郎之万动力采样通过如下迭代方程得到一个目标分布p(x)p(x)p(x)的采样:
x~t=x~t−1+ϵ2∇xlogp(x~t−1)+ϵzt,zt∼N(0,I) \tilde{x}_t = \tilde{x}_{t-1} + \frac{\epsilon}{2} \nabla_x \log p(\tilde{x}_{t-1}) + \sqrt{\epsilon} z_t, \quad z_t \sim \mathcal{N}(0, I)x~t=x~t−1+2ϵ∇xlogp(x~t−1)+ϵzt,zt∼N(0,I)
公式解释:
- x~t\tilde{x}_tx~t: 第
t步得到的采样样本。 - x~t−1\tilde{x}_{t-1}x~t−1: 上一步的样本。
- ϵ2∇xlogp(x~t−1)\frac{\epsilon}{2} \nabla_x \log p(\tilde{x}_{t-1})2ϵ∇xlogp(x~t−1):梯度上升项。它指导样本向概率密度p(x)p(x)p(x)更高的区域移动,是确定性的“爬山”部分。
- ϵzt\sqrt{\epsilon} z_tϵzt:随机噪声项。其中ztz_tzt服从标准正态分布N(0,I)\mathcal{N}(0, I)N(0,I)。这个随机项使采样过程具有随机性,让算法有能力跳出局部最优(局部峰值),探索整个概率空间。
- ϵ\epsilonϵ: 步长或学习率。
2. 收敛性与实践应用
当满足以下条件时,即ϵ→0\epsilon \to 0ϵ→0(步长无限小)、T→∞T \to \inftyT→∞(迭代次数无限多)和一些正则性条件时,最终得到的x~T\tilde{x}_Tx~T将严格地服从目标分布p(x)p(x)p(x)。此时,x~T\tilde{x}_Tx~T可以看作是目标分布p(x)p(x)p(x)的一个无偏采样。
当然,在实际应用中,ϵ>0\epsilon > 0ϵ>0且T<∞T < \inftyT<∞,所以采样结果不会完全精确。但这些误差在实际中可以忽略不计。因此,我们的做法是让ϵ\epsilonϵ尽量小,TTT尽量大。
3. 算法优势与本质
郎之万动力采样的优势在于,它只需要有目标分布的分数(即梯度)就行了,不需要知道目标分布p(x)p(x)p(x)的具体形式(例如,无需计算复杂的归一化常数)。
仔细观察这个公式,它本质上就是一个带有随机噪声的梯度迭代法。
- 它让样本xtx_txt沿着p(x)p(x)p(x)的梯度方向,向着概率密度最大的点前进。
- 迭代过程中加入一个随机高斯噪声ztz_tzt,使算法具备随机性,能够探索更广的空间。
4. 一个小技巧
既然就是个梯度迭代,那我加入二阶梯度是不是采样能更快点?
这是一个非常好的直觉。使用二阶导数信息(Hessian 矩阵)的类似方法确实存在,例如Langevin Quasi-Newton算法,它们通过近似曲率信息来加速采样过程,使其更高效地收敛。
5. 显著缺陷:多峰分布下的失效
然而,郎之万动力采样法存在一个显著的缺陷。当数据分布是一个复杂的分布时(例如,存在多个分离开的、由低密度区域隔开的概率密度高峰),该方法无法在合理的时间内得到正确的采样。
- 典型例子:高斯混合分布(Gaussian Mixture Model)。
- 问题所在:原始论文就用两个分量的混合高斯分布做实验和举例,论证了在这种情况下,郎之万动力采样法无法在两个分量之间进行有效的“跳跃”。样本会被困在它起始的那个分量附近,导致模式崩溃(Mode Collapse),无法完整代表整个目标分布。
- 理论上的解与现实困境:当然,理论上如果迭代次数TTT足够大,采样最终会合理。但在实际应用中,无法命令TTT足够大,因为那意味着迭代次数太多,计算效率太慢,不具可行性。