重要性采样(Importance Sampling)
摘自维基百科
重要性采样是蒙特卡洛方法中的一个重要策略。该方法不改变统计量,只改变概率分布,可以用来降低方差。
在做蒙特卡罗模拟的时候,我们当然希望采集的样本服从样本集的均匀分布,比如在机器博弈中,每个点落子的事件组能够被搜索到,做仿真模拟的时候,探索策略可以铺满整个事件组(只考虑当前state,不考虑接下来的state时),但是当事件组的随机变量
z
z
z非常复杂并且无法尝试探索到整个事件组时,这时我们可以考虑选用一个概率分布很简单的概率分布
p
(
z
)
p(z)
p(z),如正态分布、均匀分布(E = 1)等,那么期望可变为
E
(
z
)
=
∫
f
(
z
)
∗
p
(
z
)
 
d
z
E(z) = \int {f(z)*p(z)} \,{\rm d}z
E(z)=∫f(z)∗p(z)dz
=
∫
f
(
z
)
∗
(
p
(
z
)
/
q
(
z
)
)
∗
q
(
z
)
 
d
z
= \int {f(z)*(p(z)/q(z))*q(z)} \,{\rm d}z
=∫f(z)∗(p(z)/q(z))∗q(z)dz
≈
1
/
N
∑
n
(
p
(
z
n
)
/
q
(
z
n
)
)
∗
f
(
z
n
)
,
z
n
q
(
z
)
≈ 1/N\sum_n(p(z^n)/q(z^n))*f(z^n),\text{ }z^n~q(z)
≈1/Nn∑(p(zn)/q(zn))∗f(zn), zn q(z)
定义重要性权重
ω
=
p
(
z
n
)
/
q
(
z
n
)
\omega = p(z^n)/q(z^n)
ω=p(zn)/q(zn),这样普通的重要性采样求积分
E
(
z
)
=
1
/
N
∑
n
ω
n
f
(
z
n
)
E(z) = 1/N\sum_n\omega^nf(z^n)
E(z)=1/Nn∑ωnf(zn)
这里引入三个参数估计的评价量(1)无偏性√(2)一致性?(3)有效性√
从推到过程上可以看出,基于重要性采样的积分估计为无偏估计。但是,基于重要性采样的积分估计的方差无穷大。这是因为原来的被积函数乘了一个重要性权重,改变了被积函数的形状及分布,尽管被积函数的均值没有发生变化,但方差明显发生改变。一致性,又称相合性,是指随着样本容量的增大,估计量愈来愈接近总体参数的真值。
为了解决一致性差的问题(即方差无穷大),一种减小重要性采样积分方差的方法是采用加权重要性采样:
E
(
z
)
=
∑
n
=
1
N
ω
n
∑
m
=
1
N
ω
m
f
(
z
n
)
E(z) = \sum_{n=1}^N\frac{\quad\omega^n}{\sum_{m=1}^N\omega^m}f(z^n)
E(z)=n=1∑N∑m=1Nωmωnf(zn)
拒绝采样(转)
当目标分布 π ( x ) \pi(x) π(x)非常复杂或未知时,无法利用目标分布给出采样点,那么怎么办呢?一种方法是采用一个易于采样的提议分布 p ( x ) p(x) p(x),如高斯分布进行采样。可是,如果用提议分布 p ( x ) p(x) p(x)采样,那么所产生的样本服从提议分布 p ( x ) p(x) p(x)而不服从目标分布 π ( x ) \pi(x) π(x)。所以,为了得到符合目标分布 π ( x ) \pi(x) π(x)的样本,需要加工由提议分布 p ( x ) p(x) p(x)得到的样本。接收符合目标分布的样本,拒绝不符合目标分布的样本。
MCMC(Markov Chain Monte Carlo)方法
MCMC方法全称为马尔科夫链蒙特卡罗方法,适用于采样空间的维数比较高时,刚看到这里,什么是空间维数比较高?看了后续的内容发现,比如在机器博弈中, s 1 s_1 s1, s 2 s_2 s2, s 3 s_3 s3…, s n s_n sn这一个决策过程集合,采样的数据就是n维的。当然n维的采样方法用重要性采样和拒绝采样都不适用,MCMC方法不需要提议分布,只需要一个随机样本点,下一个样本会由当前的随机样本点产生,如此循环源源不断地产生很多样本点。当样本足够大时,这些样本点服从目标分布。{未完待续}