数学笔记:重要性采样

1 重要性采样

         假设我们要计算一个函数f(x)的期望值,那我们可以从X的分布p中先采样一些x,然后再把x带到f里面,得到f(x)。

        

        但如果我们没有办法从p这个分布里面采样数据呢?

        我们可以从另外的一个分布q里面采样数据,q可以是任何数据

        然后我们对f(x)的期望值做一个如下的修正:

         从 q 里面采样 x,然后再去计算f(x) \frac{p(x)}{q(x)},再去取期望值

        所以就算我们不能从 p 里面去采样数据,只要能够从 q 里面去采样数据,然后代入上式,也可以计算从 p 这个分布采样 x 代入 f以后所算出来的期望值。

2 重要性权重

        这边是从 q 做采样,所以从 q 里采样出来的每一笔数据,需要乘上一个重要性权重(importance weight) \frac{p(x)}{q(x)}来修正这两个分布的差异。

        q(x) 可以是任何分布,唯一的限制情况就是q(x) 的概率是 0 的时候,p(x) 的概率不为 0,这样会没有定义。        

 3 重要性采样的小问题

        虽然理论上你可以把 p 换成任何的 q。但是在实现上,p 和 q 不能差太多。

        那么差太多会怎么样呢?

        

        虽然p采样和q采样期望一样,但是它们的方差是不一样的:

          二者方差的差别是第一项的系数,如果\frac{p(x)}{q(x)}差距很大的话,这个的方差就会很大(p很大的地方q很小,商很大;p很小的地方q很大,商很小)

 

        所以理论上它们的期望值一样,也就是说,你只要对 p 这个分布采样够多次,q 这个分布采样够多,你得到的结果会是一样的。但是如果你采样的次数不够多,因为它们的方差差距是很大的,所以你就有可能得到非常大的差别。

        3.1 举例

        举个例子,当 p(x) 和 q(x) 差距很大的时候,会发生什么样的问题。

        

         假设蓝线是 p(x) 的分布,绿线是 q(x) 的分布,红线是 f(x)。如果我们要计算 f(x)的期望值,从 p(x) 这个分布做采样的话,那显然E_{x \sim p}[f(x)]是负的(因为左边那块区域 p(x) 的概率很高,所以要采样的话,都会采样到这个地方,而 f(x) 在这个区域是负的, 所以理论上这一项算出来会是负)。

        接下来我们改成从q(x) 这边做采样,因为q(x) 在右边这边的概率比较高,所以如果你采样的点不够的话,那你可能都只采样到右侧。如果你都只采样到右侧的话,算E_{x \sim q}\left[f(x) \frac{p(x)}{q(x)}\right]这一项,应该还是正的。

         假设今天好不容易采样到左边的点,因为左边的点,p(x) 和 q(x) 是差很多的,p(x) 很大,q(x) 很小。f(x) 好不容易终于采样到一个负的,这个负的就会被乘上一个非常大的权重,这样就可以平衡掉刚才那边一直采样到正的值的情况。最终你算出这一项的期望值,终究还是负的。

        但前提是你要采样够多次,这件事情才会发生。但有可能采样次数不够多,E_{x \sim p}[f(x)]E_{x \sim q}\left[f(x) \frac{p(x)}{q(x)}\right]就有可能有很大的差距。这就是重要性采样的问题。

おすすめ

転載: blog.csdn.net/qq_40206371/article/details/121097902