2017-09-25 63 views
2

我使用Dirichlet過程混合模型(DPMM)根據以下community post,使用Edward來推斷合成數據集上的羣集分配和羣集參數。我正在使用GPU加速的Metropolis Hastings來學習模型參數的後驗分佈。例如,對於集羣的手段,我們有:Edward的MCMC跟蹤圖

D = 2 #dimension of the data 
K = 5 #cluster truncation 
T = 10000 #number of samples 
mu = Normal(loc=tf.zeros(D), scale=tf.ones(D), sample_shape=K) 
qmu = Normal(loc=tf.zeros(D), scale=tf.ones(D), sample_shape=K) #posterior 
gmu = Normal(loc=tf.zeros(D), scale=tf.ones(D), sample_shape=K) #proposal 

inference = ed.MetropolisHastings(
    latent_vars={mu: qmu, ...}, 
    proposal_vars={mu: gmu, ...}, 
    data={x: x_data}) 

我感興趣的是產生微量的情節,從後驗分佈qmu可視化樣本。我正在尋找類似於PyMC的東西pm.traceplot() 如何在Edward中生成跟蹤圖?

回答

2

對於取樣使用Empirical分佈,我們可以按如下方式訪問採樣值:

thin=4 
burnin=2000 
qmu_trace = qmu.params[burnin::thin].eval() 

然後我們就可以繪製跟蹤和計算直方圖和自相關如常。