阅读(3273)
赞(15)
TensorFlow 贝叶斯蒙特卡罗(contrib)
2017-08-21 14:49:33 更新
蒙特卡罗一体化和助手.
背景
蒙特卡罗一体化是指以样本均值估计期望的做法.
例如,给定 Z in R^k 具有密度的随机变量 p,函数的期望 f 可以近似为:
<div> $E_p[f(Z)] = int f(z) p(z) dz$ </div>
<div> $ ~ S_n
:= n^{-1} sum_{i=1}^n f(z_i), z_i iid samples from p.$</div>
如果是(E_p[|f(Z)|] < infinity)
,那么(S_n) --> (E_p[f(Z)])
由大数的强定律决定;如果(E_p[f(Z)^2] < infinity)
,则(S_n)
随着方差渐近正常(Var[f(Z)] / n)
。
贝叶斯统计学的从业者经常发现,分布 p 只知道一个常数时,他们想要估计(E_p[f(Z)])
。例如,联合分布p(z, x)可能是已知的,但证据(p(x) = int p(z, x) dz)
可能是难以处理的。在这种情况下,可以选择参数化分布族(q_lambda(z))
,并且最优(lambda)
是一个(q_lambda(z))
和(p(z | x))
之间的最小化 KL 散度。我们只知道 p(z, x),但这足以找到(lambda)
。
日志空间评估和减去最大值
当随机变量存在于高维空间中时,必须注意。例如,朴素的重要性样本估计(E_q[f(Z) p(Z) / q(Z)])
涉及到两个术语的比例(p(Z) / q(Z))
,为了具有有限积分, 每个尾必须比(O(|z|^{-(k + 1)}))
下降的速度更快。该比率通常为零或无穷大,直到数值精度。
为此,我们有:
<div> $Log E_q[ f(Z) p(Z) / q(Z) ]$ </div>
<div> $ = Log E_q[ exp{Log[f(Z)] + Log[p(Z)] - Log[q(Z)] - C} ] + C,$ where </div>
<div> $C := Max[ Log[f(Z)] + Log[p(Z)] - Log[q(Z)] ].$ </div>
指数项的最大值将为0.0,并且可以以稳定的方式评估期望值。