三、MCMC 采样

  1. 概率图模型中最常用的采样技术是马尔可夫链蒙特卡罗方法Markov Chain Monte Carlo:MCMC

    给定连续随机变量 三、MCMC 采样 - 图1 的概率密度函数 三、MCMC 采样 - 图2 ,则 三、MCMC 采样 - 图3 在区间 三、MCMC 采样 - 图4 中的概率可以计算为:

    三、MCMC 采样 - 图5

    如果函数 三、MCMC 采样 - 图6, 则可以计算 三、MCMC 采样 - 图7 的期望:三、MCMC 采样 - 图8

    • 如果 三、MCMC 采样 - 图9 不是一个单变量,而是一个高维的多元变量 三、MCMC 采样 - 图10 ,且服从一个非常复杂的分布,则对于上式的求积分非常困难。为此,MCMC先构造出服从 三、MCMC 采样 - 图11 分布的独立同分布随机变量 三、MCMC 采样 - 图12 , 再得到 三、MCMC 采样 - 图13 的无偏估计:

      三、MCMC 采样 - 图14

    • 如果概率密度函数 三、MCMC 采样 - 图15 也很复杂,则构造服从 三、MCMC 采样 - 图16 分布的独立同分布随机变量也很困难。MCMC 方法就是通过构造平稳分布为 三、MCMC 采样 - 图17 的马尔可夫链来产生样本。

3.1 MCMC 算法

  1. MCMC 算法的基本思想是:先设法构造一条马尔可夫链,使其收敛到平稳分布恰好为 三、MCMC 采样 - 图18 。然后通过这条马尔可夫链来产生符合 三、MCMC 采样 - 图19 分布的样本。最后通过这些样本来进行估计。

    这里马尔可夫链的构造至关重要,不同的构造方法将产生不同的MCMC算法。Metropolis-Hastings:MH算法是MCMC的重要代表。

  2. 假设已经提供了一条马尔可夫链,其转移矩阵为 三、MCMC 采样 - 图20 。目标是另一个马尔科夫链,使转移矩阵为 三、MCMC 采样 - 图21 、平稳分布是 三、MCMC 采样 - 图22

    通常 三、MCMC 采样 - 图23 ,即 三、MCMC 采样 - 图24 并不满足细致平稳条件不成立。但是可以改造已有的马尔可夫链,使得细致平稳条件成立。

    引入一个函数 三、MCMC 采样 - 图25 ,使其满足:三、MCMC 采样 - 图26 。如:取 三、MCMC 采样 - 图27 ,则有:

    三、MCMC 采样 - 图28

    令: 三、MCMC 采样 - 图29 ,则有 三、MCMC 采样 - 图30 。其中 三、MCMC 采样 - 图31 构成了转移矩阵 三、MCMC 采样 - 图32 。而 三、MCMC 采样 - 图33 恰好满足细致平稳条件,因此它对应的马尔可夫链的平稳分布就是 三、MCMC 采样 - 图34

  3. 在改造 三、MCMC 采样 - 图35 的过程中引入的 三、MCMC 采样 - 图36 称作接受率。其物理意义为:在原来的马尔可夫链上,从状态 三、MCMC 采样 - 图37三、MCMC 采样 - 图38 的概率跳转到状态 三、MCMC 采样 - 图39 的时候,以 三、MCMC 采样 - 图40 的概率接受这个转移。

    • 如果接受率 三、MCMC 采样 - 图41 太小,则改造马尔可夫链过程中非常容易原地踏步,拒绝大量的跳转。这样使得马尔可夫链遍历所有的状态空间需要花费太长的时间,收敛到平稳分布 三、MCMC 采样 - 图42 的速度太慢。

    • 根据推导 三、MCMC 采样 - 图43 ,如果将系数从 1 提高到 三、MCMC 采样 - 图44 ,则有:

      三、MCMC 采样 - 图45

      于是: 三、MCMC 采样 - 图46 。因此,即使提高了接受率,细致平稳条件仍然成立。

  4. 三、MCMC 采样 - 图47 同比例放大,取:三、MCMC 采样 - 图48

    • 三、MCMC 采样 - 图49 时: 三、MCMC 采样 - 图50,此时满足细致平稳条件。
    • 三、MCMC 采样 - 图51 时: 三、MCMC 采样 - 图52,此时满足细致平稳条件。
    • 三、MCMC 采样 - 图53 时: 三、MCMC 采样 - 图54,此时满足细致平稳条件。
  5. MH 算法:

    • 输入:

      • 先验转移概率矩阵 三、MCMC 采样 - 图55
      • 目标分布 三、MCMC 采样 - 图56
    • 输出: 采样出的一个状态序列 三、MCMC 采样 - 图57

    • 算法:

      • 初始化 三、MCMC 采样 - 图58

      • 三、MCMC 采样 - 图59 执行迭代。迭代步骤如下:

        • 根据 三、MCMC 采样 - 图60 采样出候选样本 三、MCMC 采样 - 图61 ,其中 三、MCMC 采样 - 图62 为转移概率函数。

        • 计算 三、MCMC 采样 - 图63

          三、MCMC 采样 - 图64

        • 根据均匀分布从 三、MCMC 采样 - 图65 内采样出阈值 三、MCMC 采样 - 图66,如果 三、MCMC 采样 - 图67 ,则接受 三、MCMC 采样 - 图68, 即 三、MCMC 采样 - 图69 。否则拒绝 三、MCMC 采样 - 图70 , 即 三、MCMC 采样 - 图71

      • 返回采样得到的序列 三、MCMC 采样 - 图72

    注意:返回的序列中,只有充分大的 三、MCMC 采样 - 图73 之后的序列 三、MCMC 采样 - 图74 才是服从 三、MCMC 采样 - 图75 分布的采样序列。

3.2 Gibbs 算法

  1. MH算法不仅可以应用于一维空间的采样,也适合高维空间的采样。

    对于高维的情况,由于接受率 三、MCMC 采样 - 图76 的存在(通常 三、MCMC 采样 - 图77),MH算法的效率通常不够高,此时一般使用 Gibbs 采样算法。

  2. 考虑二维的情形:假设有概率分布 三、MCMC 采样 - 图78 ,考察状态空间上 三、MCMC 采样 - 图79 坐标相同的两个点 三、MCMC 采样 - 图80 ,可以证明有:

    三、MCMC 采样 - 图81

    于是 三、MCMC 采样 - 图82 。则在 三、MCMC 采样 - 图83 这条平行于 三、MCMC 采样 - 图84 轴的直线上,如果使用条件分布 三、MCMC 采样 - 图85 作为直线上任意两点之间的转移概率,则这两点之间的转移满足细致平稳条件。

    同理:考察 三、MCMC 采样 - 图86 坐标相同的两个点 三、MCMC 采样 - 图87 , 有 三、MCMC 采样 - 图88 。在 三、MCMC 采样 - 图89 这条平行于 三、MCMC 采样 - 图90 轴的直线上,如果使用条件分布 三、MCMC 采样 - 图91 作为直线上任意两点之间的转移概率,则这两点之间的转移满足细致平稳条件。

    可以构造状态空间上任意两点之间的转移概率矩阵 三、MCMC 采样 - 图92: 对于任意两点 三、MCMC 采样 - 图93, 令从 三、MCMC 采样 - 图94 转移到 三、MCMC 采样 - 图95 的概率为 三、MCMC 采样 - 图96

    • 如果 三、MCMC 采样 - 图97 ,则 三、MCMC 采样 - 图98
    • 如果 三、MCMC 采样 - 图99 ,则 三、MCMC 采样 - 图100
    • 否则 三、MCMC 采样 - 图101

    采用该转移矩阵 三、MCMC 采样 - 图102 ,可以证明:对于状态空间中任意两点 三、MCMC 采样 - 图103,都满足细致平稳条件:

    三、MCMC 采样 - 图104

    于是这个二维状态空间上的马尔可夫链将收敛到平稳分布 三、MCMC 采样 - 图105 ,这就是吉布斯采样的原理。

  3. Gibbs 算法:

    • 输入:目标分布 三、MCMC 采样 - 图106 ,其中 三、MCMC 采样 - 图107

    • 输出: 采样出的一个状态序列 三、MCMC 采样 - 图108

    • 算法步骤:

      • 初始化:随机初始化 三、MCMC 采样 - 图109

      • 执行迭代,迭代步骤如下:

        • 随机或者以一定次序遍历索引 三、MCMC 采样 - 图110 。遍历过程为(设当前索引为 三、MCMC 采样 - 图111 ):

          • 三、MCMC 采样 - 图112 保持不变,计算条件概率: 三、MCMC 采样 - 图113

            该条件概率就是状态转移概率 三、MCMC 采样 - 图114

          • 根据条件概率 三、MCMC 采样 - 图115 对分量 三、MCMC 采样 - 图116 进行采样,假设采样结果为 三、MCMC 采样 - 图117 ,则获得新样本 三、MCMC 采样 - 图118

          • 三、MCMC 采样 - 图119,继续遍历。

      • 最终返回一个状态序列 三、MCMC 采样 - 图120

  4. 吉布斯采样Gibbs sampling 有时被视作MH算法的特例,它也使用马尔可夫链获取样本。