5.1.4 MCMC:MH采样算法证明

到这里,我们已经把马尔可夫链蒙特卡洛采样拆成三部分分别解释了一遍。

现在,我们来把前面讲的三部分结合起来。

还记得前面的Metropolis-Hasting采样吗?我们现在可以来解释为什么这样的算法是可行的了。

再回顾一下MH算法:

  1. 从任意一个x0x_0开始

  2. 根据当前的样本xtx_t构建一个提议分布g(xxt)g(x | x_t) (e.g.g(xxt)g(x | x_t)可以是一个高斯分布),然后采样得到xx^*

  3. 然后计算接受率 α=min[1,p(x)g(xtx)p(xt)g(xxt)]\alpha = \min \left[ 1, \frac{p(x^*) \cdot g(x_t \mid x^*)}{p(x_t) \cdot g(x^* \mid x_t)} \right]

  4. [0,1][0,1]采样一个值uu,

    - 如果 u<αu< \alpha, 接受该样本 xt+1=xx_{t+1} = x^*

    - 否则,继续维持原来的样本 xt+1=xt x_{t+1} = x_t

  5. 重复2-4步直到达到预订的样本数量

从马尔可夫链的性质,我们知道,要从复杂的p(x)p(x)中采样,就要找到与p(x)p(x)对应的状态转移函数。怎么找呢?随便假定一个转移函数QQ显然是不行的,它不满足细致平稳条件,即:

p(xi)Q(xjxi)p(xj)Q(xixj)p(x_i)*Q(x_j | x_i) \not= p(x_j)*Q(x_i | x_j)

所以我们要对以上的公式做一定的改造,让它满足细致平稳条件。

首先,引入a(xjxi)a(x_j | x_i), 使得上面的式子可以取等号, 即:

p(xi)Q(xjxi)a(xjxi)=p(xj)Q(xixj)a(xixj)p(x_i)*Q(x_j | x_i)*a(x_j | x_i) = p(x_j)*Q(x_i | x_j)*a(x_i | x_j)

问题是什么样子的a(xjxi)a(x_j | x_i)可以满足该要求呢?其实很简单,只要满足下面条件:

a(xjxi)=min(1,p(xj)Q(xixj)p(xi)Q(xjxi))a(x_j | x_i) = min(1, \frac{p(x_j)*Q(x_i | x_j)}{p(x_i)*Q(x_j | x_i)})

a(xjxi)a(x_j | x_i)带入公式,

p(xi)Q(xjxi)a(xjxi)=p(xi)Q(xjxi)min(1,p(xj)Q(xixj)p(xi)Q(xjxi))=min(p(xi)Q(xjxi),p(xj)Q(xixj))=p(xj)Q(xixj)min(p(xi)Q(xjxi)p(xj)Q(xixj),1)=p(xj)Q(xixj)a(xixj)\begin{align*} p(x_i)*Q(x_j | x_i)*a(x_j | x_i) &= p(x_i)*Q(x_j | x_i)*min(1, \frac{p(x_j)*Q(x_i | x_j)}{p(x_i)*Q(x_j | x_i)}) \\ &= min(p(x_i)*Q(x_j | x_i), p(x_j)*Q(x_i | x_j)) \\ &= p(x_j)*Q(x_i | x_j) * min(\frac{p(x_i)*Q(x_j | x_i)}{p(x_j)*Q(x_i | x_j)}, 1) \\ &= p(x_j)*Q(x_i | x_j)*a(x_i | x_j) \end{align*}

如果我们把新的转移函数设置为M(xjxi)=Q(xjxi)a(xjxi)M(x_j | x_i)=Q(x_j | x_i)*a(x_j | x_i),自然就满足细致平稳条件:

p(xi)M(xjxi)=p(xj)M(xixj)p(x_i)*M(x_j | x_i)= p(x_j)*M(x_i | x_j)

注意,这里的Q(xjxi)Q(x_j | x_i)可以是任意的转移函数(例如高斯函数),以上式子恒成立。

我们知道,认知心理学中概率模型的本质就是求解后验概率分布p(θdata)p(\theta | data)

p(θdata)=p(dataθ)p(θ)p(data)p(\theta | data) = \frac{p(data | \theta) \cdot p(\theta)}{p(data)}

换句话来说,我们的目标分布是p(θdata)p(\theta|data)。为了和前面的公式推导符号一致,我们把目标分布写为p(xdata)p(x|data),并带入公式,得到:

a(xjxi)=min(1,p(xjdata)Q(xixj)p(xidata)Q(xjxi))=min(1,p(dataxj)p(xj)/p(data)Q(xixj)p(dataxi)p(xi)/p(data)Q(xjxi))\begin{align*}a(x_j | x_i) &= min(1, \frac{p(x_j | data) \cdot Q(x_i | x_j)}{p(x_i | data) \cdot Q(x_j | x_i)}) \\ &= min(1, \frac{p(data | x_j) \cdot p(x_j)/p(data) \cdot Q(x_i | x_j)}{p(data | x_i) \cdot p(x_i)/p(data) \cdot Q(x_j | x_i)})\end{align*}

假设先验分布为均匀分布,则p(xi)=p(xj)p(x_i) = p(x_j);假设提议分布是对称的(例如高斯分布,实际上前面说过的任意提议分布都可以),则Q(xjxi)=Q(xixj)Q(x_j | x_i) = Q(x_i | x_j)。上式进一步简化为:

a(xjxi)=min(1,p(dataxj)p(dataxi))a(x_j | x_i) = min(1, \frac{p(data | x_j)}{p(data | x_i)})

可以看到,等式右边直接就是似然函数的比值。

如果想要进一步理解数学推导,可以参考以下资料:

  • 博客资料: https://www.cnblogs.com/pinard/p/6625739.html

  • B站视频: https://www.bilibili.com/video/av32430563/

最后更新于