机器学习-白板推导系列(十三)- 马尔可夫链&蒙特卡洛方法(MCMC, Markov Chain&Monte Carlo)之概念及MH算法

13. 马尔可夫链&蒙特卡洛方法(MCMC)

13.1 采样方法介绍

  • 上一章讲贝叶斯角度主要是计算 P ( Z ∣ X ) P(Z|X) P(ZX),大致采用两种思路来解决这个问题,也就是精确推断近似推断精确推断无法达到我们想要的结果时,就会采用近似推断的方法。而近似推断中我们又可以分成两大类,即为确定性近似(VI)随机近似(MCMC)

  • Monte Carlo Method是一种基于采样的随机近似算法。目标是求解后验概率 P ( Z ∣ X ) \color{blue}P(Z|X) P(ZX),其中 Z Z Z为Latent data, X X X为Observed data。知道分布后,通常的目标是求解:
    E Z ∣ X [ f ( Z ) ] = ∫ Z P ( Z ∣ X ) f ( Z ) d Z ≈ 1 N ∑ i = 1 N f ( z i ) (13.1.1) \mathbb{E}_{Z|X}[f(Z)] = \int_Z P(Z|X)f(Z)dZ \approx \frac{1}{N}\sum_{i=1}^N f(z_i)\tag{13.1.1} EZX[f(Z)]=ZP(ZX)f(Z)dZN1i=1Nf(zi)(13.1.1)

    那么知道了后验分布 P ( Z ∣ X ) P(Z|X) P(ZX),怎么去采样呢?即:如何通过采样得到 z ( 1 ) , z ( 2 ) , ⋯   , z ( N ) ∼ P ( Z ∣ X ) z^{(1)},z^{(2)},\cdots,z^{(N)} \sim P(Z|X) z(1),z(2),,z(N)P(ZX)。这一节将要主要介绍三种采样方法:概率分布采样拒绝采样重要性采样

13.1.1 概率分布采样

  1. 缩写强调

    • c . d . f ( 概 率 分 布 函 数 ) \color{red}c.d.f (概率分布函数) c.d.f()
    • p . d . f ( 概 率 密 度 函 数 ) \color{red}p.d.f (概率密度函数) p.d.f()
    • i . i . d ( 独 立 同 分 布 ) \color{red} i.i.d (独立同分布) i.i.d()
  2. 介绍

    • 已知 p . d . f ( 概 率 密 度 函 数 ) p.d.f (概率密度函数) p.d.f():采样 { x ( 1 ) , x ( 2 ) , ⋯   , x ( N ) } \{ x^{(1)},x^{(2)},\cdots,x^{(N)} \} {x(1),x(2),,x(N)} N N N个样本点。
    • 思路
      • p . d . f ( 概 率 密 度 函 数 ) p.d.f (概率密度函数) p.d.f(),求 c . d . f ( 概 率 分 布 函 数 ) c.d.f (概率分布函数) c.d.f()
      • 由于 c . d . f ( 概 率 分 布 函 数 ) c.d.f (概率分布函数) c.d.f()的值一定是 [ 0 , 1 ] [0,1] [0,1]之间,所以可以在均匀概率密度分布 U ( 0 , 1 ) U(0,1) U(0,1)上采样,,得到 u ( i ) ∼ U ( 0 , 1 ) u^{(i)}\sim U(0,1) u(i)U(0,1)
      • x ( i ) ∼ c d f − 1 ( u ( i ) ) x^{(i)}\sim cdf^{-1}(u^{(i)}) x(i)cdf1(u(i))就可以计算得到采样的 { x ( 1 ) , x ( 2 ) , ⋯   , x ( N ) } \{ x^{(1)},x^{(2)},\cdots,x^{(N)} \} {x(1),x(2),,x(N)} N N N个样本点。
        机器学习-白板推导系列(十三)- 马尔可夫链&蒙特卡洛方法(MCMC, Markov Chain&Monte Carlo)之概念及MH算法_第1张图片
  3. 缺陷

    • 很多情况根本不知道 p . d . f ( 概 率 密 度 函 数 ) p.d.f (概率密度函数) p.d.f()的具体表现形式。
    • 很多时候 c . d . f ( 概 率 分 布 函 数 ) c.d.f (概率分布函数) c.d.f()也并不好求。

    所以很多情况下,概率分布采样并没有那么的好求。

13.1.2 拒绝采样(Rejection Sampling)

1.引入概念

  • 提议分布(proposal distribution) q ( z ) q(z) q(z):较简单的分布;
  • 接受率 α = P ( z ( i ) ) M ⋅ q ( z ( i ) ) \color{red}\alpha = \frac{P(z^{(i)})}{M\cdot q(z^{(i)})} α=Mq(z(i))P(z(i)) 0 ≤ α ≤ 1 0 \leq \alpha \leq 1 0α1,实际是上图中绿色的部分。
    机器学习-白板推导系列(十三)- 马尔可夫链&蒙特卡洛方法(MCMC, Markov Chain&Monte Carlo)之概念及MH算法_第2张图片

    绿色的部分称为 拒 绝 区 域 \color{blue}拒绝区域 ,蓝色部分称为 接 受 区 域 \color{blue}接受区域 。采样点的概率要到 蓝 色 区 域 内 \color{blue}蓝色区域内 ,所以这个采样方法就是拒绝采样就是这样来的。

  1. 介绍
    对于较复杂的概率分布 p ( z ) p(z) p(z),引入简单的 提 议 分 布 ( p r o p o s a l d i s t r i b u t i o n ) \color{blue}提议分布(proposal distribution) (proposaldistribution) q ( z ) q(z) q(z),具体的采样方法步骤为:
    • ①选择概率密度函数为 q ( z ) q(z) q(z)作为提议分布,使其 ∀ z \color{blue}\forall z z满足 M q ( z i ) ≥ p ( z i ) \color{blue}Mq(z_{i})\geq p(z_{i}) Mq(zi)p(zi),其中 M > 0 \color{blue}M>0 M>0
    • ②按照 提 议 分 布 q ( z ) \color{blue}提议分布q(z) q(z)随机抽样得到 样 本 z i \color{blue}样本z_{i} zi,再按照 均 匀 分 布 在 ( 0 , 1 ) \color{blue}均匀分布在(0,1) (0,1)范围内抽样得到 u i \color{blue}u_{i} ui
    • ③如果 u i ≤ p ( z i ) M q ( z i ) \color{blue} u_{i}\leq \frac{p(z_{i})}{Mq(z_{i})} uiMq(zi)p(zi),则将 z i \color{blue}z_{i} zi作为抽样结果;否则,返回步骤②;
    • ④直到获得 N \color{blue}N N个样本,结束。
  2. 缺陷
    q ( z ) q(z) q(z)很难选取;采样效率可能不高。
    • 如果 M ⋅ q ( z ) M\cdot q(z) Mq(z) p ( z ) p(z) p(z)大很多的话,那么采样老是是失败的,这样采样效率低下。
    • M ⋅ q ( z ) = p ( z ) M\cdot q(z) = p(z) Mq(z)=p(z)的时候, α = 1 \alpha = 1 α=1,我们每次采样的结果都是接受的。
    • p ( z ) p(z) p(z)的分布形式非常的复杂,根本没有办法得到准确的结果(特别是采样cost非常高),经常性的采样失败带来的损失是很大的。

13.1.3 重要性采样(Importance Sampling)

  1. 重要性采样(Importance Sampling)
    • 重要性采样在我们的强化学习(PPO)中的应用非常的多。重要性采样并不是直接对概率进行采样,而是对概率分布的期望进行采样。引入另一个分布 q ( z ) \color{red}q(z) q(z)
      E p ( z ) [ f ( z ) ] = ∫ p ( z ) f ( z ) d z = ∫ p ( z ) q ( z ) q ( z ) f ( z ) d z = ∫ f ( z ) p ( z ) q ( z ) q ( z ) d z ≈ 1 N ∑ i = 1 N f ( z i ) ⋅ p ( z i ) q ( z i ) ⏟ w e i g h t z i ∼ q ( z ) ,   i = 1 , 2 , ⋯   , N (13.1.2) \begin{array}{ll} \mathbb{E}_{p(z)}[f(z)] &= \int p(z)f(z)dz\\ & = \int \frac{p(z)}{q(z)} q(z)f(z)dz \\ &= \int f(z)\frac{p(z)}{q(z)} q(z)dz \\ & \approx \frac{1}{N}\sum_{i=1}^{N}f(z_{i})\cdot \underset{weight}{\underbrace{\frac{p(z_{i})}{q(z_{i})}}}\\ & z_i \sim q(z),\ i = 1,2,\cdots,N\end{array}\tag{13.1.2} Ep(z)[f(z)]=p(z)f(z)dz=q(z)p(z)q(z)f(z)dz=f(z)q(z)p(z)q(z)dzN1i=1Nf(zi)weight q(zi)p(zi)ziq(z), i=1,2,,N(13.1.2)
      这里的 p ( z i ) q ( z i ) \color{red}\frac{p(z_i)}{q(z_i)} q(zi)p(zi)也就是 W e i g h t \color{red}Weight Weight,用来平衡不同的概率密度值之间的差距。采样在 q ( z ) q(z) q(z)中采样,并通过权重计算和。
    • 当两个分布之间的差距太大了话,总是采样采不到重要的样本,采的可能都是实际分布概率值小的部分。也就是采样效率不均匀的问题。在这个基础上,我们进一步提出了Sampling Importance Resampling。
  2. 重要性重采样(Sampling Importance Resampling)
    经过重要性采样后,得到了 N N N个样本点以及对应的权重。重要性重采样(Sampling Importance Resampling) 用权重来作为采样的概率,重新测采样出 N N N个样本。也就是如下图所示:
    机器学习-白板推导系列(十三)- 马尔可夫链&蒙特卡洛方法(MCMC, Markov Chain&Monte Carlo)之概念及MH算法_第3张图片
    通过二次采样可以降低采样不平衡的问题。至于为什么呢?
    • p ( z i ) q ( z i ) \frac{p(z_i)}{q(z_i)} q(zi)p(zi)是Weight,如果Weight比较大的话,说明 p ( z i ) p(z_i) p(zi)比较大而 q ( z i ) q(z_i) q(zi)比较的小,也就是通过 q ( z i ) q(z_i) q(zi)采出来的数量比较少。
    • 那么按权重再来采一次,就可以增加采到重要性样本的概率,成功的弥补了重要性采样带来的缺陷,有效的弥补采样不均衡的问题。

13.2 马尔可夫链(Markov Chain)

13.2.1 基本概念

  1. 随机过程
    Random Process研究的对象是一个随机变量的序列 X = { X 0 , X 1 , ⋯   , X t , ⋯   } X=\left \{X_{0},X_{1},\cdots ,X_{t},\cdots \right \} X={X0,X1,,Xt,}。随机过程就是一个序列,这个序列中的每一个元素都是一个随机变量。
  2. Markov Chain
    • Markov Chain就是一个特殊的随机过程,它的 时 间 \color{red}时间 状 态 \color{red}状态 都是 离 散 的 \color{red}离散的
    • Markov Chain满足Markov性质,即: 未 来 \color{red}未来 过 去 \color{red}过去 无 关 的 \color{red}无关的 。用数学的语言表达是:
      P ( X t + 1 = x ∣ X 1 , X 2 , ⋯   , X t ) = P ( X t + 1 ∣ X 1 , X 2 , ⋯   , X t − m ) (13.2.1) P(X_{t+1}=x|X_1,X_2,\cdots,X_t) = P(X_{t+1}|X_1,X_2,\cdots,X_{t-m})\tag{13.2.1} P(Xt+1=xX1,X2,,Xt)=P(Xt+1X1,X2,,Xtm)(13.2.1)
      公式(13.2.1)是 m 阶 马 尔 可 夫 性 质 \color{blue}m阶马尔可夫性质 m
    • 齐次马尔可夫链
      当公式(13.2.1)的 m = 0 m=0 m=0时,就得到了齐次(一阶)马尔可夫链,即满足:
      P ( X t + 1 = x ∣ X 1 , X 2 , ⋯   , X t ) = P ( X t + 1 ∣ X t ) (13.2.2) P(X_{t+1}=x|X_1,X_2,\cdots,X_t) = P(X_{t+1}|X_{t})\tag{13.2.2} P(Xt+1=xX1,X2,,Xt)=P(Xt+1Xt)(13.2.2)
      条件概率分布 P ( X t + 1 ∣ X t ) P(X_{t+1}|X_{t}) P(Xt+1Xt)称为马尔可夫链的转移概率分布
    • 时间齐次的马尔可夫链(Time Homogenous Markov Chain)
      当转移概率分布 P ( X t ∣ X t − 1 ) P(X_{t}|X_{t-1}) P(XtXt1) t t t无关,也就是说不同时刻的转移概率是相同的,则称该马尔可夫链为时间齐次的马尔可夫链(Time Homogenous Markov Chain),形式化的表达是:
      P ( X t + s ∣ X t − 1 + s ) = P ( X t ∣ X t − 1 ) , t = 1 , 2 , ⋯   ;      s = 1 , 2 , ⋯ (13.2.3) P(X_{t+s}|X_{t-1+s})=P(X_{t}|X_{t-1}),t=1,2,\cdots ;\; \; s=1,2,\cdots\tag{13.2.3} P(Xt+sXt1+s)=P(XtXt1),t=1,2,;s=1,2,(13.2.3)
  3. 转移概率矩阵和状态分布
    • 转移概率矩阵
      如果马尔可夫链的随机变量 X t ( t = 0 , 1 , 2 , ⋯   ) X_{t}(t=0,1,2,\cdots ) Xt(t=0,1,2,)定义在 离 散 空 间 \color{blue}离散空间 ,则转移概率分布可以由矩阵表示。若马尔可夫链在时刻 t − 1 \color{blue}t-1 t1处于状态 j \color{blue}j j,在时刻 t \color{blue}t t移动到状态 i \color{blue}i i,将转移概率记作:
      p i j = ( X t = i ∣ X t − 1 = j ) , i = 1 , 2 , ⋯   ;      j = 1 , 2 , ⋯ (13.2.4) p_{ij}=(X_{t}=i|X_{t-1}=j),i=1,2,\cdots ;\; \; j=1,2,\cdots\tag{13.2.4} pij=(Xt=iXt1=j),i=1,2,;j=1,2,(13.2.4)
      满足:
      p i j ≥ 0 ,      ∑ i p i j = 1 (13.2.5) p_{ij}\geq 0,\; \; \sum _{i}p_{ij}=1\tag{13.2.5} pij0,ipij=1(13.2.5)
      马尔可夫链的转移概率可以由矩阵表示:
      P = [ p 11 p 12 p 13 ⋯ p 21 p 22 p 23 ⋯ p 31 p 32 p 33 ⋯ ⋯ ⋯ ⋯ ⋯ ]    ( p i j ≥ 0 ,      ∑ i p i j = 1 ) (13.2.6) \color{blue}P=\begin{bmatrix} p_{11} & p_{12} & p_{13} & \cdots \\ p_{21} & p_{22} & p_{23} & \cdots \\ p_{31} & p_{32} & p_{33} & \cdots \\ \cdots & \cdots & \cdots & \cdots \end{bmatrix}\; (p_{ij}\geq 0,\; \; \sum _{i}p_{ij}=1)\tag{13.2.6} P=p11p21p31p12p22p32p13p23p33(pij0,ipij=1)(13.2.6)
    • 状态分布
      • 考虑马尔可夫链 X = { X 0 , X 1 , ⋯   , X t , ⋯   } X=\left \{X_{0},X_{1},\cdots ,X_{t},\cdots \right \} X={X0,X1,,Xt,}在时刻 X t ( t = 0 , 1 , 2 , ⋯   ) X_{t}(t=0,1,2,\cdots ) Xt(t=0,1,2,)的概率分布,称为时刻 t t t的状态分布,记作:
        π ( t ) = [ π 1 ( t ) π 2 ( t ) ⋮ ] (13.2.7) \color{blue}\pi (t)=\begin{bmatrix} \pi _{1}(t)\\ \pi _{2}(t)\\ \vdots \end{bmatrix}\tag{13.2.7} π(t)=π1(t)π2(t)(13.2.7)
        其中 π i ( t ) \pi _{i}(t) πi(t)表示时刻 t \color{blue}t t状态为 i \color{blue}i i的概率 P ( X i = i ) \color{blue}P(X_{i}=i) P(Xi=i),即:
        π i ( t ) = P ( X i = i ) ,      i = 1 , 2 , ⋯ (13.2.8) \pi _{i}(t)=P(X_{i}=i),\; \; i=1,2,\cdots\tag{13.2.8} πi(t)=P(Xi=i),i=1,2,(13.2.8)
      • 对于马尔可夫链的初始状态分布:
        π ( 0 ) = [ π 1 ( 0 ) π 2 ( 0 ) ⋮ ] (13.2.9) \pi (0)=\begin{bmatrix} \pi _{1}(0)\\ \pi _{2}(0)\\ \vdots \end{bmatrix}\tag{13.2.9} π(0)=π1(0)π2(0)(13.2.9)
        其中 π i ( 0 ) \color{blue}\pi _{i}(0) πi(0)表示时刻 0 \color{blue}0 0状态为i的概率 P ( X 0 = i ) \color{blue}P(X_{0}=i) P(X0=i)。通常初始分布 π i ( 0 ) \color{blue}\pi _{i}(0) πi(0)的向量只有一个分量是 1 \color{blue}1 1,其余分量为 0 \color{blue}0 0,表示马尔可夫链是从一个具体状态开始的
      • 马尔可夫链在时刻 t t t的状态分布,可以由在时刻 t − 1 t-1 t1的状态分布以及转移概率分布决定:
        π ( t ) = P π ( t − 1 ) (13.2.10) \color{red}\pi (t)=P\pi (t-1)\tag{13.2.10} π(t)=Pπ(t1)(13.2.10)
        其中:
        π i ( t ) = P ( X t = i ) = ∑ m P ( X t = i ∣ X t − 1 = m ) P ( X t − 1 = m ) = ∑ m P i m π m ( t − 1 ) (13.2.11) \color{red}\begin{array}{ll}\pi _{i}(t)&=P(X_{t}=i)\\ & =\sum_{m}P(X_{t}=i|X_{t-1}=m)P(X_{t-1}=m)\\ &=\sum_{m}P_{im}\pi _{m}(t-1)\end{array}\tag{13.2.11} πi(t)=P(Xt=i)=mP(Xt=iXt1=m)P(Xt1=m)=mPimπm(t1)(13.2.11)
        马尔可夫链在时刻t的状态分布,可以通过递推得到:
        π ( t ) = P π ( t − 1 ) = P ( P π ( t − 2 ) ) = P 2 π ( t − 2 ) (13.2.12) \pi (t)=P\pi (t-1)=P(P\pi (t-2))=P^{2}\pi (t-2)\tag{13.2.12} π(t)=Pπ(t1)=P(Pπ(t2))=P2π(t2)(13.2.12)
        递推得到:
        π ( t ) = P t π ( 0 ) (13.2.13) \color{red}\pi (t)=P^{t}\pi (0)\tag{13.2.13} π(t)=Ptπ(0)(13.2.13)
        1. 这里的递推式表明马尔可夫链的状态分布由 初 始 分 布 \color{red}初始分布 转 移 概 率 分 布 \color{red}转移概率分布 决定。
        2. 这里的 P t \color{red}P^{t} Pt称为 t 步 转 移 概 率 矩 阵 \color{red}t步转移概率矩阵 t
          P i j t = P ( X t = i ∣ X 0 = j ) (13.2.14) \color{red}P^{t}_{ij}=P(X_{t}=i|X_{0}=j)\tag{13.2.14} Pijt=P(Xt=iX0=j)(13.2.14)
      • 给定一个马尔可夫链 X X X,状态分布为 π = ( π 1 , π 2 , ⋯   ) T \pi=(\pi_{1},\pi_{2},\cdots )^T π=(π1,π2,)T X X X 充 要 条 件 \color{red}充要条件 π \pi π是下列方程组的解:
        { ①    x i = ∑ j p i j x j ,      i = 1 , 2 , ⋯ ②    x i ≥ 0 ,      i = 1 , 2 , ⋯ ③    ∑ i x i = 1 (13.2.15) \left\{\begin{array}{ll} ①\; x_{i}=\sum _{j}p_{ij}x_{j},\; \; i=1,2,\cdots \\ ②\; x_{i}\geq 0,\; \; i=1,2,\cdots \\③\; \sum_{i}x_{i}=1 \end{array}\right.\tag{13.2.15} xi=jpijxj,i=1,2,xi0,i=1,2,ixi=1(13.2.15)
      1. 必要性证明
        假设 π \pi π是平稳分布,显然满足①和②,又因为 π i = ∑ j p i j π j \pi_{i}=\sum _{j}p_{ij}\pi_{j} πi=jpijπj,所以满足③。
      2. 充分性证明
        由②和③知 π \pi π是一概率分布。假设 π \pi π X t X_t Xt的分布,则有:
        P ( X t = i ) = π i = ∑ j p i j P ( X t − 1 = j ) (13.2.15) P(X_{t}=i)=\pi _{i}=\sum _{j}p_{ij}P(X_{t-1}=j)\tag{13.2.15} P(Xt=i)=πi=jpijP(Xt1=j)(13.2.15)
        又因为 π \pi π满足①,所以有:
        P ( X t = i ) = π i = ∑ j p i j π j (13.2.16) P(X_{t}=i)=\pi _{i}=\sum _{j}p_{ij}\pi _{j}\tag{13.2.16} P(Xt=i)=πi=jpijπj(13.2.16)
        综合两式则可得出 P ( X t − 1 = j ) = π j , j = 1 , 2 , ⋯ P(X_{t-1}=j)=\pi _{j},j=1,2,\cdots P(Xt1=j)=πj,j=1,2,,即 π \pi π也是 X t − 1 X_{t-1} Xt1的概率分布。事实上这对任意 t t t都成立,所以 π \pi π是马尔可夫链的平稳分布。
      1. 平稳分布
        对于一个马尔可夫链 X X X,如果其状态空间上存在一个分布:
        π = [ π 1 π 2 ⋮ ] (13.2.17) \pi =\begin{bmatrix} \pi _{1}\\ \pi _{2}\\ \vdots \end{bmatrix}\tag{13.2.17} π=π1π2(13.2.17)
        使得: π = P π \pi =P\pi π=Pπ
        则称 π \pi π为马尔可夫链 X X X的平稳分布。直观地来看,如果以该平稳分布作为初始分布,面向未来进行随机状态转移,之后任何一个时刻的状态分布都是该平稳分布。具体内容在(13.2.2)中会描述。
  4. 连续状态马尔可夫链
    1. 概率转移核
      • 连续状态马尔可夫链的转移概率分布由概率转移核转移核(transition kernel)表示。
      • 在连续状态空间 S S S上,对任意的 x ∈ S , A ⊂ S x\in S,A\subset S xS,AS A A A可以理解为一个区间),转移核 P ( x , A ) P(x,A) P(x,A)定义为:
        P ( x , A ) = ∫ A p ( x , y ) d y (13.2.18) \color{red}P(x,A)=\int _{A}p(x,y)\mathrm{d}y\tag{13.2.18} P(x,A)=Ap(x,y)dy(13.2.18)
        其中 p ( x , ⋅ ) p(x,\cdot ) p(x,)概率密度函数,满足 p ( x , ⋅ ) ≥ 0 , P ( x , S ) = ∫ S p ( x , y ) d y = 1 p(x,\cdot )\geq 0,P(x,S)=\int _{S}p(x,y)\mathrm{d}y=1 p(x,)0,P(x,S)=Sp(x,y)dy=1。转移核 P ( x , A ) P(x,A) P(x,A)表示从 x ∼ A x\sim A xA的转移概率:
        P ( X t = A ∣ X t − 1 = x ) = P ( x , A ) (13.2.19) \color{red}P(X_{t}=A|X_{t-1}=x)=P(x,A)\tag{13.2.19} P(Xt=AXt1=x)=P(x,A)(13.2.19)

        有时也将概率密度函数 p ( x , ⋅ ) p(x,\cdot ) p(x,)称为转移核

      1. 若马尔可夫链的状态空间 S S S上的概率分布 π ( x ) \pi (x) π(x)满足条件:
        π ( y ) = ∫ p ( x , y ) π ( x ) d x , ∀ y ∈ S (13.2.20) \color{red}\pi (y)=\int p(x,y)\pi (x)\mathrm{d}x,\forall y\in S\tag{13.2.20} π(y)=p(x,y)π(x)dx,yS(13.2.20)
        π ( x ) \pi (x) π(x)为该马尔可夫链的平稳分布。等价地:
        π ( A ) = ∫ p ( x , A ) π ( x ) d x , ∀ A ∈ S (13.2.21) \color{red}\pi (A)=\int p(x,A)\pi (x)\mathrm{d}x,\forall A\in S\tag{13.2.21} π(A)=p(x,A)π(x)dx,AS(13.2.21)
        或简写为:
        π = P π (13.2.22) \pi =P\pi\tag{13.2.22} π=Pπ(13.2.22)
  5. 马尔可夫链的性质
    • 不可约
      在状态空间 S S S中对于任意状态 i , j ∈ S i,j\in S i,jS,如果存在一个时刻 t ( t > 0 ) t(t>0) t(t>0)满足:
      P ( X t = i ∣ X 0 = j ) > 0 (13.2.23) \color{red}P(X_{t}=i|X_{0}=j)> 0\tag{13.2.23} P(Xt=iX0=j)>0(13.2.23)
      也就是说,时刻 0 \color{blue}0 0从状态 j \color{blue}j j出发,时刻 t \color{blue}t t到达状态 i \color{blue}i i的概率 大 于 0 \color{blue}大于0 0,则称此马尔可夫链是不可约的(irreducible),否则称马尔可夫链是可约的(reducible)。

      直观上: 一 个 不 可 约 的 马 尔 可 夫 链 , 从 任 意 状 态 出 发 , 当 经 过 充 分 长 时 间 后 , 可 以 到 达 任 意 状 态 。 \color{red}一个不可约的马尔可夫链,从任意状态出发,当经过充分长时间后,可以到达任意状态。

      • 不可约:
        机器学习-白板推导系列(十三)- 马尔可夫链&蒙特卡洛方法(MCMC, Markov Chain&Monte Carlo)之概念及MH算法_第4张图片
      • 可约:
        机器学习-白板推导系列(十三)- 马尔可夫链&蒙特卡洛方法(MCMC, Markov Chain&Monte Carlo)之概念及MH算法_第5张图片
    1. 非周期
      在状态空间 S S S中对于任意状态 i ∈ S i\in S iS,如果时刻 0 \color{blue}0 0从状态 i \color{blue}i i出发, t \color{blue}t t时刻返回状态的所有时间长 { t : P ( X t = i ∣ X 0 = i ) > 0 } \color{blue}\left \{t:P(X_{t}=i|X_{0}=i)> 0\right \} {t:P(Xt=iX0=i)>0}的最大公约数是 1 \color{red}1 1,则称此马尔可夫链是非周期的(aperiodic),否则称马尔可夫链是周期的(periodic)

      直观上,一个非周期性的马尔可夫链,不存在一个状态,从这一个状态出发,再返回到这个状态时所经历的时间长呈一定的周期性,也就是说 非 周 期 性 的 马 尔 可 夫 链 的 任 何 状 态 都 不 具 有 周 期 性 \color{red}非周期性的马尔可夫链的任何状态都不具有周期性

      • 非周期:
        机器学习-白板推导系列(十三)- 马尔可夫链&蒙特卡洛方法(MCMC, Markov Chain&Monte Carlo)之概念及MH算法_第6张图片
      • 周期:
        机器学习-白板推导系列(十三)- 马尔可夫链&蒙特卡洛方法(MCMC, Markov Chain&Monte Carlo)之概念及MH算法_第7张图片
    2. 正常返
      对于任意状态 i , j ∈ S i,j\in S i,jS,定义概率 p i j t p_{ij}^{t} pijt为时刻 0 \color{blue}0 0从状态 j \color{blue}j j出发,时刻 t 首 次 \color{blue}t首次 t转移到状态 i \color{blue}i i的概率,即 p i j t = P ( X t = i , X s ≠ i , s = 1 , 2 , ⋯   , t − 1 ∣ X 0 = j ) , t = 1 , 2 , ⋯ \color{blue}p_{ij}^{t}=P(X_{t}=i,X_{s}\neq i,s=1,2,\cdots ,t-1|X_{0}=j),t=1,2,\cdots pijt=P(Xt=i,Xs=i,s=1,2,,t1X0=j),t=1,2,。若对所有状态 i , j \color{blue}i,j i,j都满足 lim ⁡ t → ∞ p i j t > 0 \color{blue}\lim_{t\rightarrow \infty }p_{ij}^{t}> 0 limtpijt>0,则称马尔可夫链是正常返的(positive recurrent)
      • 直观上,一个正常返的马尔可夫链,其中任意一个状态,从其他任意一个状态出发,当时间趋于无穷时,首次转移到这个状态的概率不为 0 \color{blue}0 0
      • 定理: 不 可 约 、 非 周 期 且 正 常 返 的 马 尔 可 夫 链 , 有 唯 一 平 稳 分 布 存 在 。 \color{red}不可约、非周期且正常返的马尔可夫链,有唯一平稳分布存在。
    3. 遍历定理
      • 定理
        若马尔可夫链是不可约、非周期且正常返的,则该马尔可夫链有唯一平稳分布 π = ( π 1 , π 2 , ⋯   ) T \pi=(\pi_{1},\pi_{2},\cdots )^T π=(π1,π2,)T,并且转移概率的极限分布是马尔可夫链的平稳分布:
        lim ⁡ t → ∞ P ( X t = i ∣ X 0 = j ) = π i ,      i = 1 , 2 , ⋯   ,      j = 1 , 2 , ⋯ (13.2.24) \color{red}\lim_{t\rightarrow \infty }P(X_{t}=i|X_{0}=j)=\pi _{i},\; \; i=1,2,\cdots ,\; \; j=1,2,\cdots\tag{13.2.24} tlimP(Xt=iX0=j)=πi,i=1,2,,j=1,2,(13.2.24)

        也就是: lim ⁡ t → ∞ P ( X t = i ) = π i ,      i = 1 , 2 , ⋯ \lim_{t\rightarrow \infty }P(X_{t}=i)=\pi _{i},\; \; i=1,2,\cdots tlimP(Xt=i)=πi,i=1,2,

        f ( X ) f(X) f(X)是定义在状态空间上的函数, E π [ f ( X ) ] < ∞ E_{\pi }[f(X)]< \infty Eπ[f(X)]<,则:
        P { f ^ t → E π [ f ( X ) ] } = 1 (13.2.25) \color{red}P\left \{\hat{f}_{t}\rightarrow E_{\pi }[f(X)]\right \}=1\tag{13.2.25} P{f^tEπ[f(X)]}=1(13.2.25)
        此处:

        • f ^ t = 1 t ∑ s = 1 t f ( x s ) \hat{f}_{t}=\frac{1}{t} \sum_{s=1}^{t}f(x_{s}) f^t=t1s=1tf(xs)
        • E π [ f ( X ) ] = ∑ i f ( i ) π i E_{\pi }[f(X)]=\sum _{i}f(i)\pi _{i} Eπ[f(X)]=if(i)πi f ( X ) f(X) f(X)关于平稳分布 π = ( π 1 , π 2 , ⋯   ) T \pi=(\pi_{1},\pi_{2},\cdots )^T π=(π1,π2,)T的数学期望;
        • P { f ^ t → E π [ f ( X ) ] } = 1 P\left \{\hat{f}_{t}\rightarrow E_{\pi }[f(X)]\right \}=1 P{f^tEπ[f(X)]}=1表示 f ^ t → E π [ f ( X ) ] , t → ∞ \hat{f}_{t}\rightarrow E_{\pi }[f(X)],t\rightarrow \infty f^tEπ[f(X)],t几乎处处成立或以概率 1 1 1成立。
      1. 意义
        • 遍历定理的直观解释:满足相应条件的马尔可夫链,当时间趋于无穷时,马尔可夫链的状态分布趋近于平稳分布,随机变量的函数的样本均值以概率收敛于该函数的数学期望。
        • 样本均值可以认为是时间均值,数学期望是空间均值。遍历定理表述了遍历性的含义:当时间趋于无穷时,时间均值等于空间均值
        • 遍历定理的三个条件:不可约、非周期、正常返,保证了当时间趋于无穷时达到任意一个状态的概率不为。
      2. 实际应用
        理论上并不知道经过多少次迭代,马尔可夫链的状态分布才能接近平稳分布,在实际应用遍历定理时,取一个足够大的整数 m \color{blue}m m,经过 m \color{blue}m m次迭代之后认为状态分布就是平稳分布,这时计算从第 m + 1 \color{blue}m+1 m+1次迭代到第 n \color{blue}n n次迭代的均值,即:
        E π [ f ( X ) ] = 1 n − m ∑ i = m + 1 n f ( x i ) (13.2.26) E_{\pi }[f(X)]=\frac{1}{n-m}\sum_{i=m+1}^{n}f(x_{i})\tag{13.2.26} Eπ[f(X)]=nm1i=m+1nf(xi)(13.2.26)
        称为遍历均值
  6. 可逆马尔可夫链
    • 定义
      对于任意状态i,j\in S,对任意一个时刻t满足:
      P ( X t = i ∣ X t − 1 = j ) π j = P ( X t − 1 = j ∣ X t = i ) π i ,      i , j = 1 , 2 , ⋯ (13.2.27) \color{red}P(X_{t}=i|X_{t-1}=j)\pi _{j}=P(X_{t-1}=j|X_{t}=i)\pi _{i},\; \; i,j=1,2,\cdots\tag{13.2.27} P(Xt=iXt1=j)πj=P(Xt1=jXt=i)πi,i,j=1,2,(13.2.27)
      或简写为:
      p i j π j = p j i π i ,      i , j = 1 , 2 , ⋯ (13.2.28) p_{ij}\pi _{j}=p_{ji}\pi _{i},\; \; i,j=1,2,\cdots\tag{13.2.28} pijπj=pjiπi,i,j=1,2,(13.2.28)
      则称此马尔可夫链为可逆马尔可夫链(reversible Markov chain),上式又被称作细致平衡方程(detailed balance equation)。13.2.2中会讲解到。

      直观上,如果有可逆马尔可夫链,那么以该马尔可夫链的平稳分布作为初始分布,进行随机状态转移,无论是面向过去还是面向未来,任何一个时刻的状态分布都是该平稳分布

    • 定理
      满足细致平衡方程的状态分布 π \pi π就是该马尔可夫链的平稳分布,即满足 P π = π P\pi=\pi Pπ=π

      证明:
      ( P π ) i = ∑ j p i j π j = ∑ j p j i π i = π i ∑ j p j i ⏟ = 1 = π i ,      i = 1 , 2 , ⋯ (P\pi )_{i}=\sum _{j}p_{ij}\pi _{j}=\sum _{j}p_{ji}\pi _{i}=\pi _{i}\underset{=1}{\underbrace{\sum _{j}p_{ji}}}=\pi _{i},\; \; i=1,2,\cdots (Pπ)i=jpijπj=jpjiπi=πi=1 jpji=πi,i=1,2,

      该定理说明,可逆马尔可夫链一定有唯一平稳分布,给出了一个马尔可夫链有平稳分布的充分条件(不是必要条件)。也就是说,可逆马尔可夫链满足遍历定理的条件。


13.2.2 平稳分布

  1. Markov Chain 理解
    一个Markov Chain可以用下图来表示:
    机器学习-白板推导系列(十三)- 马尔可夫链&蒙特卡洛方法(MCMC, Markov Chain&Monte Carlo)之概念及MH算法_第8张图片
    此图就是一个时间序列, x i x_i xi就表示在第 i i i时刻的状态,而每一个状态都是一个随机变量。而 π i \pi_i πi描述的就是第 i i i个随机变量的分布。对于一个马氏链来讲,它在第 t + 1 t+1 t+1时刻的概率分布,可以被我们表达为:
    π t + 1 ( x ∗ ) = ∫ π t ( x ) ⋅ P ( x ↦ x ∗ ) d x (13.2.29) \pi_{t+1}(x^\ast) = \int \pi_t(x)\cdot P(x\mapsto x^\ast) dx\tag{13.2.29} πt+1(x)=πt(x)P(xx)dx(13.2.29)
    此处 x ∗ x^\ast x表示 t + 1 t+1 t+1时刻随机变量的某一个值, x x x表示 t t t时刻随机变量。即:所有可能转移到状态 x t + 1 x_{t+1} xt+1的概率分布的和。
  2. 平稳分布定义
    假如存在一个 π \pi π,这里的 π \color{red}\pi π和前面的 π t \color{red}\pi_{t} πt π t + 1 \color{red}\pi_{t+1} πt+1 没 有 关 系 \color{red}没有关系 。假如 π \pi π是一个概率分布,那么它写成一个无限维向量的形式:
    π = [ π ( 1 ) , π ( 2 ) , ⋯   , π ( t ) , ⋯   ] , ∑ i = 1 ∞ π ( i ) = 1 (13.2.30) \color{red}\pi = [\pi(1),\pi(2),\cdots,\pi(t),\cdots], \qquad \sum_{i=1}^\infty \pi(i) = 1\tag{13.2.30} π=[π(1),π(2),,π(t),],i=1π(i)=1(13.2.30)
    如果式(13.2.16)成立:
    π ( x ∗ ) = ∫ π ( x ) ⋅ P ( x ↦ x ∗ ) d x (13.2.31) \color{red}\pi(x^\ast) = \int \pi(x)\cdot P(x\mapsto x^\ast) dx\tag{13.2.31} π(x)=π(x)P(xx)dx(13.2.31)
    我们就称 { π ( k ) } k = 1 ∞ \{ \pi(k) \}_{k=1}^\infty {π(k)}k=1是马氏链 { x k } \{x_{k}\} {xk} 平 稳 分 布 \color{red}平稳分布

    用通俗的话讲就是:对于一个马氏链,每个时刻都符合一个概率分布,如果每一个时刻的概率的分布都是一样的,都是 π ( k ) \pi(k) π(k),那么就可以称这个马氏链满足一个平稳分布。

  3. 引入平稳分布的意义
    • 本章开头,我们引入MCMC的目标是求 P ( Z ) P(Z) P(Z),此处 P ( Z ) P(Z) P(Z)可以看成是一个平稳分布 π ( k ) \pi(k) π(k),那么就可以通过构建一系列的 { x 1 , x 2 , ⋯   , x t , ⋯   } \{ x_1,x_2,\cdots,x_t,\cdots \} {x1,x2,,xt,}的马氏链,让其来逼近这个平稳分布。
    • 构建的马氏链,包括随机变量和转移矩阵,如果它满足平稳分布的条件,确实是可以收敛到平稳分布的。那么,我就可以让构建出来的这个马氏链收敛到平稳分布来求得 P ( Z ) P(Z) P(Z)
    • 如何构建平稳分布
      引入一个条件,也就是Detailed Balance:
      π ( x ) ⋅ P ( x ↦ x ∗ ) = π ( x ∗ ) ⋅ P ( x ∗ ↦ x ) (13.2.32) \color{red}\pi(x)\cdot P(x\mapsto x^\ast) = \pi(x^\ast)\cdot P(x^\ast \mapsto x)\tag{13.2.32} π(x)P(xx)=π(x)P(xx)(13.2.32)
      即:对于任意两个状态之间,使用概率分布称为转移概率得到的结果都是可逆的,那么这两个状态之间的分布一定是一样的。
      D e t a i l e d    B a l a n c e ⇒ 平 稳 分 布 ( 充 分 不 必 要 条 件 ) (13.2.33) \color{red}Detailed\;Balance\Rightarrow 平稳分布(充分不必要条件)\tag{13.2.33} DetailedBalance()(13.2.33)

    如果一个分布满足Detailed Balance那么它一定可以是一个平稳分布,但是反过来并不能成立。而证明过程如下:
    ∫ π ( x ) ⋅ P ( x ↦ x ∗ ) d x = ∫ π ( x ∗ ) ⋅ P ( x ∗ ↦ x ) d x = π ( x ∗ ) ∫ P ( x ∗ ↦ x ) ⏟ ∑ j = 1 ∞ P i j = 1 d x = π ( x ∗ ) \begin{array}{ll} \int \pi(x)\cdot P(x\mapsto x^\ast)dx & = \int \pi(x^\ast)\cdot P(x^\ast \mapsto x) dx \\ & = \pi(x^\ast) \underbrace{\int P(x^\ast \mapsto x)}_{\sum_{j=1}^\infty P_{ij} = 1 } dx \\ & = \pi(x^\ast) \end{array} π(x)P(xx)dx=π(x)P(xx)dx=π(x)j=1Pij=1 P(xx)dx=π(x)


13.3 MH Algorithm

13.3.1 引子

  • Monte Carlo Method
    Monte Carlo Method是一种基于采样的随机近似算法。目标是求解后验概率 P ( Z ∣ X ) \color{blue}P(Z|X) P(ZX),其中 Z Z Z为Latent data, X X X为Observed data。知道分布后,通常的目标是求解:
    E Z ∣ X [ f ( Z ) ] = ∫ Z P ( Z ∣ X ) f ( Z ) d Z ≈ 1 N ∑ i = 1 N f ( z i ) (13.3.1) \mathbb{E}_{Z|X}[f(Z)] = \int_Z P(Z|X)f(Z)dZ \approx \frac{1}{N}\sum_{i=1}^N f(z_i)\tag{13.3.1} EZX[f(Z)]=ZP(ZX)f(Z)dZN1i=1Nf(zi)(13.3.1)
    常用的方法有:概率分布采样拒绝采样重要性采样
  • 马氏链(平稳分布)
    1. 对于遍历的马尔可夫链,当其转移次数足够多时,将会进入稳态分布 π ( x ) π(x) π(x),即各状态的出现概率趋于稳定。
    2. 进一步,假设变量 X X X所有可能的取值,构成某遍历马氏链的状态空间。
      则无论从什么状态出发,只要转移步数足够大,该马氏链将趋于稳定,即逐渐开始依次输出符合 p ( x ) p(x) p(x)分布的状态 X i X_i Xi
    3. 这样,通过收集马氏链收敛后产生的 X i X_i Xi,我们就得到了符合分布 p ( x ) p(x) p(x)的样本。
      此时稳态分布即: π ( x ) = p ( x ) (13.3.2) \color{red}π(x)=p(x)\tag{13.3.2} π(x)=p(x)(13.3.2)
  • MH 算法
    1. MH 算法是利用Monte Carlo Method中的拒绝采样马氏链中的平稳分布 采 样 方 法 \color{red}采样方法
    2. MH算法是Metropolis 算法的一个常用的改进变种
    3. 由于马氏链的收敛性质主要由转移矩阵 P P P决定, 所以基于马氏链做采样的关键问题是:如何构造转移矩阵 P P P,使平稳分布恰好是我们要的分布。

13.3.2 概念

  1. Detailed Balance
    上一节中我们讲解了Detailed Balance,这是平稳分布的充分必要条件。Detailed Balance为:
    π ( x ) P ( x ↦ x ∗ ) = π ( x ∗ ) P ( x ∗ ↦ x ) (13.3.3) \pi(x)P(x\mapsto x^\ast) = \pi(x^\ast)P(x^\ast \mapsto x)\tag{13.3.3} π(x)P(xx)=π(x)P(xx)(13.3.3)
    这里的 P ( x ↦ x ∗ ) P(x\mapsto x^\ast) P(xx)实际上就是条件概率 P ( x ∗ ∣ x ) P(x^\ast|x) P(xx),这样写只是便于理解。换一种写法可以是:
    • 定理——细致平稳条件
      若非周期马氏链的转移矩阵 P \color{red}P P和分布 π ( x ) \color{red}π(x) π(x)满足:
      π ( i ) P i j = π ( j ) P j i , ∀ i , j (13.3.4) \color{red}π(i)P_{ij}=π(j)P_{ji},∀i,j\tag{13.3.4} π(i)Pij=π(j)Pji,i,j(13.3.4)
      i , j i,j i,j表示相应时间的状态,则分布 π ( x ) π(x) π(x)是马氏链的平稳分布。
    • 这说明:
      π ( x ) P = π ( x ) (13.3.5) \color{red}π(x)P=π(x)\tag{13.3.5} π(x)P=π(x)(13.3.5)
      因此 π ( x ) π(x) π(x)是平稳分布。
    • 物理意义:
      对于任意两个状态 i , j i,j i,j,从状态 i i i流失到状态 j j j的概率质量,等于反向流动的概率质量,因此是状态概率是稳定的。
  2. 目标
    推断问题的核心目标:求的是后验概率分布 P ( Z ) P(Z) P(Z)。求 P ( Z ) P(Z) P(Z)主要是为了求在 P ( Z ) P(Z) P(Z)概率分布下的一个相关函数的期望,也就是:
    E P ( Z ) [ f ( Z ) ] ≈ 1 N ∑ i = 1 N f ( z ( i ) ) (13.3.6) \color{red}\mathbb{E}_{P(Z)}[f(Z)] \approx \frac{1}{N} \sum_{i=1}^N f(z^{(i)})\tag{13.3.6} EP(Z)[f(Z)]N1i=1Nf(z(i))(13.3.6)
    • 我们的目标是 采 样 来 得 到 P ( Z ) ∼ { z ( 1 ) , z ( 2 ) , ⋯   , z ( N ) } 样 本 点 \color{red}采样来得到P(Z) \sim \{ z^{(1)},z^{(2)},\cdots, z^{(N)} \}样本点 P(Z){z(1),z(2),,z(N)}
    • 如果 π ( x ) \pi(x) π(x)是最终的平稳分布( 满 足 D e t a i l e d    B a l a n c e 条 件 \color{blue}满足Detailed\;Balance条件 DetailedBalance),求 P ( Z ) P(Z) P(Z)则可以转换为:求出概率转移矩阵 P i j P_{ij} Pij
    • 如果是平稳分布,对不同时刻进行采样,利用马氏链转换到需要的平稳时刻。最终就可以转换到 P ( Z ) P(Z) P(Z),MH算法则是如何构则是如何采样,得到想要的关于 P ( Z ) P(Z) P(Z) N N N个样本。

13.3.3 M-H算法实现

  1. M-H算法实现
    • 假设我们已经有了一个转移矩阵 Q Q Q。一般情况下,该转移矩阵不满足细致平稳条件:
      P ( i ) Q i j ≠ P ( j ) Q j i (13.3.7) \color{red}P(i)Q_{ij}≠P(j)Q_{ji}\tag{13.3.7} P(i)Qij=P(j)Qji(13.3.7)
      我们引入接受率 α ( i , j ) α(i,j) α(i,j),满足:
      P ( i )    Q i j    α ( i , j ) = P ( j )    Q j i    α ( j , i ) (13.3.8) \color{red}P(i)\;Q_{ij}\;α(i,j)=P(j)\;Q_{ji}\;α(j,i)\tag{13.3.8} P(i)Qijα(i,j)=P(j)Qjiα(j,i)(13.3.8)
      其中:

      • P ( i ) P(i) P(i)是状态 i i i出现的概率,是 假 设 马 氏 链 满 足 复 杂 分 布 时 输 出 状 态 的 概 率 \color{blue}假设马氏链满足复杂分布时输出状态的概率
      • Q Q Q是初始转移概率矩阵, 满 足 任 意 一 个 给 定 的 简 单 分 布 \color{blue}满足任意一个给定的简单分布 ,便于抽样即可。
    • 显然,接受率最简单的构造方法是:
      α ( i , j ) = P ( j ) Q i j α ( j , i ) = P ( i ) Q j i (13.3.9) \begin{array}{ll}α(i,j)=P(j)Q_{ij}\\ α(j,i)=P(i)Q_{ji}\end{array}\tag{13.3.9} α(i,j)=P(j)Qijα(j,i)=P(i)Qji(13.3.9)
      此时,细致平稳条件成立, 该 马 氏 链 输 出 的 状 态 满 足 稳 态 分 布 p ( x ) ! \color{blue}该马氏链输出的状态满足稳态分布p(x)! p(x)

    • 注意
      综上,有几个要点必须要理解,有助于我们编程实现:

      • 我们引入接受率,使得该马氏链 以 转 移 概 率 Q i j α ( i , j ) 从 状 态 i 转 移 到 状 态 j \color{red}以转移概率Q_{ij}α(i,j)从状态i转移到状态j Qijα(i,j)ij
      • 该转移概率的实现方式是:我们 先 按 Q i j 生 成 新 状 态 , 再 按 α ( i , j ) 的 概 率 接 受 转 移 结 果 \color{red}先按Q_{ij}生成新状态,再按α(i,j)的概率接受转移结果 Qijα(i,j),乘积即为 Q i j α ( i , j ) Q_{ij}α(i,j) Qijα(i,j)转移概率。
      • 一定要理解这个接受率
        • 在拒绝抽样中,如果 u 0 > p ( z ) u_0>p(z) u0>p(z),我们会放弃抽样结果,不纳入最终的统计。正是因为如此,抽样才会逼近复杂分布
        • 而这里的接受是 “ 接 受 转 移 ” \color{red}“接受转移” ,如果 u > α u>α u>α,意味着 t + 1 t+1 t+1时刻状态和 t t t时刻相同,并且应该纳入统计而不是放弃结果!!
      • 由于状态出现概率和转移概率满足细致平稳条件,因此状态出现概率即稳态分布概率。 长 期 转 移 \color{red}长期转移 后,我们会得到想要的抽样分布效果。
    • 图解转移过程:
      机器学习-白板推导系列(十三)- 马尔可夫链&蒙特卡洛方法(MCMC, Markov Chain&Monte Carlo)之概念及MH算法_第9张图片

      • 要注意的是,当马氏链处在状态 i i i时,我们并不知道如何选择下一个状态 j j j
      • 我们在这里采用抽样的方法,并 借 助 接 受 率 , “ 强 迫 ” 转 移 过 程 逼 近 理 想 的 遍 历 马 氏 链 转 移 过 程 \color{red}借助接受率,“强迫”转移过程逼近理想的遍历马氏链转移过程
    • 算法描述如下

      • 初始化马氏链状态 X 0 = x 0 X_0=x_0 X0=x0
      • t = 0 t=0 t=0开始,重复以下步骤:
        • 假设该 t t t时刻状态为 X t = x t X_t=x_t Xt=xt
        • Q x t , x Q_{x_t,x} Qxt,x抽样,随机得到一个状态 x n e x t x_{next} xnext
        • [ 0 , 1 ] [0,1] [0,1]上均匀抽样,得到一个 u u u
        • u < α ( x t , x n e x t ) = P ( x n e x t ) Q x n e x t , x t u<α(x_t,x_{next})=P(x_{next})Q_{x_{next},x_t} u<α(xt,xnext)=P(xnext)Qxnext,xt,则接受转移 X t + 1 = x n e x t X_{t+1}=x_{next} Xt+1=xnext
        • 否则不转移,即 X t + 1 = x t X_{t+1}=x_t Xt+1=xt
  2. 算法升级
    1. 存在问题
      如果 α ( x t , x n e x t ) α(x_t,x_{next}) α(xt,xnext)太小,会导致转移很难发生,马氏链收敛过慢。
      我们回到细致平稳条件:
      P ( i )    Q i j    α ( i , j ) = P ( j )    Q j i    α ( j , i ) (13.3.10) \color{red}P(i)\;Q_{ij}\;α(i,j)=P(j)\;Q_{ji}\;α(j,i)\tag{13.3.10} P(i)Qijα(i,j)=P(j)Qjiα(j,i)(13.3.10)
      我们希望在保持条件成立的前提下,使接受率尽量增大。
    2. 改进
      由于接受率的本质是概率,因此 α ( i , j ) \alpha(i,j) α(i,j) α ( j , i ) \alpha(j,i) α(j,i)中的较大者不应大于 1 1 1。那么我们作下述改进即可:
      b u f = P ( j ) Q j i P ( i ) Q i j α ( i , j ) = m i n ( b u f , 1 ) (13.3.11) \color{red}buf = \frac{P(j)\boldsymbol Q_{ji}}{P(i)\boldsymbol Q_{ij}}\\ \alpha(i,j)=min(buf,1)\tag{13.3.11} buf=P(i)QijP(j)Qjiα(i,j)=min(buf,1)(13.3.11)
      解释:
      • 如果 α ( i , j ) \alpha(i,j) α(i,j)更大,那么应设为1。而第一项大于1,因此 α ( i , j ) = 1 \alpha(i,j)=1 α(i,j)=1,结束。
      • 如果 α ( j , i ) \alpha(j,i) α(j,i)更大,那么为了等式成立, α ( i , j ) \alpha(i,j) α(i,j)必须等于buf。而 b u f < 1 buf<1 buf<1
    3. 改 进 算 法 \color{red}改进算法
      • 初始化马氏链状态 X 0 = x 0 X_0=x_0 X0=x0

      • 假设该 t t t时刻状态为 X t = x t X_t=x_t Xt=xt

        • Q x t , x Q_{x_t,x} Qxt,x抽样,随机得到一个状态 x n e x t x_{next} xnext
        • [ 0 , 1 ] [0,1] [0,1]上均匀抽样,得到一个 u u u
        • u < α ( x t , x n e x t ) = m i n ( P ( n e x t ) Q n e x t , t P ( t ) Q t , n e x t , 1 ) u<α(x_t,x_{next})=min(\frac{P(next)\boldsymbol Q_{next,t}}{P(t)\boldsymbol Q_{t,next}},1) u<α(xt,xnext)=min(P(t)Qt,nextP(next)Qnext,t,1),则接受转移 X t + 1 = x n e x t X_{t+1}=x_{next} Xt+1=xnext
        • 否则不转移,即 X t + 1 = x t X_{t+1}=x_t Xt+1=xt

        这样执行了 N N N次,就可以得到 { X 1 , X 2 , ⋯   , X N } \{ X_{1},X_{2},\cdots,X_{N} \} {X1,X2,,XN}个样本点。

        这里的 P ( t ) = P ^ ( t ) t p P(t) = \frac{\hat{P}(t)}{t_p} P(t)=tpP^(t)。其中 t p t_p tp指的是归一化因子,几乎非常难以计算,所以一般是未知的。而 t ^ ( Z ) = l i k e l i h o o d × p r i o r \hat{t}(Z) =likelihood\times prior t^(Z)=likelihood×prior。所以这里的 P ( t ) P(t) P(t) P ( n e x t ) P(next) P(next)就是 P ^ ( t ) \hat{P}(t) P^(t) P ^ ( n e x t ) \hat{P}(next) P^(next)。由于归一化因子被抵消了,干脆就直接写成了 P ( t ) P(t) P(t) P ( n e x t ) P(next) P(next)


参考:

  1. MCMC-1|机器学习推导系列(十五)
  2. Metropolis-Hastings algorithm

你可能感兴趣的:(机器学习-白板推导,机器学习,算法)