重要性采样Importance Sampling

参考:

https://zhuanlan.zhihu.com/p/41217212

https://zhuanlan.zhihu.com/p/78720910?utm_source=wechat_session

 

Importance Sampling(以下简称IS)

IS是基于采样的,也就是基于所谓的蒙特卡洛法(Monte Carlo)。而MC,是一个利用随机采样对一个目标函数做近似,比如在强化学习的model-free中,通过MC方法去估计动作值函数Q,其就是个关于衰减累计奖励的期望。

概率论基本知识

数学期望(均值)EX表示对随机变量X的估计,其完全由R.V的分布决定,随机变量X服从某一分布,就称EX是这个分布下的数学期望。

离散R.V的期望定义:,其中p为概率。

连续R.V的期望定义:,其中f为概率密度。

矩估计:就是在某个分布下采样得到的采样的样本值求平均(样本均值)来近似估计这个分布下总体的期望。根据大数定律,采样的样本越多,其样本均值越接近于期望的真实值,即均值。

采样的目的:为了求取随机变量f(X)在某个分布p(x)下的期望,即,展开就是。我们就需要在p(x)的分布下多多采样{x1,x2,x3,x4..xi....xN},然后求其样本均值来估计我们期望。当然,我们的采样是有限的,不能达到大数定律的条件,故样本均值与期望的真实值存在bias(偏差)。

 

IS的引入

直接求样本均值的方式简单直接,但是其存在一定的局限性,就是在p(x)为均匀分布下没啥问题,但如果说采样的每个x值概率不都一样,那么直接求均值就会引入很大的bias。

举个栗子:

某校男生1000人,女生5000人,且男生均比女生高,我们为了估计该校学生的平均身高,就必须进行采样(不然一个个去测量,然后求平均太费时费力了)。但是采样的时候,其中4950个女生由于某种原因不能参加,所以只能在1000个男生,50个女生中采样。如果这时候通过采样求取平均的方式,首先男生有约95%的概率抽到,女生仅仅5%,故比如说最后抽100个求平均,那么其结果肯定是偏离真实值的,也就是bias会很大,其本质原因是非均匀采样导致的。那咋办呢,现实条件就摆在这儿。这时候就要引入修正因子:重要性采样权重。通过加权的方式来修正,用先前分布比上新的分布,\frac{\frac{1000}{5000}}{\frac{1000}{50}}=\frac{1}{100},即男生算1分,女生算100分。

 

重要性采样

数学原理:

假设目前我们的分布是π(x),,但是这个分布不方便使用或者说该分布不适合采样,会引入较大的bias,那么我们就提供一种新的分布p(x)。

接下来改写积分内的式子为:,那么根据期望的定义:,这个式子意思是在分布X~p(x)上的数学期望。我们在p(x)上采样{x1,x2,x3,x4..xi....xN},然后通过求取样本均值就可以估计出在p(x)分布下随机变量f(X)的数学期望

其中,重要性采样修正因子

 

接下来我们来看看IS的作用:改变分布来改善期望

重要性采样Importance Sampling_第1张图片

如上图左图所示,在原分布p(x)下采样的话,那么大概率会使得f(xi)很小,那么通过求取样本均值的方式会造成f(x)的数学期望估计值很低,也就是说这个分布下估计出的值造成的偏差会很大。

那么我们的IS通过引入新的分布q(x)可以进行改善。具体的,q(x)的分布使得我们的采样值聚集在中间区域,当采样的x值,比如X1,造成f比较大时,此时通过修正因子的作用,使得整体的值变小,以防高于期望的真实值太多;当采样的x值,比如X5,造成f比较小时,此时通过修正因子的作用,是整体的值变大,以防低于期望的真实值太多。

 

 

重要性采样的缺陷

重要性采样可以改变原来的旧分布,用新的分布去采集样本,然后求出目标期望,上述证明显示两者理论上是等价的,但是等价他有个前提条件:就是2个分布不能相差太大。换句话说,如果2个分布相差过大,那么两者就不会相等,这就是IS的缺陷。

为啥两个分布不能相差太大呢?

重要性采样Importance Sampling_第2张图片

IS确实可以让2个分布产生一个期望,但是期望相等并不代表方差相等。如上图红框所示,如果2者相差过大,就会导致双方的方差Varience过大。而当采样数据不足够时,方差相差太大会导致两者的样本均值相差很大!

重要性采样Importance Sampling_第3张图片

举个栗子说明:

重要性采样Importance Sampling_第4张图片

如上图所示,p(x)和q(x)分别是旧分布和新布,两者相差很大,f(x)是我们的估计对象。

如果采样不足够:

如果我们按p(x)采样,那么很大概率采样到的都是左边的值,那么这个样本均值将会是负的值,而且负的还比较大。

如果我们按q(x)采样,那么很大概率采样到的都是右边的值,那么这个样本均值将会是正的值,而且正的不太大。因此我们看出两者相差还是挺大的。

如果采用足够:

那么如果我们按q(x)采样,那么就会采到左边的值,这个值一算的话是负得很厉害的,因此和右边的一加,估计就和按p(x)采样的结果差不多了。

这就是重要性采样的一个需要注意的点。

 

总结:

通过重要性采样的方式,可以改善原分布下偏差较大的影响,其中修正因子起了调节的作用。

重要性采样的实质是按照两个分布对函数f进行了加权。

重要性采样的用处在于对于原分布下不太好求解的情况下,把问题转移到在另一个分布下求解期望。

重要性采样要发挥作用,得保证新旧两个分布相差不要太离谱。

Note:这里的重要性采样不等同于强化学习中Priortized experience replay中的重要性采样,两个概念不一致。

 

 

 

你可能感兴趣的:(概率论,强化学习,机器学习)