重要性采样

有下面一个问题:

一个工厂里面,工资有三档,低,中,高,分别为100块,200块,300块。其中拿低档工资的工人占60%,拿中档工资的工人占30%,拿高档工资的工人10%人。求该工厂工人工资的期望值。

一个解决方法是蒙特卡罗估计。即随机的对该厂工人构造采样,求均值,结果随着采样数量增加会收敛该式 0.6N100+0.3N200+0.1N300N

接下来,问题改变了。该工厂有一个车间,工人的收入分布有所不同。低档50%,中档30%,高档20%。假设我们只能从该车间工人中采样,如何得到该厂的工人工资的期望值。

如果我们直接从该车间工人中采样取均值,结果是错误的,因为车间工人工资分布与工厂工人工资分布是不同的,从车间工人中采样的结果应该收敛到该式 0.5N100+0.3N200+0.2N300N ,显然与上式不同。

=====================重要性采样=============================
E[f(x)]=xp(x)f(x) 这是定义
p(x)f(x)=q(x)f(x)p(x)q(x) 显然总可以这么写
Ep[f(x)]=xp(x)f(x)=xq(x)[f(x)p(x)q(x)]=Eq[f(x)p(x)q(x)]

因此,我们在用来自车间的工人采样时,只需要在工人工资数额前乘上一个权重 p(x)q(x) ,如对于低档次工资的工人,权重为 0.60.5 ,中档 0.30.3 ,高档 0.10.2 ,把所采工人的工资按权重求均值,就是工厂工人工资的期望值。

下面是两个公式:
公式一:蒙特卡罗估计,即第一种情况,从x服从p分布中采样求均值

sp=1ni=1,xpnf(xi)

公式二:重要采样估计,即第二种情况,从x服从q分布中采样,求x服从p分布的均值
sq=1ni=1,xqnp(xi)f(xi)q(xi)

=======================为什么叫做重要性采样=========================
假设f(x)是一个钟形曲线,但我并不知道f(x)的解析式是什么,我只有一张图片。我可以使用蒙特卡罗估计方法来求曲线在[1,2]的面积,即使用均匀分布采样N个点,对N个点的值求均值。均值×1(底)就是对曲线面积的估计。

然而我们都知道,钟形曲线两端是非常靠近坐标轴的,值很小,而中间部分才是最主要的部分,因此,我们可以对中间部分多采一些样本,两端少采一些样本。例如我们用一个高斯分布q(x)对曲线采样,让q(x)隆起的部分,对齐f(x)隆起的部分,就能达到我们的目的(实际操作是很难贴合的,但我们在这里假设q(x)全部在[1,2]内部)。

此时,我们可以使用重要性采样,对每个点,采样值是 f(x)Nq(x) ,求均值即所求面积。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值