到这里,我们已经把马尔可夫链蒙特卡洛采样拆成三部分分别解释了一遍。
马尔可夫链蒙特卡洛采样(Markov Chain Monte Carlo Sampling,MCMC)关键词含义:
马尔可夫链(Markov Chain): 采样是沿着一条马尔可夫链进行状态转移
蒙特卡洛采样(Monte Carlo Sampling): 用采样的方法来逼近某个分布
现在,我们来把前面讲的三部分结合起来。
还记得前面的Metropolis-Hasting采样吗?我们现在可以来解释为什么这样的算法是可行的了。
这里有两个疑问:
提议分布g(x∣xt)是由我们自己随意定的,凭什么随意定一个g都可以能从p(x)进行采样?
为什么接受率设置成这个形式之后,就可以对目标分布p(x)进行采样?
从马尔可夫链的性质,我们知道,要从复杂的p(x)中采样,就要找到与p(x)对应的状态转移函数。怎么找呢?随便假定一个转移函数Q显然是不行的,它不满足细致平稳条件,即:
p(xi)∗Q(xj∣xi)=p(xj)∗Q(xi∣xj) 所以我们要对以上的公式做一定的改造,让它满足细致平稳条件。
首先,引入a(xj∣xi), 使得上面的式子可以取等号, 即:
p(xi)∗Q(xj∣xi)∗a(xj∣xi)=p(xj)∗Q(xi∣xj)∗a(xi∣xj) 问题是什么样子的a(xj∣xi)可以满足该要求呢?其实很简单,只要满足下面条件:
a(xj∣xi)=min(1,p(xi)∗Q(xj∣xi)p(xj)∗Q(xi∣xj)) 把a(xj∣xi)带入公式,
p(xi)∗Q(xj∣xi)∗a(xj∣xi)=p(xi)∗Q(xj∣xi)∗min(1,p(xi)∗Q(xj∣xi)p(xj)∗Q(xi∣xj))=min(p(xi)∗Q(xj∣xi),p(xj)∗Q(xi∣xj))=p(xj)∗Q(xi∣xj)∗min(p(xj)∗Q(xi∣xj)p(xi)∗Q(xj∣xi),1)=p(xj)∗Q(xi∣xj)∗a(xi∣xj) 如果我们把新的转移函数设置为M(xj∣xi)=Q(xj∣xi)∗a(xj∣xi),自然就满足细致平稳条件:
p(xi)∗M(xj∣xi)=p(xj)∗M(xi∣xj) 注意,这里的Q(xj∣xi)可以是任意的转移函数(例如高斯函数),以上式子恒成立。
回答前面两个疑问:
任意提议分布g(x∣xt)就任意是转移函数Q(xj∣xi),它的确无法直接满足细致平稳条件。
但是,任意提议分布g(x∣xt)和接受率α结合起来形成了新转移函数M(xj∣xi):先从任意提议分布中采样,然后接受率决定是否采纳新样本——新的转移函数满足细致平稳条件。
我们知道,认知心理学中概率模型的本质就是求解后验概率分布p(θ∣data),
p(θ∣data)=p(data)p(data∣θ)⋅p(θ) 换句话来说,我们的目标分布是p(θ∣data)。为了和前面的公式推导符号一致,我们把目标分布写为p(x∣data),并带入公式,得到:
a(xj∣xi)=min(1,p(xi∣data)⋅Q(xj∣xi)p(xj∣data)⋅Q(xi∣xj))=min(1,p(data∣xi)⋅p(xi)/p(data)⋅Q(xj∣xi)p(data∣xj)⋅p(xj)/p(data)⋅Q(xi∣xj)) 假设先验分布为均匀分布,则p(xi)=p(xj);假设提议分布是对称的(例如高斯分布,实际上前面说过的任意提议分布都可以),则Q(xj∣xi)=Q(xi∣xj)。上式进一步简化为:
a(xj∣xi)=min(1,p(data∣xi)p(data∣xj)) 可以看到,等式右边直接就是似然函数的比值。