13. 马尔可夫链&蒙特卡洛方法(MCMC)
13.1 采样方法介绍
-
上一章讲贝叶斯角度主要是计算 P ( Z ∣ X ) P(Z|X) P(Z∣X),大致采用两种思路来解决这个问题,也就是精确推断和近似推断。精确推断无法达到我们想要的结果时,就会采用近似推断的方法。而近似推断中我们又可以分成两大类,即为确定性近似(VI)和随机近似(MCMC)。
-
Monte Carlo Method是一种基于采样的随机近似算法。目标是求解后验概率 P ( Z ∣ X ) \color{blue}P(Z|X) P(Z∣X),其中 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} EZ∣X[f(Z)]=∫ZP(Z∣X)f(Z)dZ≈N1i=1∑Nf(zi)(13.1.1)那么知道了后验分布 P ( Z ∣ X ) P(Z|X) P(Z∣X),怎么去采样呢?即:如何通过采样得到 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(Z∣X)。这一节将要主要介绍三种采样方法:概率分布采样,拒绝采样和重要性采样。
13.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(独立同分布)。
-
介绍
- 已知: 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)∼cdf−1(u(i))就可以计算得到采样的
{
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(概率分布函数)也并不好求。
所以很多情况下,概率分布采样并没有那么的好求。
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)})}
α=M⋅q(z(i))P(z(i)),
0
≤
α
≤
1
0 \leq \alpha \leq 1
0≤α≤1,实际是上图中绿色的部分。
绿色的部分称为 拒 绝 区 域 \color{blue}拒绝区域 拒绝区域,蓝色部分称为 接 受 区 域 \color{blue}接受区域 接受区域。采样点的概率要到 蓝 色 区 域 内 \color{blue}蓝色区域内 蓝色区域内,所以这个采样方法就是拒绝采样就是这样来的。
- 介绍
对于较复杂的概率分布 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})} ui≤Mq(zi)p(zi),则将 z i \color{blue}z_{i} zi作为抽样结果;否则,返回步骤②;
- ④直到获得 N \color{blue}N N个样本,结束。
- 缺陷
q ( z ) q(z) q(z)很难选取;采样效率可能不高。- 如果 M ⋅ q ( z ) M\cdot q(z) M⋅q(z)比 p ( z ) p(z) p(z)大很多的话,那么采样老是是失败的,这样采样效率低下。
- 当 M ⋅ q ( z ) = p ( z ) M\cdot q(z) = p(z) M⋅q(z)=p(z)的时候, α = 1 \alpha = 1 α=1,我们每次采样的结果都是接受的。
- 当 p ( z ) p(z) p(z)的分布形式非常的复杂,根本没有办法得到准确的结果(特别是采样cost非常高),经常性的采样失败带来的损失是很大的。
13.1.3 重要性采样(Importance Sampling)
- 重要性采样(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)dz≈N1∑i=1Nf(zi)⋅weight q(zi)p(zi)zi∼q(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。
- 重要性采样在我们的强化学习(PPO)中的应用非常的多。重要性采样并不是直接对概率进行采样,而是对概率分布的期望进行采样。引入另一个分布
q
(
z
)
\color{red}q(z)
q(z):
- 重要性重采样(Sampling Importance Resampling)
经过重要性采样后,得到了 N N N个样本点以及对应的权重。重要性重采样(Sampling Importance Resampling) 用权重来作为采样的概率,重新测采样出 N N N个样本。也就是如下图所示:
通过二次采样可以降低采样不平衡的问题。至于为什么呢?- 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 基本概念
- 随机过程
Random Process研究的对象是一个随机变量的序列 X = { X 0 , X 1 , ⋯ , X t , ⋯ } X=\left \{X_{0},X_{1},\cdots ,X_{t},\cdots \right \} X={X0,X1,⋯,Xt,⋯}。随机过程就是一个序列,这个序列中的每一个元素都是一个随机变量。 - 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=x∣X1,X2,⋯,Xt)=P(Xt+1∣X1,X2,⋯,Xt−m)(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=x∣X1,X2,⋯,Xt)=P(Xt+1∣Xt)(13.2.2)
条件概率分布 P ( X t + 1 ∣ X t ) P(X_{t+1}|X_{t}) P(Xt+1∣Xt)称为马尔可夫链的转移概率分布。 - 时间齐次的马尔可夫链(Time Homogenous Markov Chain)
当转移概率分布 P ( X t ∣ X t − 1 ) P(X_{t}|X_{t-1}) P(Xt∣Xt−1)与 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+s∣Xt−1+s)=P(Xt∣Xt−1),t=1,2,⋯;s=1,2,⋯(13.2.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 t−1处于状态 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=i∣Xt−1=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} pij≥0,i∑pij=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=⎣⎢⎢⎡p11p21p31⋯p12p22p32⋯p13p23p33⋯⋯⋯⋯⋯⎦⎥⎥⎤(pij≥0,i∑pij=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
t−1的状态分布以及转移概率分布决定:
π ( t ) = P π ( t − 1 ) (13.2.10) \color{red}\pi (t)=P\pi (t-1)\tag{13.2.10} π(t)=Pπ(t−1)(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=i∣Xt−1=m)P(Xt−1=m)=∑mPimπm(t−1)(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π(t−1)=P(Pπ(t−2))=P2π(t−2)(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)- 这里的递推式表明马尔可夫链的状态分布由 初 始 分 布 \color{red}初始分布 初始分布和 转 移 概 率 分 布 \color{red}转移概率分布 转移概率分布决定。
- 这里的
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=i∣X0=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,⋯②xi≥0,i=1,2,⋯③∑ixi=1(13.2.15)
- 必要性证明
假设 π \pi π是平稳分布,显然满足①和②,又因为 π i = ∑ j p i j π j \pi_{i}=\sum _{j}p_{ij}\pi_{j} πi=∑jpijπj,所以满足③。 - 充分性证明
由②和③知 π \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=j∑pijP(Xt−1=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=j∑pijπ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(Xt−1=j)=πj,j=1,2,⋯,即 π \pi π也是 X t − 1 X_{t-1} Xt−1的概率分布。事实上这对任意 t t t都成立,所以 π \pi π是马尔可夫链的平稳分布。
- 平稳分布
对于一个马尔可夫链 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)中会描述。
- 考虑马尔可夫链
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的状态分布,记作:
- 转移概率矩阵
- 连续状态马尔可夫链
- 概率转移核
- 连续状态马尔可夫链的转移概率分布由概率转移核或转移核(transition kernel)表示。
- 在连续状态空间
S
S
S上,对任意的
x
∈
S
,
A
⊂
S
x\in S,A\subset S
x∈S,A⊂S(
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 x∼A的转移概率:
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=A∣Xt−1=x)=P(x,A)(13.2.19)有时也将概率密度函数 p ( x , ⋅ ) p(x,\cdot ) p(x,⋅)称为转移核。
- 若马尔可夫链的状态空间
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,∀y∈S(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,∀A∈S(13.2.21)
或简写为:
π = P π (13.2.22) \pi =P\pi\tag{13.2.22} π=Pπ(13.2.22)
- 概率转移核
- 马尔可夫链的性质
- 不可约
在状态空间 S S S中对于任意状态 i , j ∈ S i,j\in S i,j∈S,如果存在一个时刻 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=i∣X0=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}一个不可约的马尔可夫链,从任意状态出发,当经过充分长时间后,可以到达任意状态。 一个不可约的马尔可夫链,从任意状态出发,当经过充分长时间后,可以到达任意状态。
- 不可约:
- 可约:
- 不可约:
- 非周期
在状态空间 S S S中对于任意状态 i ∈ S i\in S i∈S,如果时刻 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=i∣X0=i)>0}的最大公约数是 1 \color{red}1 1,则称此马尔可夫链是非周期的(aperiodic),否则称马尔可夫链是周期的(periodic)。直观上,一个非周期性的马尔可夫链,不存在一个状态,从这一个状态出发,再返回到这个状态时所经历的时间长呈一定的周期性,也就是说 非 周 期 性 的 马 尔 可 夫 链 的 任 何 状 态 都 不 具 有 周 期 性 \color{red}非周期性的马尔可夫链的任何状态都不具有周期性 非周期性的马尔可夫链的任何状态都不具有周期性。
- 非周期:
- 周期:
- 非周期:
- 正常返
对于任意状态 i , j ∈ S i,j\in S i,j∈S,定义概率 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,⋯,t−1∣X0=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 limt→∞pijt>0,则称马尔可夫链是正常返的(positive recurrent)。- 直观上,一个正常返的马尔可夫链,其中任意一个状态,从其他任意一个状态出发,当时间趋于无穷时,首次转移到这个状态的概率不为 0 \color{blue}0 0。
- 定理: 不 可 约 、 非 周 期 且 正 常 返 的 马 尔 可 夫 链 , 有 唯 一 平 稳 分 布 存 在 。 \color{red}不可约、非周期且正常返的马尔可夫链,有唯一平稳分布存在。 不可约、非周期且正常返的马尔可夫链,有唯一平稳分布存在。
- 遍历定理
-
定理:
若马尔可夫链是不可约、非周期且正常返的,则该马尔可夫链有唯一平稳分布 π = ( π 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} t→∞limP(Xt=i∣X0=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 t→∞limP(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^t→Eπ[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=t1∑s=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^t→Eπ[f(X)]}=1表示 f ^ t → E π [ f ( X ) ] , t → ∞ \hat{f}_{t}\rightarrow E_{\pi }[f(X)],t\rightarrow \infty f^t→Eπ[f(X)],t→∞几乎处处成立或以概率 1 1 1成立。
- 意义
- 遍历定理的直观解释:满足相应条件的马尔可夫链,当时间趋于无穷时,马尔可夫链的状态分布趋近于平稳分布,随机变量的函数的样本均值以概率收敛于该函数的数学期望。
- 样本均值可以认为是时间均值,数学期望是空间均值。遍历定理表述了遍历性的含义:当时间趋于无穷时,时间均值等于空间均值。
- 遍历定理的三个条件:不可约、非周期、正常返,保证了当时间趋于无穷时达到任意一个状态的概率不为。
- 实际应用
理论上并不知道经过多少次迭代,马尔可夫链的状态分布才能接近平稳分布,在实际应用遍历定理时,取一个足够大的整数 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)]=n−m1i=m+1∑nf(xi)(13.2.26)
称为遍历均值。
-
- 不可约
- 可逆马尔可夫链
-
定义
对于任意状态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=i∣Xt−1=j)πj=P(Xt−1=j∣Xt=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 j∑pji=πi,i=1,2,⋯该定理说明,可逆马尔可夫链一定有唯一平稳分布,给出了一个马尔可夫链有平稳分布的充分条件(不是必要条件)。也就是说,可逆马尔可夫链满足遍历定理的条件。
-
13.2.2 平稳分布
- Markov Chain 理解
一个Markov Chain可以用下图来表示:
此图就是一个时间序列, 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(x↦x∗)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的概率分布的和。 - 平稳分布定义
假如存在一个 π \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(x↦x∗)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),那么就可以称这个马氏链满足一个平稳分布。
- 引入平稳分布的意义
- 本章开头,我们引入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(x↦x∗)=π(x∗)⋅P(x∗↦x)(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(x↦x∗)dx=∫π(x∗)⋅P(x∗↦x)dx=π(x∗)∑j=1∞Pij=1 ∫P(x∗↦x)dx=π(x∗)
13.3 MH Algorithm
13.3.1 引子
- Monte Carlo Method
Monte Carlo Method是一种基于采样的随机近似算法。目标是求解后验概率 P ( Z ∣ X ) \color{blue}P(Z|X) P(Z∣X),其中 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} EZ∣X[f(Z)]=∫ZP(Z∣X)f(Z)dZ≈N1i=1∑Nf(zi)(13.3.1)
常用的方法有:概率分布采样,拒绝采样和重要性采样。 - 马氏链(平稳分布)
- 对于遍历的马尔可夫链,当其转移次数足够多时,将会进入稳态分布 π ( x ) π(x) π(x),即各状态的出现概率趋于稳定。
- 进一步,假设变量
X
X
X所有可能的取值,构成某遍历马氏链的状态空间。
则无论从什么状态出发,只要转移步数足够大,该马氏链将趋于稳定,即逐渐开始依次输出符合 p ( x ) p(x) p(x)分布的状态 X i X_i Xi。 - 这样,通过收集马氏链收敛后产生的
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 算法
- MH 算法是利用Monte Carlo Method中的拒绝采样和马氏链中的平稳分布的 采 样 方 法 \color{red}采样方法 采样方法。
- MH算法是Metropolis 算法的一个常用的改进变种。
- 由于马氏链的收敛性质主要由转移矩阵 P P P决定, 所以基于马氏链做采样的关键问题是:如何构造转移矩阵 P P P,使平稳分布恰好是我们要的分布。
13.3.2 概念
- 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(x↦x∗)=π(x∗)P(x∗↦x)(13.3.3)
这里的 P ( x ↦ x ∗ ) P(x\mapsto x^\ast) P(x↦x∗)实际上就是条件概率 P ( x ∗ ∣ x ) P(x^\ast|x) P(x∗∣x),这样写只是便于理解。换一种写法可以是:- 定理——细致平稳条件
若非周期马氏链的转移矩阵 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的概率质量,等于反向流动的概率质量,因此是状态概率是稳定的。
- 定理——细致平稳条件
- 目标
推断问题的核心目标:求的是后验概率分布 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=1∑Nf(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算法实现
- 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)从状态i转移到状态j。
- 该转移概率的实现方式是:我们 先 按 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}长期转移 长期转移后,我们会得到想要的抽样分布效果。
-
图解转移过程:
- 要注意的是,当马氏链处在状态 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。
-
- 算法升级
- 存在问题
如果 α ( 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)
我们希望在保持条件成立的前提下,使接受率尽量增大。 - 改进
由于接受率的本质是概率,因此 α ( 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,
-
改
进
算
法
\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)。
-
- 存在问题
参考: