马尔可夫链蒙特卡罗法
蒙特卡罗法
思想:假设概率分布的定义已知,然后通过随机抽样获得概率分布的随机样本,通过得到的随机样本对概率分布的特征进行分析。
for example:从随机抽出的样本中计算出样本均值,从而得到总体的期望。
蒙特卡罗方法的核心:随机抽样
主要有直接抽样,接受-拒绝抽样,重要性抽样
随机抽样
接受拒绝抽样
input:抽样的目标概率分布的概率密度函数
p
(
x
)
p(x)
p(x)
output:概率分布的随机样本
x
1
,
x
2
,
.
.
.
,
x
n
x_1,x_2,...,x_n
x1,x2,...,xn
parameters:样本数n
建议分布:
q
(
x
)
q(x)
q(x),概率分布:
p
(
x
)
p(x)
p(x)
u
<
=
p
(
x
∗
)
c
q
(
x
∗
)
u<= \frac{p(x^* )}{cq(x^ * )}
u<=cq(x∗)p(x∗)
数学期望估计
样本均值:
f
n
^
\hat{f_n}
fn^
f
n
^
=
1
n
∑
i
=
1
n
f
(
x
i
)
\hat{f_n} = \frac{1}{n}\sum_{i=1}^nf(x_i)
fn^=n1i=1∑nf(xi)
根据大数定律可知,当样本容量增大时,样本均值以概率1收敛于数学期望:
KaTeX parse error: Undefined control sequence: \verfy at position 34: …x)}[f(x)]~,~n->\̲v̲e̲r̲f̲y̲
E
p
(
x
)
[
f
(
x
)
]
=
1
n
∑
i
=
1
n
f
(
x
i
)
E_{p(x)}[f(x)] = \frac{1}{n}\sum_{i=1}^nf(x_i)
Ep(x)[f(x)]=n1i=1∑nf(xi)
积分计e算
∫
X
h
(
x
)
d
x
\int_{\mathcal{X}}h(x)dx
∫Xh(x)dx
将
h
(
x
)
h(x)
h(x)分解成为一个函数
f
(
x
)
f(x)
f(x)和一个密度函数
p
(
x
)
p(x)
p(x)
∫
X
h
(
x
)
d
x
=
∫
X
f
(
x
)
p
(
x
)
d
x
=
E
p
(
x
)
[
f
(
x
)
]
\int_{\mathcal{X}}h(x)dx = \int_{\mathcal{X}}f(x)p(x)dx = E_{p(x)}[f(x)]
∫Xh(x)dx=∫Xf(x)p(x)dx=Ep(x)[f(x)]
summery
一般的蒙特卡罗法中的抽样分布是独立的,而马尔可夫链蒙特卡罗法中的抽样样本不是独立的,样本序列形成马尔可夫链
马尔可夫链
基本定义
马尔可夫性:
P
(
X
t
∣
X
0
,
X
1
,
X
2
,
.
.
.
,
X
t
−
1
)
=
P
(
X
t
∣
X
t
−
1
)
,
t
=
1
,
2
,
.
.
.
,
n
P(X_t|X_0,X_1,X_2,...,X_{t-1}) = P(X_t|X_{t-1})~,~t=1,2,...,n
P(Xt∣X0,X1,X2,...,Xt−1)=P(Xt∣Xt−1) , t=1,2,...,n
马尔可夫链(具有马尔可夫性的随机序列)也称之为马尔可夫过程:
X
=
{
X
0
,
X
1
,
X
2
,
.
.
.
,
X
t
,
.
.
.
}
X = \lbrace X_0,X_1,X_2,...,X_t,...\rbrace
X={X0,X1,X2,...,Xt,...}
马尔可夫链的转移概率分布(决定了马尔可夫链的特性):
P
(
X
t
∣
X
t
−
1
)
,
t
=
1
,
2
,
3
,
.
.
.
,
n
P(X_t|X_{t-1})~,~t=1,2,3,...,n
P(Xt∣Xt−1) , t=1,2,3,...,n
时间齐次的马尔可夫链(转移概率分布
P
(
X
t
∣
X
t
−
1
)
P(X_t|X_{t-1})
P(Xt∣Xt−1)与t无关):
P
(
X
t
+
s
∣
X
t
−
1
+
s
)
=
P
(
X
t
∣
X
t
−
1
)
,
t
=
1
,
2
,
3
,
.
.
.
,
n
P(X_{t+s}|X_{t-1+s}) = P(X_t|X_{t-1})~,~t=1,2,3,...,n
P(Xt+s∣Xt−1+s)=P(Xt∣Xt−1) , t=1,2,3,...,n
另外,还有n阶马尔可夫链,n阶马尔可夫链可以转化成为1阶马尔可夫链。
离散状态马尔可夫链
- 转移概率矩阵和状态分布
p i j = ( X t = i ∣ X t − 1 = j ) , i = 1 , 2 , . . . p_{ij} = (X_t = i | X_{t-1} = j)~,~i=1,2,... pij=(Xt=i∣Xt−1=j) , i=1,2,...满足 p i j > = 0 , ∑ i p i j = 1 p_{ij}>=0,\sum_ip_{ij}=1 pij>=0,∑ipij=1,且满足这两个条件的矩阵称之为随机矩阵,马尔可夫链 X = { X 0 , X 1 , . . . , X t , . . . } X=\lbrace X_0,X_1,...,X_t,... \rbrace X={X0,X1,...,Xt,...}在时刻t的概率分布称之为t的状态分布,其中, π i ( t ) \pi_i(t) πi(t)指的是时刻t状态为i的概率 P ( X t = i ) P(X_t = i) P(Xt=i)记做,:
π ( t ) = [ π 1 ( t ) , . . . , π n ( t ) ] T \pi(t) = [\pi_1(t),...,\pi_n(t)]^T π(t)=[π1(t),...,πn(t)]T - 平稳分布(P:状态转移矩阵
P
=
(
p
i
j
)
P = (p_{ij})
P=(pij))
π = P π \pi = P\pi π=Pπ
直观上,如果马尔可夫链的平稳分布存在,那么以该平稳分布作为初始分布,而向未来随机状态转移,之后的任何一个状态也是平稳状态。
平稳分布的充分必要条件:
x i = ∑ j p i j x j x_i = \sum_{j}p_{ij}x_j xi=j∑pijxj
x i > = 0 x_i>=0 xi>=0
∑ i x i = 1 \sum_ix_i=1 i∑xi=1
马尔可夫链X在时刻t的状态分布,可以由在时刻(t-1)的状态分布,以及转移概率决定:
π ( t ) = P π ( t − 1 ) \pi(t) = P\pi(t-1) π(t)=Pπ(t−1)
π ( t ) = P t π ( 0 ) \pi(t) = P^t\pi(0) π(t)=Ptπ(0),这里的 P t P^t Pt称为t步转移概率矩阵。
连续状态马尔可夫链
转移核
P
(
x
,
A
)
P(x,A)
P(x,A)定义为:
P
(
x
,
A
)
=
∫
A
p
(
x
,
y
)
d
y
P(x,A) = \int_Ap(x,y)dy
P(x,A)=∫Ap(x,y)dy
P
(
X
t
=
A
∣
X
t
−
1
=
x
)
=
P
(
x
,
A
)
P(X_t = A|X_t-1 = x) = P(x,A)
P(Xt=A∣Xt−1=x)=P(x,A)
马尔可夫链的额性质
- 不可约
P ( X t = i ∣ X 0 = j ) > 0 P(X_t = i|X_0=j)>0 P(Xt=i∣X0=j)>0
从任意状态出发,当经过充分长的时间后,可以达到任意一个状态。 - 非周期
t : P ( X t = i ∣ X ) = i ) > 0 的最大公约数为1 {t:P(X_t=i|X_)=i)>0}\text{的最大公约数为1} t:P(Xt=i∣X)=i)>0的最大公约数为1
一个非周期的马尔可夫链,不存在一个状态,从这一个状态出发,再返回这个状态所经历的时间呈现一定的周期性。 - 正常返
lim t − > + ∞ p i j t > 0 \lim_{t->+\infty}p_{ij}^t>0 limt−>+∞pijt>0
一个正常返的马尔可夫链,其中任意一个状态,从其他任何一个状态出发,时间趋于无穷时,首次转移到这个状态的概率不为0 - 遍历定理
不可约的非周期的正常返的马尔可夫链,当时间趋于无穷时,马尔可夫链的状态总会趋于平稳分布 - 可逆马尔可夫链
p i j π j = p j i π i p_{ij}\pi_j = p_{ji}\pi_i pijπj=pjiπi
可逆的马尔可夫链,无论是面向未来还是面向过去,任意一个时刻的状态分布均是平稳分布。 - 细致平衡方程
P π = π P\pi = \pi Pπ=π
马尔可夫链蒙特卡罗法
基本想法
燃烧期(0~m)
f
(
x
)
^
=
1
n
−
m
∑
i
=
n
−
m
+
1
n
f
(
x
i
)
\hat{f(x)} = \frac{1}{n-m}\sum_{i=n-m+1}^nf(x_i)
f(x)^=n−m1∑i=n−m+1nf(xi)
基本步骤
step 1:在随机变量
x
x
x的状态空间里构造一个满足条件的马尔可夫链,使得其平稳分布为目标分布
p
(
x
)
p(x)
p(x)
step 2:从状态空间的某一点
x
0
x_0
x0出发,用构造的马尔可夫链进行随机游走,产生样本序列
x
0
,
x
1
,
x
2
,
.
.
x_0,x_1,x_2,..
x0,x1,x2,..
step 3:应用马尔可夫链的遍历定理,确定正整数m和n,得到样本集合
x
m
+
1
,
.
.
.
,
x
n
{x_{m+1},...,x_n}
xm+1,...,xn得到函数的均值
f
(
x
)
^
=
1
n
−
m
∑
i
=
n
−
m
+
1
n
f
(
x
i
)
\hat{f(x)} = \frac{1}{n-m}\sum_{i=n-m+1}^nf(x_i)
f(x)^=n−m1∑i=n−m+1nf(xi)
important questions:
one:如何定义马尔可夫链,保证马尔可夫链蒙特卡罗法的条件成立
two:如何确定m,保证样本的无偏性
three:如何确定n,保证遍历均值的精度
Metropolis-Hastings算法
基本原理
- 马尔可夫链
Metropolis-Hastings算法采用转移核为 p ( x , x ′ ) p(x,x^{\prime}) p(x,x′)
p ( x , x ′ ) = q ( x , x ′ ) α ( x , x ′ ) p(x,x^{\prime}) = q(x,x^{\prime})\alpha(x,x^{\prime}) p(x,x′)=q(x,x′)α(x,x′) - 建议分布
q
(
x
,
x
′
)
q(x,x^{\prime})
q(x,x′)和接受分布
α
(
x
,
x
′
)
\alpha(x,x^{\prime})
α(x,x′)
α ( x , x ′ ) = min { 1 , p ( x ′ q ( x ′ , x ) ) p ( x ) q ( x , x ′ ) } \alpha(x,x^{\prime}) = \min\lbrace1, \frac{p(x^{\prime}q(x^{\prime},x))}{p(x)q(x,x^{\prime})}\rbrace α(x,x′)=min{1,p(x)q(x,x′)p(x′q(x′,x))}
转移核:
p ( x , x ′ ) = ? ? p(x,x^{\prime}) = ?? p(x,x′)=??
构造出来了:
p ( x ) p ( x , x ′ ) = p ( x ′ ) p ( x ′ , x ) p(x)p(x,x^{\prime}) = p(x^{\prime})p(x^{\prime},x) p(x)p(x,x′)=p(x′)p(x′,x) - 满条件分布
$$$$
Metropolis-Hastings算法
input:抽样的目标分布的密度函数
p
(
x
)
p(x)
p(x),函数
f
(
x
)
f(x)
f(x)
output:
p
(
x
)
p(x)
p(x)的随机样本
x
m
+
1
,
.
.
,
x
n
x_{m+1},..,x_n
xm+1,..,xn,函数样本的均值
parameters:m,n
单分量Metropolis-Hastings法
Metropolis-Hastings算法需要对多变量分布进行抽样,有时候对多元变量分布的抽样是苦难的,可以对多元变量的每一个变量的条件分布依次进行抽样,这就是单分量Metropolis-Hastings法
吉布斯抽样
基本做法是,从联合概率分布定义满条件概率分布,依次对满条件分布进行抽样,得到样本的序列。