对于大多数的概率模型,直接推导求取它的参数,如均值,积分等,通常是很棘手的,比如我们要求函数 f(z) 在概率分布 p(z) 下的期望:
E(f)=∫f(z)p(z)dz
但是如果我们可以从模型的概率分布采样到足够多的数据 z(l),l=1,...,L ,根据大数定理,期望可以用样本的均值来逼近
E(f^)=1/L∑l=1Lf(z(l))
而且
var(f^)=1LE[(f−E(f)]2
1. 原始采样法(Ancestral Sampling)
有向图模型的概率分布可以表示成条件概率的积:
p(z)=∏i=1Mp(zi|pai)
zi 是与节点i相关联的变量, pai 指节点i的父节点相关联的变量。
根据这些变量在有向图中的拓扑顺序依次采样;如果有些变量已经有观察到的值,那么在采样过程中需要把采样的值与已知值做比较,相等则保留采样的值,不相等则这一轮采样的值全部丢弃,从头再来。这种方法的性能随着已观测变量的数目增加急剧降低,所以这种方法在实际中很少会采用。
2. 基本采样法(Basic Sampling)
假设 z 服从某种简单的标准分布,如均匀分布,且
p(y)=p(z)∣∣∣dzdy∣∣∣
对上式求积分,即
z=h(y)=∫y−infp(y^)dy^
直接举个简单的例子吧,比如指数函数
p(y)=λexp(−λy)
对上面的概率密度函数积分,得到
z=h(y)=1−exp(−λy)
z 的取值范围是0到1,这样子我们可以从0到1的均匀分布采样得到z的值【很多语言都能产生从0到1的伪随机数】,并通过