郎之万动力采样不准的问题

发布时间:2026/6/30 6:01:26
郎之万动力采样不准的问题 郎之万动力采样 (Langevin Dynamics Sample)算法是一种利用分数Score从目标概率分布采样的方法。“下一步的位置 当前位置 一个指向高概率区域的梯度步 一个随机扰动脉冲。”假设了一个目标分布p(x), 他的分数∇xlog⁡p(x)\nabla_x \log p(x)∇x​logp(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表示为∇xlog⁡p(x)\nabla_x \log p(x)∇x​logp(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~tx~t−1ϵ2∇xlog⁡p(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ϵ​∇x​logp(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∇xlog⁡p(x~t−1)\frac{\epsilon}{2} \nabla_x \log p(\tilde{x}_{t-1})2ϵ​∇x​logp(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足够大因为那意味着迭代次数太多计算效率太慢不具可行性。