吉布斯采样,马尔科夫链蒙特卡洛方法MCMC——CVMLI Prince读书随笔第7章

以前对吉布斯采样一直很迷,今天把它弄清楚!

问题

采样即从待推断的环境中获取样本。
对于有向图模型,可以通过原始采样法(ancestral sampling),即按照拓扑顺序采样。这样得到的每一维度都是有效的。

但是对于无向图模型,没法判断先采哪个。如果按照原始采样法,采哪个维度都有问题,因为其对应的不独立的维度并不知晓。

方法

一种可行的方法是马尔科夫链蒙特卡洛(MCMC)方法。原理是:

  • 从分布中产生一系列样本,每个样本直接依赖先前采样样本,即“马尔科夫”。 同时,样本产生并非完全确定,即“蒙特卡洛”。(这是书上原话)

吉布斯采样

这是一种最简单的MCMC方法。方法为:

  • 用任意方法随机选择初始状态x0\mathbf x^0.
  • 任意顺序轮流更新每个维度,产生下一个样本x1\mathbf x^1. 为了更新第ii维,固定其他维度,从条件分布P(xix1...N\i)P(x_i|x_{1...N\backslash i})采样。

重复次数足够多后,初始条件的设置将不在影响最终结果,达到这样的条件后,按此顺序的采样马可视为来自P(x1...N)P(x_{1...N})。(证明超出书本范围)。如下图。

吉布斯采样,马尔科夫链蒙特卡洛方法MCMC——CVMLI Prince读书随笔第7章

后记

  • 对于无向图,由于条件独立性存在,所以从分布P(xix1...N\i)P(x_i|x_{1...N\backslash i})采样,可以仅用xix_i的所有邻居节点。
  • 但总的来说,这种采样方法效率十分低下。