TensorFlow Monte Carlo重要性抽樣估計(jì)

2018-08-25 18:01 更新

tf.contrib.bayesflow.monte_carlo.expectation_importance_sampler


expectation_importance_sampler ( 
    f , 
    log_p , 
    sampling_dist_q , 
    z = None , 
    n = None , 
    seed = None , 
    name = 'expectation_importance_sampler' 
)

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

參見指南:貝葉斯蒙特卡羅(contrib)>行動(dòng)

蒙特卡羅估計(jì) E_p[f(Z)] = E_q[f(Z) p(Z) / q(Z)].

隨著 p(z) := exp{log_p(z)},這Op返回

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

這個(gè)積分是通過最大減法在對(duì)數(shù)空間中完成的,以更好地處理 f(z) p(z) / q(z)可能承受的極端值.

如果 f >= 0,將 expectation_importance_sampler_logspace 應(yīng)用的結(jié)果取冪,則效率高達(dá)2倍 Log[f].

用戶提供的任何一個(gè)樣本 z 張量, 或樣本數(shù)繪制 n

ARGS:

  • f:從可調(diào)用映射樣本 sampling_dist_q 到具有形狀 broadcastable 的 Tensors 到 q.batch_shape.例如,f “就像” q.log_prob 一樣工作.
  • log_p:從可調(diào)用映射樣本 sampling_dist_q 到具有形狀 broadcastable 的 Tensors 到 q.batch_shape.例如,log_p “就像” sampling_dist_q.log_prob 一樣工作.
  • sampling_dist_q:抽樣分布.tf.contrib.distributions.Distribution.log_p 和 q 應(yīng)在同一組中得到支持.
  • z:p 樣品的張量,由 p.sample 為一些 n 生成.
  • n:整數(shù)張量.如果未提供z生成的樣本數(shù).
  • seed:Python整數(shù)來尋找隨機(jī)數(shù)程序.
  • name:為該操作提供一個(gè)名字.

返回:

重要性抽樣估計(jì).形狀張量等于 q 的批次形狀,并且 dtype= q.dtype.


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)