TensorFlow貝葉斯熵(contrib)

2019-01-31 18:07 更新

熵操作

背景

常見的香農(nóng)熵,證據(jù)較低的 BOund(ELBO),KL分歧,更多都具有信息理論的使用和解釋.它們也經(jīng)常用于變分推理.這個庫匯集了用于估計(jì)他們 Ops,例如使用蒙特卡羅期望。

例子

用 ELBO 擬合變分后驗(yàn)的例子.

#我們首先假設(shè)知道關(guān)于密度 p(z,x)超過
#潛在變量z和固定測量 x 的對數(shù).由于 x 是固定的,Python 
#函數(shù)不會將 x 作為參數(shù).
def  log_joint ( z ): 
  theta = tf.Variable(0.)  #有助于定義log_joint的可修改變量.
  ...

#接下來,定義具有可訓(xùn)練參數(shù)的正態(tài)分布.
q =distributions.Normal(mu =tf.Variable(0.),sigma = tf.Variable(1.))

#現(xiàn)在,定義一個損失函數(shù)(負(fù) ELBO),當(dāng)最小化時,將調(diào)整
#mu,sigma 和 theta,增加 ELBO,我們希望這兩者都可以減少
#q(z)和 p(z|x)之間的 KL 散度,并增加 p(x).請注意,我們
#不能同時保證,但一般來說,我們期望兩者都會發(fā)生.
elbo = entropy.elbo_ratio(log_p ,q,n = 10) 
loss =  - elbo

#最小化損失 
train_op = tf.train.GradientDescentOptimizer (0.1 ).minimize(loss) 
tf.global_variables_initializer().run()
for step in range(100 ): 
  train_op.run ()

Ops

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號