参考
采样在特征学习中是重要的:论述采样在特征学习中的重要性,有实验证明
不错的讲义:以下基础部分主要参考这个文献
蒙特卡洛采样:蒙特卡洛采样基础参考这部分
Machine Learning_ A Probabilistic Perspective:MH算法的有效性证明参见本书24.3.6
马尔可夫链及吉布斯抽样 入门详解(Markov Chain Monte Carlo and Gibbs Sampling):这个对于Gibbs采样的想法说得很清楚
动机
给定某个分布,如何生成足够多的样本?实际上,这是一个中间问题,因为有很多应用问题需要这一步进行近似推断。
我们更需要关注如何应用采样方法解决实际问题,而不是算法的证明。站在巨人的肩膀上,先理解如何熟练应用。一开始想着做本质改进,一般连最基础的理解都达不到。
函数变换
如果
u
∼
U
(
0
,
1
)
u\sim U(0,1)
u∼U(0,1)则
f
−
1
(
u
)
∼
f
f^{-1}(u)\sim f
f−1(u)∼f,理由如下:
P
(
f
−
1
(
u
)
<
x
)
=
P
(
u
<
f
(
x
)
)
=
f
(
x
)
P(f^{-1}(u)<x)=P(u<f(x))=f(x)
P(f−1(u)<x)=P(u<f(x))=f(x)
即, f − 1 ( u ) f^{-1}(u) f−1(u)的概率分布函数为 f f f,概率密度函数为 f ′ f^{\prime} f′.
拒绝采样
对于p(z),假设其非正规化版本
p
~
(
z
)
\tilde{p}(z)
p~(z)更容易得到。我们找到一个常数
k
k
k和一个已知分布
q
(
z
)
q(z)
q(z)使得总有
p
~
(
z
)
≤
k
q
(
z
)
\tilde{p}(z)\leq kq(z)
p~(z)≤kq(z)
那么,我们可以通过重复以下步骤进行采样:
- 生成一个 q ( z ) q(z) q(z)的样本 z 0 z_0 z0
- 生成一个 U ( 0 , k q ( z 0 ) ) U(0,kq(z_0)) U(0,kq(z0))的样本 u 0 u_0 u0
- 如果 u 0 ≤ p ~ ( z 0 ) u_0\leq \tilde{p}(z_0) u0≤p~(z0)就保留 z 0 z_0 z0,作为一个所求样本,否则舍弃 z 0 z_0 z0,继续上述步骤
重要性采样
应用在对随机变量期望的估计。期望为
一般对分布
p
(
z
)
p(z)
p(z)采取
L
L
L个样本
z
(
l
)
,
l
=
1
,
⋯
,
L
z^{(l)}, l=1, \cdots, L
z(l),l=1,⋯,L,使用
进行估计。
但是,我们可以使用另外更加容易采样的分布
q
(
z
)
q(z)
q(z)来做估计。对
q
(
z
)
q(z)
q(z)采取
L
L
L个样本
z
(
l
)
z^{(l)}
z(l),然后使用下式
蒙特卡洛采样
这里我们只简单表达它的思想和算法,证明去看Machine Learning_ A Probabilistic Perspective
马尔科夫蒙特卡洛采样算法(MCMC)的基本想法是,找到转移概率,使得所采样分布为对应马尔科夫链的平稳分布。
MH采样算法
如果分布
p
(
x
)
p(x)
p(x)满足
p
(
x
)
t
(
x
′
∣
x
)
=
p
(
x
′
)
t
(
x
∣
x
′
)
p(x)t(x^{\prime}|x)=p(x^{\prime})t(x|x^{\prime})
p(x)t(x′∣x)=p(x′)t(x∣x′)
时, p ( x ) p(x) p(x)就是转移概率 t ( x ′ ∣ x ) t(x^{\prime}|x) t(x′∣x)对应的马尔科夫链的平稳分布。
但是,这样的转移概率分布是不容易的,我们使用一个先验的转移概率分布
设
p
~
(
x
)
\tilde{p}(x)
p~(x)为非正规化分布,选择一个先验的转移概率分布
p
(
x
′
∣
x
)
p(x^{\prime}|x)
p(x′∣x),通过一个接受率
r
r
r来进行修正。
Gibbs采样算法
对于
n
>
1
n>1
n>1元分布
p
(
x
1
,
⋯
,
x
n
)
p(x_1, \cdots, x_n)
p(x1,⋯,xn),可以使用本身构造转移概率,得到Gibbs采样算法