TensorFlow 貝葉斯蒙特卡羅(contrib)

2019-01-31 18:07 更新

蒙特卡羅一體化和助手.

背景

蒙特卡羅一體化是指以樣本均值估計期望的做法.

例如,給定 Z in R^k 具有密度的隨機變量 p,函數(shù)的期望 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)]\\) 由大數(shù)的強定律決定;如果\\(E_p[f(Z)^2] < infinity\\),則\\(S_n\\)隨著方差漸近正常\\(Var[f(Z)] / n\\)。

貝葉斯統(tǒng)計學(xué)的從業(yè)者經(jīng)常發(fā)現(xiàn),分布 p 只知道一個常數(shù)時,他們想要估計\\(E_p[f(Z)]\\)。例如,聯(lián)合分布p(z, x)可能是已知的,但證據(jù)\\(p(x) = \int p(z, x) dz\\)可能是難以處理的。在這種情況下,可以選擇參數(shù)化分布族\\(q_\lambda(z)\\),并且最優(yōu)\\(\lambda\\)是一個\\(q_\lambda(z)\\)\\(p(z | x)\\)之間的最小化 KL 散度。我們只知道 p(z, x),但這足以找到\\(\lambda\\)。

日志空間評估和減去最大值

當(dāng)隨機變量存在于高維空間中時,必須注意。例如,樸素的重要性樣本估計\\(E_q[f(Z) p(Z) / q(Z)]\\)涉及到兩個術(shù)語的比例\\(p(Z) / q(Z)\\),為了具有有限積分, 每個尾必須比\\(O(|z|^{-(k + 1)})\\)下降的速度更快。該比率通常為零或無窮大,直到數(shù)值精度。

為此,我們有:

<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>

指數(shù)項的最大值將為0.0,并且可以以穩(wěn)定的方式評估期望值。

Ops

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號