2017-09-25 66 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() 

然后我们就可以绘制跟踪和计算直方图和自相关如常。