采样是指从任意给定的一个概率分布中生成服从这个分布的随机样本。Gibbs采样通过利用Markov链的平稳性质从一个给定的概率分布中采样。
一阶Markov链定义为一列的随机变量
z
(
1
)
,
.
.
.
,
z
(
M
)
z^{(1)},...,z^{(M)}
z(1),...,z(M),使得下面的独立性质对于
m
∈
{
1
,
.
.
.
,
M
−
1
}
m\in\{1,...,M-1\}
m∈{1,...,M−1}成立
p
(
z
(
m
+
1
)
∣
z
(
1
)
,
.
.
.
,
z
(
m
)
)
=
p
(
z
(
m
+
1
)
∣
z
(
m
)
)
p(z^{(m+1)}|z^{(1)},...,z^{(m)})=p(z^{(m+1)}|z^{(m)})
p(z(m+1)∣z(1),...,z(m))=p(z(m+1)∣z(m))
记某个齐次Markov链的转移矩阵中的元素
T
(
z
(
m
)
,
z
(
m
+
1
)
)
≡
p
(
z
(
m
+
1
)
∣
z
(
m
)
)
T(z^{(m)},z^{(m+1)})\equiv p(z^{(m+1)}|z^{(m)})
T(z(m),z(m+1))≡p(z(m+1)∣z(m))。如果存在
p
∗
(
z
)
p^{*}(z)
p∗(z)使得
p
∗
(
z
)
T
(
z
,
z
’
)
=
p
∗
(
z
′
)
T
(
z
′
,
z
)
p^{*}(z)T(z,z^{’})=p^{*}(z^{'})T(z^{'},z)
p∗(z)T(z,z’)=p∗(z′)T(z′,z)
成立,则称该Markov链的满足细致平稳条件,此Markov链会收敛到稳态分布
p
∗
(
z
)
p^{*}(z)
p∗(z)。且这个稳态分布与初值无关。这样当这个Markov链达到稳态后,该Markov链中的所有状态发生的概率将会服从稳态分布
p
∗
(
z
)
p^{*}(z)
p∗(z)。
设 p ∗ ( z ) p^{*}(z) p∗(z)为给定的待采样概率分布( z z z为随机变量),如果我们构造出一个Markov链(其转移矩阵中的元素用 T ( z , z ′ ) T(z,z^{'}) T(z,z′)表示,其中 z z z和 z ′ z^{'} z′表示Markov链的状态),使得这个Markov链满足1.2.2中的细致平稳条件,则当Markov链的状态发生的概率收敛到平稳分布后,Markov链中每次到达的状态都可以看做是从概率分布 p ∗ ( z ) p^{*}(z) p∗(z)中进行一次随机采样。
所以重要的是如何构造出一个Markov链,它的状态值和待采样分布的随机变量取值相同,并且采用拒绝采样的方法对此Markov链进行修正,使得修正后的Markov链满足细致平稳条件,这样当修正后的Markov链达到平稳分布后,从此修正的Markov链中生成的状态即可以看做是从待采样分布中进行的一次随机采样,这个采样值服从待采样分布。
设
p
(
z
)
p(z)
p(z)为待采样分布,
q
(
z
∗
∣
z
)
q(z^{*}|z)
q(z∗∣z)为提议分布,且
q
(
z
∗
∣
z
)
=
q
(
z
∣
z
∗
)
q(z^{*}|z)=q(z|z^{*})
q(z∗∣z)=q(z∣z∗),下面对提议分布中的样本设置接收率为
A
(
z
,
z
∗
)
=
m
i
n
(
1
,
p
(
z
∗
)
p
(
z
)
)
A(z,z^{*})=min\left(1,\frac{p(z^{*})}{p(z)}\right)
A(z,z∗)=min(1,p(z)p(z∗))
下面证明在上述提议分布和接受率下,此Markov链满足细致平稳条件:
p
(
z
)
q
(
z
∗
∣
z
)
A
(
z
,
z
∗
)
=
p
(
z
)
q
(
z
∗
∣
z
)
m
i
n
(
1
,
p
(
z
∗
)
p
(
z
)
)
=
m
i
n
(
p
(
z
)
q
(
z
∗
∣
z
)
,
p
(
z
∗
)
q
(
z
∗
∣
z
)
)
=
m
i
n
(
p
(
z
∗
)
q
(
z
∣
z
∗
)
,
p
(
z
)
q
(
z
∣
z
∗
)
)
=
p
(
z
∗
)
q
(
z
∣
z
∗
)
m
i
n
(
1
,
p
(
z
)
p
(
z
∗
)
)
=
p
(
z
∗
)
q
(
z
∣
z
∗
)
A
(
z
∗
,
z
)
\begin{aligned} p(z)q(z^{*}|z)A(z,z^{*}) &=p(z)q(z^{*}|z)min\left(1,\frac{p(z^{*})}{p(z)}\right)\\ &=min\left(p(z)q(z^{*}|z),p(z^{*})q(z^{*}|z)\right)\\ &=min\left(p(z^{*})q(z|z^{*}),p(z)q(z|z^{*})\right)\\ &=p(z^{*})q(z|z^{*})min\left(1,\frac{p(z)}{p(z^{*})}\right)\\ &=p(z^{*})q(z|z^{*})A(z^{*},z) \end{aligned}
p(z)q(z∗∣z)A(z,z∗)=p(z)q(z∗∣z)min(1,p(z)p(z∗))=min(p(z)q(z∗∣z),p(z∗)q(z∗∣z))=min(p(z∗)q(z∣z∗),p(z)q(z∣z∗))=p(z∗)q(z∣z∗)min(1,p(z∗)p(z))=p(z∗)q(z∣z∗)A(z∗,z)
于是待采样分布
p
(
z
)
p(z)
p(z)即是上述Markov链的平稳分布,而稳定后Markov链中转移的状态就可以看做是从待采样分布中的随机样本。
设
p
(
z
)
p(z)
p(z)为待采样分布,
q
(
z
∗
∣
z
)
q(z^{*}|z)
q(z∗∣z)为提议分布,提议分布中的样本接收率设置为
A
(
z
,
z
∗
)
=
m
i
n
(
1
,
p
(
z
∗
)
q
(
z
∣
z
∗
)
p
(
z
)
q
(
z
∗
∣
z
)
)
A(z,z^{*})=min\left(1,\frac{p(z^{*})q(z|z^{*})}{p(z)q(z^{*}|z)}\right)
A(z,z∗)=min(1,p(z)q(z∗∣z)p(z∗)q(z∣z∗))
下面证明上述提议分布和接受率下,此Markov链满足细致平稳条件:
p
(
z
)
q
(
z
∗
∣
z
)
A
(
z
,
z
∗
)
=
p
(
z
)
q
(
z
∗
∣
z
)
m
i
n
(
1
,
p
(
z
∗
)
q
(
z
∣
z
∗
)
p
(
z
)
q
(
z
∗
∣
z
)
)
=
m
i
n
(
p
(
z
)
q
(
z
∗
∣
z
)
,
p
(
z
∗
)
q
(
z
∣
z
∗
)
)
=
m
i
n
(
p
(
z
∗
)
q
(
z
∣
z
∗
)
,
p
(
z
)
q
(
z
∗
∣
z
)
)
=
p
(
z
∗
)
q
(
z
∣
z
∗
)
m
i
n
(
1
,
p
(
z
)
q
(
z
∗
∣
z
)
p
(
z
∗
)
q
(
z
∣
z
∗
)
)
=
p
(
z
∗
)
q
(
z
∣
z
∗
)
A
(
z
∗
,
z
)
\begin{aligned} p(z)q(z^{*}|z)A(z,z^{*}) &=p(z)q(z^{*}|z)min\left(1,\frac{p(z^{*})q(z|z^{*})}{p(z)q(z^{*}|z)}\right)\\ &=min\left(p(z)q(z^{*}|z),p(z^{*})q(z|z^{*})\right)\\ &=min\left(p(z^{*})q(z|z^{*}),p(z)q(z^{*}|z)\right)\\ &=p(z^{*})q(z|z^{*})min\left(1,\frac{p(z)q(z^{*}|z)}{p(z^{*})q(z|z^{*})}\right)\\ &=p(z^{*})q(z|z^{*})A(z^{*},z) \end{aligned}
p(z)q(z∗∣z)A(z,z∗)=p(z)q(z∗∣z)min(1,p(z)q(z∗∣z)p(z∗)q(z∣z∗))=min(p(z)q(z∗∣z),p(z∗)q(z∣z∗))=min(p(z∗)q(z∣z∗),p(z)q(z∗∣z))=p(z∗)q(z∣z∗)min(1,p(z∗)q(z∣z∗)p(z)q(z∗∣z))=p(z∗)q(z∣z∗)A(z∗,z)
于是待采样分布
p
(
z
)
p(z)
p(z)即是上述Markov链的平稳分布,而稳定后Markov链中转移的状态就可以看做是从待采样分布中的随机样本。
可以看到当建议分布 q ( z ∗ ∣ z ) q(z^{*}|z) q(z∗∣z)满足条件对称性是,即退化为Metropolis算法。
设待采样分布为: p ( x ) = 0.5 ∗ N ( x ; 1 , 1. 3 2 ) + 0.5 ∗ N ( x ; 5 , 1 2 ) ) p(x)=0.5*N(x;1,1.3^{2})+0.5*N(x;5,1^{2})) p(x)=0.5∗N(x;1,1.32)+0.5∗N(x;5,12))。
选择提议分布: q ( x ′ ∣ x ) = N ( x ′ ; x , 1 2 ) q(x^{'}|x)=N(x^{'};x,1^{2}) q(x′∣x)=N(x′;x,12)。
提议分布中的样本接受率为: A ( z , z ′ ) = m i n ( 1 , p ( z ′ ) q ( z ∣ z ′ ) p ( z ) q ( z ′ ∣ z ) ) A(z,z^{'})=min\left(1,\frac{p(z^{'})q(z|z^{'})}{p(z)q(z^{'}|z)}\right) A(z,z′)=min(1,p(z)q(z′∣z)p(z′)q(z∣z′)),由于提议分布为正态分布,所以 q ( z ′ ∣ z ) = q ( z ∣ z ′ ) q(z^{'}|z)=q(z|z^{'}) q(z′∣z)=q(z∣z′), A ( z , z ′ ) = m i n ( 1 , p ( z ′ ) p ( z ) ) A(z,z^{'})=min\left(1,\frac{p(z^{'})}{p(z)}\right) A(z,z′)=min(1,p(z)p(z′))。
经过
1
0
8
10^{8}
108次Markov链状态转移后,再采样
1
0
8
10^{8}
108次的MATLAB仿真图如下
其中红色的实线为待采样的分布
p
(
x
)
p(x)
p(x),蓝色的直方图为MH算法中Markov链达到稳态分布后对采样值进行的概率统计,可以看到采样值的分布和待采样分布非常接近。
在细致平稳条件中,转移概率可以被分解为一组基转移
B
1
,
⋯
,
B
K
−
1
,
B
K
B_{1},\cdots,B_{K-1},B_{K}
B1,⋯,BK−1,BK的组合,即
T
(
z
′
,
z
)
=
∑
z
K
−
1
⋯
∑
z
1
B
1
(
z
′
,
z
1
)
⋯
B
K
−
1
(
z
K
−
2
,
z
K
−
1
)
B
K
(
z
K
−
1
,
z
)
T(z^{'},z)=\sum_{z_{K-1}}\cdots\sum_{z_{1}}B_{1}(z^{'},z_{1})\cdots B_{K-1}(z_{K-2},z_{K-1})B_{K}(z_{K-1},z)
T(z′,z)=zK−1∑⋯z1∑B1(z′,z1)⋯BK−1(zK−2,zK−1)BK(zK−1,z)
如果一个概率分布关于每个基转移都是不变的,则这个概率分布关于组合后的基转移也是不变的。
在Gibbs采样中我们选择基转移为如下形式,即第
k
k
k维的基转移为
B
k
(
z
′
,
z
)
=
q
k
(
z
∣
z
′
)
=
p
(
z
k
∣
z
\
k
′
)
B_{k}(z^{'},z)=q_{k}(z|z^{'})=p(z_{k}|z_{\backslash k}^{'})
Bk(z′,z)=qk(z∣z′)=p(zk∣z\k′)
其中
z
\
k
′
z_{\backslash k}^{'}
z\k′表示除去第
k
k
k维分量后剩余的分量集合。
假设待采样分布为
p
(
z
)
p(z)
p(z),
z
=
(
z
1
,
⋯
,
z
M
−
1
,
z
M
)
z=(z_{1},\cdots,z_{M-1},z_{M})
z=(z1,⋯,zM−1,zM)为
M
M
M维随机变量,选择Gibbs采样中的基转移,则对第
k
k
k维基转移
B
k
(
z
′
,
z
)
B_{k}(z^{'},z)
Bk(z′,z),下面证明
p
(
z
)
p(z)
p(z)为
B
k
B_{k}
Bk的不变分布,只需证明
B
k
B_{k}
Bk满足细致平稳条件
p
(
z
′
)
B
k
(
z
′
,
z
)
=
p
(
z
′
)
p
(
z
k
∣
z
\
k
′
)
=
p
(
z
′
)
q
k
(
z
∣
z
′
)
=
p
(
z
k
′
,
z
\
k
′
)
p
(
z
k
,
z
\
k
′
)
p
(
z
\
k
′
)
=
p
(
z
k
′
,
z
\
k
′
)
p
(
z
\
k
′
)
p
(
z
k
,
z
\
k
′
)
=
p
(
z
k
′
,
z
\
k
)
p
(
z
\
k
)
p
(
z
k
,
z
\
k
)
=
p
(
z
)
p
(
z
k
′
∣
z
\
k
)
=
p
(
z
)
q
k
(
z
′
∣
z
)
=
p
(
z
)
B
k
(
z
,
z
′
)
\begin{aligned} p(z^{'})B_{k}(z^{'},z) &=p(z^{'})p(z_k|z_{\backslash k}^{'})=p(z^{'})q_{k}(z|z^{'})\\ &=p(z^{'}_{k},z^{'}_{\backslash k})\frac{p(z_{k},z_{\backslash k}^{'})}{p(z_{\backslash k}^{'})}\\ &=\frac{p(z^{'}_{k},z^{'}_{\backslash k})}{p(z_{\backslash k}^{'})}p(z_{k},z_{\backslash k}^{'})\\ &=\frac{p(z^{'}_{k},z_{\backslash k})}{p(z_{\backslash k})}p(z_{k},z_{\backslash k})\\ &=p(z)p(z^{'}_{k}|z_{\backslash k})=p(z)q_{k}(z^{'}|z)\\ &=p(z)B_{k}(z,z^{'}) \end{aligned}
p(z′)Bk(z′,z)=p(z′)p(zk∣z\k′)=p(z′)qk(z∣z′)=p(zk′,z\k′)p(z\k′)p(zk,z\k′)=p(z\k′)p(zk′,z\k′)p(zk,z\k′)=p(z\k)p(zk′,z\k)p(zk,z\k)=p(z)p(zk′∣z\k)=p(z)qk(z′∣z)=p(z)Bk(z,z′)
其中
k
∈
{
1
,
⋯
,
M
−
1
,
M
}
k\in \{1,\cdots,M-1,M\}
k∈{1,⋯,M−1,M}。所以分布
p
(
z
)
p(z)
p(z)关于这些基转移的组合
T
(
z
′
,
z
)
T(z^{'},z)
T(z′,z)也是不变的。这样当此Markov链达到稳态是,Markov链中转移的状态就会服从分布
p
(
z
)
p(z)
p(z)。可以看出Gibbs采样可看成是Metroplis-Hastings算法的特例,即从来自提议分布样本以概率1接受,接受率
A
(
z
′
,
z
)
=
1
A(z^{'},z)=1
A(z′,z)=1。
对于 τ = 1 , ⋯ , T \tau=1,\cdots,T τ=1,⋯,T
采样 z 1 τ + 1 ∼ p ( z 1 ∣ z 2 τ , z 3 τ , ⋯ , z M τ ) z^{\tau+1}_{1}\sim p(z_{1}|z_2^{\tau},z_3^{\tau},\cdots,z_M^{\tau}) z1τ+1∼p(z1∣z2τ,z3τ,⋯,zMτ)
采样 z 2 τ + 1 ∼ p ( z 2 ∣ z 1 τ + 1 , z 3 τ , ⋯ , z M τ ) z^{\tau+1}_{2}\sim p(z_{2}|z_1^{\tau+1},z_3^{\tau},\cdots,z_M^{\tau}) z2τ+1∼p(z2∣z1τ+1,z3τ,⋯,zMτ)
采样 z M τ + 1 ∼ p ( z M ∣ z 1 τ + 1 , z 2 τ + 1 , ⋯ , z M − 1 τ + 1 ) z^{\tau+1}_{M}\sim p(z_{M}|z_1^{\tau+1},z_2^{\tau+1},\cdots,z_{M-1}^{\tau+1}) zMτ+1∼p(zM∣z1τ+1,z2τ+1,⋯,zM−1τ+1)
得到 z i τ + 1 , i ∈ { 1 , ⋯ , M } z_{i}^{\tau+1},i\in \{1,\cdots,M\} ziτ+1,i∈{1,⋯,M}
设待采样分布为2维高斯混合分布
p
(
x
,
y
)
=
0.5
∗
N
1
(
[
x
y
]
;
[
0
0
]
,
[
1.5
0.2
0.2
1.4
]
)
+
0.5
∗
N
2
(
[
x
y
]
;
[
2
3
]
,
[
1.1
0.4
0.4
1.3
]
)
p(x,y)=0.5*N_{1}\left(\begin{bmatrix} x\\y \end{bmatrix};\begin{bmatrix} 0\\0 \end{bmatrix},\begin{bmatrix} 1.5&0.2\\0.2&1.4 \end{bmatrix}\right)+0.5*N_{2}\left(\begin{bmatrix} x\\y \end{bmatrix};\begin{bmatrix} 2\\3 \end{bmatrix},\begin{bmatrix} 1.1&0.4\\0.4&1.3 \end{bmatrix}\right)
p(x,y)=0.5∗N1([xy];[00],[1.50.20.21.4])+0.5∗N2([xy];[23],[1.10.40.41.3])
基转移为
B
1
=
p
(
x
∣
y
)
=
p
Y
1
(
y
)
p
Y
1
(
y
)
+
p
Y
2
(
y
)
∗
N
(
x
;
μ
1
,
σ
1
2
)
+
p
Y
2
(
y
)
p
Y
1
(
y
)
+
p
Y
2
(
y
)
∗
N
(
x
;
μ
1
′
,
σ
1
′
2
)
B
2
=
p
(
y
∣
x
)
=
p
X
1
(
x
)
p
X
1
(
x
)
+
p
X
2
(
x
)
∗
N
(
y
;
μ
2
,
σ
2
2
)
+
p
X
2
(
x
)
p
X
1
(
x
)
+
p
X
2
(
x
)
∗
N
(
y
;
μ
2
′
,
σ
2
′
2
)
B_{1}=p(x|y)=\frac{p_{Y_{1}}(y)}{p_{Y_{1}}(y)+p_{Y_{2}}(y)}*N(x;\mu_{1},\sigma_{1}^{2})+\frac{p_{Y_{2}}(y)}{p_{Y_{1}}(y)+p_{Y_{2}}(y)}*N(x;\mu_{1}^{'},{\sigma_{1}^{'}}^{2})\\ B_{2}=p(y|x)=\frac{p_{X_{1}}(x)}{p_{X_{1}}(x)+p_{X_{2}}(x)}*N(y;\mu_{2},\sigma_{2}^{2})+\frac{p_{X_{2}}(x)}{p_{X_{1}}(x)+p_{X_{2}}(x)}*N(y;\mu_{2}^{'},{\sigma_{2}^{'}}^{2})
B1=p(x∣y)=pY1(y)+pY2(y)pY1(y)∗N(x;μ1,σ12)+pY1(y)+pY2(y)pY2(y)∗N(x;μ1′,σ1′2)B2=p(y∣x)=pX1(x)+pX2(x)pX1(x)∗N(y;μ2,σ22)+pX1(x)+pX2(x)pX2(x)∗N(y;μ2′,σ2′2)
算法流程如4.2节所述。
左侧是待采样分布
p
(
x
,
y
)
p(x,y)
p(x,y)的三维图和俯视图,右侧为Gibbs采样算法中得到的采样样本的概率分布图,可以看出,采样样本的分布和待采样分布很接近。
这些采样方法的共同点是利用容易采样的提议分布,对提议分布进行采样,得到样本,并以一定的接受率去接受样本,通过接受率来改变该样本发生的概率,使得该样本发生的概率等于待采样的分布下的概率。从而这些样本也就服从待采样分布。