阅读(11.5k) 书签 (0)

TensorFlow 对数空间的重要性抽样估计

2018-08-30 15:58 更新

tf.contrib.bayesflow.monte_carlo.expectation_importance_sampler_logspace


expectation_importance_sampler_logspace (
log_f ,
log_p ,
sampling_dist_q ,
z = None ,
n = None ,
seed = None ,
name = 'expectation_importance_sampler_logspace'
)

定义在tensorflow/contrib/bayesflow/python/ops/monte_carlo_impl.py.

参见指南:贝叶斯蒙特卡罗(contrib)>行动

在对数空间中具有正函数的重要性抽样.

随着 p(z) := exp{log_p(z)},而且 f(z) = exp{log_f(z)},该操作返回:

Log[ n ^ { - 1 } sum_ {i = 1 } ^ n [ F( z_i ) p( z_i )/q(z_i)]] ,z_i 〜 q ,
\approx Log[ E_q [ F ( Z ) p (Z ) / q ( Z ) ] ]
= Log[ E_p [ f ( Z )] ]

这个积分是通过最大减法在对数空间中完成的,以更好地处理 f(z) p(z) / q(z) 可能承受的极端值.

和 expectation_importance_sampler 相反,该操作将返回对数空间中的值.

用户提供的任何一个样本 z 张量, 或样本数绘制 n.

ARGS:

  • log_f:从可调用映射样本 sampling_dist_q 到具有形状 broadcastable 的 Tensors 到 q.batch_shape.例如,log_f “就像”  sampling_dist_q.log_prob一样工作.
  • log_p:从可调用映射样本 sampling_dist_q 到具有形状 broadcastable 的 Tensors 到 q.batch_shape.例如,log_p “就像” q.log_prob 一样工作.
  • sampling_dist_q:抽样分布.tf.contrib.distributions.Distribution.log_p 和 q 应在同一组中得到支持.
  • z:p 样品的张量,由 p.sample 为一些 n 生成.
  • n:整数张量.如果未提供z生成的样本数.
  • seed:Python整数来寻找随机数程序.
  • name:为该操作提供一个名字.

返回:

重要性抽样估计的对数.形状张量等于 q 的批次形状, 并且 dtype = q. dtype.