本篇内容与 第十课的蒙特卡洛方法与随机过程重复。
随机近似:蒙特卡洛
随机近似方法的核心是蒙特卡洛方法,以采样的方式实现随机近似,从而实现数值积分等目标。
例如要计算函数
f
(
Z
)
f(Z)
f(Z)关于分布
p
(
Z
∣
X
)
p(Z|X)
p(Z∣X)的期望,从期望的定义可知,期望的计算本质其实是计算积分:
E
z
∣
x
[
f
(
z
)
]
=
∫
z
p
(
z
∣
x
)
f
(
z
)
d
z
E_{z|x}[f(z)]=\int_{z}p(z|x)f(z)dz
Ez∣x[f(z)]=∫zp(z∣x)f(z)dz
这个积分的计算比较困难,而随机近似的方法核心即蒙特卡洛方法,依靠采样实现数值积分:
- 首先从原始分布
p
(
z
∣
x
)
p(z|x)
p(z∣x)中采样出
N
N
N个样本点:
z ( 1 ) , z ( 2 ) , z ( 3 ) , . . . , z ( N ) ∼ p ( z ∣ x ) z^{(1)},z^{(2)},z^{(3)},...,z^{(N)}\sim p(z|x) z(1),z(2),z(3),...,z(N)∼p(z∣x) - 根据大数定理,用样本均值模拟积分的真实结果:
1 N ∑ i = 1 N f ( z ( i ) ) ≈ ∫ z p ( z ∣ x ) f ( z ) d z \frac{1}{N}\sum_{i=1}^{N}f(z^{(i)})\approx \int_{z}p(z|x)f(z)dz N1i=1∑Nf(z(i))≈∫zp(z∣x)f(z)dz
顺便一提,如果我们令 f ( z ) = z f(z)=z f(z)=z,则利用上述方法求出的即为分布 p ( z ∣ x ) p(z|x) p(z∣x)的期望。准确来说,上面的采样方式称为直接采样,但现实情况是 p ( z ∣ x ) p(z|x) p(z∣x)比较复杂,难以直接从中采样到服从此分布的样本。
为了解决该问题,派生出两种方案:接受-拒绝采样,重要性采样。两种方法都基于一个事实,目标分布 p ( z ∣ x ) p(z|x) p(z∣x)无法直接采样,然后引入提议分布 q ( z ) q(z) q(z)(一个便于采样的分布),这个分布的选择是任意的,比如均匀分布,高斯分布等。
接受-拒绝采样
对于目标分布
p
(
z
)
p(z)
p(z),难以直接采样,引入提议分布
q
(
z
)
q(z)
q(z),并找一个常数
M
M
M,使得对于任意的样本
z
i
z_{i}
zi,都能够满足:
M
q
(
z
i
)
≥
p
(
z
i
)
Mq(z_{i})\geq p(z_{i})
Mq(zi)≥p(zi)
首先引入一个动态的参数被称为接受率
α
\alpha
α:
α
=
p
(
z
(
i
)
)
M
q
(
z
(
i
)
)
\alpha=\frac{p(z^{(i)})}{Mq(z^{(i)})}
α=Mq(z(i))p(z(i))
由于已知
M
q
(
z
i
)
≥
p
(
z
i
)
Mq(z_{i})\geq p(z_{i})
Mq(zi)≥p(zi),所以有
0
≤
α
≤
1
0\leq\alpha\leq 1
0≤α≤1;采样过程如下:
- 从提议分布 q ( z ) q(z) q(z)采样到样本 z ( i ) z^{(i)} z(i);
- 从0到1的均匀分布随机采样一个值: u ∼ U ( 0 , 1 ) u\sim U(0,1) u∼U(0,1);
- 如果 u ≤ α u\leq\alpha u≤α,我们接受这个采样点 z ( i ) z^{(i)} z(i),否则丢弃它。
以上过程循环 N N N次后,所有接受的点近似服从目标分布 p ( z ) p(z) p(z);
这种采样方法简单,但存在问题,采样的效率依赖提议分布 q ( z ) q(z) q(z)的选择,因为只有当 α \alpha α越高,才意味着无效的样本越少,丢弃的样本越少。从数值上看,只有当 M q ( z ) Mq(z) Mq(z)越接近 p ( z ) p(z) p(z), α \alpha α才能越高,但我们本来就不知道 p ( z ) p(z) p(z)的分布形态,所以选择提议分布同样是困难的事情。
重要性采样
依然是计算函数
f
(
z
)
f(z)
f(z)关于目标分布
p
(
z
)
p(z)
p(z)的期望:
E
p
(
z
)
[
f
(
z
)
]
=
∫
p
(
z
)
f
(
z
)
d
z
=
∫
p
(
z
)
q
(
z
)
f
(
z
)
q
(
z
)
d
z
E_{p(z)}[f(z)]=\int p(z)f(z)dz=\int\frac{p(z)}{q(z)}f(z)q(z)dz
Ep(z)[f(z)]=∫p(z)f(z)dz=∫q(z)p(z)f(z)q(z)dz
此时可以转换一个视角:计算
p
(
z
)
q
(
z
)
f
(
z
)
\frac{p(z)}{q(z)}f(z)
q(z)p(z)f(z)关于提议分布
q
(
z
)
q(z)
q(z)的期望,现在我们直接从提议分布
q
(
z
)
q(z)
q(z)采样
N
N
N个样本:
z
1
,
z
2
,
z
3
,
.
.
.
,
z
N
∼
q
(
z
)
z_{1},z_{2},z_{3},...,z_{N}\sim q(z)
z1,z2,z3,...,zN∼q(z)
利用大数定理可以得到期望的近似:
1
N
∑
i
=
1
N
p
(
z
i
)
q
(
z
i
)
f
(
z
i
)
≈
∫
p
(
z
)
q
(
z
)
f
(
z
)
q
(
z
)
d
z
\frac{1}{N}\sum_{i=1}^{N}\frac{p(z_{i})}{q(z_{i})}f(z_{i})\approx \int\frac{p(z)}{q(z)}f(z)q(z)dz
N1i=1∑Nq(zi)p(zi)f(zi)≈∫q(z)p(z)f(z)q(z)dz
重要性的"重要"二字来源于权重
p
(
z
i
)
q
(
z
i
)
\frac{p(z_{i})}{q(z_{i})}
q(zi)p(zi);
小结
以上两大基于蒙特卡洛的采样方法,获取样本的根本逻辑是基于提议分布的随机采样,关键都在于选择一个合适的提议分布 q ( z ) q(z) q(z),从而获得一组合理的样本。